/*
 * Κριτικές (plugin cms39_reviews) — εμφάνιση της φόρμας [order_review] και του «ευχαριστώ». ΔΙΚΗ του plugin: όλα κάτω από .cms39-reviews / .crv-*,
 * χωρίς Bootstrap / CSS του theme (ίδια εμφάνιση σε κάθε site). Τιμές: --crv-* (ιδιωτικές του plugin).
 * Αστέρια: radio 0 (Παράλειψη) → 1 … 5 στο DOM (τα βελάκια πάνε όπως φαίνονται · τα 5 σε .crv-stars-row) · γέμισμα με :has() (χωρίς :has: μόνο το επιλεγμένο —
 * κάθε κανόνας με :has είναι ΧΩΡΙΣΤΟΣ, αλλιώς ο browser πετά και τον απλό) — σχήμα (γεμάτο / περίγραμμα) + κείμενο «4/5 · Καλό»,
 * όχι μόνο χρώμα · στόχοι αφής ≥ 44px · εστίαση πάντα ορατή · κινητό 390px χωρίς οριζόντιο scroll.
 */
.cms39-reviews {
    --crv-ink: #0f172a;
    --crv-muted: #475569;
    --crv-line: #cbd5e1;
    --crv-soft: #f8fafc;
    --crv-bg: #ffffff;
    --crv-star: #b45309;
    --crv-star-fill: #f59e0b;
    --crv-star-off: #64748b;
    --crv-focus: #1d4ed8;
    --crv-danger: #b91c1c;
    --crv-danger-bg: #fef2f2;
    --crv-warn-bg: #fffbeb;
    --crv-warn-line: #d97706;
    --crv-ok: #047857;
    --crv-ok-bg: #ecfdf5;
    --crv-info-bg: #eff6ff;
    --crv-info-line: #2563eb;
    --crv-radius: 12px;
    box-sizing: border-box;
    max-width: 720px;
    margin: 0 auto 24px;
    padding: clamp(16px, 4vw, 28px);
    background: var(--crv-bg);
    color: var(--crv-ink);
    border: 1px solid var(--crv-line);
    border-radius: var(--crv-radius);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    text-align: left;
    color-scheme: light;
    overflow-wrap: anywhere;
}
.cms39-reviews *, .cms39-reviews *::before, .cms39-reviews *::after { box-sizing: border-box; }
.cms39-reviews p { margin: 0 0 12px; }
.cms39-reviews a { color: var(--crv-focus); text-decoration: underline; text-underline-offset: 2px; }
.cms39-reviews a:focus-visible, .cms39-reviews button:focus-visible, .cms39-reviews .crv-input:focus-visible, .cms39-reviews [tabindex="-1"]:focus-visible {
    outline: 3px solid var(--crv-focus);
    outline-offset: 2px;
}
.cms39-reviews [tabindex="-1"]:focus:not(:focus-visible) { outline: none; }

/* κρυφό για τα μάτια, ορατό στους screen readers */
.cms39-reviews .crv-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;
}

/* κεφαλίδα */
.cms39-reviews .crv-title {
    margin: 0 0 6px;
    font-family: inherit;
    font-weight: 700;
    font-size: clamp(1.3rem, 4.5vw, 1.6rem);
    line-height: 1.25;
    color: var(--crv-ink);
    letter-spacing: normal;
    text-transform: none;
}
.cms39-reviews .crv-h3 {
    margin: 0 0 4px;
    font-family: inherit;
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1.3;
    color: var(--crv-ink);
    letter-spacing: normal;
    text-transform: none;
}
.cms39-reviews .crv-meta { color: var(--crv-muted); font-size: .9rem; margin-bottom: 8px; }
.cms39-reviews .crv-lead { margin-bottom: 16px; }
.cms39-reviews .crv-hint { color: var(--crv-muted); font-size: .9rem; margin: 4px 0 10px; }
.cms39-reviews .crv-reqnote { margin-bottom: 16px; }
.cms39-reviews .crv-req { color: var(--crv-danger); font-weight: 700; }

/* ενότητες */
.cms39-reviews .crv-section { padding: 18px 0; border-top: 1px solid var(--crv-line); }
.cms39-reviews .crv-section:first-of-type { border-top: 0; padding-top: 4px; }
.cms39-reviews .crv-overall { border-top: 0; padding-top: 0; }

/* ομάδα αστεριών */
.cms39-reviews fieldset.crv-rate { border: 0; margin: 0; padding: 0; min-width: 0; }
/* legend: πλήρες reset — themes (π.χ. Bootstrap 3) δίνουν border-bottom / 21px / margin στο legend */
.cms39-reviews .crv-legend {
    float: left;
    width: 100%;
    padding: 0;
    margin: 0 0 4px;
    border: 0;
    font-family: inherit;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
    color: var(--crv-ink);
    text-transform: none;
    letter-spacing: normal;
}
.cms39-reviews .crv-rate-lg .crv-legend { font-size: 1.1rem; }
.cms39-reviews .crv-legend + * { clear: left; }
.cms39-reviews .crv-stars { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
/* τα 5 αστέρια μαζί: σε στενή οθόνη (375 / 360px) αλλάζουν γραμμή όλα μαζί — ποτέ το 5ο μόνο του */
.cms39-reviews .crv-stars-row { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 2px; }
.cms39-reviews .crv-stars input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}
.cms39-reviews .crv-star {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border-radius: 8px;
    color: var(--crv-star-off);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.cms39-reviews .crv-rate-lg .crv-star { width: 48px; height: 48px; }
.cms39-reviews .crv-star svg {
    width: 28px;
    height: 28px;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linejoin: round;
    transition: transform .12s ease;
}
.cms39-reviews .crv-rate-lg .crv-star svg { width: 36px; height: 36px; }
/* επιλεγμένα: το checked (ΧΩΡΙΣΤΟΣ κανόνας — browser χωρίς :has() πετά ολόκληρη τη λίστα selectors, άρα εκεί φαίνεται τουλάχιστον το επιλεγμένο αστέρι) */
.cms39-reviews .crv-stars input:checked + .crv-star { color: var(--crv-star); }
.cms39-reviews .crv-stars input:checked + .crv-star svg { fill: var(--crv-star-fill); }
/* … και όσα είναι πριν από αυτό (μικρότερες τιμές) — γεμάτο σχήμα (:has) */
.cms39-reviews .crv-stars .crv-star:has(~ input:checked) { color: var(--crv-star); }
.cms39-reviews .crv-stars .crv-star:has(~ input:checked) svg { fill: var(--crv-star-fill); }
/* προεπισκόπηση με το ποντίκι (μόνο συσκευές με hover — όχι αφή) */
@media (hover: hover) {
    /* μόνο όσο το ποντίκι είναι ΠΑΝΩ σε αστέρι (όχι στο κείμενο «4/5») */
    .cms39-reviews .crv-stars:has(.crv-star:hover) input + .crv-star { color: var(--crv-star-off); }
    .cms39-reviews .crv-stars:has(.crv-star:hover) input + .crv-star svg { fill: transparent; }
    .cms39-reviews .crv-stars:has(.crv-star:hover) input + .crv-star:hover,
    .cms39-reviews .crv-stars:has(.crv-star:hover) input + .crv-star:has(~ .crv-star:hover) { color: var(--crv-star); }
    .cms39-reviews .crv-stars:has(.crv-star:hover) input + .crv-star:hover svg,
    .cms39-reviews .crv-stars:has(.crv-star:hover) input + .crv-star:has(~ .crv-star:hover) svg { fill: var(--crv-star-fill); }
    .cms39-reviews .crv-stars input + .crv-star:hover svg { transform: scale(1.12); }
}
/* «Παράλειψη» (0 = χωρίς βαθμολογία, στα προαιρετικά) */
.cms39-reviews .crv-skip {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 12px;
    margin: 0 6px 0 0;
    border: 1px solid var(--crv-line);
    border-radius: 999px;
    color: var(--crv-muted);
    font-family: inherit;
    font-size: .875rem;
    line-height: 1.2;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    background: var(--crv-bg);
}
.cms39-reviews .crv-stars input:checked + .crv-skip { border-color: var(--crv-ink); color: var(--crv-ink); font-weight: 600; background: var(--crv-soft); }
/* εστίαση πληκτρολογίου στο radio → πάνω στο ορατό label */
.cms39-reviews .crv-stars input:focus-visible + label { outline: 3px solid var(--crv-focus); outline-offset: 1px; }
/* η τιμή σε κείμενο («4/5 · Καλό») */
.cms39-reviews .crv-now { margin-left: 8px; color: var(--crv-muted); font-size: .9rem; }
.cms39-reviews .crv-now > span { display: none; }
.cms39-reviews .crv-now strong { color: var(--crv-ink); }
.cms39-reviews .crv-stars:not(:has(input:checked)) .crv-now-0,
.cms39-reviews .crv-stars:has(input[value="0"]:checked) .crv-now-0,
.cms39-reviews .crv-stars:has(input[value="1"]:checked) .crv-now-1,
.cms39-reviews .crv-stars:has(input[value="2"]:checked) .crv-now-2,
.cms39-reviews .crv-stars:has(input[value="3"]:checked) .crv-now-3,
.cms39-reviews .crv-stars:has(input[value="4"]:checked) .crv-now-4,
.cms39-reviews .crv-stars:has(input[value="5"]:checked) .crv-now-5 { display: inline; }
.cms39-reviews .crv-rate.is-invalid .crv-stars { border-left: 4px solid var(--crv-danger); padding-left: 8px; }
.cms39-reviews .crv-err { color: var(--crv-danger); font-weight: 600; font-size: .9rem; margin: 6px 0 0; }
.cms39-reviews .crv-err::before { content: "! "; }

/* κριτήρια */
.cms39-reviews .crv-crit { display: grid; gap: 14px; }
.cms39-reviews .crv-crit-row { padding: 10px 12px; background: var(--crv-soft); border-radius: 10px; }

/* προϊόντα */
.cms39-reviews .crv-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.cms39-reviews .crv-item { margin: 0; padding: 12px; border: 1px solid var(--crv-line); border-radius: 10px; }
.cms39-reviews .crv-item-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 8px; }
.cms39-reviews .crv-thumb {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    border-radius: 8px;
    object-fit: cover;
    background: var(--crv-soft);
    border: 1px solid var(--crv-line);
    display: block;
}
.cms39-reviews .crv-item-text { min-width: 0; }
.cms39-reviews .crv-item-title { font-weight: 600; margin: 0 0 2px; }
.cms39-reviews .crv-item-opts { color: var(--crv-muted); font-size: .875rem; margin: 0; }

/* πεδία */
.cms39-reviews .crv-field { margin: 12px 0 0; }
.cms39-reviews .crv-label { display: block; font-weight: 600; margin: 0 0 4px; }
.cms39-reviews .crv-label-sm { font-weight: 500; font-size: .9rem; color: var(--crv-muted); }
.cms39-reviews .crv-input {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 10px 12px;
    font: inherit;
    font-size: 16px; /* iOS: χωρίς zoom στην εστίαση */
    color: var(--crv-ink);
    background: var(--crv-bg);
    border: 1px solid var(--crv-star-off);
    border-radius: 8px;
    box-shadow: none;
}
.cms39-reviews textarea.crv-input { resize: vertical; line-height: 1.45; }
.cms39-reviews .crv-input:focus { border-color: var(--crv-focus); }
.cms39-reviews .crv-check { display: grid; grid-template-columns: 24px 1fr; gap: 4px 10px; align-items: start; }
.cms39-reviews .crv-check input {
    width: 24px;
    height: 24px;
    margin: 10px 0 0;
    accent-color: var(--crv-ink);
    cursor: pointer;
}
.cms39-reviews .crv-check label { display: flex; align-items: center; min-height: 44px; font-weight: 600; cursor: pointer; margin: 0; }
.cms39-reviews .crv-check .crv-hint { grid-column: 2; margin-top: 0; }
.cms39-reviews .crv-check input:focus-visible { outline: 3px solid var(--crv-focus); outline-offset: 2px; }

/* κουμπιά */
.cms39-reviews .crv-actions { padding-top: 18px; border-top: 1px solid var(--crv-line); }
.cms39-reviews .crv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 24px;
    margin: 0;
    border: 2px solid var(--crv-ink);
    border-radius: 10px;
    background: var(--crv-ink);
    color: #ffffff;
    font: inherit;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    text-align: center;
    text-transform: none; /* themes με κεφαλαία κουμπιά → ελληνικά κεφαλαία με τόνους */
    letter-spacing: normal;
    cursor: pointer;
    box-shadow: none;
}
.cms39-reviews .crv-btn:hover { background: #1e293b; color: #ffffff; }
.cms39-reviews .crv-btn[disabled], .cms39-reviews .crv-btn.htmx-request { opacity: .6; cursor: progress; }
.cms39-reviews .crv-btn-outline { background: var(--crv-bg); color: var(--crv-ink); }
.cms39-reviews .crv-btn-outline:hover { background: var(--crv-soft); color: var(--crv-ink); }
.cms39-reviews .crv-btn svg { width: 20px; height: 20px; fill: var(--crv-star-fill); stroke: var(--crv-star); stroke-width: 1.4; flex: 0 0 auto; }
@media (max-width: 480px) {
    .cms39-reviews .crv-actions .crv-btn, .cms39-reviews .crv-google .crv-btn { width: 100%; }
}

/* μηνύματα */
.cms39-reviews .crv-msg:empty { display: none; }
.cms39-reviews .crv-msg { margin-top: 14px; }
.cms39-reviews .crv-alert {
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--crv-line);
    border-left: 4px solid var(--crv-info-line);
    border-radius: 8px;
    background: var(--crv-info-bg);
}
.cms39-reviews .crv-alert > :last-child { margin-bottom: 0; }
.cms39-reviews .crv-alert ul { margin: 6px 0 0; padding-left: 20px; }
.cms39-reviews .crv-alert-ok { border-left-color: var(--crv-ok); background: var(--crv-ok-bg); }
.cms39-reviews .crv-alert-warn { border-left-color: var(--crv-warn-line); background: var(--crv-warn-bg); }
.cms39-reviews .crv-alert-danger { border-left-color: var(--crv-danger); background: var(--crv-danger-bg); }
.cms39-reviews .crv-alert-danger a { color: var(--crv-danger); font-weight: 600; }

/* ευχαριστώ */
.cms39-reviews.crv-done { text-align: left; }
.cms39-reviews .crv-done-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--crv-ok-bg);
    color: var(--crv-ok);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}
.cms39-reviews .crv-done-icon svg { width: 28px; height: 28px; fill: currentColor; }
.cms39-reviews .crv-google { margin: 18px 0 0; padding: 16px; border: 1px solid var(--crv-line); border-radius: 10px; background: var(--crv-soft); }
.cms39-reviews .crv-google-title { font-weight: 700; margin-bottom: 2px; }
.cms39-reviews .crv-edit { margin: 16px 0 0; }

/* σελίδα χωρίς JS (απάντηση του endpoint) */
body.crv-doc { margin: 0; padding: 16px; background: #f1f5f9; }
body.crv-doc .crv-back { max-width: 720px; margin: 0 auto; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }

@media (prefers-reduced-motion: reduce) {
    .cms39-reviews .crv-star svg { transition: none; }
    .cms39-reviews .crv-stars input + .crv-star:hover svg { transform: none; }
}
@media (forced-colors: active) {
    .cms39-reviews .crv-stars input:checked + .crv-star svg { fill: CanvasText; }
    .cms39-reviews .crv-stars .crv-star:has(~ input:checked) svg { fill: CanvasText; }
}
