/**
 * Union Profile - desktop header, output of [up_header] (inc/up-header.php).
 * Every selector is scoped under .up-header. Selectors use two or more classes so they beat Astra
 * and Elementor kit element styles (".elementor-kit-17398 button" gives every button an orange
 * background and 15px 25px padding) without !important.
 */

.up-header {
	--up-orange: #F05A28;
	--up-orange-dark: #D4471A;
	--up-dark: #1E1E1E;
	--up-text: #4A4A4A;
	--up-label: #5E5E5E;
	--up-light: #F5F5F5;
	--up-border: #E4E4E4;
	--up-strip: 40px;
	--up-row: 80px;
	--up-gutter: clamp(20px, 2.5vw, 40px);

	position: relative;
	z-index: 999;
	color: var(--up-dark);
	font-family: "Roboto", sans-serif;
	font-size: 16px;
	line-height: 1.4;
	text-align: left;
}

.up-header *,
.up-header *::before,
.up-header *::after {
	box-sizing: border-box;
}

.up-header ul,
.up-header p,
.up-header form {
	margin: 0;
	padding: 0;
}

.up-header ul,
.up-header li {
	list-style: none;
}

.up-header a {
	color: inherit;
	text-decoration: none;
	transition: color 0.15s, background-color 0.15s;
}

.up-header .up-header__icon {
	flex: none;
}

.up-header a:focus-visible,
.up-header button:focus-visible,
.up-header input:focus-visible {
	outline: 2px solid var(--up-orange);
	outline-offset: 2px;
}

.up-header .up-header__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.up-header .up-header__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 var(--up-gutter);
}

/* ===== Dark strip ===== */

.up-header .up-header__strip {
	height: var(--up-strip);
	background: var(--up-dark);
	color: #FFFFFF;
}

.up-header .up-header__strip-inner {
	display: flex;
	align-items: stretch;
	justify-content: flex-end;
	gap: 28px;
	height: 100%;
}

.up-header .up-header__utility {
	display: flex;
	align-items: center;
	font-size: 13px;
}

.up-header .up-header__utility:hover {
	color: var(--up-orange);
}

/* "Online Προσφορά": orange block, full strip height. */
.up-header .up-header__cta {
	display: flex;
	align-items: center;
	padding: 0 24px;
	background: var(--up-orange);
	color: #FFFFFF;
	font-size: 14px;
	font-weight: 700;
}

.up-header .up-header__cta:hover {
	background: var(--up-orange-dark);
	color: #FFFFFF;
}

/* ===== Main row ===== */

.up-header .up-header__main {
	position: relative;
	border-bottom: 1px solid var(--up-border);
	background: #FFFFFF;
}

.up-header .up-header__main-inner {
	display: flex;
	align-items: stretch;
	gap: clamp(16px, 2vw, 40px);
	height: var(--up-row);
}

.up-header .up-header__logo {
	display: flex;
	flex: none;
	align-items: center;
}

.up-header .up-header__logo-img {
	display: block;
	width: auto;
	max-width: none;
	height: 44px;
}

.up-header .up-header__nav {
	display: flex;
	flex: 1;
	min-width: 0;
}

.up-header .up-header__menu {
	display: flex;
	align-items: stretch;
}

.up-header .up-header__item {
	display: flex;
	margin: 0;
	padding: 0;
}

/* Top-level links and dropdown buttons look the same. */
.up-header .up-header__top-link,
.up-header .up-header__toggle {
	display: flex;
	align-items: center;
	gap: 4px;
	height: 100%;
	margin: 0;
	padding: 0 clamp(8px, 1vw, 16px);
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--up-dark);
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: color 0.15s, box-shadow 0.15s;
}

.up-header .up-header__top-link:hover,
.up-header .up-header__toggle:hover,
.up-header .up-header__toggle:focus,
.up-header .up-header__item.is-open > .up-header__toggle,
.up-header .up-header__item.is-current > .up-header__top-link,
.up-header .up-header__item.is-current > .up-header__toggle {
	background: transparent;
	box-shadow: inset 0 -3px 0 var(--up-orange);
	color: var(--up-orange);
}

/* Full-height items: draw the keyboard focus ring inside, or the top edge is cut off. */
.up-header .up-header__top-link:focus-visible,
.up-header .up-header__toggle:focus-visible {
	outline-offset: -4px;
}

.up-header .up-header__toggle .up-header__icon {
	transition: transform 0.15s;
}

.up-header .up-header__item.is-open > .up-header__toggle .up-header__icon {
	transform: rotate(180deg);
}

/* Search + ☰ */
.up-header .up-header__tools {
	display: flex;
	flex: none;
	align-items: center;
	gap: 4px;
	margin-left: auto;
}

.up-header .up-header__tool {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--up-dark);
}

.up-header .up-header__tool:hover,
.up-header .up-header__tool[aria-expanded="true"] {
	color: var(--up-orange);
}

/* ===== Dropdown panels ===== */

.up-header .up-header__panel {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	max-height: calc(100vh - var(--up-row) - var(--up-strip));
	overflow-x: hidden;
	overflow-y: auto;
	border-top: 1px solid var(--up-border);
	background: #FFFFFF;
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18);
}

/* JS: .is-open. Without JS (no .is-ready yet): open on hover/keyboard focus. */
.up-header .up-header__item.is-open > .up-header__panel,
.up-header:not(.is-ready) .up-header__item--panel:hover > .up-header__panel,
.up-header:not(.is-ready) .up-header__item--panel:focus-within > .up-header__panel {
	display: block;
}

.up-header .up-header__panel-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 32px var(--up-gutter) 36px;
}

/* Small dropdown under its item (Χρωματολόγια). */
.up-header .up-header__item--links {
	position: relative;
}

.up-header .up-header__panel--links {
	right: auto;
	min-width: 320px;
	max-height: none;
	padding: 12px 0;
}

.up-header .up-header__links--dropdown .up-header__link {
	padding: 10px 24px;
}

/* ===== Products panel: categories left, their links right ===== */

.up-header .up-header__panel-inner--products {
	--up-cats: 300px;

	position: relative;
	padding-top: 24px;
	padding-bottom: 24px;
}

.up-header .up-header__cats {
	width: var(--up-cats);
	min-height: 440px;
	border-right: 1px solid var(--up-border);
}

.up-header .up-header__cat {
	margin: 0;
	padding: 0;
}

.up-header .up-header__cat-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 16px 11px 18px;
	border-left: 3px solid transparent;
	color: var(--up-dark);
	font-size: 16px;
	font-weight: 700;
}

.up-header .up-header__cat-link .up-header__icon {
	color: var(--up-label);
}

.up-header .up-header__cat.is-active > .up-header__cat-link {
	border-left-color: var(--up-orange);
	background: var(--up-light);
	color: var(--up-orange);
}

.up-header .up-header__cat.is-active > .up-header__cat-link .up-header__icon {
	color: var(--up-orange);
}

/* The active category's links fill the area right of the list (positioned in the panel's inner box). */
.up-header .up-header__sub {
	display: none;
	position: absolute;
	top: 24px;
	right: var(--up-gutter);
	left: calc(var(--up-gutter) + var(--up-cats));
	padding: 8px 0 8px 48px;
}

.up-header .up-header__cat.is-active > .up-header__sub {
	display: flex;
	gap: 48px;
}

.up-header .up-header__sub-main {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 28px;
	min-width: 0;
}

.up-header .up-header__groups {
	display: flex;
	flex-wrap: wrap;
	gap: 28px 56px;
}

.up-header .up-header__group {
	min-width: 160px;
}

.up-header .up-header__group-title {
	margin-bottom: 8px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--up-orange);
	color: var(--up-label);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.up-header .up-header__links--cols {
	column-count: 2;
	column-gap: 48px;
}

.up-header .up-header__link-item {
	margin: 0;
	padding: 0;
	break-inside: avoid;
}

.up-header .up-header__link {
	display: block;
	padding: 7px 0;
	color: var(--up-dark);
	font-size: 15px;
	line-height: 1.3;
}

.up-header .up-header__link:hover {
	color: var(--up-orange);
}

/* "Όλα τα ... →" */
.up-header .up-header__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--up-orange);
	font-size: 15px;
	font-weight: 700;
}

.up-header .up-header__more:hover {
	color: var(--up-orange-dark);
}

.up-header .up-header__more .up-header__icon {
	transition: transform 0.15s;
}

.up-header .up-header__more:hover .up-header__icon {
	transform: translateX(3px);
}

.up-header .up-header__card {
	display: block;
	flex: none;
	width: 280px;
	align-self: flex-start;
}

.up-header .up-header__card-img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Bottom strip, full panel width. */
.up-header .up-header__panel-footer {
	border-top: 1px solid var(--up-border);
	background: var(--up-light);
}

.up-header .up-header__panel-footer-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: 1280px;
	height: 56px;
	margin: 0 auto;
	padding: 0 var(--up-gutter);
	font-size: 14px;
	font-weight: 700;
}

.up-header .up-header__footer-link,
.up-header .up-header__footer-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.up-header .up-header__footer-link:hover {
	color: var(--up-orange);
}

.up-header .up-header__footer-cta {
	color: var(--up-orange);
}

.up-header .up-header__footer-cta:hover {
	color: var(--up-orange-dark);
}

/* ===== Showrooms panel ===== */

.up-header .up-header__stores {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 32px;
}

.up-header .up-header__store {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* Store photo with the orange line under it (from the home page config). */
.up-header .up-header__store-media {
	overflow: hidden;
	aspect-ratio: 16 / 10;
	border-bottom: 2px solid var(--up-orange);
	background: var(--up-light);
}

.up-header .up-header__store-img {
	display: block;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s;
}

.up-header .up-header__store:hover .up-header__store-img {
	transform: scale(1.04);
}

/* Head office (no photo): the logo on a dark tile (its orange letters would vanish on orange). */
.up-header .up-header__store--tile .up-header__store-media {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--up-dark);
}

.up-header .up-header__store--tile .up-header__store-img {
	width: 70%;
	height: auto;
	object-fit: contain;
}

.up-header .up-header__store--tile:hover .up-header__store-img {
	transform: none;
}

.up-header .up-header__store-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}

.up-header .up-header__store-name {
	font-size: 16px;
	font-weight: 700;
}

.up-header .up-header__store-address {
	color: var(--up-text);
	font-size: 14px;
}

.up-header .up-header__store-phone {
	color: var(--up-dark);
	font-size: 14px;
	font-weight: 700;
}

.up-header .up-header__store-phone:hover {
	color: var(--up-orange);
}

.up-header .up-header__store .up-header__more {
	margin-top: 4px;
	font-size: 14px;
}

.up-header .up-header__hours {
	margin-top: 24px;
	color: var(--up-label);
	font-size: 14px;
}

/* ===== Search bar (under the main row) ===== */

.up-header .up-header__search {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	border-top: 1px solid var(--up-border);
	background: #FFFFFF;
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18);
}

.up-header .up-header__search[hidden] {
	display: none;
}

.up-header .up-header__search-form {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 960px;
	padding-top: 20px;
	padding-bottom: 20px;
}

.up-header .up-header__search-input {
	flex: 1;
	min-width: 0;
	height: 52px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--up-border);
	border-radius: 0;
	background: #FFFFFF;
	box-shadow: none;
	color: var(--up-dark);
	font-family: inherit;
	font-size: 17px;
}

.up-header .up-header__search-input:focus {
	border-color: var(--up-orange);
	outline: none;
}

.up-header .up-header__search-submit,
.up-header .up-header__search-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 52px;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font-family: inherit;
	font-weight: 700;
	cursor: pointer;
}

.up-header .up-header__search-submit {
	padding: 0 28px;
	background: var(--up-orange);
	color: #FFFFFF;
	font-size: 16px;
}

.up-header .up-header__search-submit:hover,
.up-header .up-header__search-submit:focus {
	background: var(--up-orange-dark);
	color: #FFFFFF;
}

.up-header .up-header__search-close {
	width: 52px;
	padding: 0;
	background: transparent;
	color: var(--up-dark);
}

.up-header .up-header__search-close:hover,
.up-header .up-header__search-close:focus {
	background: transparent;
	color: var(--up-orange);
}

/* ===== Sticky: the strip scrolls away, the main row stays on top =====
   CSS position: sticky cannot be used: Astra/Elementor set overflow-x: hidden on <html> and <body>.
   up-header.js adds .is-stuck once the strip has scrolled out of view (as Elementor's own sticky). */

.up-header.is-stuck {
	padding-bottom: calc(var(--up-row) + 1px); /* Keeps the page from jumping up. */
}

.up-header.is-stuck .up-header__main {
	position: fixed;
	top: var(--up-top, 0px);
	right: 0;
	left: 0;
	z-index: 999;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* WordPress admin bar (logged-in users) is fixed at the top, 32px tall on desktop. */
.admin-bar .up-header {
	--up-top: 32px;
}

/* Smaller laptops: tighter menu. */
@media (max-width: 1279px) {
	.up-header .up-header__logo-img {
		height: 38px;
	}

	.up-header .up-header__top-link,
	.up-header .up-header__toggle {
		font-size: 13px;
	}

	.up-header .up-header__panel-inner--products {
		--up-cats: 260px;
	}

	.up-header .up-header__sub {
		padding-left: 32px;
	}

	.up-header .up-header__card {
		display: none;
	}
}

/* Small laptops: all seven items must still fit beside the logo and the icons. */
@media (max-width: 1199px) {
	.up-header .up-header__main-inner {
		gap: 12px;
	}

	.up-header .up-header__logo-img {
		height: 34px;
	}

	.up-header .up-header__top-link,
	.up-header .up-header__toggle {
		padding: 0 7px;
		letter-spacing: 0;
	}

	.up-header .up-header__toggle .up-header__icon {
		display: none;
	}
}

/* ===== Mobile / tablet (below 1025px): slim bar. ☰ opens the slide-in menu on every width. ===== */

@media (max-width: 1024px) {
	.up-header {
		--up-row: 64px;
	}

	.up-header .up-header__strip,
	.up-header .up-header__nav {
		display: none;
	}

	.up-header .up-header__main-inner {
		gap: 8px;
	}

	.up-header .up-header__logo-img {
		height: 32px;
	}

	.up-header .up-header__tool {
		width: 48px;
		height: 48px;
	}

	.up-header .up-header__search-form {
		gap: 8px;
		padding-top: 12px;
		padding-bottom: 12px;
	}

	.up-header .up-header__search-input {
		height: 48px;
		font-size: 16px; /* 16px stops iOS from zooming in on focus. */
	}

	.up-header .up-header__search-submit,
	.up-header .up-header__search-close {
		height: 48px;
	}

	/* WordPress admin bar (logged-in users) is 46px here, and scrolls away below 601px. */
	.admin-bar .up-header {
		--up-top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .up-header {
		--up-top: 0px;
	}

	/* Icon only: the field already says "Αναζήτηση...". */
	.up-header .up-header__search-submit {
		width: 48px;
		padding: 0;
		font-size: 0;
	}
}

/* ☰ button (a <button>: reset the kit's orange button styles). */
.up-header .up-header__drawer-toggle,
.up-header .up-header__drawer-close {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--up-dark);
	cursor: pointer;
}

.up-header .up-header__drawer-toggle:hover,
.up-header .up-header__drawer-toggle:focus,
.up-header .up-header__drawer-close:hover,
.up-header .up-header__drawer-close:focus {
	background: transparent;
	color: var(--up-orange);
}

/* Page behind the open menu does not scroll. */
html.up-drawer-open {
	overflow: hidden;
}

.up-header .up-header__backdrop {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(30, 30, 30, 0.5);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s, visibility 0s 0.25s;
}

.up-header .up-header__drawer {
	position: fixed;
	top: var(--up-top, 0px);
	right: 0;
	bottom: 0;
	z-index: 1001;
	display: flex;
	flex-direction: column;
	width: min(420px, 100%);
	background: #FFFFFF;
	box-shadow: -16px 0 32px rgba(0, 0, 0, 0.18);
	transform: translateX(100%);
	visibility: hidden; /* Closed: nothing inside can be focused or read out. */
	transition: transform 0.25s ease, visibility 0s 0.25s;
}

.up-header.has-drawer .up-header__drawer {
	transform: none;
	visibility: visible;
	transition: transform 0.25s ease;
}

.up-header.has-drawer .up-header__backdrop {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.25s;
}

.up-header .up-header__drawer-head {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: space-between;
	height: 64px;
	padding: 0 8px 0 20px;
	border-bottom: 1px solid var(--up-border);
}

.up-header .up-header__drawer-title {
	color: var(--up-label);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.up-header .up-header__drawer-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
}

.up-header .up-header__drawer-body {
	flex: 1;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.up-header .up-header__m-item {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--up-border);
}

/* Top level: links and accordion buttons look the same. */
.up-header .up-header__m-top,
.up-header .up-header__m-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 12px 20px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--up-dark);
	font-family: inherit;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
}

.up-header .up-header__m-top:hover,
.up-header .up-header__m-toggle:hover,
.up-header .up-header__m-toggle:focus,
.up-header .up-header__m-toggle[aria-expanded="true"] {
	background: transparent;
	color: var(--up-orange);
}

.up-header .up-header__m-toggle .up-header__icon {
	color: var(--up-label);
	transition: transform 0.2s;
}

.up-header .up-header__m-toggle[aria-expanded="true"] .up-header__icon {
	color: var(--up-orange);
	transform: rotate(180deg);
}

.up-header .up-header__m-panel[hidden] {
	display: none;
}

.up-header .up-header__m-panel {
	padding-bottom: 12px;
}

/* Second level (categories inside "Προϊόντα"). */
.up-header .up-header__m-sub {
	margin: 0 20px;
	border-top: 1px solid var(--up-border);
}

.up-header .up-header__m-item--sub:last-child {
	border-bottom: 0;
}

.up-header .up-header__m-item--sub > .up-header__m-toggle {
	min-height: 48px;
	padding: 10px 0;
	font-size: 16px;
	font-weight: 500;
}

.up-header .up-header__m-item--sub > .up-header__m-panel {
	padding: 4px 0 16px 14px;
	border-left: 2px solid var(--up-orange);
}

.up-header .up-header__m-item--all {
	padding: 16px 0 4px;
}

.up-header .up-header__m-group {
	margin: 10px 0 2px;
	color: var(--up-label);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.up-header .up-header__m-links {
	margin: 0 0 8px;
}

.up-header .up-header__m-panel > .up-header__m-links {
	padding: 0 20px;
}

.up-header .up-header__m-item--sub .up-header__m-links {
	padding: 0;
}

.up-header .up-header__m-link {
	display: block;
	padding: 9px 0;
	color: var(--up-text);
	font-size: 15px;
	line-height: 1.35;
}

.up-header .up-header__m-link:hover {
	color: var(--up-orange);
}

.up-header .up-header__m-panel .up-header__more {
	margin-top: 6px;
}

/* Showrooms inside the menu: one store per row. */
.up-header .up-header__m-panel .up-header__stores {
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	padding: 4px 20px 0;
}

/* Mobile menu: small photo beside each store. */
.up-header .up-header__m-panel .up-header__store {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	align-items: start;
	gap: 14px;
}

.up-header .up-header__m-panel .up-header__store-media {
	aspect-ratio: 4 / 3;
}

.up-header .up-header__m-panel .up-header__hours {
	margin-top: 16px;
	padding: 0 20px;
}

.up-header .up-header__drawer-foot {
	flex: none;
	padding: 16px 20px calc(16px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--up-border);
	background: var(--up-light);
}

/* "Online Προσφορά": full-width button, square corners. */
.up-header .up-header__m-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	background: var(--up-orange);
	color: #FFFFFF;
	font-size: 16px;
	font-weight: 700;
}

.up-header .up-header__m-cta:hover {
	background: var(--up-orange-dark);
	color: #FFFFFF;
}

.up-header .up-header__m-metas {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 16px;
	margin-top: 14px;
}

.up-header .up-header__m-meta {
	color: var(--up-dark);
	font-size: 15px;
	font-weight: 700;
}

.up-header .up-header__m-meta:hover {
	color: var(--up-orange);
}

@media (prefers-reduced-motion: reduce) {
	.up-header *,
	.up-header *::before,
	.up-header *::after {
		transition: none;
	}
}
