/* Lélek Liquid Glass Header — alapstílus. Minden érték CSS változó, amit az Elementor felülír. */

.llg-root {
	--llg-glass-1: rgba(255, 255, 255, 0.58);
	--llg-glass-2: rgba(255, 255, 255, 0.32);
	--llg-border-c: rgba(255, 255, 255, 0.8);
	--llg-border-w: 1px;
	--llg-radius: 999px;
	--llg-blur: 20px;
	--llg-sat: 150%;
	--llg-shadow: 0 12px 30px rgba(23, 52, 58, 0.1);
	--llg-gap: 20px;
	--llg-max: 1240px;
	--llg-glow-c: #4fc5ce;
	--llg-glow-size: 220px;
	--llg-glow-blur: 13px;
	--llg-glow-op: 0.32;
	--llg-item-radius: 999px;
	--llg-sub-offset: 12px;

	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.llg-root *,
.llg-root *::before,
.llg-root *::after {
	box-sizing: border-box;
}

.llg-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--llg-gap);
	width: 100%;
	max-width: var(--llg-max);
	margin-left: auto;
	margin-right: auto;
}

/* --- Üveglap --- */
.llg-panel {
	position: relative;
	background: linear-gradient(180deg, var(--llg-glass-1), var(--llg-glass-2));
	border: var(--llg-border-w) solid var(--llg-border-c);
	border-radius: var(--llg-radius);
	-webkit-backdrop-filter: blur(var(--llg-blur)) saturate(var(--llg-sat));
	backdrop-filter: blur(var(--llg-blur)) saturate(var(--llg-sat));
	box-shadow: var(--llg-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

/* A fény csak a saját lapján belül látszik — külön vágóréteg, hogy az almenü ne csonkuljon. */
.llg-glow-wrap {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

.llg-glow {
	position: absolute;
	top: 0;
	left: 0;
	width: var(--llg-glow-size);
	height: var(--llg-glow-size);
	margin-top: calc(var(--llg-glow-size) / -2);
	margin-left: calc(var(--llg-glow-size) / -2);
	border-radius: 50%;
	background: radial-gradient(circle, var(--llg-glow-c) 0%, rgba(255, 255, 255, 0) 70%);
	filter: blur(var(--llg-glow-blur));
	opacity: 0;
	transform: translate3d(-9999px, 0, 0);
	transition: opacity 0.28s ease;
	will-change: transform, opacity;
}

.llg-glow.is-on {
	opacity: var(--llg-glow-op);
}

@media (prefers-reduced-motion: reduce) {
	.llg-glow { transition: none; }
}

/* --- Logó --- */
.llg-logo-panel {
	display: flex;
	align-items: center;
	padding: 13px 26px;
	flex: 0 0 auto;
}

.llg-logo {
	position: relative;
	z-index: 1;
	display: inline-flex;
	flex-direction: column;
	gap: 2px;
	text-decoration: none;
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 21px;
	letter-spacing: 0.16em;
	line-height: 1.1;
	color: #16292d;
}

.llg-logo:hover,
.llg-logo:focus { color: inherit; }

.llg-tagline {
	font-family: inherit;
	font-size: 9px;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: #7b9095;
}

/* --- Menülap --- */
.llg-nav-panel {
	display: flex;
	align-items: center;
	padding: 9px 10px;
	flex: 0 1 auto;
	min-width: 0;
}

.llg-menu {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex-wrap: nowrap;
}

.llg-item { position: relative; display: flex; }

.llg-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 14px;
	border: 1px solid transparent;
	border-radius: var(--llg-item-radius);
	font-family: inherit;
	font-size: 13.5px;
	letter-spacing: 0.05em;
	line-height: 1.2;
	color: #43585c;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.llg-link:hover,
.llg-item.is-open > .llg-link {
	background: rgba(255, 255, 255, 0.5);
	border-color: rgba(255, 255, 255, 0.7);
	color: #186871;
}

.llg-link.is-active {
	background: rgba(255, 255, 255, 0.52);
	border-color: rgba(255, 255, 255, 0.75);
	color: #16292d;
}

.llg-root a:focus-visible,
.llg-root button:focus-visible {
	outline: 2px solid var(--llg-glow-c);
	outline-offset: 2px;
}

/* CTA */
.llg-link.llg-cta {
	padding: 11px 20px;
	font-size: 12.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #12545c;
	border-color: rgba(79, 197, 206, 0.45);
	background: linear-gradient(180deg, rgba(111, 208, 220, 0.2), rgba(63, 169, 182, 0.1));
}

.llg-link.llg-cta:hover {
	background: linear-gradient(180deg, rgba(111, 208, 220, 0.5), rgba(63, 169, 182, 0.3));
	color: #0b3a40;
	border-color: rgba(79, 197, 206, 0.7);
}

/* Nyíl */
.llg-caret {
	width: 8px;
	height: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translate(-1px, -1px);
	opacity: 0.6;
	transition: transform 0.25s ease;
	flex: 0 0 auto;
}

.llg-item.is-open > .llg-link .llg-caret { transform: rotate(-135deg) translate(-2px, -2px); }

/* --- Almenü --- */
.llg-sub {
	position: absolute;
	top: calc(100% + var(--llg-sub-offset));
	left: 50%;
	z-index: 20;
	display: none;
	flex-direction: column;
	gap: 2px;
	min-width: 210px;
	margin: 0;
	padding: 10px;
	list-style: none;
	border-radius: 18px;
	transform: translateX(-50%);
}

@keyframes llg-sub-in {
	from { opacity: 0; transform: translateX(-50%) translateY(8px); }
	to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.llg-item.has-sub::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: var(--llg-sub-offset);
}

/* Kurzorfény az almenüben (CSS változóval, hogy a lista markupja érvényes maradjon) */
.llg-sub {
	overflow: hidden;
}

.llg-sub::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: var(--llg-glow-size);
	height: var(--llg-glow-size);
	margin-top: calc(var(--llg-glow-size) / -2);
	margin-left: calc(var(--llg-glow-size) / -2);
	border-radius: 50%;
	background: radial-gradient(circle, var(--llg-glow-c) 0%, rgba(255, 255, 255, 0) 70%);
	filter: blur(var(--llg-glow-blur));
	opacity: 0;
	transform: translate3d(var(--llg-gx, -9999px), var(--llg-gy, 0px), 0);
	transition: opacity 0.28s ease;
	pointer-events: none;
	z-index: 0;
}

.llg-sub.is-glow::after { opacity: var(--llg-glow-op); }

.llg-sub .llg-link { position: relative; z-index: 1; }

.llg-item:hover > .llg-sub,
.llg-item:focus-within > .llg-sub,
.llg-item.is-open > .llg-sub {
	display: flex;
	animation: llg-sub-in 0.24s ease both;
}

.llg-sub .llg-link {
	width: 100%;
	justify-content: flex-start;
	border-radius: 12px;
	white-space: normal;
}

.llg-sub-item { display: flex; }

/* --- Hamburger --- */
.llg-burger {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 5px;
	flex-direction: column;
	width: 48px;
	height: 48px;
	padding: 0;
	cursor: pointer;
	flex: 0 0 auto;
	-webkit-appearance: none;
	appearance: none;
}

.llg-burger .llg-bar {
	position: relative;
	z-index: 1;
	display: block;
	width: 18px;
	height: 1.5px;
	border-radius: 2px;
	background: #16292d;
	transition: transform 0.28s ease, opacity 0.2s ease;
}

.llg-root.is-open .llg-burger .llg-bar:nth-child(2) { transform: translateY(6.5px) rotate(45deg); }
.llg-root.is-open .llg-burger .llg-bar:nth-child(3) { opacity: 0; }
.llg-root.is-open .llg-burger .llg-bar:nth-child(4) { transform: translateY(-6.5px) rotate(-45deg); }

/* Görgetés-viselkedés */
.llg-root.llg-sticky {
	position: sticky;
	top: 0;
	z-index: 999;
	transition: transform 0.35s ease;
}

.llg-root.llg-sticky.is-hidden { transform: translateY(-140%); }


/* ------------------------------------------------------------------
   Téma-felülírás elleni védelem.
   Sok WordPress sablon globális ul/li/a/button szabályokat tol a fejlécre
   (margó, padding, sormagasság, display, width) — ettől csúszott szét a
   publikált oldalon. Itt mindent visszaállítunk a saját értékeinkre.
   ------------------------------------------------------------------ */

.llg-root,
.llg-root .llg-inner,
.llg-root .llg-panel,
.llg-root .llg-menu,
.llg-root .llg-item,
.llg-root .llg-sub,
.llg-root .llg-sub-item,
.llg-root .llg-link,
.llg-root .llg-logo,
.llg-root .llg-burger {
	margin: 0;
	padding: 0;
	list-style: none !important;
	text-indent: 0;
	float: none !important;
	clear: none !important;
	max-width: none;
	box-shadow: none;
}

.llg-root .llg-menu::before,
.llg-root .llg-menu::after,
.llg-root .llg-item::before,
.llg-root .llg-item::after,
.llg-root .llg-sub::before,
.llg-root .llg-sub::after,
.llg-root .llg-sub-item::before,
.llg-root .llg-sub-item::after,
.llg-root .llg-link::before,
.llg-root .llg-link::after {
	content: none !important;
	display: none !important;
}

.llg-root .llg-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: var(--llg-gap);
	width: 100%;
	max-width: var(--llg-max);
	margin-left: auto !important;
	margin-right: auto !important;
	min-width: 0;
}

.llg-root .llg-panel {
	box-shadow: var(--llg-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.9);
	border: var(--llg-border-w) solid var(--llg-border-c);
	border-radius: var(--llg-radius);
	background: linear-gradient(180deg, var(--llg-glass-1), var(--llg-glass-2));
	align-self: center !important;
	height: auto !important;
	min-height: 0 !important;
	line-height: normal;
}

.llg-root .llg-logo-panel {
	display: flex !important;
	align-items: center !important;
	flex: 0 0 auto !important;
	width: auto !important;
	padding: 13px 26px;
}

html body .llg-root .llg-nav-panel {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex: 0 1 auto !important;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	align-self: center !important;
	padding: 9px 10px;
}

html body .llg-root .llg-menu {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 6px;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	line-height: 1.2;
}

html body .llg-root .llg-item {
	flex: 0 0 auto !important;
	height: auto !important;
	min-height: 0 !important;
}

.llg-root .llg-item {
	display: flex !important;
	align-items: center !important;
	position: relative;
	width: auto !important;
	border: 0;
	background: none;
}

.llg-root .llg-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	padding: 9px 14px;
	line-height: 1.2 !important;
	text-transform: none;
	text-decoration: none !important;
	background-image: none;
	border-radius: var(--llg-item-radius);
	font-family: inherit;
}

.llg-root .llg-link.llg-cta {
	padding: 11px 20px;
	text-transform: uppercase;
}

/* Zárt almenü: semmilyen sablonszabály ne hozhassa vissza a layoutba. */
html body .llg-root .llg-item.has-sub > .llg-sub {
	display: none !important;
	position: absolute !important;
	top: calc(100% + var(--llg-sub-offset)) !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 20 !important;
	width: auto !important;
	height: auto !important;
	max-height: none !important;
	margin: 0 !important;
	float: none !important;
	transform: translateX(-50%);
}

html body .llg-root .llg-item.has-sub:hover > .llg-sub,
html body .llg-root .llg-item.has-sub:focus-within > .llg-sub,
html body .llg-root .llg-item.has-sub.is-open > .llg-sub {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 2px;
	padding: 10px;
	min-width: 210px;
}

.llg-root .llg-sub .llg-link {
	width: 100% !important;
	justify-content: flex-start !important;
	white-space: normal;
}

.llg-root .llg-sub-item {
	display: flex !important;
	width: 100% !important;
}

.llg-root .llg-burger {
	background: linear-gradient(180deg, var(--llg-glass-1), var(--llg-glass-2));
	border: var(--llg-border-w) solid var(--llg-border-c);
	line-height: 0;
	min-width: 0;
	text-transform: none;
	letter-spacing: normal;
}

.llg-root .llg-glow-wrap,
.llg-root .llg-glow {
	margin: 0;
	padding: 0;
}

.llg-root .llg-glow {
	margin-top: calc(var(--llg-glow-size) / -2);
	margin-left: calc(var(--llg-glow-size) / -2);
}

.llg-root .llg-burger .llg-bar {
	width: 18px;
	height: 1.5px;
	margin: 0;
	padding: 0;
	border-radius: 2px;
}

/* Hosszabb menüsor ne lógjon ki: szükség esetén tördeljen, ne nyúljon szét */
@media (min-width: 1025px) {
	.llg-root .llg-menu { flex-wrap: nowrap !important; }
}

/* Logó képként (1.5.0) — a logólap magassága változatlan marad */
html body .llg-root .llg-logo.has-img { display: inline-flex !important; flex-direction: column; align-items: flex-start; gap: 4px; line-height: 1 !important; letter-spacing: 0 !important; text-decoration: none !important; padding: 0 !important; background: none !important; }
html body .llg-root .llg-logo.has-img .llg-logo-img {
	display: block !important;
	height: var(--llg-logo-h, 44px) !important;
	width: auto !important;
	max-width: 100% !important;
	margin: calc((var(--llg-logo-h, 44px) - var(--llg-logo-keep, 23px)) / -2) 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
@media (max-width: 768px) {
	html body .llg-root .llg-logo.has-img .llg-logo-img { height: var(--llg-logo-h, 39px) !important; margin: calc((var(--llg-logo-h, 39px) - var(--llg-logo-keep, 23px)) / -2) 0 !important; }
}

/* 1.5.1 — tablet alapérték (Elementor felülírja, ha állítod) */
@media (min-width: 769px) and (max-width: 1024px) {
	html body .llg-root .llg-logo.has-img .llg-logo-img { height: var(--llg-logo-h, 42px) !important; margin: calc((var(--llg-logo-h, 42px) - var(--llg-logo-keep, 23px)) / -2) 0 !important; }
}

/* 1.5.1 — nagyon keskeny telefonon (≤ 380 px) a logó arányosan kisebb, hogy a 3 vonal ne lógjon ki */
@media (max-width: 380px) {
	html body .llg-root .llg-logo.has-img .llg-logo-img {
		height: min(var(--llg-logo-h, 39px), calc((100vw - 160px) / 4.54)) !important;
		margin: calc((min(var(--llg-logo-h, 39px), calc((100vw - 160px) / 4.54)) - var(--llg-logo-keep, 23px)) / -2) 0 !important;
	}
}
