/**
 * Διορθώσεις QA — CSS.
 *
 * Φορτώνεται από το qa-fixes.php (SECTION C), μετά το style.css.
 * Τα items είναι αριθμημένα 01–28 σύμφωνα με τη λίστα του QA.
 *
 * ΣΗΜΕΙΩΣΗ: Τα sections σημειωμένα [ΕΠΙΒΕΒΑΙΩΜΕΝΟ] γράφτηκαν πάνω στο
 * πραγματικό markup του live site. Τα σημειωμένα [ΘΕΛΕΙ MARKUP] περιμένουν
 * τα selectors της αντίστοιχης σελίδας — μη τα συμπληρώσεις στα τυφλά.
 */


/* =========================================================================
 * Item 01 — Language switcher ως dropdown          [ΕΠΙΒΕΒΑΙΩΜΕΝΟ]
 *
 * Το RUCSS αφαίρεσε ολόκληρο το stylesheet της WPML: στη σελίδα δεν
 * υπάρχει ΚΑΝΕΝΑ .wpml-ls-legacy-dropdown rule, οπότε το <ul> των γλωσσών
 * εμφανίζεται ως απλή λίστα. Το ξαναγράφουμε εδώ ώστε να μη μας νοιάζει
 * αν επιβιώνει το CSS της WPML.
 *
 * Το άνοιγμα δουλεύει με hover ΚΑΙ με πληκτρολόγιο (:focus-within), άρα
 * δεν εξαρτάται από το script.min.js της WPML — που το WP Rocket
 * καθυστερεί. Ο τρίτος selector σέβεται το aria-expanded όταν το JS τρέξει.
 * ========================================================================= */

.wpml-ls-legacy-dropdown {
	position: relative;
	width: auto;
	max-width: none;
}

.wpml-ls-legacy-dropdown > ul,
.wpml-ls-legacy-dropdown .wpml-ls-sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wpml-ls-legacy-dropdown > ul > li {
	position: relative;
}

/* Το κουμπί της τρέχουσας γλώσσας. */
.wpml-ls-legacy-dropdown .wpml-ls-item-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 8px;
	text-decoration: none;
	line-height: 1;
}

/* Οι υπόλοιπες γλώσσες: κρυφές μέχρι να ζητηθούν. */
.wpml-ls-legacy-dropdown .wpml-ls-sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	min-width: 100%;
	padding: 4px 0;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 6px;
	box-shadow: 0 8px 24px -8px rgba(0, 0, 0, .25);
}

.wpml-ls-legacy-dropdown li:hover > .wpml-ls-sub-menu,
.wpml-ls-legacy-dropdown li:focus-within > .wpml-ls-sub-menu,
.wpml-ls-legacy-dropdown .wpml-ls-item-toggle[aria-expanded="true"] + .wpml-ls-sub-menu {
	display: block;
}

.wpml-ls-legacy-dropdown .wpml-ls-sub-menu .wpml-ls-link {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
}

.wpml-ls-legacy-dropdown .wpml-ls-flag {
	width: 18px;
	height: 12px;
	flex: none;
	vertical-align: middle;
}

/* Ορατό focus — το site έχει περάσει a11y έλεγχο, να μη χαλάσει. */
.wpml-ls-legacy-dropdown a:focus-visible {
	outline: 3px solid #b7d43b;
	outline-offset: 2px;
}


/* =========================================================================
 * Item 10 — Διπλά checkboxes στα φίλτρα            [ΕΠΙΒΕΒΑΙΩΜΕΝΟ]
 *
 * Το template jet-smart-filters/filters/checkboxes-item.php βγάζει το
 * native <input> ΕΞΩ από το <label> (σαν αδερφάκι, όχι παιδί). Το CSS που
 * το έκρυβε ήταν στο stylesheet του plugin — και το έφαγε το RUCSS.
 *
 * Το κρύβουμε visually-hidden και ΟΧΙ με display:none, ώστε να παραμένει
 * εστιάσιμο από πληκτρολόγιο και ανιχνεύσιμο από screen readers.
 * ========================================================================= */

.jet-checkboxes-list__row {
	position: relative;
}

.jet-checkboxes-list__row > .jet-checkboxes-list__input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	border: 0;
	opacity: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	pointer-events: none;
}

/* Το focus μεταφέρεται οπτικά στο custom κίτρινο decorator. */
.jet-checkboxes-list__row > .jet-checkboxes-list__input:focus-visible
	+ .jet-checkboxes-list__item .jet-checkboxes-list__decorator {
	outline: 3px solid #b7d43b;
	outline-offset: 2px;
}

.jet-checkboxes-list__item {
	cursor: pointer;
}


/* =========================================================================
 * Item 02 — Header: κόβεται το επάνω τμήμα των τίτλων   [ΕΠΙΒΕΒΑΙΩΜΕΝΟ]
 *
 * ΔΕΝ είναι χαμένο CSS — το nav CSS είναι όλο εκεί (282 αναφορές στο
 * used-CSS). Είναι πραγματικό σφάλμα σχεδίασης στο Elementor:
 *
 *   .elementor-81 ... .elementor-nav-menu .elementor-item {
 *       line-height: 100%;
 *   }
 *   .elementor-81 ... .elementor-nav-menu--main .elementor-item {
 *       padding-top: 0px; padding-bottom: 0px;
 *   }
 *
 * Το line-height:100% ισούται ΑΚΡΙΒΩΣ με το font-size. Τα ελληνικά
 * κεφαλαία με τόνο (το «Ό» στο «Όλα τα νέα», το «Α» στο «Ανακαλύψτε»)
 * έχουν ascent μεγαλύτερο από το em box, και με μηδενικό padding δεν
 * υπάρχει τίποτα να το απορροφήσει — κόβονται από πάνω.
 *
 * Ο κανόνας επαναλαμβάνεται σε 5 nav widgets (3ba42ea, fade73e, 99f2f8d,
 * aa76ce8, 8d2235d) με specificity 5 κλάσεων. Γι' αυτό χρειάζεται
 * !important: δεν το κερδίζουμε με λογικό selector.
 *
 * Η ΡΙΖΙΚΗ διόρθωση είναι στο Elementor: line-height 1.4 αντί 100% στα
 * 5 widgets. Αυτό εδώ το καλύπτει χωρίς να αγγίξουμε τα templates.
 * ========================================================================= */

.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu--dropdown .elementor-item,
.elementor-nav-menu--dropdown .elementor-sub-item {
	line-height: 1.4 !important;
}


/* =========================================================================
 * Item 20 — Κάρτες επιχειρήσεων: τυχαία στοίχιση     [ΕΠΙΒΕΒΑΙΩΜΕΝΟ]
 *
 * Η αιτία δεν είναι τυχαία: στη σελίδα ΣΥΝΥΠΑΡΧΟΥΝ ΔΥΟ listing templates
 * και κάθε ένα στοιχίζει αλλιώς —
 *
 *   post-732 (listing «default»)     : ΜΟΝΟ text-align:center
 *   post-735 (listing «businessmain»): text-align start / left / center
 *
 * Ανάλογα με ποιο template αποδίδει την κάρτα, αλλάζει η στοίχιση. Είναι
 * το ίδιο δίδυμο providers που εμπλέκεται και στο item 18.
 *
 * Το .address-before δεν έχει κανένα text-align rule δικό του (0 στο
 * used-CSS), οπότε το κλειδώνουμε εμείς.
 * ========================================================================= */

.jet-listing-grid__item .address-before,
.jet-listing-grid__item .address-before * {
	text-align: start;
}


/* =========================================================================
 * Item 25 — «Ανέβασμα αρχείου» άμετάφραστο σε EN/FR   [ΕΠΙΒΕΒΑΙΩΜΕΝΟ]
 *
 * Το λεκτικό ΔΕΝ είναι κείμενο στο HTML — είναι CSS pseudo-element:
 *
 *   .elementor-4713 .elementor-element-5271b87
 *   .elementor-field-type-upload input:before { content: 'Ανέβασμα αρχείου'; }
 *
 * Γι' αυτό δεν το πιάνει ούτε το translations.php: ο client-side
 * περασμός διατρέχει text nodes, και ένα ::before ΔΕΝ είναι text node.
 * (Ο server-side μπορεί να το πιάσει, επειδή το inline CSS περνά από το
 * output buffer — αλλά εξαρτάται από τη σειρά με το WP Rocket. Εδώ το
 * κλειδώνουμε ντετερμινιστικά.)
 *
 * Το <html lang> είναι "el" / "en-US" / "fr-FR", άρα το prefix match
 * είναι ασφαλές. Χρειάζεται !important γιατί ο αρχικός κανόνας έχει
 * specificity 4 κλάσεων.
 * ========================================================================= */

html[lang^="en"] .elementor-field-type-upload input::before {
	content: 'Upload file' !important;
}

html[lang^="fr"] .elementor-field-type-upload input::before {
	content: 'Téléverser un fichier' !important;
}


/* =========================================================================
 * ΕΚΚΡΕΜΗ — χρειάζονται τα selectors της κάθε σελίδας
 *
 * Item 06 — Αρχική mobile: το dropdown ξεχειλώνει και σκεπάζει την
 *           επόμενη ενότητα.        [ΘΕΛΕΙ MARKUP: αρχική σε mobile]
 *           Χρειάζεται: max-height + overflow-y:auto + z-index στο panel.
 *
 * Item 11 — Blog: τα tags των κατηγοριών ξεχειλώνουν κατακόρυφα.
 *                                    [ΘΕΛΕΙ MARKUP: /blog/]
 *           Χρειάζεται: max-height + overflow-y:auto στο input container.
 *
 * Item 13 — Blog mobile: υπερβολικά περιθώρια · λείπει «Επόμενη /
 *           Προηγούμενη».            [ΘΕΛΕΙ MARKUP: /blog/ σε mobile]
 *           Χρειάζεται: padding-inline override + εμφάνιση .prev-next.
 *
 * Item 15 — Επικοινωνία: φόρμα δεξιά · κενό στην κορυφή σε mobile.
 *                                    [ΘΕΛΕΙ MARKUP: /contact/]
 *
 * Item 23 — Hero επιχείρησης: κείμενα κολλάνε αριστερά με 0px padding.
 *                                    [ΘΕΛΕΙ MARKUP: single business mobile]
 *
 * Item 28 — Mobile menu: τίτλοι κολλημένοι, δύσκολο tap.
 *                                    [ΘΕΛΕΙ MARKUP: mobile menu ανοιχτό]
 *           Χρειάζεται: line-height + margin-block + tap target 44px.
 * ========================================================================= */
