/**
 * Layout shell — container, header, footer, main, cookie banner
 */

.teya-container {
	width: min(100%, var(--teya-container-max));
	max-width: var(--teya-container-max);
	margin-inline: auto;
	padding-inline: var(--teya-gutter);
}

/* Header */
.teya-site-header {
	position: sticky;
	top: 0;
	z-index: var(--teya-z-sticky-header);
	background: rgba(10, 10, 10, 0.55);
	border-bottom: 1px solid transparent;
	isolation: isolate;
	transition:
		background var(--teya-duration-base) var(--teya-easing),
		border-color var(--teya-duration-base) var(--teya-easing);
}

.teya-site-header::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background: rgba(10, 10, 10, 0);
	backdrop-filter: blur(0);
	-webkit-backdrop-filter: blur(0);
	transition:
		background var(--teya-duration-base) var(--teya-easing),
		backdrop-filter var(--teya-duration-base) var(--teya-easing);
}

.teya-site-header.is-scrolled {
	background: transparent;
	border-bottom: var(--teya-shadow-header);
}

.teya-site-header.is-scrolled::before {
	background: var(--teya-color-surface-overlay);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

.teya-site-header__shell {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: 'brand nav utilities';
	align-items: center;
	gap: var(--teya-space-md);
	min-height: var(--teya-header-height);
	padding-block: var(--teya-space-sm);
}

.teya-site-header__brand {
	grid-area: brand;
	min-width: 0;
	flex-shrink: 0;
}

.teya-site-header__logo {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	color: inherit;
	text-decoration: none;
	line-height: 0;
}

.teya-site-header__logo-img {
	display: block;
	height: 40px;
	width: auto;
	max-width: min(196px, 44vw);
}

.teya-custom-logo-link,
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.custom-logo,
.teya-custom-logo {
	display: block;
	height: 40px;
	width: auto;
	max-width: min(196px, 44vw);
}

.teya-nav--primary {
	grid-area: nav;
	display: flex;
	justify-content: center;
	justify-self: center;
	min-width: 0;
	max-width: 100%;
}

.teya-site-header__utilities {
	grid-area: utilities;
	display: flex;
	align-items: center;
	gap: var(--teya-space-sm);
	flex-shrink: 0;
	justify-self: end;
	min-width: 0;
}

.teya-lang-switcher {
	flex-shrink: 0;
	font-size: var(--teya-text-label-sm);
}

.teya-lang-switcher a,
.teya-lang-switcher .trp-language-switcher a {
	color: var(--teya-color-on-background-muted);
	text-decoration: none;
	padding: var(--teya-space-xs) var(--teya-space-sm);
	min-height: var(--teya-touch-target);
	display: inline-flex;
	align-items: center;
}

.teya-lang-switcher a:hover,
.teya-lang-switcher a:focus-visible {
	color: var(--teya-color-secondary);
}

.teya-site-header__cta-btn {
	white-space: normal;
	text-align: center;
	padding: var(--teya-btn-padding-y) var(--teya-btn-padding-x);
	font-size: var(--teya-text-label-md);
	min-height: var(--teya-btn-min-height);
	min-width: var(--teya-btn-min-width);
	max-width: 14rem;
}

.teya-site-header__cta-label {
	display: inline-block;
	line-height: 1.2;
}

.teya-mobile-nav__footer {
	display: none;
}

.teya-site-header__overlay {
	display: none;
}

.teya-site-header__toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: var(--teya-space-xs);
	width: var(--teya-touch-target);
	height: var(--teya-touch-target);
	padding: 0;
	background: transparent;
	border: var(--teya-border-subtle);
	border-radius: var(--teya-radius-md);
	cursor: pointer;
}

.teya-site-header__toggle-bar {
	display: block;
	width: 24px;
	height: 2px;
	margin-inline: auto;
	background: var(--teya-color-on-background);
	transition:
		transform var(--teya-duration-base) var(--teya-easing),
		opacity var(--teya-duration-fast) var(--teya-easing);
}

.teya-site-header__toggle[aria-expanded='true'] .teya-site-header__toggle-bar:nth-child(2) {
	transform: translateY(7px) rotate(45deg);
}

.teya-site-header__toggle[aria-expanded='true'] .teya-site-header__toggle-bar:nth-child(3) {
	opacity: 0;
}

.teya-site-header__toggle[aria-expanded='true'] .teya-site-header__toggle-bar:nth-child(4) {
	transform: translateY(-7px) rotate(-45deg);
}

.teya-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--teya-stack-gap-sm) var(--teya-space-md);
	margin: 0;
	padding: 0;
	list-style: none;
	max-width: 100%;
}

.teya-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: var(--teya-touch-target);
	padding: var(--teya-nav-link-padding-y) var(--teya-nav-link-padding-x);
	color: var(--teya-color-on-background-muted);
	text-decoration: none;
	font-weight: 500;
	font-size: var(--teya-nav-font-size, var(--teya-text-body-sm));
	line-height: 1.3;
	text-align: center;
	overflow-wrap: anywhere;
	hyphens: auto;
}

.teya-nav__link:hover,
.teya-nav__link:focus-visible,
.teya-nav__link[aria-current='page'] {
	color: var(--teya-color-on-background);
}

.teya-nav__link[aria-current='page'] {
	color: var(--teya-color-secondary);
}

/* Main */
.teya-main {
	padding-block: var(--teya-section-y);
}

.teya-main--front,
.teya-main--landing {
	padding-block: 0;
}

.teya-page-header__title {
	font-size: var(--teya-text-display-lg);
	font-weight: 700;
	line-height: 1.12;
	margin: var(--teya-space-md) 0;
}

/* Footer */
.teya-site-footer {
	padding-block: var(--teya-space-3xl) var(--teya-space-2xl);
	background: var(--teya-color-background-elevated);
	border-top: var(--teya-border-hairline);
}

.teya-site-footer__cta-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--teya-space-md);
	padding: var(--teya-card-padding);
	margin-bottom: var(--teya-space-2xl);
	background: var(--teya-color-surface-container);
	border: var(--teya-border-hairline);
	border-radius: var(--teya-radius-lg);
}

.teya-site-footer__cta-lead {
	flex: 1 1 16rem;
	margin: 0;
	font-family: var(--teya-font-display);
	font-size: var(--teya-text-headline-sm);
	line-height: 1.35;
}

.teya-site-footer__cta-band-btn {
	flex-shrink: 0;
}

.teya-site-footer__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--teya-space-2xl);
}

.teya-site-footer__heading {
	font-size: var(--teya-text-headline-sm);
	margin: 0 0 var(--teya-space-md);
}

.teya-footer-nav__list,
.teya-footer-contacts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.teya-footer-nav__list li + li {
	margin-top: var(--teya-space-sm);
}

.teya-footer-nav__list a {
	display: inline-flex;
	align-items: center;
	min-height: var(--teya-touch-target);
	padding-block: var(--teya-space-xs);
	color: var(--teya-color-on-background-muted);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.teya-footer-nav__list a:hover,
.teya-footer-nav__list a:focus-visible {
	color: var(--teya-color-secondary);
}

.teya-site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--teya-space-md);
	margin-top: var(--teya-space-2xl);
	padding-top: var(--teya-space-lg);
	border-top: var(--teya-border-hairline);
}

.teya-site-footer__legal-meta {
	flex: 1 1 12rem;
}

.teya-site-footer__copy,
.teya-site-footer__disclaimer {
	margin: 0;
	color: var(--teya-color-on-background-muted);
	font-size: var(--teya-text-body-sm);
	line-height: 1.5;
}

.teya-site-footer__disclaimer {
	margin-top: var(--teya-space-xs);
}

.teya-footer-nav__list--legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--teya-space-sm) var(--teya-space-md);
}

/* Cookie banner */
.teya-cookie-banner {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: var(--teya-z-cookie-banner);
	padding: var(--teya-space-md);
	background: var(--teya-color-surface-container);
	border-top: var(--teya-border-accent);
	box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.5);
}

.teya-cookie-banner[hidden] {
	display: none;
}

.teya-cookie-banner__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--teya-space-md);
}

.teya-cookie-banner__text {
	flex: 1 1 280px;
	margin: 0;
	color: var(--teya-color-on-background-muted);
	font-size: var(--teya-text-body-sm);
	line-height: 1.5;
}

.teya-cookie-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--teya-space-sm);
}

body.teya-nav-open {
	overflow: hidden;
}

/* Mobile nav drawer — desktop-first; mobile overrides in mobile.css */
@media (max-width: 1080px) {
	.teya-site-header__shell {
		grid-template-columns: 1fr auto auto;
		grid-template-areas: 'brand utilities toggle';
	}

	.teya-nav--primary {
		grid-area: unset;
	}

	.teya-site-header__toggle {
		display: flex;
		grid-area: toggle;
	}

	.teya-site-header__utilities .teya-lang-switcher,
	.teya-site-header__utilities .teya-site-header__cta-btn {
		display: none;
	}

	.teya-site-header__overlay {
		display: block;
		position: fixed;
		inset: 0;
		z-index: calc(var(--teya-z-sticky-header) + 12);
		border: 0;
		padding: 0;
		margin: 0;
		background: rgba(4, 4, 8, 0.62);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		cursor: pointer;
		transition:
			opacity var(--teya-duration-base) var(--teya-easing),
			visibility var(--teya-duration-base) var(--teya-easing);
	}

	.teya-site-header__overlay.is-visible {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.teya-nav--primary {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		width: min(100vw, 21.5rem);
		max-width: 100%;
		z-index: calc(var(--teya-z-sticky-header) + 16);
		flex-direction: column;
		align-items: stretch;
		padding: calc(var(--teya-header-height) + var(--teya-space-lg)) var(--teya-space-lg) var(--teya-space-lg);
		background: rgba(17, 17, 17, 0.98);
		border-left: var(--teya-border-hairline);
		box-shadow: -12px 0 40px rgba(0, 0, 0, 0.45);
		overflow-y: auto;
		transform: translate3d(100%, 0, 0);
		visibility: hidden;
		pointer-events: none;
		transition:
			transform var(--teya-duration-base) var(--teya-easing),
			visibility var(--teya-duration-base) var(--teya-easing);
	}

	.teya-nav--primary.is-open {
		transform: translate3d(0, 0, 0);
		visibility: visible;
		pointer-events: auto;
	}

	.teya-nav__list--primary {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
	}

	.teya-nav__list--primary .teya-nav__link {
		width: 100%;
		justify-content: flex-start;
		font-size: var(--teya-text-body-lg);
		padding: var(--teya-space-md) 0;
		border-bottom: var(--teya-border-hairline);
		text-align: left;
	}

	.teya-mobile-nav__footer {
		display: flex;
		flex-direction: column;
		gap: var(--teya-space-md);
		margin-top: var(--teya-space-lg);
	}

	.teya-mobile-nav__footer .teya-lang-switcher {
		display: block;
	}

	.teya-mobile-nav__cta {
		width: 100%;
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.teya-site-header,
	.teya-site-header::before,
	.teya-site-header__toggle-bar,
	.teya-nav--primary,
	.teya-site-header__overlay {
		transition: none;
	}
}
