/*
 * Κοινά styles του shop — καλάθι (shop_cart_view.twig, 11.13.0 — ενότητα «Καλάθι / checkout» πιο κάτω), checkout (shop_cart_checkout.twig),
 * επαφές (shop_contacts.twig), επεξεργασία παραγγελίας στο admin (admin_order_edit.twig).
 * Frontend: cms39_register_css στο cms39_shopping_v2.plugin.php · admin: <link> από το mod_admin_eshop_order_edit.
 * URL με ?v=filemtime (cms39_shop_asset_url) — τα στατικά έχουν cache 6 μηνών.
 */

/* Λάθος σε πεδίο με country-select-pro: το input κρύβεται πίσω από το widget → κόκκινο περίγραμμα στο wrapper */
.cms39-chk-invalid-wrap { border: 1px solid #b91c1c; border-radius: .375rem; }

/* Λάθος σε κάρτα επιλογής (αποστολή / πληρωμή στο checkout) */
.cms39-chk-invalid-card { border: 1px solid #b91c1c !important; }

/* ======================================================================================================================
   Καλάθι / checkout (11.13.0) — ΧΩΡΙΣ framework (templates/shop_cart_view.twig · shop_cart_checkout.twig · .cms39-shop / .csh-*).
   11.17.0 — Η ΕΜΦΑΝΙΣΗ ΕΙΝΑΙ ΤΟΥ PLUGIN (εντολή χρήστη): δικές του τιμές (γραμματοσειρά του συστήματος, μελάνι #0f172a, teal ΜΟΝΟ για ασφάλεια πληρωμής,
   γωνίες, σκιές) — ΟΧΙ από το theme / Bootstrap (--bs-*) → ίδιο καλάθι / checkout σε κάθε site. Το theme ΔΕΝ στιλάρει το shop (ούτε κλάσεις ούτε μεταβλητές) —
   εξαίρεση ΜΟΝΟ το --shop-sticky-top (ύψος του sticky header του theme: πού σταματά η σύνοψη) — οι τιμές του plugin = --csh-* (ιδιωτικές: τα --shop-accent / --shop-font …
   των οδηγιών 11.13–11.16 δεν έχουν πια καμία επίδραση). Κανόνες με «.cms39-shop» μπροστά = πάνω από τα γενικά στυλ
   του theme (input[type=text] · .content button · a:hover …). Responsive με container queries (πλάτος του ΧΩΡΟΥ, όχι της οθόνης): με ή χωρίς sidebar.
   ====================================================================================================================== */
.cms39-shop {
    --csh-font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;
    --csh-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --csh-ink: #0f172a;            /* κύρια κουμπιά · επιλεγμένα · βήματα */
    --csh-ink-hover: #273449;
    --csh-accent: var(--csh-ink);
    --csh-on-accent: #fff;
    --csh-text: #0f172a;
    --csh-muted: #475569;          /* 7:1 σε λευκό */
    --csh-surface: #fff;
    --csh-subtle: #f1f5f9;
    --csh-ground: #f4f6f8;         /* φόντο του checkout */
    --csh-border: #e2e8f0;
    --csh-input-border: #848d9b;   /* 3,3:1 σε λευκό — το όριο του πεδίου φαίνεται (WCAG 1.4.11) */
    --csh-ok: #15803d;
    --csh-danger: #b91c1c;
    --csh-secure: #0f766e;         /* ΜΟΝΟ για την ασφάλεια της πληρωμής */
    --csh-secure-soft: #f0f9f7;
    --csh-secure-line: #b9e0d8;
    --csh-focus: #1d4ed8;
    --csh-radius: .75rem;
    --csh-radius-sm: .5rem;
    --csh-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 2px 8px rgba(15, 23, 42, .04);
    --csh-gap: 1.25rem;
    --shop-sticky-top: 1.25rem;     /* το ΜΟΝΟ που ορίζει το theme */
    container-type: inline-size;
    color: var(--csh-text);
    font-family: var(--csh-font);
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: normal;
    text-align: start;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.cms39-shop *, .cms39-shop *::before, .cms39-shop *::after { box-sizing: border-box; }
.cms39-shop :is(p, h1, h2, h3, h4, h5, h6, ul, ol, dl, dd, figure) { margin: 0; }
.cms39-shop :is(ul, ol) { padding: 0; list-style: none; }
/* 11.17.0: ό,τι το theme στιλάρει γενικά (τίτλοι με δική του γραμματοσειρά / κεφαλαία, πεδία, κουμπιά, links) → του plugin */
.cms39-shop :is(h1, h2, h3, h4, h5, h6) { color: var(--csh-text); font-family: var(--csh-font); font-style: normal; letter-spacing: normal; text-transform: none; }
.cms39-shop :is(button, input, select, textarea, label, legend) { font-family: var(--csh-font); letter-spacing: normal; text-transform: none; }
.cms39-shop a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cms39-shop a:hover { color: inherit; }
/* links μέσα σε κείμενο = υπογραμμισμένα (όχι μόνο χρώμα — WCAG 1.4.1) · και στα κείμενα του site (θέση «shop-cart» → .slot-item) */
.cms39-shop :is(.csh-hint, .csh-terms, .csh-step-sub, .csh-payinfo, .slot-item) a:not(.csh-btn) { color: var(--csh-text); text-decoration: underline; }
.cms39-shop svg { flex: none; }
.csh-muted { color: var(--csh-muted); }
.csh-ok { color: var(--csh-ok); }

/* Κάρτα · κουμπιά · links */
.csh-card { background: var(--csh-surface); border: 1px solid var(--csh-border); border-radius: var(--csh-radius); box-shadow: var(--csh-shadow); }
.cms39-shop .csh-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.25rem; margin: 0; padding: .75rem 1.5rem;
    border: 1px solid transparent; border-radius: var(--csh-radius-sm); box-shadow: none; font: inherit; font-weight: 700; line-height: 1.2;
    text-align: center; text-decoration: none; text-transform: none; letter-spacing: normal; cursor: pointer;
}
.cms39-shop .csh-btn-primary, .cms39-shop .csh-btn-primary:visited { border-color: var(--csh-accent); background: var(--csh-accent); color: var(--csh-on-accent); }
.cms39-shop .csh-btn-primary:hover, .cms39-shop .csh-btn-primary:focus-visible { border-color: var(--csh-ink-hover); background: var(--csh-ink-hover); color: var(--csh-on-accent); }
.cms39-shop .csh-btn-block { display: flex; width: 100%; }
.cms39-shop .csh-link { padding: .25rem 0; border: 0; background: none; color: var(--csh-muted); font: inherit; font-size: .875rem; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cms39-shop .csh-link:hover { color: var(--csh-text); }
.cms39-shop .csh-link-danger:hover { color: var(--csh-danger); }
.cms39-shop :is(.csh-btn, .csh-link, .csh-qty-btn, .csh-line-remove, a):focus-visible { outline: 2px solid var(--csh-focus); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
    .csh-btn, .csh-qty-btn, .csh-line-remove, .csh-opt, .csh-input { transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s; }
}

/* Μηνύματα */
.csh-alert { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: .75rem; padding: .875rem 1rem; border-radius: var(--csh-radius-sm); font-size: .9375rem; }
.csh-alert svg { margin-top: .2em; }
.csh-alert-info { background: var(--csh-subtle); }
.csh-alert-danger { background: #fdecea; color: #8a1c14; }
.csh-alert-ok { background: #e7f6ec; color: #14532d; }   /* 11.18.0: «αποθηκεύτηκε» κ.λπ. */
.csh-alert-warn { background: #fdf3d7; color: #713f12; } /* 11.18.0: προειδοποίηση ([shop_pay]: έληξε / κλειστή) */
/* «Υπάρχει αποθηκευμένο καλάθι» (11.17.0 — cms39_shop_cart_restore_prompt, πάνω από το καλάθι / checkout · πριν Bootstrap του theme) */
.cms39-shop .csh-restore-list { display: grid; gap: .25rem; margin: .375rem 0 .5rem; font-size: .875rem; }
.csh-restore-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.cms39-shop .csh-restore-actions .csh-btn { min-height: 2.75rem; padding: .5rem 1rem; font-size: .9375rem; }

/* ---- Καλάθι: δύο στήλες από 880px (προϊόντα | σύνοψη sticky) ---- */
.csh-cart { display: grid; gap: var(--csh-gap); align-items: start; }
@container (min-width: 880px) {
    .csh-cart { grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: 2rem; }
    .csh-aside { position: sticky; top: var(--shop-sticky-top); }
}
.csh-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.csh-count { color: var(--csh-muted); }

/* Γραμμές: στενό = [εικόνα | στοιχεία · κάδος] / [εικόνα | ποσότητα · τιμή] · φαρδύ (κάρτα ≥ 600px) = μία σειρά με επικεφαλίδες */
.csh-lines { padding: 0 1.25rem; container: cshlines / inline-size; }
.csh-lines-head { display: none; }
.csh-line {
    display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-areas: "img info remove" "img qty price";
    column-gap: .875rem; row-gap: .75rem; padding: 1.125rem 0; align-items: start;
}
.csh-line + .csh-line { border-top: 1px solid var(--csh-border); }
.csh-line-img { grid-area: img; display: block; width: 72px; aspect-ratio: 1; overflow: hidden; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); }
/* .cms39-shop μπροστά: themes με «.content img { height: auto }» (startup: .st-content img) κέρδιζαν → εικόνα πιο κοντή από το κουτί */
.cms39-shop .csh-line-img img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.csh-line-info { grid-area: info; min-width: 0; }
.csh-line-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: inherit; font-weight: 650; text-decoration: none; }
.csh-line-title:hover { text-decoration: underline; }
.csh-line-variant { margin-top: .125rem; color: var(--csh-muted); font-size: .875rem; overflow-wrap: anywhere; }
.csh-avail { display: flex; align-items: center; gap: .4rem; margin-top: .375rem; color: var(--csh-muted); font-size: .8125rem; }
.csh-dot { width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.csh-avail-ok { color: var(--csh-ok); }
.csh-avail-off { color: var(--csh-danger); }
.csh-line-qty { grid-area: qty; align-self: center; }
.csh-line-price { grid-area: price; align-self: center; display: flex; flex-direction: column; align-items: flex-end; text-align: end; }
.csh-price { font-size: 1.0625rem; font-weight: 700; white-space: nowrap; }
.csh-price-old { color: var(--csh-muted); font-size: .8125rem; white-space: nowrap; }
.csh-price-unit { color: var(--csh-muted); font-size: .75rem; white-space: nowrap; }
.csh-badge { display: inline-block; padding: 0 .4rem; border-radius: 999px; background: var(--csh-danger); color: #fff; font-size: .75rem; font-weight: 700; }
.cms39-shop .csh-line-remove {
    grid-area: remove; justify-self: end; display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; margin: -.375rem -.375rem 0 0; padding: 0;
    border: 0; border-radius: 50%; background: transparent; box-shadow: none; color: var(--csh-muted); font-size: 1.0625rem; cursor: pointer;
}
.cms39-shop .csh-line-remove:hover { background: var(--csh-subtle); color: var(--csh-danger); }
@container cshlines (min-width: 600px) {
    .csh-lines-head, .csh-line { grid-template-columns: 88px minmax(0, 1fr) 8.5rem 7.5rem 2.25rem; column-gap: 1.25rem; }
    .csh-lines-head { display: grid; padding: 1rem 0 .75rem; border-bottom: 1px solid var(--csh-border); color: var(--csh-muted); font-size: .8125rem; }
    .csh-lines-head span:first-child { grid-column: 1 / 3; }
    .csh-lines-head span:nth-child(3) { text-align: end; }
    .csh-line { grid-template-areas: "img info qty price remove"; align-items: center; }
    .csh-line-img { width: 88px; }
    .cms39-shop .csh-line-remove { margin: 0; }
}
/* Πολύ στενή κάρτα (κινητό 360px): η ποσότητα κάτω από εικόνα + στοιχεία, η τιμή δεξιά — η παλιά τιμή αναδιπλώνεται (πριν έσπρωχνε την κάρτα έξω από την οθόνη) */
@container cshlines (max-width: 380px) {
    .csh-line { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "img info remove" "qty qty price"; column-gap: .75rem; }
    .csh-line-img { width: 64px; }
    .csh-price-old { white-space: normal; }
}

/* Ποσότητα − 1 + */
.csh-qty { display: inline-flex; align-items: stretch; height: 2.5rem; border: 1px solid var(--csh-border); border-radius: 999px; background: var(--csh-surface); }
.csh-qty:focus-within { border-color: var(--csh-accent); }
.cms39-shop .csh-qty-btn { display: grid; place-items: center; width: 2.5rem; height: auto; margin: 0; padding: 0; border: 0; border-radius: 999px; background: transparent; box-shadow: none; color: inherit; cursor: pointer; }
.cms39-shop .csh-qty-btn:hover { background: var(--csh-subtle); }
.cms39-shop .csh-qty-btn[aria-disabled="true"] { opacity: .35; cursor: default; }
.cms39-shop .csh-qty-btn[aria-disabled="true"]:hover { background: transparent; }
.cms39-shop .csh-qty-input {
    width: 2.75rem; height: auto; min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; color: inherit; font: inherit; font-weight: 650; text-align: center;
    -moz-appearance: textfield; appearance: textfield;
}
.csh-qty-input::-webkit-outer-spin-button, .csh-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.csh-qty-input:focus { outline: 2px solid transparent; } /* το focus το δείχνει το .csh-qty:focus-within · transparent = ορατό σε forced colors (Windows υψηλή αντίθεση) */
.csh-qty-fixed { color: var(--csh-muted); font-size: .875rem; }

/* Χρόνος παράδοσης + θέση «shop-cart» (κείμενα του site) — κάρτες κάτω από τα προϊόντα */
.csh-info { display: grid; gap: .75rem; margin-top: var(--csh-gap); }
@container (min-width: 640px) { .csh-info { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); } }
.csh-info .cms39-slot { display: contents; }
.csh-info-card, .csh-info .slot-item { padding: 1rem 1.125rem; border-radius: var(--csh-radius); background: var(--csh-subtle); }
.csh-info-card { display: flex; align-items: center; gap: .875rem; }
.csh-info-icon { color: var(--csh-accent); font-size: 1.375rem; line-height: 1; }
.csh-info-title, .csh-info .slot-item-title { font-weight: 650; }
.cms39-shop .csh-info .slot-item-title { margin: 0 0 .25rem; font-size: 1rem; line-height: 1.4; }
.csh-info .slot-item :last-child { margin-bottom: 0; }
.cms39-shop .csh-info .slot-item p { margin: 0 0 .5rem; }
.cms39-shop .csh-info .slot-item :is(ul, ol) { margin: .25rem 0 .5rem; padding-left: 1.25rem; list-style: revert; } /* themes που μηδενίζουν τις λίστες */
.csh-info .slot-item { color: var(--csh-muted); font-size: .9375rem; }
.csh-info .slot-item-title { color: var(--csh-text); }

/* Σύνοψη */
.csh-summary { padding: 1.25rem; }
@container (min-width: 600px) { .csh-summary { padding: 1.5rem; } }
.cms39-shop .csh-summary-title { margin: 0 0 1rem; color: inherit; font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
.csh-rows { display: grid; gap: .625rem; }
.csh-row { display: flex; justify-content: space-between; gap: 1rem; }
.csh-row dt { color: var(--csh-muted); font-weight: 400; }
.csh-row dd { font-weight: 650; text-align: end; }
.csh-freebar { margin-top: 1rem; padding: .75rem .875rem; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); font-size: .875rem; }
.csh-freebar-track { height: .375rem; margin-top: .5rem; overflow: hidden; border-radius: 999px; background: var(--csh-border); }
.csh-freebar-track span { display: block; height: 100%; border-radius: inherit; background: var(--csh-ok); }
.csh-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--csh-border); }
.csh-total span { font-size: 1.125rem; font-weight: 700; }
.csh-total strong { font-size: 1.625rem; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; }
.csh-total-note { color: var(--csh-muted); font-size: .8125rem; text-align: end; }
.csh-summary .csh-btn-block { margin-top: 1.25rem; }
.csh-secure { margin-top: 1rem; color: var(--csh-muted); font-size: .8125rem; text-align: center; }
.csh-secure-text { display: inline-flex; align-items: center; gap: .375rem; }
.csh-marks { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: .625rem; }
.csh-mark {
    display: grid; place-items: center; min-width: 2.75rem; height: 1.875rem; padding: 0 .4rem;
    border: 1px solid var(--csh-border); border-radius: .375rem; background: #fff; color: #1f2328; font-size: 1.5rem; line-height: 1;
}
.csh-mark-visa { color: #1a1f71; }
.csh-mark-mastercard { color: #eb5c1a; }
.csh-mark-amex { color: #2e77bc; }
.csh-mark-paypal { color: #003087; }
.csh-mark-googlepay { color: #3c4043; }
.csh-mark-text { color: #0f3a7d; font-size: .6875rem; font-weight: 800; letter-spacing: .06em; }
/* Σύνοψη του checkout (11.17.0): κεφαλίδα + «Στο καλάθι» · κάτω «Ασφαλής πληρωμή μέσω τράπεζας» + σήματα (μόνο με online πληρωμές) */
.csh-summary-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.cms39-shop .csh-summary-head .csh-summary-title { margin: 0; }
.csh-sum-secure { display: grid; justify-items: center; gap: .625rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--csh-border); }
.csh-sum-secure-text { display: inline-flex; align-items: center; gap: .375rem; color: var(--csh-secure); font-size: .8125rem; font-weight: 650; }
.csh-sum-secure .csh-marks { margin-top: 0; }

/* Άδειο καλάθι */
.csh-empty { max-width: 28rem; margin: 0 auto; padding: 3rem 1rem; text-align: center; }
.csh-empty-icon { display: inline-grid; place-items: center; width: 4.5rem; height: 4.5rem; margin-bottom: 1rem; border-radius: 50%; background: var(--csh-subtle); color: var(--csh-muted); font-size: 2rem; }
.cms39-shop .csh-empty-title { margin: 0 0 .375rem; color: inherit; font-size: 1.375rem; font-weight: 700; }
.csh-empty .csh-btn { margin-top: 1.25rem; }

/* ---- Checkout σε βήματα (11.14.0 — templates/shop_cart_checkout.twig): ίδιες μεταβλητές --csh-* με το καλάθι ---- */
.csh-sr { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
/* 11.17.0: φόντο του checkout σε ΟΛΟ το πλάτος της οθόνης (border-image outset = ζωγραφίζει έξω από το κουτί χωρίς scroll και χωρίς να κόβει dropdowns /
   παράθυρα — όχι clip-path) · κενό πάνω / κάτω μέσα στο φόντο */
.csh-checkout { display: grid; gap: var(--csh-gap); padding: 1.5rem 0 2.5rem; background: var(--csh-ground); border-image: linear-gradient(var(--csh-ground), var(--csh-ground)) fill 0 / 0 / 0 100vmax; }
@media (min-width: 900px) { .csh-checkout { padding: 2.25rem 0 3.5rem; } } /* media, όχι @container: το .csh-checkout είναι ο ίδιος ο container */

/* Ένδειξη βημάτων: 1 Στοιχεία — 2 Παράδοση — 3 Πληρωμή */
.csh-steps:focus { outline: none; } /* εστίαση από το script της αλλαγής βήματος (11.15.1) — όχι πλαίσιο */
.csh-steps ol { display: flex; align-items: center; gap: .5rem; counter-reset: none; }
.csh-step { display: flex; align-items: center; gap: .5rem; flex: 1 1 0; min-width: 0; color: var(--csh-muted); font-size: .9375rem; }
.csh-step:not(:last-child)::after { content: ""; flex: 1 1 auto; height: 1px; min-width: .75rem; background: var(--csh-border); }
.csh-step:last-child { flex: 0 0 auto; }
.csh-step-num {
    display: inline-grid; place-items: center; flex: none; width: 2rem; height: 2rem; border: 1.5px solid var(--csh-input-border); border-radius: 50%;
    background: var(--csh-surface); color: var(--csh-muted); font-size: .875rem; font-weight: 700; line-height: 1;
}
.csh-step-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 11.17.0: τρέχον = γεμάτο μελάνι · ολοκληρωμένα = ✓ σε μελάνι + γραμμή μελάνι ως το επόμενο */
.csh-step.is-current { color: var(--csh-text); font-weight: 700; }
.csh-step.is-current .csh-step-num { border-color: var(--csh-ink); background: var(--csh-ink); color: var(--csh-on-accent); }
.csh-step.is-done { color: var(--csh-text); }
.csh-step.is-done .csh-step-num { border-color: var(--csh-ink); background: var(--csh-surface); color: var(--csh-ink); }
.csh-step.is-done:not(:last-child)::after { background: var(--csh-ink); }
.cms39-shop .csh-step-btn { display: inline-flex; align-items: center; gap: .5rem; min-width: 0; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; color: inherit; font: inherit; cursor: pointer; }
.cms39-shop .csh-step-btn:hover .csh-step-label { text-decoration: underline; }
/* Στενό (κινητό): «Βήμα 2 από 3» + τμήματα ΑΝΤΙ για τη λίστα (display:none = και για τους αναγνώστες οθόνης ένα από τα δύο) — τα ολοκληρωμένα βήματα
   ανοίγουν από το «Αλλαγή» των συνόψεων */
.csh-progress { display: none; }
@container (max-width: 460px) {
    .csh-steps ol { display: none; }
    .csh-progress { display: grid; gap: .5rem; color: var(--csh-text); font-size: .875rem; font-weight: 650; }
    .csh-progress-bar { display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; gap: .375rem; }
    .csh-progress-bar span { height: .25rem; border-radius: 999px; background: var(--csh-border); }
    .csh-progress-bar .is-on { background: var(--csh-ink); }
}
/* Ερώτηση + γραμμή του βήματος (11.17.0) */
.csh-step-head { display: grid; gap: .375rem; }
.cms39-shop .csh-step-title { font-size: 1.625rem; font-weight: 750; line-height: 1.2; letter-spacing: -.015em; }
@container (min-width: 600px) { .cms39-shop .csh-step-title { font-size: 1.875rem; } }
.csh-step-sub { color: var(--csh-muted); font-size: .9375rem; }
.csh-step-sub strong { color: var(--csh-text); font-weight: 600; }
.cms39-shop .csh-link-inline { padding: 0; color: var(--csh-text); font-size: inherit; }
/* 11.15.3: ορατό focus στις κάρτες αποστολής / πληρωμής, στο Απόδειξη / Τιμολόγιο και στα βήματα — και σε themes με «input:focus, button:focus { outline: none }» */
.cms39-shop :is(.csh-opt-input, .csh-seg-opt input, .csh-step-btn, .csh-check input):focus-visible { outline: 2px solid var(--csh-focus); outline-offset: 2px; }
/* Διεύθυνση (11.15.4): οδός + αριθμός δίπλα δίπλα · «Η διεύθυνση δεν έχει αριθμό» από κάτω (ο αριθμός κλειδώνει) */
.csh-addr-row { display: grid; grid-template-columns: minmax(0, 1fr) 7rem; gap: .75rem; align-items: start; }
.csh-addr .csh-input:disabled { background: var(--csh-subtle); color: var(--csh-muted); cursor: not-allowed; }
.csh-check { display: inline-flex; align-items: center; gap: .5rem; margin: .5rem 0 0; color: var(--csh-muted); font-size: .875rem; cursor: pointer; }
.cms39-shop .csh-check input { position: static; flex: none; width: 1.125rem; height: 1.125rem; margin: 0; opacity: 1; accent-color: var(--csh-ink); appearance: auto; }

/* Δύο στήλες από 880px: βήμα | σύνοψη sticky · στενό: «Σύνοψη ▾» πάνω από το βήμα */
.csh-co { display: grid; gap: var(--csh-gap); align-items: start; }
.csh-co-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; min-width: 0; } /* minmax(0, 1fr): όχι πλατύτερη από τον χώρο (360px) */
.csh-co-aside { display: none; }
@container (min-width: 880px) {
    .csh-co { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 2rem; }
    /* 11.15.4: sticky ΜΟΝΟ η σύνοψη — η κάρτα «Αποστολή & παράδοση» από πάνω της κυλάει (η στήλη τεντώνει στο ύψος του βήματος· αλλιώς ψηλότερη από την οθόνη) */
    .csh-co-aside { display: block; align-self: stretch; }
    .csh-co-aside .csh-summary { position: sticky; top: var(--shop-sticky-top); }
    .csh-sum-mobile { display: none; }
    .csh-co-main .csh-delivery { display: none; } /* η κάρτα φαίνεται στη δεξιά στήλη */
}
.csh-sum-mobile { border: 1px solid var(--csh-border); border-radius: var(--csh-radius); background: var(--csh-surface); box-shadow: var(--csh-shadow); }
.csh-sum-mobile > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .875rem 1.125rem; cursor: pointer; list-style: none; }
.csh-sum-mobile > summary::-webkit-details-marker { display: none; }
.csh-sum-mobile > summary span { display: inline-flex; align-items: center; gap: .5rem; color: var(--csh-accent); font-weight: 600; }
.csh-sum-mobile > summary span::after { content: "▾"; font-size: .875rem; }
.csh-sum-mobile[open] > summary span::after { content: "▴"; }
.csh-sum-mobile .csh-sum-body { padding: 0 1.125rem 1.125rem; }

/* Ενότητες + πεδία */
.csh-sec { padding: 1.25rem; }
@container (min-width: 600px) { .csh-sec { padding: 1.5rem; } }
.cms39-shop .csh-sec-title { margin: 0 0 1rem; color: inherit; font-size: 1.125rem; font-weight: 700; line-height: 1.3; }
.cms39-shop .csh-sec-title + .csh-sec-intro { margin: -.75rem 0 1rem; }
.csh-sec-intro { color: var(--csh-muted); font-size: .875rem; }
/* «Διεύθυνση» μέσα στην ενότητα του παραλήπτη (11.17.0) */
.csh-sub-title { margin-top: .25rem; padding-top: 1rem; border-top: 1px solid var(--csh-border); font-size: .9375rem; font-weight: 700; }
.csh-grid { display: grid; gap: 1rem; }
@container (min-width: 520px) {
    .csh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .csh-span-2 { grid-column: 1 / -1; }
}
.csh-field { display: grid; gap: .375rem; align-content: start; min-width: 0; } /* η ψηλότερη διπλανή στήλη (μήνυμα λάθους) δεν τεντώνει ετικέτα / input */
.cms39-shop .csh-label { display: block; margin: 0; color: var(--csh-text); font-size: .875rem; font-weight: 600; }
.csh-optional { color: var(--csh-muted); font-weight: 400; }
/* 11.17.0: 48px · 16px (το iPhone δεν κάνει zoom) · όριο 3:1 · focus = μελάνι + μπλε δαχτυλίδι */
.cms39-shop .csh-input {
    width: 100%; height: auto; min-height: 3rem; margin: 0; padding: .625rem .875rem; border: 1px solid var(--csh-input-border); border-radius: var(--csh-radius-sm);
    background-color: var(--csh-surface); box-shadow: none; color: var(--csh-text); font: inherit; font-size: 1rem; line-height: 1.4;
}
.cms39-shop .csh-input::placeholder { color: #64748b; opacity: 1; }
.cms39-shop .csh-input:hover { border-color: #64748b; }
.cms39-shop .csh-input:focus { border-color: var(--csh-ink); outline: 2px solid transparent; box-shadow: 0 0 0 3px rgba(29, 78, 216, .25); }
.cms39-shop .csh-input[readonly] { background-color: var(--csh-subtle); color: var(--csh-muted); }
/* ✓ στο πεδίο με σωστή τιμή (email · Τ.Κ. που βρέθηκε — Cart::checkoutViewData → valid) */
.cms39-shop .csh-input.is-valid {
    padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%2315803d' d='M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425z'/%3E%3C/svg%3E");
    background-position: right .875rem center; background-repeat: no-repeat; background-size: 1.125rem;
}
.cms39-shop .csh-input.is-invalid, .cms39-shop .is-invalid > .csh-input, .csh-phone.is-invalid, .csh-field.is-invalid .csh-select-wrap { border-color: var(--csh-danger); }
.csh-hint { color: var(--csh-muted); font-size: .8125rem; }
.csh-hint-ok { display: flex; align-items: center; gap: .375rem; color: var(--csh-ok); font-weight: 600; }
.csh-err { color: var(--csh-danger); font-size: .8125rem; font-weight: 600; }
.csh-note { display: flex; gap: .5rem; align-items: flex-start; padding: .75rem .875rem; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); font-size: .875rem; }

/* Τηλέφωνο: κωδικός χώρας (country-select) + αριθμός σε ένα πλαίσιο */
.csh-phone { display: flex; align-items: stretch; border: 1px solid var(--csh-input-border); border-radius: var(--csh-radius-sm); background: var(--csh-surface); }
.csh-phone:focus-within { border-color: var(--csh-ink); outline: 2px solid transparent; box-shadow: 0 0 0 3px rgba(29, 78, 216, .25); }
.cms39-shop .csh-phone .csh-input { border: 0; outline: none; min-width: 0; }
.cms39-shop .csh-phone .csh-input:focus { box-shadow: none; }
.csh-phone-code { flex: 0 0 auto; display: flex; align-items: center; min-width: 6.75rem; border-right: 1px solid var(--csh-border); }
.csh-select-wrap { display: flex; align-items: center; min-height: 3rem; border: 1px solid var(--csh-input-border); border-radius: var(--csh-radius-sm); background: var(--csh-surface); }
.csh-select-wrap:focus-within { border-color: var(--csh-ink); outline: 2px solid transparent; box-shadow: 0 0 0 3px rgba(29, 78, 216, .25); }
/* country-select-pro (κωδικός τηλεφώνου / χώρα) μέσα στα πλαίσια του checkout: ΧΩΡΙΣ δικό του περίγραμμα / σκιά — το πλαίσιο, το λάθος και το focus τα δίνει το
   .csh-phone / .csh-select-wrap (11.15.1 — πριν διπλό περίγραμμα). Μόνο εδώ: η βιβλιοθήκη μένει ως έχει για τις άλλες φόρμες */
.cms39-shop :is(.csh-phone-code, .csh-select-wrap) .cs-wrapper { width: 100%; }
.cms39-shop :is(.csh-phone-code, .csh-select-wrap) .cs-trigger,
.cms39-shop :is(.csh-phone-code, .csh-select-wrap) .cs-wrapper:focus-within .cs-trigger { min-height: 2.75rem; border: 0 !important; border-radius: 0; background-color: transparent; box-shadow: none; }
.cms39-shop .cs-search-input { font-size: 1rem; } /* αναζήτηση της λίστας χωρών: 16px (η βιβλιοθήκη 14px → zoom στο iPhone) */

/* Επιλογές αποστολής / πληρωμής = κάρτες radio */
.csh-options { display: grid; grid-template-columns: minmax(0, 1fr); gap: .625rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.csh-opt { border: 1px solid var(--csh-border); border-radius: var(--csh-radius); background: var(--csh-surface); }
.csh-opt:not(.is-off):not(.is-selected):hover { border-color: var(--csh-input-border); }
.csh-opt.is-selected { border-color: var(--csh-ink); box-shadow: 0 0 0 1px var(--csh-ink); }
.csh-opt.is-off { opacity: .6; }
.cms39-shop .csh-opt-label { display: flex; align-items: center; gap: .875rem; margin: 0; padding: .875rem 1rem; font-weight: 400; cursor: pointer; }
.csh-opt.is-off .csh-opt-label { cursor: default; }
.cms39-shop .csh-opt-input { position: static; flex: none; width: 1.25rem; height: 1.25rem; margin: 0; opacity: 1; accent-color: var(--csh-ink); appearance: auto; }
/* 11.19.21: παραστατικά στη σελίδα της παραγγελίας */
.cms39-shop .csh-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.csh-opt-media { display: grid; grid-template: 100% / 100%; place-items: center; flex: none; width: 3rem; height: 2.25rem; border-radius: .375rem; background: var(--csh-subtle); color: var(--csh-accent); font-size: 1.25rem; overflow: hidden; }
/* 11.19.14: ΟΛΟ το λογότυπο μέσα στο κουτί — γραμμή grid με σταθερό ύψος (grid-template: 100% / 100%): πριν η γραμμή έπαιρνε το ύψος της εικόνας, το max-height δεν περιόριζε και το overflow έκοβε π.χ. το «viva.com» */
.cms39-shop .csh-opt-media img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; padding: .1875rem; object-fit: contain; box-sizing: border-box; }
@container (max-width: 359px) { .csh-opt-media { display: none; } } /* κινητό 320–375px: χώρος για όνομα + τιμή (το εικονίδιο είναι διακοσμητικό) */
.csh-opt-body { display: grid; flex: 1 1 auto; min-width: 0; }
.csh-opt-name { font-weight: 650; overflow-wrap: anywhere; }
.csh-opt-sub { color: var(--csh-muted); font-size: .8125rem; }
.csh-opt-price { flex: none; font-weight: 700; white-space: nowrap; }
.csh-opt-extra { padding: 0 1rem 1rem; }
.csh-opt-extra > * { margin-bottom: 0; }
/* Σημείο παραλαβής (11.15.2 — BOX NOW · Skroutz · ACS: ShippingProviders::pointBox): το σημείο + κουμπί επιλογής */
.csh-point { display: grid; gap: .625rem; padding: .875rem 1rem; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); }
.csh-point-picked { margin: 0; color: var(--csh-muted); font-size: .875rem; overflow-wrap: anywhere; }
.csh-point-picked.is-set { color: var(--csh-text); font-weight: 600; }
/* Κουμπί επιλογής σημείου στο χρώμα της courier (11.15.3 — όπως πριν το 11.15.2) · αντίθεση κειμένου AA · theme: --pt-bg / --pt-fg στο .csh-point[data-carrier="…"] */
.csh-point { --pt-bg: var(--csh-accent); --pt-fg: var(--csh-on-accent); }
.csh-point[data-carrier="boxnow"] { --pt-bg: #44d62c; --pt-fg: #0b2e00; }
.csh-point[data-carrier="skroutz"] { --pt-bg: #cc4800; --pt-fg: #fff; }
.csh-point[data-carrier="acs"] { --pt-bg: #d6001c; --pt-fg: #fff; }
.cms39-shop .csh-btn-carrier, .cms39-shop .csh-btn-carrier:visited { min-height: 2.75rem; border-color: var(--pt-bg); background: var(--pt-bg); color: var(--pt-fg); }
.cms39-shop .csh-btn-carrier:hover, .cms39-shop .csh-btn-carrier:focus-visible { border-color: var(--pt-bg); background: var(--pt-bg); color: var(--pt-fg); filter: brightness(.94); }
.csh-options.is-invalid .csh-opt { border-color: var(--csh-danger); }
/* Κάρτα «Αποστολή & παράδοση» (11.15.4 — ο πίνακας υπολογισμού του παλιού checkout) */
.csh-delivery { display: grid; gap: .75rem; padding: 1rem 1.125rem; }
.csh-co-main .csh-delivery { margin-top: .875rem; border-color: transparent; background: var(--csh-subtle); }
.csh-co-aside .csh-delivery { margin-bottom: 1rem; }
.csh-delivery-head { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .875rem; align-items: start; }
.csh-delivery-kicker { margin: 0; color: var(--csh-muted); font-size: .8125rem; font-weight: 600; } /* 11.17.0: όχι κεφαλαία */
.csh-delivery-main { margin: .125rem 0 0; font-size: 1.0625rem; font-weight: 700; }
.csh-delivery .csh-hint { margin: .25rem 0 0; }
.csh-delivery .csh-rows { margin: 0; font-size: .875rem; }
.csh-delivery-head + .csh-rows { padding-top: .75rem; border-top: 1px solid var(--csh-border); } /* 11.15.5: γραμμή μόνο κάτω από εκτίμηση (χωρίς ημέρες: καμία) */
.csh-delivery-items { display: grid; gap: .375rem; margin: 0; padding: 0; list-style: none; font-size: .8125rem; }
.csh-delivery-items li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .75rem; }
.csh-delivery-item { min-width: 0; overflow-wrap: anywhere; }
.csh-delivery-note { display: flex; gap: .5rem; align-items: flex-start; margin: 0; padding: .625rem .75rem; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); color: var(--csh-muted); font-size: .8125rem; }
.csh-delivery-note svg { flex: none; margin-top: .125rem; }
.csh-opt-free { color: var(--csh-ok); font-weight: 600; } /* «Δωρεάν για αγορές από X» στην κάρτα μεταφορικής */

/* «Η διαδρομή της πληρωμής» (11.17.0 — Cart::securePath, κάτω από την επιλεγμένη online πληρωμή): Εσύ → τράπεζα / PayPal → επιβεβαίωση. Teal = ΜΟΝΟ ασφάλεια */
.csh-secpath { display: grid; gap: .875rem; padding: 1rem 1.125rem; border: 1px solid var(--csh-secure-line); border-radius: var(--csh-radius-sm); background: var(--csh-secure-soft); }
.csh-secpath-title { display: flex; align-items: center; gap: .5rem; color: var(--csh-secure); font-size: .8125rem; font-weight: 700; }
.csh-secpath-title svg { font-size: 1rem; }
.csh-secpath-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.csh-secpath-node { position: relative; display: grid; justify-items: center; align-content: start; gap: .25rem; text-align: center; }
.csh-secpath-node:not(:last-child)::after { content: ""; position: absolute; top: 1.125rem; left: calc(50% + 1.5rem); right: calc(-50% + 1rem); border-top: 2px dashed var(--csh-secure-line); }
.csh-secpath-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; margin-bottom: .125rem; border: 1.5px solid var(--csh-secure-line); border-radius: 50%; background: var(--csh-surface); color: var(--csh-secure); font-size: 1rem; }
.csh-secpath-node.is-secure .csh-secpath-icon { border-color: var(--csh-secure); background: var(--csh-secure); color: #fff; }
.csh-secpath-label { color: var(--csh-text); font-size: .8125rem; font-weight: 700; }
.csh-secpath-sub { color: var(--csh-muted); font-size: .75rem; line-height: 1.35; }
.csh-secpath-note { padding-top: .75rem; border-top: 1px solid var(--csh-secure-line); color: #134e48; font-size: .8125rem; }
@container (max-width: 420px) { .csh-secpath-node:not(.is-secure) .csh-secpath-sub { display: none; } }
/* Οδηγίες offline πληρωμής (11.17.0 — PaymentProviderInterface: κατάθεση · κατάστημα) */
.csh-payinfo { display: grid; gap: .625rem; padding: 1rem 1.125rem; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); font-size: .875rem; }
.csh-payinfo-title { font-size: .9375rem; font-weight: 700; }
.csh-payinfo-desc > :last-child { margin-bottom: 0; }
.csh-payinfo-accounts { display: grid; gap: .5rem; }
.csh-payinfo-accounts > div { display: grid; gap: .125rem; padding: .625rem .75rem; border: 1px solid var(--csh-border); border-radius: var(--csh-radius-sm); background: var(--csh-surface); }
.csh-payinfo-accounts dt { color: var(--csh-muted); font-size: .8125rem; font-weight: 600; }
.csh-payinfo-accounts dd { font-family: var(--csh-mono); font-size: .875rem; letter-spacing: .02em; overflow-wrap: anywhere; }
.csh-payinfo-note { color: var(--csh-muted); font-size: .8125rem; }

/* Συνόψεις των βημάτων που ολοκληρώθηκαν («Αλλαγή») */
.csh-recap { padding: .25rem 1.25rem; }
.csh-recap-row { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) auto; gap: .875rem; align-items: start; padding: 1rem 0; }
.csh-recap-row + .csh-recap-row { border-top: 1px solid var(--csh-border); }
.csh-recap-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--csh-subtle); color: var(--csh-ink); font-size: 1.0625rem; }
.csh-recap-title { font-weight: 650; }
.csh-recap-body p:not(.csh-recap-title) { color: var(--csh-muted); font-size: .875rem; overflow-wrap: anywhere; }
.csh-recap-edit { font-size: .875rem; }

/* Παραστατικό: δύο επιλογές δίπλα δίπλα */
.csh-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; margin: 0; padding: 0; border: 0; }
.cms39-shop .csh-seg-opt { display: flex; align-items: center; gap: .625rem; margin: 0; padding: .75rem 1rem; border: 1px solid var(--csh-border); border-radius: var(--csh-radius-sm); background: var(--csh-surface); font-weight: 400; cursor: pointer; }
.cms39-shop .csh-seg-opt input { position: static; width: 1.125rem; height: 1.125rem; margin: 0; opacity: 1; accent-color: var(--csh-ink); appearance: auto; }
.cms39-shop .csh-seg-opt:has(input:checked) { border-color: var(--csh-ink); box-shadow: 0 0 0 1px var(--csh-ink); font-weight: 650; }
.csh-invoice { margin-top: 1rem; }

/* Κουπόνι */
.csh-coupon > summary { display: flex; align-items: center; gap: .5rem; padding: 1rem 1.25rem; cursor: pointer; font-weight: 600; list-style: none; }
.csh-coupon > summary::-webkit-details-marker { display: none; }
.csh-coupon-row { display: flex; gap: .5rem; padding: 0 1.25rem; }
.csh-coupon > p { margin: 0; padding: .5rem 1.25rem 0; }
.csh-coupon > p:focus { outline: none; }
.csh-coupon[open] { padding-bottom: 1rem; }
.csh-coupon:not([open]) { border-color: transparent; background: transparent; box-shadow: none; }
.csh-coupon:not([open]) > summary { padding: .375rem 0; color: var(--csh-text); }
.csh-coupon:not([open]) > summary:hover { text-decoration: underline; text-underline-offset: 3px; }
.csh-coupon > summary:focus-visible { outline: 2px solid var(--csh-focus); outline-offset: 2px; border-radius: var(--csh-radius-sm); }
/* 11.16.0: εφαρμοσμένο κουπόνι = κωδικός + έκπτωση + «Αφαίρεση» · κωδικός και στη σύνοψη */
.csh-coupon-applied { align-items: center; justify-content: space-between; flex-wrap: wrap; }
.csh-coupon-chip { display: inline-flex; align-items: baseline; gap: .5rem; padding: .5rem .875rem; border: 1px dashed var(--csh-ok); border-radius: var(--csh-radius-sm);
    background: var(--csh-subtle); background: color-mix(in srgb, var(--csh-ok) 8%, var(--csh-surface)); color: var(--csh-text); }
.csh-coupon-chip strong { font-family: var(--csh-mono); letter-spacing: .03em; overflow-wrap: anywhere; }
.csh-coupon-chip span { color: var(--csh-ok); font-weight: 650; white-space: nowrap; }
.csh-code { display: inline-block; padding: 0 .375rem; border: 1px dashed var(--csh-border); border-radius: var(--csh-radius-sm);
    font: 600 .75rem/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; overflow-wrap: anywhere; }
.cms39-shop .csh-btn-ghost { min-height: 3rem; padding: .5rem 1rem; border-color: var(--csh-input-border); background: var(--csh-surface); color: var(--csh-text); }
.cms39-shop .csh-btn-ghost:hover { border-color: var(--csh-ink); background: var(--csh-subtle); color: var(--csh-text); }

/* Ολοκλήρωση: σύνολο · όροι · κουμπί */
.csh-place { display: grid; gap: .75rem; }
.csh-place-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-top: .5rem; }
.csh-place-total span { font-size: 1.125rem; font-weight: 700; }
.csh-place-total strong { font-size: 1.625rem; font-weight: 800; white-space: nowrap; }
.csh-place .csh-total-note { margin-top: -.5rem; }
.csh-terms { color: var(--csh-muted); font-size: .8125rem; }
.cms39-shop .csh-btn-lg { min-height: 3.5rem; font-size: 1.0625rem; }
.csh-center { justify-content: center; text-align: center; }
.csh-place .csh-secure-text { display: flex; color: var(--csh-muted); font-size: .8125rem; }
/* Μπάρα πληρωμής (11.17.0): σύνολο · όροι · κουμπί σε μελάνι (ΚΑΘΕ πληρωμή) · «Συνεχίζεις στη σελίδα …» — στο στενό σταθερή κάτω (sticky: παιδί του .csh-co-main,
   φαίνεται σε όλο το βήμα 3) με σύνολο + σύντομο κουμπί + όροι */
.csh-paybar {
    display: grid; grid-template-areas: "total" "terms" "btn" "next"; gap: .875rem; padding: 1.25rem;
    border: 1px solid var(--csh-border); border-radius: var(--csh-radius); background: var(--csh-surface); box-shadow: var(--csh-shadow);
}
.csh-paybar-total { grid-area: total; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 1rem; }
.csh-paybar-total span { font-size: 1.0625rem; font-weight: 700; }
.csh-paybar-total strong { font-size: 1.625rem; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.csh-paybar-total .csh-total-note { grid-column: 1 / -1; }
.csh-paybar .csh-terms { grid-area: terms; }
.cms39-shop .csh-btn-pay { grid-area: btn; width: 100%; min-height: 3.5rem; font-size: 1.0625rem; }
.csh-paybar .csh-pay-next { grid-area: next; }
.csh-pay-next { display: flex; align-items: center; justify-content: center; gap: .375rem; color: var(--csh-muted); font-size: .8125rem; text-align: center; }
.csh-pay-next svg { color: var(--csh-secure); }
.csh-pay-short, .csh-pay-next-flow { display: none; }
@container (max-width: 520px) {
    .csh-paybar {
        position: sticky; bottom: max(.5rem, env(safe-area-inset-bottom)); z-index: 5; grid-template-areas: "total btn" "terms terms"; grid-template-columns: auto minmax(0, 1fr);
        align-items: center; gap: .5rem 1rem; padding: .75rem .875rem; box-shadow: 0 6px 24px rgba(15, 23, 42, .18);
    }
    .csh-paybar-total { grid-template-columns: minmax(0, 1fr); }
    .csh-paybar-total span { color: var(--csh-muted); font-size: .75rem; font-weight: 600; }
    .csh-paybar-total strong { font-size: 1.375rem; }
    .csh-paybar-total .csh-total-note, .csh-paybar .csh-pay-next, .csh-pay-long { display: none; }
    /* το κουμπί = ο χώρος δίπλα στο σύνολο (αναδιπλώνεται) — πριν max-width 13rem: το «Παραγγελία με υποχρέωση πληρωμής» σκέπαζε το ποσό στα 320–360px */
    .cms39-shop .csh-btn-pay { width: 100%; min-height: 3rem; padding: .5rem .875rem; font-size: 1rem; }
    .csh-pay-short { display: inline; }
    .csh-paybar .csh-terms { font-size: .75rem; line-height: 1.4; }
    .csh-pay-next-flow { display: flex; }
    /* πεδίο / κουμπί σε focus (Tab) δεν μένει κρυμμένο πίσω από τη σταθερή μπάρα (WCAG 2.4.11) — ο browser το ανεβάζει πάνω από αυτήν */
    .csh-co-main:has(> .csh-paybar) :is(a, button, input, select, textarea, summary, [tabindex]):not(.csh-paybar *) { scroll-margin-bottom: 12rem; }
}

/* Κουμπιά βημάτων */
.csh-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.csh-actions-start { justify-content: flex-start; }
.cms39-shop .csh-back { display: inline-flex; align-items: center; gap: .375rem; text-decoration: none; } /* .cms39-shop: πάνω από το υπογραμμισμένο .csh-link */
.cms39-shop .csh-back:hover { text-decoration: underline; }
@container (max-width: 520px) {
    .csh-actions { flex-direction: column-reverse; align-items: stretch; }
    .cms39-shop .csh-actions .csh-btn { width: 100%; }
    .csh-actions .csh-back { justify-content: center; }
}
.csh-alert-title { font-weight: 700; }
.csh-alert ul { margin-top: .25rem; }
.csh-alert a { color: inherit; }

/* Σύνοψη παραγγελίας (δεξιά / «Σύνοψη ▾») */
.csh-sum-lines { display: grid; gap: .875rem; margin-bottom: 1rem; }
.csh-sum-line { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: .75rem; align-items: center; }
.csh-sum-img { position: relative; display: block; width: 56px; height: 56px; border-radius: var(--csh-radius-sm); background: var(--csh-subtle); }
.cms39-shop .csh-sum-img img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: inherit; }
.csh-sum-qty {
    position: absolute; top: -.375rem; right: -.375rem; min-width: 1.375rem; height: 1.375rem; padding: 0 .3rem; border-radius: 999px;
    background: var(--csh-text); color: var(--csh-surface); font-size: .75rem; font-weight: 700; line-height: 1.375rem; text-align: center;
}
.csh-sum-info { display: grid; min-width: 0; }
.csh-sum-title { overflow: hidden; font-size: .9375rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.csh-sum-variant { color: var(--csh-muted); font-size: .8125rem; overflow-wrap: anywhere; }
.csh-sum-price { font-weight: 650; white-space: nowrap; }

/* Περιμένετε (htmx-indicator του checkout: φαίνεται μόνο όσο τρέχει αίτημα — opacity του htmx) */
.csh-loader { position: fixed; top: 50%; left: 50%; z-index: 9999; transform: translate(-50%, -50%); pointer-events: none; }
.csh-spinner { display: block; width: 2.5rem; height: 2.5rem; border: .25rem solid var(--csh-accent); border-right-color: transparent; border-radius: 50%; animation: csh-spin .75s linear infinite; }
@keyframes csh-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .csh-spinner { animation-duration: 1.6s; } }

/* Λιτό header του checkout (11.15.0 — cms39_shop_checkout_header(), το βάζει το theme): λογότυπο + «Ασφαλής πληρωμή», χωρίς μενού */
.csh-cohead { border-bottom: 1px solid var(--csh-border); background: var(--csh-surface); container-type: normal; }
.csh-cohead-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4rem; padding-top: .75rem; padding-bottom: .75rem; }
.csh-cohead-in:not(.container) { max-width: 1320px; margin: 0 auto; padding-left: 1rem; padding-right: 1rem; }
.csh-cohead-brand { display: inline-flex; align-items: center; color: inherit; font-size: 1.25rem; font-weight: 800; text-decoration: none; }
.csh-cohead-brand img, .csh-cohead-logo { display: block; width: auto; max-height: 40px; }
/* με το λιτό header (ΔΕΝ είναι sticky) η σύνοψη του checkout κολλά ψηλά — όχι 96px κάτω από το sticky header του theme που δεν υπάρχει εδώ (11.15.2) */
body:has(.csh-cohead) .cms39-shop { --shop-sticky-top: 1.25rem; }
.csh-cohead-secure { display: inline-flex; align-items: center; gap: .375rem; color: var(--csh-secure); font-size: .875rem; font-weight: 600; white-space: nowrap; }

/* Λιτό footer του checkout (11.17.0 — cms39_shop_checkout_footer(), το βάζει το theme): © · Όροι · Απόρρητο · κρυπτογραφημένη σύνδεση, χωρίς μενού / θέσεις */
.csh-cofoot { border-top: 1px solid var(--csh-border); background: var(--csh-surface); color: var(--csh-muted); font-size: .8125rem; container-type: normal; }
.csh-cofoot-in { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; padding-top: 1.25rem; padding-bottom: 1.25rem; }
.csh-cofoot-in:not(.container) { max-width: 1320px; margin: 0 auto; padding-left: 1rem; padding-right: 1rem; }
.csh-cofoot-links { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.cms39-shop.csh-cofoot a { color: var(--csh-muted); text-decoration: underline; }
.cms39-shop.csh-cofoot a:hover { color: var(--csh-text); }
.csh-cofoot-ssl { display: inline-flex; align-items: center; gap: .375rem; margin-left: auto; color: var(--csh-secure); font-weight: 600; }

/* ======================================================================================================================
   11.18.0 — οι υπόλοιπες σελίδες του shop με την εμφάνιση του plugin (πριν Bootstrap / Font Awesome του theme): μετά την παραγγελία
   ([mod_eshop_message_controller] → templates/shop_order_result.twig) · λεπτομέρεια παραγγελίας ([order_checker] → order_detail.twig) · «Οι παραγγελίες μου» ·
   «Οι διευθύνσεις μου» ([shop_contacts] → shop_contacts.twig) · [shop_shipping_info] / [shop_payment_info] · [shop_pay]. Ίδιες τιμές --csh-* με καλάθι / checkout.
   ====================================================================================================================== */

/* Κατάσταση παραγγελίας (cms39_shop_customer_status → tone): χρώμα + εικονίδιο + κείμενο — ποτέ μόνο χρώμα */
.csh-pill { display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .625rem; border-radius: 999px; background: var(--csh-subtle); color: var(--csh-muted); font-size: .8125rem; font-weight: 650; line-height: 1.3; white-space: nowrap; }
.csh-pill-ok { background: #e7f6ec; color: #14532d; }
.csh-pill-warn { background: #fdf3d7; color: #713f12; }
.csh-pill-info { background: #e8effd; color: #1e3a8a; }
.csh-pill-danger { background: #fdecea; color: #8a1c14; }

/* Μετά την παραγγελία / την πληρωμή: εικονίδιο · τίτλος · κωδικός παραγγελίας · τι γίνεται τώρα · κουμπιά */
.csh-result { max-width: 40rem; margin: 0 auto; padding: 1rem 0 2.5rem; }
.csh-result-card { display: grid; gap: 1.5rem; padding: 2rem 1.25rem; }
@container (min-width: 560px) { .csh-result-card { padding: 2.5rem 2.25rem; } }
.csh-result-head { display: grid; justify-items: center; gap: .625rem; text-align: center; }
.csh-result-icon { display: grid; place-items: center; width: 4rem; height: 4rem; margin-bottom: .25rem; border-radius: 50%; background: var(--csh-subtle); color: var(--csh-ink); font-size: 1.875rem; }
.csh-result.is-ok .csh-result-icon { background: #e7f6ec; color: var(--csh-ok); }
.csh-result.is-warn .csh-result-icon { background: #fdf3d7; color: #92400e; }
.csh-result.is-danger .csh-result-icon { background: #fdecea; color: var(--csh-danger); }
.cms39-shop .csh-result-title { font-size: 1.625rem; font-weight: 750; line-height: 1.2; letter-spacing: -.015em; text-wrap: balance; }
@container (min-width: 560px) { .cms39-shop .csh-result-title { font-size: 1.875rem; } }
.csh-result-lead { max-width: 32rem; color: var(--csh-muted); font-size: 1.0625rem; text-wrap: pretty; }
/* κωδικός παραγγελίας: μεγάλος, επιλέγεται με ένα κλικ (αιτιολογία κατάθεσης · στο κατάστημα) */
.csh-result-ref { display: grid; justify-items: center; gap: .25rem; padding: 1rem; border: 1px dashed var(--csh-input-border); border-radius: var(--csh-radius-sm); text-align: center; }
.csh-result-ref-label { color: var(--csh-muted); font-size: .8125rem; font-weight: 600; }
.csh-result-ref-code { font-family: var(--csh-mono); font-size: 1.375rem; font-weight: 700; letter-spacing: .04em; overflow-wrap: anywhere; user-select: all; }
.csh-result-ref-hint { color: var(--csh-muted); font-size: .8125rem; }
.csh-result-next { display: grid; gap: .875rem; }
.cms39-shop .csh-result-next-title { font-size: 1rem; font-weight: 700; line-height: 1.3; }
.csh-result-next ol { display: grid; gap: .75rem; counter-reset: csh-next; }
.csh-result-next li { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); gap: .75rem; align-items: start; color: var(--csh-muted); font-size: .9375rem; counter-increment: csh-next; overflow-wrap: anywhere; }
.csh-result-next li::before { content: counter(csh-next); display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--csh-subtle); color: var(--csh-ink); font-size: .8125rem; font-weight: 700; }
.csh-result-next li > span { padding-top: .1875rem; }
.csh-result-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
@container (max-width: 520px) {
    .csh-result-actions { flex-direction: column; }
    .cms39-shop .csh-result-actions .csh-btn { width: 100%; }
}
.csh-result-help { color: var(--csh-muted); font-size: .8125rem; text-align: center; overflow-wrap: anywhere; }

/* Λεπτομέρεια παραγγελίας: κεφαλίδα (κωδικός · ημερομηνία · κατάσταση) + πορεία · δύο στήλες από 880px (προϊόντα / παράδοση | σύνοψη / πληρωμή) */
.csh-order { display: grid; gap: var(--csh-gap); padding: 1rem 0 2.5rem; }
.csh-order.is-embed { padding: 0; } /* μέσα στον λογαριασμό μέλους */
.csh-order-head { display: grid; gap: .5rem; }
.csh-order-kicker { color: var(--csh-muted); font-size: .8125rem; font-weight: 600; }
.cms39-shop .csh-order-ref { font-size: 1.625rem; font-weight: 750; line-height: 1.2; letter-spacing: -.01em; overflow-wrap: anywhere; }
.csh-order-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; color: var(--csh-muted); font-size: .9375rem; }
.csh-order-text { color: var(--csh-muted); font-size: .9375rem; }
.csh-order-grid { display: grid; gap: var(--csh-gap); align-items: start; }
@container (min-width: 880px) { .csh-order-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 2rem; } }
.csh-order-main, .csh-order-aside { display: grid; gap: 1rem; min-width: 0; }
.csh-order .csh-back { justify-self: start; }
/* Πορεία: Καταχωρήθηκε — Σε επεξεργασία — Απεστάλη — Παραδόθηκε (κουκκίδες + γραμμή · ολοκληρωμένα σε μελάνι) */
.csh-track { padding: 1rem 1.25rem; }
.csh-track ol { display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; gap: .5rem; }
.csh-track li { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: start; gap: .375rem; color: var(--csh-muted); font-size: .8125rem; line-height: 1.3; text-align: center; }
.csh-track li > span:last-child { max-width: 100%; overflow-wrap: anywhere; }
.csh-track li:not(:last-child)::after { content: ""; position: absolute; top: calc(.875rem - 1px); left: calc(50% + 1.125rem); right: calc(-50% + .625rem); height: 2px; border-radius: 1px; background: var(--csh-border); }
.csh-track li:has(+ .is-done)::after { background: var(--csh-ink); }
.csh-track-dot { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 2px solid var(--csh-input-border); border-radius: 50%; background: var(--csh-surface); font-size: .875rem; }
.csh-track li.is-done { color: var(--csh-text); }
.csh-track li.is-done .csh-track-dot { border-color: var(--csh-ink); background: var(--csh-ink); color: var(--csh-on-accent); }
.csh-track li.is-current { font-weight: 700; }
.csh-track li.is-current .csh-track-dot { box-shadow: 0 0 0 4px rgba(15, 23, 42, .12); }
@container (max-width: 480px) {
    .csh-track { padding: 1rem; }
    .csh-track ol { grid-auto-flow: row; gap: 0; }
    .csh-track li { grid-template-columns: 1.75rem minmax(0, 1fr); justify-items: start; align-items: center; column-gap: .75rem; padding-bottom: .75rem; font-size: .875rem; text-align: start; }
    .csh-track li:last-child { padding-bottom: 0; }
    .csh-track li:not(:last-child)::after { top: 1.75rem; bottom: 0; left: calc(.875rem - 1px); right: auto; width: 2px; height: auto; }
}
/* Αποστολή: courier · αριθμοί αποστολής · πορεία δέματος */
.cms39-shop .csh-ship-nums { display: grid; gap: .5rem; margin-bottom: 1rem; font-size: .9375rem; }
.csh-ship-num { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; }
.csh-ship-num dt { color: var(--csh-muted); }
.csh-ship-num dd { font-family: var(--csh-mono); font-weight: 600; overflow-wrap: anywhere; user-select: all; }
.csh-timeline { display: grid; gap: .75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--csh-border); }
.cms39-shop .csh-timeline-title { font-size: .875rem; font-weight: 700; }
.csh-timeline ol { display: grid; gap: .75rem; }
.csh-timeline li { position: relative; padding-left: 1.25rem; color: var(--csh-muted); font-size: .875rem; overflow-wrap: anywhere; }
.csh-timeline li::before { content: ""; position: absolute; left: 0; top: .45em; width: .5rem; height: .5rem; border-radius: 50%; background: var(--csh-input-border); }
.csh-timeline li:first-child { color: var(--csh-text); font-weight: 600; }
.csh-timeline li:first-child::before { background: var(--csh-ink); }
.csh-timeline-at { display: block; color: var(--csh-muted); font-size: .75rem; font-weight: 400; }
.csh-order .csh-recap { padding-top: 0; padding-bottom: 0; }
.csh-order-pay { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; font-weight: 650; }
.csh-order-bank { margin-top: 1rem; }
/* τίτλος προϊόντος της σύνοψης ως link (λεπτομέρεια παραγγελίας) */
.csh-order .csh-sum-title { white-space: normal; overflow-wrap: anywhere; }
.cms39-shop a.csh-sum-title { text-decoration: none; }
.cms39-shop a.csh-sum-title:hover { text-decoration: underline; }

/* «Οι παραγγελίες μου» (λογαριασμός μέλους): ΜΙΑ γραμμή = link στη λεπτομέρεια */
.csh-morders { overflow: hidden; }
.cms39-shop .csh-morder {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; grid-template-areas: "main pill total go"; align-items: center; gap: .5rem 1rem;
    padding: 1rem 1.25rem; color: inherit; text-decoration: none;
}
.csh-morder + .csh-morder { border-top: 1px solid var(--csh-border); }
.cms39-shop .csh-morder:hover { background: var(--csh-subtle); }
.cms39-shop .csh-morder:hover .csh-morder-ref { text-decoration: underline; }
.cms39-shop .csh-morder:focus-visible { outline-offset: -2px; }
.csh-morder-main { grid-area: main; display: grid; gap: .125rem; min-width: 0; }
.csh-morder-ref { font-weight: 700; overflow-wrap: anywhere; }
.csh-morder-meta { color: var(--csh-muted); font-size: .8125rem; }
.csh-morder .csh-pill { grid-area: pill; }
.csh-morder-total { grid-area: total; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.csh-morder-go { grid-area: go; color: var(--csh-muted); }
@container (max-width: 480px) {
    .cms39-shop .csh-morder { grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "main total go" "pill pill pill"; }
    .csh-morder .csh-pill { justify-self: start; }
}
.cms39-shop .csh-morders-note { margin-top: 1rem; color: var(--csh-muted); font-size: .8125rem; }
.csh-morders-pages { margin-top: 1rem; } /* σελιδοποίηση του theme (buildPagination) — έξω από το .cms39-shop */

/* «Οι διευθύνσεις μου» ([shop_contacts]): φόρμα με τα πεδία του checkout + κάρτες διευθύνσεων */
.cms39-shop.csh-contacts { display: grid; gap: 1rem; } /* όχι σκέτο .csh-contacts: είναι και η κάρτα του checkout */
.csh-contacts-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.cms39-shop .csh-contacts-title { font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
.cms39-shop .csh-contacts-head .csh-btn { min-height: 2.75rem; }
/* μέσα στον λογαριασμό μέλους ο τίτλος είναι του λογαριασμού (_inc_member.php) */
.cms39-shop-contacts-embed .csh-contacts-title { display: none; }
.cms39-shop-contacts-embed .csh-contacts-head { justify-content: flex-end; }
.cms39-shop.csh-contacts .csh-actions { margin-top: 1.25rem; }
.cms39-shop .csh-ct-doc { margin-top: 1.25rem; }
.cms39-shop .csh-ct-doc legend { margin: 0 0 .375rem; padding: 0; }
.cms39-shop .csh-ct-default { margin-top: 1.25rem; }
.cms39-shop .csh-btn-sm { min-height: 2.5rem; padding: .375rem .875rem; font-size: .875rem; }
.cms39-shop [hidden] { display: none !important; } /* το hidden της PHP / JS πάνω από display: grid (π.χ. τα πεδία του τιμολογίου) */
.csh-addrs { display: grid; gap: .75rem; }
@container (min-width: 640px) { .csh-addrs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csh-addr-card { display: grid; gap: .75rem; align-content: space-between; padding: 1rem 1.125rem; }
.csh-addr-card.is-default { border-color: var(--csh-ink); box-shadow: 0 0 0 1px var(--csh-ink); }
.csh-addr-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
.csh-addr-card-label { font-weight: 700; overflow-wrap: anywhere; }
.csh-addr-card-body { display: grid; gap: .125rem; color: var(--csh-muted); font-size: .875rem; overflow-wrap: anywhere; }
.csh-addr-card-body strong { color: var(--csh-text); font-weight: 600; }
.csh-addr-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; padding-top: .75rem; border-top: 1px solid var(--csh-border); }
.cms39-shop .csh-addr-card-actions .csh-link-danger { margin-left: auto; }
.csh-contacts-empty { color: var(--csh-muted); }

/* [shop_shipping_info] / [shop_payment_info]: τρόποι ανά χώρα (λογότυπο · όνομα · είδος · τιμή · λεπτομέρειες) */
.cms39-shop.cms39-shop-info { display: grid; gap: .75rem; margin-bottom: 1.5rem; }
.cms39-shop .csh-info-country { margin-top: .75rem; font-size: 1.125rem; font-weight: 700; line-height: 1.3; }
.cms39-shop .csh-info-country:first-child { margin-top: 0; }
.csh-ilist { overflow: hidden; }
.csh-irow { display: flex; align-items: flex-start; gap: .875rem; padding: .875rem 1.125rem; }
.csh-irow + .csh-irow { border-top: 1px solid var(--csh-border); }
.csh-irow-media { display: grid; grid-template: 100% / 100%; place-items: center; flex: none; width: 3rem; height: 2.25rem; border-radius: .375rem; background: var(--csh-subtle); overflow: hidden; }
/* 11.19.23: όπως το checkout (.csh-opt-media) — ολόκληρο το λογότυπο μέσα στο κουτί (πριν η γραμμή του grid έπαιρνε το ύψος της εικόνας και κοβόταν) */
.cms39-shop .csh-irow-media img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; padding: .1875rem; object-fit: contain; box-sizing: border-box; }
@container (max-width: 359px) { .csh-irow-media { display: none; } }
.csh-irow-body { display: grid; gap: .25rem; flex: 1 1 auto; min-width: 0; }
.csh-irow-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .625rem; }
.csh-irow-name { font-weight: 650; overflow-wrap: anywhere; }
.csh-tag { display: inline-block; padding: .0625rem .5rem; border: 1px solid var(--csh-border); border-radius: 999px; color: var(--csh-muted); font-size: .75rem; font-weight: 600; }
.csh-irow-price { margin-left: auto; font-weight: 700; white-space: nowrap; }
.csh-irow-sub { color: var(--csh-muted); font-size: .8125rem; overflow-wrap: anywhere; }
.csh-irow-desc { font-size: .875rem; overflow-wrap: anywhere; }

/* [shop_pay]: ποσό (με €) · αιτιολογία · κουμπί */
.cms39-shop.shop-pay { display: grid; gap: 1rem; max-width: 30rem; }
.csh-amount { display: flex; align-items: stretch; max-width: 14rem; border: 1px solid var(--csh-input-border); border-radius: var(--csh-radius-sm); background: var(--csh-surface); }
.csh-amount:focus-within { border-color: var(--csh-ink); outline: 2px solid transparent; box-shadow: 0 0 0 3px rgba(29, 78, 216, .25); }
.csh-amount.is-invalid { border-color: var(--csh-danger); }
.cms39-shop .csh-amount .csh-input { min-width: 0; border: 0; font-variant-numeric: tabular-nums; }
.cms39-shop .csh-amount .csh-input:focus { box-shadow: none; }
.csh-amount-cur { display: grid; place-items: center; padding: 0 .875rem; border-left: 1px solid var(--csh-border); color: var(--csh-muted); font-weight: 600; }
.cms39-shop.shop-pay > .csh-btn { justify-self: start; }
@container (max-width: 420px) { .cms39-shop.shop-pay > .csh-btn { justify-self: stretch; } }
.shop-pay-msg:empty { display: none; }

/* Μέσα σε γραμμή του theme (καλάθι του header · κουμπί «Προσθήκη στο καλάθι» στη σελίδα προϊόντος — 11.18.0): ΧΩΡΙΣ container —
   container-type σε στοιχείο που παίρνει το πλάτος του περιεχομένου του (flex / inline) = πλάτος 0 */
.cms39-shop.csh-inline { container-type: normal; }
/* 11.19.28 — [shop_logos] / cms39_shop_logos(): λογότυπα πληρωμών / μεταφορικών σε μία σειρά (footer, σελίδα προϊόντος …) · ύψος --csh-logo-h (height="…") */
.cms39-shop.csh-logos ul { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 0; padding: 0; list-style: none; }
.cms39-shop.csh-logos .csh-logo { display: inline-flex; align-items: center; gap: .4rem; margin: 0; padding: 0; }
.cms39-shop.csh-logos .csh-logo::before { content: none; }
.cms39-shop.csh-logos img { display: block; height: var(--csh-logo-h, 28px); width: auto; max-width: calc(var(--csh-logo-h, 28px) * 4); object-fit: contain; }
.cms39-shop.csh-logos .csh-logo-txt { display: inline-flex; align-items: center; height: var(--csh-logo-h, 28px); padding: 0 .6em; border: 1px solid var(--csh-border); border-radius: var(--csh-radius-sm);
    background: var(--csh-surface); color: var(--csh-text); font: 600 .8125rem/1 var(--csh-font); white-space: nowrap; }
.cms39-shop.csh-logos .csh-logo-name { font: 500 .8125rem/1.2 var(--csh-font); color: inherit; }

/* Καλάθι του header (Cart::renderSummaryLine → shop_cart_header.twig): εικονίδιο + πλήθος */
a.cms39-shop.csh-minicart {
    display: inline-flex; align-items: center; gap: .5rem; min-height: 2.5rem; padding: .375rem .5rem .375rem .75rem; border: 1px solid var(--csh-border); border-radius: 999px;
    background: var(--csh-surface); color: var(--csh-ink); font-size: .9375rem; font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap;
}
a.cms39-shop.csh-minicart:hover { border-color: var(--csh-input-border); background: var(--csh-subtle); color: var(--csh-ink); }
a.cms39-shop.csh-minicart:focus-visible { outline: 2px solid var(--csh-focus); outline-offset: 2px; }
.csh-minicart svg { font-size: 1.125rem; }
.csh-minicart-count {
    display: inline-grid; place-items: center; min-width: 1.5rem; height: 1.5rem; padding: 0 .375rem; border-radius: 999px;
    background: var(--csh-ink); color: #fff; font-size: .75rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.csh-minicart.is-empty .csh-minicart-count { background: var(--csh-subtle); color: var(--csh-muted); }

/* Κουμπί «Προσθήκη στο καλάθι» (ShopAddToCartBTN): − / + του καλαθιού + κουμπί σε μελάνι · μήνυμα από κάτω */
.cms39-shop.csh-add { display: block; }
.csh-add-row { display: flex; flex-wrap: wrap; align-items: stretch; gap: .625rem; }
.cms39-shop.csh-add .csh-qty { height: auto; min-height: 3.25rem; } /* .csh-add = το ίδιο στοιχείο με το .cms39-shop */
.cms39-shop.csh-add .csh-qty-btn { width: 2.75rem; }
.cms39-shop .csh-add-btn { flex: 1 1 12rem; }
.cms39-shop .csh-btn:disabled { opacity: .55; cursor: not-allowed; }
.cms39-shop .csh-add-msg { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; margin-top: .625rem; font-size: .875rem; font-weight: 600; }
.csh-add-msg-ok { color: var(--csh-ok); }
.csh-add-msg-info { color: var(--csh-muted); }
.csh-add-msg-err { color: var(--csh-danger); }
.cms39-shop .csh-add-msg a { color: inherit; text-decoration: underline; }

/* 11.19.36 — [shop_logos price="from"]: «από X €» κάτω από το λογότυπο της μεταφορικής */
.cms39-shop.csh-logos .csh-logo-has-price { flex-direction: column; align-items: center; gap: .25rem; }
.cms39-shop.csh-logos .csh-logo-main { display: inline-flex; align-items: center; gap: .4rem; }
.cms39-shop.csh-logos .csh-logo-price { font: 600 .75rem/1.2 var(--csh-font); color: var(--csh-muted); white-space: nowrap; }
/* 11.19.36 — [shop_payment_marks]: τα σήματα του καλαθιού οπουδήποτε · ύψος --csh-mark-h (size="…") · στοίχιση --csh-mark-align (align="…") */
.cms39-shop.csh-marks-sc .csh-marks { justify-content: var(--csh-mark-align, flex-start); margin: 0; padding: 0; list-style: none; }
.cms39-shop.csh-marks-sc .csh-mark { margin: 0; height: var(--csh-mark-h, 30px); min-width: calc(var(--csh-mark-h, 30px) * 1.47); font-size: calc(var(--csh-mark-h, 30px) * .8); }
.cms39-shop.csh-marks-sc .csh-mark::before { content: none; }
.cms39-shop.csh-marks-sc .csh-mark svg { display: block; }
.cms39-shop.csh-marks-sc .csh-mark-text { font-size: calc(var(--csh-mark-h, 30px) * .37); }
