/* ==========================================================================
   Emporiapolis — header.css
   Top ribbon, sticky nav, services mega menu, mobile fullscreen menu.
   Mirrors Next.js header.tsx (header is always "solid").
   ========================================================================== */

/* ──────────────────────────────────────
   Top info ribbon (desktop only)
   ────────────────────────────────────── */
.emp-ribbon {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 60;
	height: var(--emp-ribbon-h);
	background: var(--emp-navy);
	color: rgba(255, 255, 255, 0.65);
	font-size: 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
@media (min-width: 768px) {
	.emp-ribbon { display: flex; align-items: center; justify-content: center; }
}
.emp-ribbon__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: var(--emp-container);
	padding-inline: clamp(1.5rem, 4vw, 3rem);
}
.emp-ribbon__status { display: inline-flex; align-items: center; gap: 0.75rem; }
.emp-ribbon__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.45);
}
.emp-ribbon__badge {
	font-size: 10.5px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.55);
	font-weight: 600;
}
.emp-ribbon__sep { color: rgba(255, 255, 255, 0.3); }
.emp-ribbon__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: color 0.3s var(--emp-ease);
}
.emp-ribbon__phone:hover { color: #fff; }

/* ──────────────────────────────────────
   Sticky header
   ────────────────────────────────────── */
.emp-header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 50;
	transition: box-shadow 0.4s var(--emp-ease), background-color 0.4s var(--emp-ease);
}
@media (min-width: 768px) {
	.emp-header { top: var(--emp-ribbon-h); }
}
.emp-header--solid {
	background: rgba(255, 255, 255, 0.85);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
	border-bottom: 1px solid var(--emp-border-warm);
}
.emp-header.is-scrolled {
	box-shadow: 0 8px 30px -16px rgba(11, 21, 51, 0.18);
}

.emp-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: var(--emp-container);
	margin-inline: auto;
	height: 64px;
	padding-inline: 1rem;
}
@media (min-width: 768px) {
	.emp-nav { height: var(--emp-header-h); padding-inline: 2rem; }
}

/* ── Logo ── */
.emp-logo { display: inline-flex; align-items: center; gap: 0.625rem; }
.emp-logo__chip {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	overflow: hidden;
}
.emp-logo__mark { width: 28px; height: 28px; object-fit: contain; }
.emp-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.emp-logo__name {
	font-family: var(--emp-font-display);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--emp-navy);
}
@media (min-width: 768px) { .emp-logo__name { font-size: 17px; } }
.emp-logo__sub {
	font-size: 10px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--emp-muted);
}

/* ── Desktop nav list ── */
.emp-nav__list { display: none; align-items: center; gap: 0.25rem; }
@media (min-width: 1024px) { .emp-nav__list { display: flex; } }

.emp-nav__item { position: relative; }
.emp-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.625rem 1rem;
	font-size: 14px;
	font-weight: 500;
	color: var(--emp-body);
	border-radius: 999px;
	transition: color 0.25s var(--emp-ease), background-color 0.25s var(--emp-ease);
}
.emp-nav__link:hover { color: var(--emp-navy); background: var(--emp-surface-2); }
.emp-nav__link.is-active { color: var(--emp-navy); background: var(--emp-surface-2); }
.emp-nav__chevron { transition: transform 0.3s var(--emp-ease); }
.emp-nav__item--has-mega:hover .emp-nav__chevron { transform: rotate(180deg); }

/* ── Mega menu ── */
.emp-mega {
	position: absolute;
	top: 100%;
	left: 0;
	padding-top: 0.75rem;
	opacity: 0;
	transform: translateY(-0.5rem);
	pointer-events: none;
	transition: opacity 0.3s var(--emp-ease), transform 0.3s var(--emp-ease);
}
.emp-nav__item--has-mega:hover .emp-mega,
.emp-nav__item--has-mega:focus-within .emp-mega {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.emp-mega__inner {
	width: 640px;
	background: #fff;
	border-radius: 28px;
	border: 1px solid var(--emp-border-warm);
	box-shadow: 0 30px 60px -20px rgba(11, 21, 51, 0.25);
	overflow: hidden;
}
.emp-mega__grid {
	display: grid;
	grid-template-columns: 1fr 1fr 220px;
}
.emp-mega__col {
	padding: 1.25rem;
	border-right: 1px solid var(--emp-border-soft);
}
.emp-mega__label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--emp-muted);
	font-weight: 600;
	margin: 0 0 0.75rem;
	padding-inline: 0.5rem;
}
.emp-mega__links { display: flex; flex-direction: column; gap: 0.125rem; }
.emp-mega__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.625rem 0.75rem;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--emp-body);
	border-radius: 12px;
	transition: color 0.25s var(--emp-ease), background-color 0.25s var(--emp-ease);
}
.emp-mega__link:hover { color: var(--emp-navy); background: var(--emp-surface-2); }
.emp-mega__arrow {
	color: var(--emp-blue);
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity 0.25s var(--emp-ease), transform 0.25s var(--emp-ease);
	flex-shrink: 0;
}
.emp-mega__link:hover .emp-mega__arrow { opacity: 1; transform: translateX(0); }

.emp-mega__featured {
	background: var(--emp-navy);
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	color: #fff;
}
.emp-mega__featured-label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: rgba(255, 255, 255, 0.55);
	font-weight: 600;
	margin: 0 0 0.5rem;
}
.emp-mega__featured-title {
	font-family: var(--emp-font-display);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.01em;
	margin: 0 0 1rem;
}
.emp-mega__featured-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: #fff;
	color: var(--emp-navy);
	font-size: 12.5px;
	font-weight: 600;
	padding: 0.625rem 1rem;
	border: none;
	border-radius: 999px;
	transition: background-color 0.25s var(--emp-ease);
}
.emp-mega__featured-btn:hover { background: var(--emp-surface-2); }

/* ── Desktop right actions ── */
.emp-nav__actions { display: none; align-items: center; gap: 0.5rem; }
@media (min-width: 1024px) { .emp-nav__actions { display: flex; } }

.emp-lang-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	min-height: 40px;
	padding: 0.5rem 0.75rem;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--emp-body);
	background: transparent;
	border: none;
	border-radius: 999px;
	transition: color 0.25s var(--emp-ease), background-color 0.25s var(--emp-ease);
}
.emp-lang-btn:hover { color: var(--emp-navy); background: var(--emp-surface-2); }

/* ── Mobile right actions ── */
.emp-mobile-actions { display: flex; align-items: center; gap: 0.5rem; }
@media (min-width: 1024px) { .emp-mobile-actions { display: none; } }

.emp-lang-btn--mobile {
	min-width: 42px;
	min-height: 42px;
	justify-content: center;
	padding: 0;
	color: var(--emp-body);
	background: var(--emp-surface-2);
	border: 1px solid var(--emp-border-warm);
}

.emp-burger {
	min-width: 42px;
	min-height: 42px;
	display: grid;
	place-items: center;
	color: var(--emp-navy);
	background: var(--emp-surface-2);
	border: 1px solid var(--emp-border-warm);
	border-radius: 999px;
}
.emp-burger__box { position: relative; width: 20px; height: 20px; }
.emp-burger__open,
.emp-burger__close {
	position: absolute;
	inset: 0;
	transition: opacity 0.3s var(--emp-ease), transform 0.3s var(--emp-ease);
}
.emp-burger__close { opacity: 0; transform: rotate(-90deg) scale(0.75); }
.emp-burger.is-open .emp-burger__open { opacity: 0; transform: rotate(90deg) scale(0.75); }
.emp-burger.is-open .emp-burger__close { opacity: 1; transform: rotate(0) scale(1); }

/* ──────────────────────────────────────
   Mobile fullscreen menu
   ────────────────────────────────────── */
.emp-mobile-menu {
	position: fixed;
	inset: 0;
	top: 64px;
	z-index: 40;
	background: var(--emp-navy);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s var(--emp-ease);
}
.emp-mobile-menu.is-open { opacity: 1; pointer-events: auto; }
@media (min-width: 1024px) { .emp-mobile-menu { display: none; } }

.emp-mobile-menu__scroll { height: 100%; overflow-y: auto; }
.emp-mobile-menu__nav {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 2rem 1.5rem;
}

.emp-mobile-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 1rem 0;
	font-family: var(--emp-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #fff;
	background: transparent;
	border: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	text-align: left;
	transition: color 0.25s var(--emp-ease);
}
.emp-mobile-link:hover { color: rgba(255, 255, 255, 0.7); }

.emp-mobile-accordion__chevron { transition: transform 0.3s var(--emp-ease); }
.emp-mobile-accordion.is-open .emp-mobile-accordion__chevron { transform: rotate(180deg); }
.emp-mobile-accordion__panel {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height 0.4s var(--emp-ease), opacity 0.4s var(--emp-ease);
}
.emp-mobile-accordion.is-open .emp-mobile-accordion__panel {
	max-height: 800px;
	opacity: 1;
}
.emp-mobile-accordion__inner { padding: 0.75rem 0 0.75rem 0.5rem; }

.emp-mobile-sublabel {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: rgba(255, 255, 255, 0.45);
	font-weight: 600;
	padding: 1rem 0 0.5rem;
	margin: 0;
}
.emp-mobile-sublabel:first-child { padding-top: 0.5rem; }
.emp-mobile-sublink {
	display: block;
	padding: 0.625rem 0;
	font-size: 15px;
	color: rgba(255, 255, 255, 0.8);
	transition: color 0.25s var(--emp-ease);
}
.emp-mobile-sublink:hover { color: #fff; }
.emp-mobile-viewall {
	display: inline-block;
	margin-top: 0.75rem;
	padding: 0.625rem 0;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	width: fit-content;
}

.emp-mobile-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 2rem;
	width: 100%;
	min-height: 56px;
	padding: 1rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--emp-navy);
	background: #fff;
	border: none;
	border-radius: 999px;
	transition: background-color 0.25s var(--emp-ease);
}
.emp-mobile-cta:hover { background: var(--emp-surface-2); }
.emp-mobile-call {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
	width: 100%;
	min-height: 56px;
	padding: 1rem;
	font-size: 1rem;
	font-weight: 500;
	color: #fff;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 999px;
	transition: background-color 0.25s var(--emp-ease);
}
.emp-mobile-call:hover { background: rgba(255, 255, 255, 0.05); }

/* Lock body scroll when mobile menu open */
body.emp-menu-open { overflow: hidden; }
