/* ==========================================================================
   ΤΣΑΡΝΟΥΧΑΣ Α.Ε. – refinement layer πάνω στο ArcHub
   Κρατά χρώματα και ύφος του theme, με Comfortaa ως γραμματοσειρά. Βελτιώνει τυπογραφία,
   ρυθμό, κίνηση και διορθώνει προβλήματα layout.
   ========================================================================== */

/* ==========================================================================
   Σημείωση: η γραμματοσειρά του site είναι η Comfortaa (επιλογή πελάτη).
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Γραμματοσειρά: Comfortaa (self-hosted, ελληνικά + λατινικά)
   -------------------------------------------------------------------------- */
@font-face {
	font-family: "Comfortaa";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/comfortaa-greek.woff2") format("woff2");
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
	font-family: "Comfortaa";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/comfortaa-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Comfortaa";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/comfortaa-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Η γραμματοσειρά (Comfortaa) ορίζεται στο Elementor → Site Settings → Global Fonts.
   Εδώ μόνο φορτώνεται τοπικά (@font-face παραπάνω). Τα πεδία φορμών και τα κουμπιά
   κληρονομούν τη γραμματοσειρά της σελίδας (οι browsers δεν το κάνουν από μόνοι τους). */
button,
input,
select,
textarea,
.lqd-lity-loader {
	font-family: inherit;
}
/* Χωρίς πλάγια στη Comfortaa: αποφεύγουμε τα ψεύτικα (synthetic) italic */
html body :is(em, i:not([class])),
.ld-fh-element em {
	font-style: normal;
	font-synthesis: none;
}

/* --------------------------------------------------------------------------
   1. Tokens (από το Elementor kit του site)
   -------------------------------------------------------------------------- */
:root {
	--ts-ink: #1d232b;          /* primary */
	--ts-black: #000;           /* secondary */
	--ts-text: #767676;         /* text */
	--ts-text-strong: #4a4f55;  /* κείμενο σε μεγαλύτερη αντίθεση (7.9:1) */
	--ts-line: #e7e7e4;
	--ts-paper: #f6f6f4;
	--ts-font: "Comfortaa", "Segoe UI", system-ui, sans-serif;
	--ts-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--ts-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--ts-dur: 0.6s;
}

/* --------------------------------------------------------------------------
   2. Βάση & επιφάνειες browser
   -------------------------------------------------------------------------- */
html {
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
}
body {
	font-kerning: normal;
	font-feature-settings: "kern", "liga";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
::selection {
	background: var(--ts-ink);
	color: #fff;
}
:focus-visible {
	outline: 2px solid var(--ts-ink);
	outline-offset: 3px;
	border-radius: 2px;
}
.main-footer :focus-visible,
.bg-dark :focus-visible {
	outline-color: #fff;
}
a {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}
img {
	image-rendering: auto;
}
/* Ψηφία με ίδιο πλάτος σε στοιχεία/τηλέφωνα/χρονολογίες */
.lqd-pf-single-meta .meta_value,
.elementor-icon-list-text,
.ts-legal dd {
	font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   3. Τυπογραφία
   -------------------------------------------------------------------------- */
h1, h2, h3, h4,
.ld-fh-element:is(h1, h2, h3) {
	text-wrap: balance;
	font-feature-settings: "kern";
}
/* Παράγραφοι: μέγεθος, βάρος και διάστιχο ορίζονται στα widgets του Elementor.
   Εδώ μόνο το άνετο μήκος γραμμής και η ισορροπημένη αναδίπλωση. */
.elementor-widget-hub_fancy_heading p.ld-fh-element {
	text-wrap: pretty;
}
@media (min-width: 1200px) {
	.elementor-widget-hub_fancy_heading p.ld-fh-element {
		max-width: 66ch;
	}
}
/* Run-in τίτλοι μέσα σε παράγραφο (Ιστορικό. / Σήμερα.) */
.ts-runin {
	color: var(--ts-black);
	font-weight: 600;
	letter-spacing: 0;
}
.bg-dark .ts-runin,
[class*="elementor-element-58871b4"] .ts-runin {
	color: #fff;
}
/* Κείμενα text-editor: τυπογραφία στα widgets του Elementor */
.elementor-widget-text-editor p {
	margin-bottom: 1.1em;
	text-wrap: pretty;
}

/* --------------------------------------------------------------------------
   4. Header
   -------------------------------------------------------------------------- */
/* Το λογότυπο έπεφτε σε δεύτερη σειρά κάτω από το κουμπί του πλαϊνού μενού
   και επικάλυπτε το περιεχόμενο. Τα βάζουμε στην ίδια γραμμή. */
.main-header .elementor-element-ea4ed02 > .elementor-widget-wrap {
	flex-wrap: nowrap;
	align-items: center;
	gap: 18px;
}
.main-header .elementor-element-ea4ed02 > .elementor-widget-wrap > .elementor-element {
	width: auto;
	margin-bottom: 0;
}
.main-header .elementor-element-27c7802 .module-logo {
	padding-top: 22px;
	padding-bottom: 22px;
}
.main-header .elementor-element-27c7802 img {
	max-height: 56px;
	width: auto;
}
.main-header .elementor-element-e55ba3d > .elementor-widget-wrap {
	align-items: center;
}
.main-header .elementor-element-640aa60,
.main-header .elementor-element-640aa60 .main-nav {
	display: flex;
	align-items: center;
}
/* Sticky header: λευκό φόντο (από το Additional CSS του parent) + λεπτή γραμμή */
.header.site-header.main-header.sticky-header-noshadow.is-stuck {
	background-color: #fff;
	box-shadow: 0 1px 0 var(--ts-line);
	transition: box-shadow var(--ts-dur) var(--ts-ease-out);
}
/* Υπογράμμιση μενού που «ξεδιπλώνεται» */
.main-header .main-nav > li > a .link-txt,
.main-header .main-nav > li > a {
	position: relative;
}
.main-header .main-nav > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform 0.45s var(--ts-ease-out);
}
.main-header .main-nav > li > a:hover::after,
.main-header .main-nav > li.is-active > a::after,
.main-header .main-nav > li.current-menu-item > a::after,
.main-header .main-nav > li.current-menu-ancestor > a::after {
	transform: scaleX(1);
	transform-origin: left center;
}
/* Dropdown «Έργα» */
.main-header .main-nav .nav-item-children {
	min-width: 250px;
	padding: 14px 0;
	border: 1px solid var(--ts-line);
	box-shadow: 0 18px 40px -18px rgba(29, 35, 43, 0.25);
}
.main-header .main-nav .nav-item-children > li > a {
	padding: 8px 22px;
	font-size: 14px;
	color: var(--ts-text-strong);
	transition: color 0.3s ease, padding-left 0.4s var(--ts-ease-out);
}
.main-header .main-nav .nav-item-children > li > a:hover {
	color: var(--ts-black);
	padding-left: 28px;
}

/* --------------------------------------------------------------------------
   5. Κουμπιά
   -------------------------------------------------------------------------- */
.btn {
	transition: background-color 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s var(--ts-ease-out), box-shadow 0.35s ease;
}
.btn-solid:hover,
.btn-default:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px -12px rgba(29, 35, 43, 0.55);
}
.btn:active {
	transform: translateY(0);
}

/* --------------------------------------------------------------------------
   6. Έργα – πλέγμα (Έργα, Αρχική, κατηγορίες)
   -------------------------------------------------------------------------- */
/* Φίλτρα κατηγοριών */
.lqd-pf-filter .filter-list li,
.filter-list li {
	transition: color 0.3s ease;
}
.filter-list li.active,
.filter-list li:hover {
	color: var(--ts-black);
}
/* Κάρτες style06: καθαρές, ορθογώνιες όπως το υπόλοιπο site – χωρίς τις
   «browser» τελείες και τη θολή σκιά που διάβαζε ως placeholder */
.lqd-pf-item.lqd-pf-item-style-6 {
	padding: 0 !important;
	border-radius: 0 !important;
	background: transparent;
	box-shadow: none;
	transform: none;
}
.lqd-pf-item.lqd-pf-item-style-6:hover {
	box-shadow: none;
	transform: none;
}
.lqd-pf-item-style-6 .lqd-pf-item-inner::before {
	display: none;
}
.lqd-pf-item-style-6 .lqd-pf-img,
.lqd-pf-item-style-6 .lqd-pf-img.border-radius-10 {
	overflow: hidden;
	border-radius: 0 !important;
	margin-bottom: 18px !important;
}
.lqd-pf-item-style-6 .lqd-pf-img img {
	aspect-ratio: 4 / 3;
	width: 100%;
	height: auto;
	object-fit: cover;
	transform: scale(1.001);
	transition: opacity 0.8s var(--ts-ease-out), transform 1.1s var(--ts-ease-out);
}
.lqd-pf-item:hover .lqd-pf-img img {
	transform: scale(1.045);
}
.lqd-pf-item-style-6 .lqd-pf-details {
	position: relative;
	padding-top: 14px;
	border-top: 1px solid var(--ts-line);
}
.lqd-pf-item-style-6 .lqd-pf-details::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--ts-ink);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.7s var(--ts-ease-out);
}
.lqd-pf-item-style-6:hover .lqd-pf-details::before {
	transform: scaleX(1);
}
.lqd-pf-item-style-6 .lqd-pf-details .lqd-pf-title {
	font-size: 17px;
	line-height: 1.35;
	letter-spacing: -0.005em;
	text-wrap: balance;
}
.lqd-pf-item-style-6 .lqd-pf-cat {
	font-size: 13px;
	margin-top: 4px;
}
.lqd-pf-item-style-6 .lqd-pf-cat a {
	color: var(--ts-text);
}

/* --------------------------------------------------------------------------
   7. Σελίδα έργου
   -------------------------------------------------------------------------- */
.ts-pf-head .ld-fh-element {
	line-height: 1.12;
}
.ts-pf-cat {
	display: block;
	margin-top: 0.85em;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ts-text);
}
.ts-pf-desc {
	max-width: 64ch;
}
.ts-pf-desc .ts-lead {
	font-size: clamp(18px, 1.1vw + 9px, 21px);
	line-height: 1.55;
	color: var(--ts-ink);
	letter-spacing: -0.005em;
	margin-bottom: 1em;
}
.ts-pf-desc .ts-works-title {
	margin: 2em 0 0.9em;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ts-black);
}
.ts-pf-desc .ts-works {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--ts-line);
}
.ts-pf-desc .ts-works li {
	position: relative;
	padding: 0.85em 0 0.85em 2.2em;
	border-bottom: 1px solid var(--ts-line);
	line-height: 1.6;
}
.ts-pf-desc .ts-works li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.55em;
	width: 1.1em;
	height: 1px;
	background: var(--ts-ink);
}
/* Στοιχεία έργου */
.ts-pf-meta-col > .elementor-widget-wrap {
	align-content: flex-start;
}
.ts-pf-meta .lqd-pf-single-meta {
	border-top: 1px solid var(--ts-ink);
	padding-top: 6px;
}
.ts-pf-meta .lqd-pf-single-meta-part {
	padding: 18px 16px 18px 0;
	border-bottom: 1px solid var(--ts-line);
}
.ts-pf-meta .meta_label {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ts-text);
	margin-bottom: 6px !important;
}
.ts-pf-meta .meta_value {
	font-size: 16px;
	line-height: 1.45;
	color: var(--ts-ink);
}
@media (min-width: 1025px) {
	.ts-pf-meta-col > .elementor-widget-wrap {
		position: sticky;
		top: 140px;
	}
}
/* Gallery: σταθερή αναλογία, ώστε φωτογραφίες διαφορετικού προσανατολισμού
   να μην αφήνουν τεράστια κενά */
.ts-pf-gallery .lqd-img-gal-imgs .carousel-item figure {
	aspect-ratio: 3 / 2;
	background: var(--ts-paper);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.ts-pf-gallery .lqd-img-gal-imgs .carousel-item figure img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.ts-pf-gallery .lqd-img-gal-imgs .flickity-viewport {
	height: auto !important;
	aspect-ratio: 3 / 2;
}
.ts-pf-gallery .lqd-img-gal-thumbs {
	margin-top: 14px;
}
.ts-pf-gallery .lqd-img-gal-thumbs .carousel-item {
	width: calc(100% / 7);
	padding: 0 4px;
}
.ts-pf-gallery .lqd-img-gal-thumbs figure {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	cursor: pointer;
}
.ts-pf-gallery .lqd-img-gal-thumbs img {
	height: 100%;
	opacity: 0.5;
	filter: grayscale(0.35);
	transition: opacity 0.4s ease, filter 0.4s ease;
}
.ts-pf-gallery .lqd-img-gal-thumbs .is-nav-selected img,
.ts-pf-gallery .lqd-img-gal-thumbs .carousel-item:hover img {
	opacity: 1;
	filter: none;
}
@media (max-width: 767px) {
	.ts-pf-gallery .lqd-img-gal-thumbs .carousel-item {
		width: calc(100% / 4.5);
	}
	.ts-pf-gallery .lqd-img-gal-imgs .flickity-viewport,
	.ts-pf-gallery .lqd-img-gal-imgs .carousel-item figure {
		aspect-ratio: 4 / 3;
	}
}

/* --------------------------------------------------------------------------
   8. Δραστηριότητα
   -------------------------------------------------------------------------- */
.accordion-content ul,
.ld-accordion .accordion-content ul {
	padding-left: 1.2em;
}
.accordion-content li {
	margin-bottom: 0.35em;
	line-height: 1.65;
}
.ts-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0 !important;
	margin: 0.4em 0 1.4em;
}
.ts-tags li {
	margin: 0 !important;
	padding: 6px 12px;
	border: 1px solid var(--ts-line);
	font-size: 13px;
	line-height: 1.3;
	color: var(--ts-ink);
	transition: border-color 0.3s ease;
}
.ts-tags li:hover {
	border-color: var(--ts-ink);
}

/* --------------------------------------------------------------------------
   9. Η Εταιρεία – Φιλοσοφία
   -------------------------------------------------------------------------- */
.ts-philosophy h3 {
	font-size: 26px;
	letter-spacing: -0.01em;
	margin-bottom: 1em;
	color: var(--ts-black);
}
.ts-principles {
	list-style: none;
	padding: 0;
	margin: 0;
	counter-reset: ts-principle;
	border-top: 1px solid var(--ts-line);
}
.ts-principles li {
	counter-increment: ts-principle;
	position: relative;
	padding: 1em 0 1em 3em;
	border-bottom: 1px solid var(--ts-line);
	line-height: 1.7;
}
.ts-principles li::before {
	content: counter(ts-principle, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 1.05em;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--ts-text);
	font-variant-numeric: tabular-nums;
}
.ts-principles strong {
	color: var(--ts-black);
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   10. Στελέχη
   -------------------------------------------------------------------------- */
.ts-people-head .ld-fh-element:is(h1, h2, h3, h4, h5, h6) {
	margin-bottom: 0.3em;
}
.ts-person > .elementor-widget-wrap {
	align-content: flex-start;
}
.ts-person .elementor-widget-hub_fancy_heading:first-child {
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 1px solid var(--ts-ink);
}
.ts-person p.ld-fh-element {
	color: var(--ts-text-strong);
}
.ts-people-note p.ld-fh-element {
	max-width: 70ch;
}

/* --------------------------------------------------------------------------
   11. Επικοινωνία
   -------------------------------------------------------------------------- */
.ts-maps {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.ts-map {
	margin: 0;
}
.ts-map iframe {
	display: block;
	width: 100%;
	height: 380px;
	border: 0;
	filter: grayscale(0.85) contrast(1.05);
	transition: filter 0.6s ease;
}
.ts-map:hover iframe,
.ts-map:focus-within iframe {
	filter: none;
}
.ts-map figcaption {
	padding-top: 14px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--ts-text-strong);
}
.ts-map figcaption strong {
	display: block;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ts-black);
	margin-bottom: 4px;
}
@media (max-width: 767px) {
	.ts-maps {
		grid-template-columns: 1fr;
	}
	.ts-map iframe {
		height: 280px;
	}
}
.ts-legal .ts-legal-title {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ts-black);
	margin-bottom: 0.8em;
}
.ts-legal dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 8px 18px;
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
}
.ts-legal dt {
	font-weight: 500;
	color: var(--ts-text);
}
.ts-legal dd {
	margin: 0;
	color: var(--ts-ink);
}
/* Φόρμες */
.wpcf7 .ts-accept,
.wpcf7 .wpcf7-acceptance {
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--ts-text-strong);
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}
.wpcf7 .wpcf7-acceptance label {
	display: block;
	position: relative;
	padding-left: 28px;
	cursor: pointer;
}
.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 2px;
	margin: 0;
	accent-color: var(--ts-ink);
	width: 16px;
	height: 16px;
}
.wpcf7 .ts-accept a {
	color: var(--ts-ink);
	text-decoration: underline;
}
.wpcf7 select {
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 14px) 52%, calc(100% - 9px) 52%;
	background-size: 5px 5px;
	background-repeat: no-repeat;
	padding-right: 32px;
}
.wpcf7 .wpcf7-not-valid-tip {
	font-size: 12.5px;
	margin-top: 4px;
}
.wpcf7 form .wpcf7-response-output {
	margin: 1.4em 0 0;
	padding: 12px 16px;
	font-size: 14px;
	border-width: 1px;
}
.wpcf7 input[type="submit"]:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */
.main-footer .ts-footer-legal {
	display: block;
	margin-top: 0.8em;
	opacity: 0.7;
	font-size: 0.92em;
}
.main-footer .ts-footer-copy .ld-fh-element {
	font-size: 13px;
	opacity: 0.85;
}
@media (max-width: 767px) {
	.main-footer .elementor-element-5c07c3f7 {
		width: 100% !important;
	}
	.main-footer .elementor-element-e7d12dd .ld-fh-element {
		width: auto !important;
		max-width: none !important;
	}
}

/* --------------------------------------------------------------------------
   13. Mobile κάτω μπάρα (WP Bottom Menu)
   -------------------------------------------------------------------------- */
.wp-bottom-menu {
	--wpbottommenu-text-color: #5b6066;
	--wpbottommenu-h-text-color: var(--ts-black);
	background: rgba(255, 255, 255, 0.96) !important;
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	box-shadow: 0 -1px 0 var(--ts-line) !important;
	padding-bottom: env(safe-area-inset-bottom);
}
.wp-bottom-menu-item {
	padding: 9px 4px 8px !important;
	-webkit-tap-highlight-color: transparent;
}
.wp-bottom-menu-item span {
	font-size: 11px;
	letter-spacing: 0.01em;
	margin-top: 3px;
}
.wp-bottom-menu-item-icons {
	font-size: 19px !important;
}
.wp-bottom-menu-item.active,
.wp-bottom-menu-item:active {
	color: var(--ts-black) !important;
}
@media (max-width: 767px) {
	/* Χώρος ώστε η μπάρα να μην κρύβει το τέλος του footer */
	body {
		padding-bottom: calc(62px + env(safe-area-inset-bottom));
	}
}

/* --------------------------------------------------------------------------
   14. Ήπια κίνηση
   Μία κοινή γλώσσα: ease-out, μικρές αποστάσεις, ποτέ ενάντια στο scroll.
   -------------------------------------------------------------------------- */
/* Οι εικόνες εμφανίζονται ομαλά όταν φορτώσουν (το JS προσθέτει .ts-img-loaded) */
.ts-js .lqd-pf-img img,
.ts-js .ts-pf-gallery img {
	opacity: 0;
	transition: opacity 0.8s var(--ts-ease-out), transform 1.1s var(--ts-ease-out), filter 0.6s ease;
}
.ts-js img.ts-img-loaded,
.ts-js.ts-safe .lqd-pf-img img,
.ts-js.ts-safe .ts-pf-gallery .lqd-img-gal-imgs img {
	opacity: 1;
}
.ts-js .ts-pf-gallery .lqd-img-gal-thumbs img.ts-img-loaded {
	opacity: 0.5;
}
.ts-js .ts-pf-gallery .lqd-img-gal-thumbs .is-nav-selected img.ts-img-loaded,
.ts-js .ts-pf-gallery .lqd-img-gal-thumbs .carousel-item:hover img.ts-img-loaded {
	opacity: 1;
}
/* Σελίδα έργου: η περιγραφή και τα στοιχεία ανεβαίνουν απαλά μία φορά */
.ts-js .ts-pf-intro .elementor-widget-wrap > .elementor-element {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.9s var(--ts-ease-out), transform 0.9s var(--ts-ease-out);
}
.ts-js .ts-pf-intro.ts-in .elementor-widget-wrap > .elementor-element,
.ts-js.ts-safe .ts-pf-intro .elementor-widget-wrap > .elementor-element {
	opacity: 1;
	transform: none;
}
.ts-js .ts-pf-intro.ts-in .ts-pf-meta-col .elementor-element {
	transition-delay: 0.12s;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.ts-js .ts-pf-intro .elementor-widget-wrap > .elementor-element,
	.ts-js img {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* Το theme κάνει flex το label της λίστας· το κείμενο συγκατάθεσης περιέχει link και πρέπει να ρέει ως πρόταση */
.wpcf7 .ts-accept .wpcf7-list-item-label {
	display: inline !important;
}
.wpcf7 .ts-accept p {
	margin: 0;
}

/* Πλαϊνό μενού: τηλέφωνο/email στο χρώμα του κειμένου, όχι στο μπλε του browser */
.elementor-element-4efba927 a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s ease;
}
.elementor-element-4efba927 a:hover {
	color: var(--ts-black);
}

/* Στο mobile, τίτλοι που δεν χωράνε μικραίνουν αυτόματα από το site.js (fitHeadings).
   Τα μεγέθη ορίζονται στο Elementor (responsive). */

/* Carousel «Πρόσφατα έργα» (style04): ο κάθετος τίτλος μένει επικάλυψη πάνω στη
   φωτογραφία και, αν είναι μακρύς, αναδιπλώνεται σε δεύτερη στήλη αντί να
   μεγαλώνει το ύψος της κάρτας */
.lqd-pf-item-style-4 .lqd-pf-details.lqd-overlay {
	position: absolute;
}
.lqd-pf-item-style-4 .text-vertical {
	max-height: 100%;
	box-sizing: border-box;
}
.lqd-pf-item-style-4 .lqd-pf-title {
	line-height: 1.25;
}
.lqd-pf-item-style-4 .portfolio-summary {
	display: none;
}
.lqd-pf-item.lqd-pf-item-style-4 {
	margin-bottom: 48px !important; /* το theme άφηνε 110px για τη σκιά */
}

/* Hover στις κάρτες έργων: το theme έβαζε συμπαγές λευκό overlay και η φωτογραφία
   χανόταν. Κρατάμε ένα ελαφρύ λευκό πέπλο, ώστε η εικόνα να φαίνεται πάντα. */
.lqd-pf-item-style-6 .lqd-pf-overlay-bg,
.lqd-pf-item-style-2 .lqd-pf-overlay-bg {
	background-color: rgba(255, 255, 255, 0.25) !important;
	transition: opacity 0.5s var(--ts-ease-out);
}
.lqd-pf-item-style-6 .lqd-pf-item-inner::before {
	content: none !important;
	display: none !important;
}

/* ==========================================================================
   15. Συγκατάθεση cookies (banner + ρυθμίσεις)
   ========================================================================== */
.ts-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.ts-cc {
	position: fixed;
	left: 24px;
	right: 24px;
	bottom: 24px;
	z-index: 100000;
	display: flex;
	justify-content: center;
	pointer-events: none;
}
.ts-cc[hidden],
.ts-cc-modal[hidden] {
	display: none !important;
}
.ts-cc__inner {
	pointer-events: auto;
	display: flex;
	align-items: center;
	gap: 32px;
	max-width: 1120px;
	width: 100%;
	padding: 24px 28px;
	background: #fff;
	color: var(--ts-ink);
	border: 1px solid var(--ts-line);
	box-shadow: 0 24px 60px -24px rgba(29, 35, 43, 0.35);
	animation: ts-cc-in 0.6s var(--ts-ease-out) both;
}
@keyframes ts-cc-in {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}
.ts-cc__text {
	flex: 1 1 auto;
	font-size: 14px;
	line-height: 1.65;
	color: var(--ts-text-strong);
}
.ts-cc__text p {
	margin: 0;
}
.ts-cc__title {
	margin-bottom: 6px !important;
	font-size: 15px;
	font-weight: 700;
	color: var(--ts-ink);
}
.ts-cc a,
.ts-cc-modal a {
	color: var(--ts-ink);
	text-decoration: underline;
}
.ts-cc__actions,
.ts-cc-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	flex: none;
}
/* Ίση βαρύτητα: «Απόρριψη» και «Αποδοχή» έχουν το ίδιο ακριβώς στυλ */
.ts-cc__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 22px;
	border: 1px solid var(--ts-ink);
	background: var(--ts-ink);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s var(--ts-ease-out);
}
.ts-cc__btn:hover {
	background: #000;
	transform: translateY(-1px);
}
.ts-cc__btn--ghost {
	background: transparent;
	color: var(--ts-ink);
}
.ts-cc__btn--ghost:hover {
	background: var(--ts-paper);
}
.ts-cc__btn:focus-visible {
	outline: 2px solid var(--ts-ink);
	outline-offset: 3px;
}
@media (max-width: 900px) {
	.ts-cc {
		left: 12px;
		right: 12px;
		bottom: calc(74px + env(safe-area-inset-bottom)); /* πάνω από την κάτω μπάρα */
	}
	.ts-cc__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 16px;
		padding: 18px;
	}
	.ts-cc__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
	.ts-cc__actions [data-ts-cc="settings"] {
		grid-column: 1 / -1;
		order: 3;
	}
}

/* Παράθυρο ρυθμίσεων */
.ts-cc-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.ts-cc-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(29, 35, 43, 0.55);
	animation: ts-fade 0.4s ease both;
}
@keyframes ts-fade {
	from { opacity: 0; }
}
.ts-cc-modal__panel {
	position: relative;
	width: 100%;
	max-width: 640px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	padding: 36px;
	background: #fff;
	color: var(--ts-ink);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.5);
	animation: ts-cc-in 0.5s var(--ts-ease-out) both;
	outline: none;
}
.ts-cc-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 40px;
	height: 40px;
	border: 0;
	background: transparent;
	font-size: 28px;
	line-height: 1;
	color: var(--ts-ink);
	cursor: pointer;
}
.ts-cc-modal__title {
	margin: 0 0 10px;
	font-size: 26px;
	letter-spacing: -0.01em;
}
.ts-cc-modal__intro {
	margin: 0 0 22px;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--ts-text-strong);
}
.ts-cc-cats {
	list-style: none;
	margin: 0 0 26px;
	padding: 0;
	border-top: 1px solid var(--ts-line);
}
.ts-cc-cat {
	padding: 18px 0;
	border-bottom: 1px solid var(--ts-line);
}
.ts-cc-cat__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	cursor: pointer;
}
.ts-cc-cat__label {
	font-size: 15.5px;
	font-weight: 700;
}
.ts-cc-cat__desc {
	margin: 8px 0 0;
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--ts-text-strong);
}
.ts-cc-switch {
	position: relative;
	flex: none;
	width: 46px;
	height: 26px;
}
.ts-cc-switch input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 1;
}
.ts-cc-switch__ui {
	position: absolute;
	inset: 0;
	border-radius: 26px;
	background: #c9cbce;
	transition: background-color 0.3s ease;
}
.ts-cc-switch__ui::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
	transition: transform 0.35s var(--ts-ease-out);
}
.ts-cc-switch input:checked + .ts-cc-switch__ui {
	background: var(--ts-ink);
}
.ts-cc-switch input:checked + .ts-cc-switch__ui::after {
	transform: translateX(20px);
}
.ts-cc-switch input:disabled + .ts-cc-switch__ui {
	opacity: 0.55;
}
.ts-cc-switch input:disabled {
	cursor: not-allowed;
}
.ts-cc-switch input:focus-visible + .ts-cc-switch__ui {
	outline: 2px solid var(--ts-ink);
	outline-offset: 3px;
}
@media (max-width: 600px) {
	.ts-cc-modal__panel {
		padding: 26px 20px;
	}
	.ts-cc-modal__actions {
		display: grid;
		grid-template-columns: 1fr;
	}
}
html.ts-cc-modal-open {
	overflow: hidden;
}

/* Χάρτες πίσω από συγκατάθεση */
.ts-consent-wrap {
	position: relative;
	background: var(--ts-paper);
}
.ts-consent-wrap iframe:not([src]) {
	visibility: hidden;
}
.ts-consent-ph {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 24px;
	text-align: center;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--ts-text-strong);
	background:
		repeating-linear-gradient(0deg, transparent 0 39px, rgba(29, 35, 43, 0.05) 39px 40px),
		repeating-linear-gradient(90deg, transparent 0 39px, rgba(29, 35, 43, 0.05) 39px 40px),
		var(--ts-paper);
}
.ts-consent-ph p {
	max-width: 36ch;
	margin: 0;
}
.ts-consent-ph a {
	color: var(--ts-ink);
}
.ts-consent-wrap.is-allowed .ts-consent-ph {
	display: none;
}
.ts-cc-status {
	padding: 12px 16px;
	border: 1px solid var(--ts-line);
	background: var(--ts-paper);
	font-size: 14px;
}
/* Το theme χρωματίζει τα <button>· τα κουμπιά συγκατάθεσης κρατούν τα δικά τους χρώματα */
.ts-cc__btn,
.ts-cc__btn:hover,
.ts-cc__btn:focus {
	color: #fff !important;
}
.ts-cc__btn--ghost,
.ts-cc__btn--ghost:hover,
.ts-cc__btn--ghost:focus {
	color: var(--ts-ink) !important;
}

/* Νομικές σελίδες: μορφή εγγράφου, άνετο μήκος γραμμής */
.ts-legal-page #lqd-site-content .container,
.ts-legal-page #lqd-site-content .entry-content,
.ts-legal-page #lqd-site-content article {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}
.ts-legal-page #lqd-site-content {
	padding-top: 40px;
	padding-bottom: 100px;
	font-size: 16px;
	line-height: 1.8;
	color: var(--ts-text-strong);
}
.ts-legal-h1 {
	margin: 0 0 0.3em;
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--ts-black);
}
.ts-legal-page .ts-updated {
	font-size: 13.5px;
	color: var(--ts-text);
	margin-bottom: 2.2em;
}
.ts-legal-page #lqd-site-content h2 {
	margin: 2.2em 0 0.6em;
	font-size: 24px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--ts-black);
}
.ts-legal-page #lqd-site-content h3 {
	margin: 1.8em 0 0.5em;
	font-size: 18px;
	color: var(--ts-ink);
}
.ts-legal-page #lqd-site-content ul {
	padding-left: 1.2em;
}
.ts-legal-page #lqd-site-content li {
	margin-bottom: 0.5em;
}
.ts-legal-page #lqd-site-content a {
	color: var(--ts-ink);
	text-decoration: underline;
}
.ts-legal-page .ts-cc-open {
	margin: 4px 0 1.4em;
}
.ts-cookie-table {
	margin: 1.2em 0 1.6em;
	overflow-x: auto;
}
.ts-cookie-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.55;
}
.ts-cookie-table th,
.ts-cookie-table td {
	padding: 12px 14px 12px 0;
	border-bottom: 1px solid var(--ts-line);
	text-align: left;
	vertical-align: top;
}
.ts-cookie-table th {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ts-black);
	border-bottom-color: var(--ts-ink);
}
.ts-cookie-table code,
.ts-legal-page code {
	font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
	font-size: 0.86em;
	padding: 2px 6px;
	background: var(--ts-paper);
	color: var(--ts-ink);
}
@media (max-width: 767px) {
	.ts-cookie-table table {
		min-width: 560px;
	}
}

/* Η Εταιρεία – Φιλοσοφία: υπότιτλος «Η προσέγγισή μας» και τίτλος κάθε αρχής σε δική του γραμμή */
.ts-philosophy .ts-sub {
	margin: -0.6em 0 1.2em;
	color: var(--ts-text);
}
