/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

body, html{
	overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

::-webkit-scrollbar {
  width: 10px;
}
::-webkit-scrollbar-track {
  background: #CACFD6;
}
::-webkit-scrollbar-thumb {
  background: #110D45;
}

::selection {
    background: #110D45;
    color: white;
}

::-moz-selection {
    background: #110D45;
    color: white;
}

nav.rank-math-breadcrumb a,
nav.rank-math-breadcrumb span {
    font-size: 14px;
    line-height: 1em;
	letter-spacing: var(--e-global-typography-cb1739b-letter-spacing);
}
@media (max-width:1200px) {
   nav.rank-math-breadcrumb a,
nav.rank-math-breadcrumb span {
    font-size: 13px;
} 
}
@media (max-width:600px) {
   nav.rank-math-breadcrumb a,
nav.rank-math-breadcrumb span {
    font-size: 12px;
} 
}



.page-numbers {
    background: #F4F4F4;
	color: #110D45;
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;

    
}
.page-numbers.current, .page-numbers:hover {
    background: #110D45;
    color: white!important;
 
}
nav.elementor-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
}

ul, ol {
	margin: 10px 0 30px;
}

.epposty img {
    -webkit-transition: -webkit-transform 0.3s ease;
    transition: -webkit-transform 0.3s ease;
    transition: transform 0.3s ease;
    transition: transform 0.3s ease, -webkit-transform 0.3s ease;
    aspect-ratio: 1.22/1;
    object-fit: cover;
}
.epposty:hover img {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}
.viewbtn {
    position: absolute;
	width: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.epposty:hover .viewbtn {
    opacity: 1;
}



[tabindex]:not([tabindex="-1"]):focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    box-shadow: none;
    outline: 0;
    outline-offset: 0;
}





/* ============================================
 * project_info_table ΚΑΙ apartment_info_table
 * (ίδιο σχεδιαστικά, κοινό CSS -- .project-info-table class και στα δύο)
 * ============================================ */
		h3.project-info-heading { 
    font-size: var( --e-global-typography-cb1739b-font-size );
    font-weight: var( --e-global-typography-cb1739b-font-weight );
    text-transform: var( --e-global-typography-cb1739b-text-transform );
    line-height: var( --e-global-typography-cb1739b-line-height );
    letter-spacing: var( --e-global-typography-cb1739b-letter-spacing );
}
		.project-info-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid #e5e7eb; }
		.project-info-label { color:#475569; }
		.project-info-value { font-weight:700; color:#0f172a; text-align:right; }

/* ============================================
 * features_grid
 * ============================================ */
		.features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0 40px; }
		.feature-item span {
			font-weight: 700;
		}
.feature-item {
			display:flex; align-items:flex-start; gap:8px;
			padding:12px 0; border-bottom:1px solid #e5e7eb;
		}
		.feature-check { width:18px; height:18px; color:#10b981; flex-shrink:0; margin-top:2px; }
		@media (max-width:1600px) {
				.features-grid { 
					gap:0 20px; }
}
@media (max-width:1300px) {
				.features-grid { 
					grid-template-columns:repeat(2,1fr);
					gap:0 25px;
	}
}
		@media (max-width:600px) { .features-grid { grid-template-columns:1fr; } }
		
.leaflet-container a {
    white-space: nowrap!important;
}
/* ============================================
 * buildings_apartments_list
 * ============================================ */
		.buildings-apartments-list { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
		@media (max-width:900px) { .buildings-apartments-list { grid-template-columns:repeat(2,1fr); } }
		@media (max-width:600px) { .buildings-apartments-list { grid-template-columns:1fr; } }
		.building-column h4 { margin-bottom:12px;
    font-size: var( --e-global-typography-8664c61-font-size );
}
		.apartment-list-item { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border:1px solid #e5e7eb; margin-bottom:10px; text-decoration:none; color:inherit;
}
		a.apartment-list-item {
			font-size: var( --e-global-typography-8ab9f2f-font-size );
			letter-spacing: -0.38px;
}
		small {color: #403D6A;
}
		.apartment-list-arrow svg { width:16px; height:16px; display:block; }
		.apartment-list-arrow { color:#110D45; flex-shrink:0; }
		.apartment-list-item:hover { border-color:#10b981; }
		.apartment-list-item--unavailable { opacity:.4; cursor:default; }
		.apartment-list-item--unavailable:hover { border-color:#e5e7eb; }

/* ============================================
 * project_hotspot_map
 * (αντικαθιστά ΟΛΗ την αντίστοιχη ενότητα στο style.css)
 * ============================================ */
		.hotspot-stage { position:relative; }
		.hotspot-panel { position:relative; background: #E4E9ED; }
		.hotspot-image { width:100%; display:block; }

		/* --- Πλαίσιο (rect) --- */
		.hotspot-box {
			position:absolute; border:2px solid;
			display:flex; align-items:center; justify-content:center; text-align:center;
			text-decoration:none; color:#fff; font-weight:700; font-size:14px;
			transition:filter .2s ease;
		}
		.hotspot-box:hover { filter:brightness(1.15); }
		.hotspot-box span { color: white; }

		/* --- Ελεύθερη σχεδίαση (poly) --- */
		.hotspot-svg {
			position:absolute; inset:0; width:100%; height:100%;
			pointer-events:none; overflow:visible; z-index:1;
		}
		.hotspot-svg .hotspot-shape { cursor:pointer; }
		.hotspot-svg polygon {
			pointer-events:visiblePainted;
			stroke-width:2;
			stroke-linejoin:miter;
			transition:filter .2s ease;
		}
		.hotspot-svg .hotspot-shape:hover polygon,
		.hotspot-svg .hotspot-shape.is-hover polygon { filter:brightness(1.15); }

		.hotspot-label {
			position:absolute; z-index:2;
			transform:translate(-50%, -50%);
			text-align:center; text-decoration:none; white-space:nowrap;
			color:#fff; font-weight:700; font-size:14px; line-height:1.2;
		}
		.hotspot-label span { color: white; }

		button.hotspot-arrow {
			position:absolute !important; top:50% !important; transform:translateY(-50%) !important;
			z-index:5 !important; width:44px !important; height:44px !important;
			min-width:44px !important; max-width:44px !important; border-radius:50% !important;
			border:none !important; background:#ffffff !important; color:#110D45 !important;
			cursor:pointer !important; padding:0 !important; margin:0 !important;
			display:flex !important; align-items:center !important; justify-content:center !important;
			appearance:none !important; -webkit-appearance:none !important;
			box-shadow:0 4px 14px rgba(0,0,0,.18) !important;
			transition:transform .15s ease, box-shadow .15s ease;
			pointer-events:auto !important;
		}
		button.hotspot-arrow:hover {
			transform:translateY(-50%) scale(1.06) !important;
			box-shadow:0 6px 18px rgba(0,0,0,.22) !important;
		}
		button.hotspot-arrow svg { width:20px !important; height:20px !important; display:block !important; pointer-events:none; }
		.hotspot-prev { left:14px !important; }
		.hotspot-next { right:14px !important; }

		.hotspot-controls { display:flex; gap:24px; margin-top:16px; }
		.hotspot-controls label { display:flex; flex-direction:column; font-weight:400; font-size: var( --e-global-typography-text-font-size ); color: #403D6A; }
		.hotspot-controls select {
			margin-top:4px;
			padding:8px 24px 8px 0;
			border:none;
			border-bottom:1px solid #110D45;
			background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23110D45' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right center / 16px 16px;
			appearance:none;
			-webkit-appearance:none;
			font-weight: 700;
			cursor:pointer;
			border-radius: 0 !important;
			font-size: var(--e-global-typography-8ab9f2f-font-size);
			color: #110D45!important;
		}
		@media (max-width:1200px) {
			.hotspot-box span, a.hotspot-box, .hotspot-box a span, .hotspot-box,
			.hotspot-label, .hotspot-label span {
				font-size:14px!important;
			}
		}
		@media (max-width:880px) {
			.hotspot-box span, a.hotspot-box, .hotspot-box a span, .hotspot-box,
			.hotspot-label, .hotspot-label span {
				font-size:13px!important;
			}
		}
		@media (max-width:600px) {
			button.hotspot-arrow {
				width:32px !important;
				height:32px !important;
				min-width:32px !important;
				max-width:32px !important;
			}
			button.hotspot-arrow svg { width:15px !important; height:15px !important; }
		}
		@media (max-width:500px) {
			.hotspot-box span, a.hotspot-box, .hotspot-box a span, .hotspot-box,
			.hotspot-label, .hotspot-label span {
				font-size:12px!important;
			}
		}
/* ============================================
 * erga_gallery_carousel
 * ============================================ */
.erga-gallery-carousel { width:100%; min-width:0; }

/* Το widget του shortcode να πιάνει πάντα όλο το πλάτος μέσα στο flex container */
.elementor-widget-shortcode:has(.erga-gallery-carousel) {
	width:100%; max-width:100%; align-self:stretch;
}

/* ---- HERO ----
 * Το ύψος το δίνει το ενεργό slide (in-flow), ΟΧΙ aspect-ratio στο .egc-hero --
 * έτσι το container ψηλώνει σωστά και όταν υπάρχει μόνο featured image (χωρίς thumbs). */
.erga-gallery-carousel .egc-hero { position:relative; overflow:hidden; background:#e5e7eb; border-radius:0; }

.erga-gallery-carousel .egc-hero-link {
	position:absolute; inset:0; display:block; opacity:0;
	transition:opacity .35s ease; pointer-events:none;
}
.erga-gallery-carousel .egc-hero-link.active {
	position:relative; inset:auto; opacity:1; pointer-events:auto;
}

.erga-gallery-carousel .egc-hero-image {
	width:100%; height:100%; aspect-ratio:16/9; object-fit:cover; display:block;
}
.erga-gallery-carousel .egc-hero-link.active .egc-hero-image { height:auto; }

.erga-gallery-carousel .egc-caption {
	position:absolute; bottom:14px; right:16px; z-index:2;
	background:rgba(0,0,0,.45); color:#fff; font-size:11px; font-weight:700;
	letter-spacing:.05em; text-transform:uppercase; padding:6px 12px;
}

/* ---- ARROWS ---- */
.erga-gallery-carousel button.egc-arrow {
	position:absolute !important;
	top:50% !important;
	transform:translateY(-50%) !important;
	z-index:3 !important;
	width:44px !important;
	height:44px !important;
	min-width:44px !important;
	max-width:44px !important;
	border-radius:50% !important;
	border:none !important;
	background:#ffffff !important;
	color:#110D45 !important;
	cursor:pointer !important;
	padding:0 !important;
	margin:0 !important;
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	appearance:none !important;
	-webkit-appearance:none !important;
	box-shadow:0 4px 14px rgba(0,0,0,.18) !important;
	transition:transform .15s ease, box-shadow .15s ease;
}
.erga-gallery-carousel button.egc-arrow:hover {
	transform:translateY(-50%) scale(1.06) !important;
	box-shadow:0 6px 18px rgba(0,0,0,.22) !important;
}
.erga-gallery-carousel button.egc-arrow svg { width:20px !important; height:20px !important; display:block !important; }
.erga-gallery-carousel .egc-hero-prev { left:14px !important; right:auto !important; }
.erga-gallery-carousel .egc-hero-next { right:14px !important; left:auto !important; }

/* ---- THUMBS ---- */
.erga-gallery-carousel .egc-thumbs-wrap { position:relative; margin-top:14px; }
.erga-gallery-carousel .egc-thumbs-track {
	display:flex; gap:12px; overflow-x:auto; scroll-behavior:smooth;
	scrollbar-width:none; width:100%;
}
.erga-gallery-carousel .egc-thumbs-track::-webkit-scrollbar { display:none; }

.erga-gallery-carousel button.egc-thumb {
	flex:0 0 calc((100% - 2.5 * 12px) / 3.5) !important;
	aspect-ratio:16/10;
	border-radius:0 !important;
	overflow:hidden !important;
	border:3px solid transparent !important;
	padding:0 !important;
	margin:0 !important;
	cursor:pointer !important;
	background:none !important;
	box-sizing:border-box !important;
	appearance:none !important;
	-webkit-appearance:none !important;
	box-shadow:none !important;
	display:block !important;
	transition:border-color .2s ease;
}
.erga-gallery-carousel button.egc-thumb.active { border-color:#10b981 !important; }
.erga-gallery-carousel .egc-thumb img {
	width:100% !important; height:100% !important;
	object-fit:cover !important; display:block !important;
	margin:0 !important; padding:0 !important;
}

.erga-gallery-carousel button.egc-thumbs-prev { left:8px !important; right:auto !important; }
.erga-gallery-carousel button.egc-thumbs-next { right:8px !important; left:auto !important; }

/* ---- MOBILE ---- */
@media (max-width:600px) {
	.erga-gallery-carousel button.egc-thumb { flex:0 0 calc((100% - 1.4 * 12px) / 2.4) !important; }
	.erga-gallery-carousel button.egc-arrow {
		width:32px !important;
		height:32px !important;
		min-width:32px !important;
		max-width:32px !important;
	}
	.erga-gallery-carousel button.egc-arrow svg { width:15px !important; height:15px !important; }
	.erga-gallery-carousel .egc-thumbs-track { gap:4px; }
	.erga-gallery-carousel .egc-thumbs-wrap { margin-top:6px; }
}
/* ============================================
 * erga_progress_gallery
 * ============================================ */
		.erga-progress-gallery { position:relative; }
		.erga-progress-gallery .epg-track {
			display:flex; gap:10px; overflow-x:auto; scroll-behavior:smooth;
			scrollbar-width:none; height:220px;
		}
		.erga-progress-gallery .epg-track::-webkit-scrollbar { display:none; }
		.erga-progress-gallery .epg-item {
			height:100% !important; flex:0 0 auto !important;
			display:block !important; margin:0 !important;
		}
		.erga-progress-gallery .epg-item img {
			height:100% !important; width:auto !important;
			object-fit:cover !important; display:block !important;
			margin:0 !important; border-radius:0 !important;
		}

		.erga-progress-gallery button.epg-arrow {
			position:absolute !important; top:50% !important; transform:translateY(-50%) !important;
			z-index:3 !important; width:44px !important; height:44px !important;
			min-width:44px !important; max-width:44px !important; border-radius:50% !important;
			border:none !important; background:#ffffff !important; color:#110D45 !important;
			cursor:pointer !important; padding:0 !important; margin:0 !important;
			display:flex !important; align-items:center !important; justify-content:center !important;
			appearance:none !important; -webkit-appearance:none !important;
			box-shadow:0 4px 14px rgba(0,0,0,.18) !important;
			transition:transform .15s ease, box-shadow .15s ease;
		}
		.erga-progress-gallery button.epg-arrow:hover {
			transform:translateY(-50%) scale(1.06) !important;
			box-shadow:0 6px 18px rgba(0,0,0,.22) !important;
		}
		.erga-progress-gallery button.epg-arrow svg { width:20px !important; height:20px !important; display:block !important; }
		.erga-progress-gallery .epg-prev { left:8px !important; }
		.erga-progress-gallery .epg-next { right:8px !important; }

		@media (max-width:600px) {
			.erga-progress-gallery .epg-track { height:150px; }
			.erga-progress-gallery button.epg-arrow { width:32px !important; height:32px !important; min-width:32px !important; max-width:32px !important; }
			.erga-progress-gallery button.epg-arrow svg { width:15px !important; height:15px !important; }
		}



.project-category-mellontika .epposty {
    opacity: 0.6;
    pointer-events: none;
    cursor: default;
    user-select: none;
}

.elementor-editor-active .project-category-mellontika .epposty {
    pointer-events: auto;
}

.project-category-mellontika .shop-label {
	display: none;
}

/* ===== Atomic Tabs – .newtab ===== */

/* Ρυθμίσεις (αντί για τα --n-tabs-* του Nested Tabs) */
.newtab {
    --tabs-title-color: #0C0D0E;
    --tabs-title-color-active: #0C0D0E;
    --tabs-title-font-size: 16px;
    --tabs-title-text-align: center;
    --tabs-title-gap: 30px;
    --tabs-heading-justify-content: flex-start;
    --tabs-border-color: var(--e-global-color-eca2a65);
    --tabs-border-color-active: var(--e-global-color-accent);
}

/* Heading / λίστα tabs (αντί για .e-n-tabs-heading) */
.newtab .e-tabs-menu-base {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    flex-shrink: 0;
    gap: var(--tabs-title-gap) !important;
    justify-content: var(--tabs-heading-justify-content);
    overflow-x: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.newtab .e-tabs-menu-base::-webkit-scrollbar {
    display: none;
}

/* Κουμπιά tabs – μη επιλεγμένα */
.newtab .e-tab-base {
    width: auto !important;
    flex-shrink: 0;
    padding: 0 !important;
    color: var(--tabs-title-color) !important;
    background: transparent !important;
    border-style: solid !important;
    border-width: 0 0 2px 0 !important;
    border-color: var(--tabs-border-color) !important;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease;
}

/* Κείμενο tab (αντί για .e-n-tab-title-text) */
.newtab .e-tab-base .e-paragraph-base {
    display: flex;
    align-items: center;
    color: inherit !important;
    font-size: var(--tabs-title-font-size);
    text-align: var(--tabs-title-text-align);
    white-space: nowrap;
}

/* Επιλεγμένο / hover / focus */
.newtab .e-tab-base.e--selected,
.newtab .e-tab-base[aria-selected="true"],
.newtab .e-tab-base:hover,
.newtab .e-tab-base:focus-visible {
    color: var(--tabs-title-color-active) !important;
    background: transparent !important;
    border-color: var(--tabs-border-color-active) !important;
}

/* Bold μόνο στο επιλεγμένο */
.newtab .e-tab-base.e--selected .e-paragraph-base,
.newtab .e-tab-base[aria-selected="true"] .e-paragraph-base {
    font-weight: 700;
}




/* ===== Image Carousel apoperatomena-gallery – caption on hover ===== */

.apoperatomena-gallery .swiper-slide-inner {
    position: relative;
    overflow: hidden;
    margin: 0;
}

.apoperatomena-gallery .swiper-slide-image {
    display: block;
    width: 100%;
    transition: transform .4s ease;
}

.apoperatomena-gallery .elementor-image-carousel-caption {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    margin: 0 !important;
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s ease, visibility .3s ease;
}

/* Hover (και focus για πληκτρολόγιο) */
.apoperatomena-gallery .swiper-slide a:hover .elementor-image-carousel-caption,
.apoperatomena-gallery .swiper-slide a:focus-visible .elementor-image-carousel-caption,
.apoperatomena-gallery .swiper-slide-inner:hover .elementor-image-carousel-caption {
    opacity: 1;
    visibility: visible;
}

/* Προαιρετικό: ελαφρύ zoom στην εικόνα στο hover */
.apoperatomena-gallery .swiper-slide-inner:hover .swiper-slide-image {
    transform: scale(1.05);
}

/* Σε touch συσκευές (χωρίς hover) το caption φαίνεται πάντα */
@media (hover: none) {
    .apoperatomena-gallery .elementor-image-carousel-caption {
        opacity: 1;
        visibility: visible;
    }
}


/* Αναγκάζει τα βελάκια του Elementor lightbox slideshow να είναι ΠΑΝΤΑ ορατά
   ΚΑΙ σωστά τοποθετημένα (κάθετα κεντραρισμένα, αριστερά/δεξιά), παρακάμπτοντας
   το auto-hide (.elementor-slideshow--ui-hidden). */
.elementor-lightbox .elementor-swiper-button {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
	z-index: 10000 !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	background-color: #ffffff !important;
	border-radius: 50% !important;
	width: 44px !important;
	height: 44px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.elementor-lightbox .elementor-swiper-button-prev {
	left: 20px !important;
	right: auto !important;
}
.elementor-lightbox .elementor-swiper-button-next {
	right: 20px !important;
	left: auto !important;
}

/* Το εσωτερικό SVG icon του Elementor εξαρτάται από ένα sprite ορισμών που
   φορτώνει ξεχωριστά και μερικές φορές αργεί/αποτυγχάνει -- το κρύβουμε και
   βάζουμε δικό μας σταθερό εικονίδιο -- λευκός κύκλος, σκούρο βελάκι (ίδιο στυλ με τα υπόλοιπα βελάκια του site). */
.elementor-lightbox .elementor-swiper-button svg.e-font-icon-svg {
	display: none !important;
}
.elementor-lightbox .elementor-swiper-button-prev::before,
.elementor-lightbox .elementor-swiper-button-next::before {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}
.elementor-lightbox .elementor-swiper-button-prev::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23110D45' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='19' y1='12' x2='5' y2='12'/%3E%3Cpolyline points='12 5 5 12 12 19'/%3E%3C/svg%3E");
}
.elementor-lightbox .elementor-swiper-button-next::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23110D45' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
}