/**
 * Theme shell breakpoints. Header modes: large desktop, laptop/tablet, mobile.
 */

@media (max-width: 1439px) {
	:root {
		--tw-header-height: 76px;
	}

	.tw-desktop-nav {
		display: none;
	}

	.tw-site-header-inner {
		display: flex;
		gap: clamp(0.5rem, 1.5vw, 0.9rem);
	}

	.tw-site-branding {
		min-width: 0;
		flex: 1 1 auto;
	}

	.tw-site-branding__desktop-logo {
		max-width: min(220px, 28vw);
		max-height: min(var(--tw-desktop-logo-max-height, 56px), 46px);
	}

	.tw-site-header-tools {
		flex: 0 0 auto;
	}

	.tw-mobile-toggle {
		display: grid;
	}
}

@media (min-width: 1440px) {
	.tw-site-branding__desktop {
		display: inline-flex;
	}

	.tw-site-branding__compact {
		display: none;
	}
}

@media (max-width: 767px) {
	:root {
		--tw-header-height: 64px;
	}

	.tw-site-header-inner,
	.tw-site-header.is-scrolled .tw-site-header-inner {
		min-height: var(--tw-header-height);
	}

	.tw-site-branding {
		flex: 1 1 auto;
	}

	.tw-site-branding__desktop {
		display: none;
	}

	.tw-site-branding__compact {
		display: inline-flex;
	}

	.tw-site-branding__compact-logo {
		max-width: min(92px, 24vw);
		max-height: min(var(--tw-compact-logo-max-height, 40px), 36px);
	}

	.tw-site-header-tools {
		gap: 0.35rem;
	}

	.tw-site-header-tools > .tw-child-header-phone {
		order: 2;
	}

	.tw-site-header-tools > .tw-child-language {
		order: 1;
	}

	.tw-site-header-tools > .tw-mobile-toggle {
		order: 3;
	}

	.tw-post-list {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 620px) {
	html body .tw-about .tw-about-hero h1 {
		max-width: none;
		font-size: clamp(1.85rem, 8.2vw, 2.35rem);
		letter-spacing: -0.04em;
		white-space: nowrap;
	}
}

/* WordPress makes the mobile admin bar non-fixed below 601px. Once it has
 * scrolled away, the sticky site header must return to the viewport edge. */
body .trx_addons_scroll_to_top {
	display: grid !important;
	width: clamp(48px, 3.5vw, 54px) !important;
	height: clamp(48px, 3.5vw, 54px) !important;
	min-width: 48px;
	min-height: 48px;
	place-items: center;
	right: max(14px, env(safe-area-inset-right)) !important;
	bottom: max(14px, env(safe-area-inset-bottom)) !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #9f2630 !important;
	box-shadow: 0 6px 18px rgba(15, 20, 24, 0.2) !important;
	color: #fff !important;
	font-size: 0 !important;
	line-height: 1 !important;
	transition: opacity 180ms ease, transform 180ms ease, filter 180ms ease !important;
}

body .trx_addons_scroll_to_top::before {
	width: 12px;
	height: 12px;
	border-top: 2px solid currentColor;
	border-left: 2px solid currentColor;
	font-family: inherit !important;
	content: "" !important;
	transform: rotate(45deg) translate(2px, 2px);
}

body .trx_addons_scroll_to_top:hover {
	filter: brightness(1.08);
	transform: scale(1.03);
}

body .trx_addons_scroll_to_top:focus-visible {
	outline: 3px solid var(--tw-color-focus) !important;
	outline-offset: 3px;
}

.twc-configurator-page .trx_addons_scroll_to_top {
	bottom: max(96px, calc(env(safe-area-inset-bottom) + 96px)) !important;
}

@media (max-width: 600px) {
	.admin-bar .tw-site-header.is-scrolled {
		top: 0;
	}
}

/* Compact branding is used only when the laptop/tablet header becomes narrow. */
@container tw-header (min-width: 768px) and (max-width: 900px) {
	.tw-site-branding__desktop {
		display: none;
	}

	.tw-site-branding__compact {
		display: inline-flex;
	}
}

/* Fallback for browsers without container query support. */
@supports not (container-type: inline-size) {
	@media (min-width: 768px) and (max-width: 900px) {
		.tw-site-branding__desktop {
			display: none;
		}

		.tw-site-branding__compact {
			display: inline-flex;
		}
	}
}

@media (max-width: 430px) {
	:root {
		--tw-gutter: 0.75rem;
	}

	.tw-site-header-inner {
		gap: 0.3rem;
	}
}

@media (max-width: 390px) {
	.tw-site-branding__compact-logo {
		max-width: 76px;
	}
}

@media (max-width: 360px) {
	:root {
		--tw-gutter: 0.5rem;
	}

	.tw-site-header-inner,
	.tw-site-header-tools {
		gap: 0.2rem;
	}

}

@media (max-width: 320px) {
	.tw-site-branding__compact-logo {
		max-width: 62px;
	}
}

@media (max-width: 1180px) {
	.tw-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.tw-footer-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.tw-footer-bottom-inner,
	.tw-empty-state-actions,
	.search-form {
		align-items: stretch;
		flex-direction: column;
	}

	.tw-footer-bottom-inner {
		padding-block: 1.25rem;
	}

	.tw-footer-legal-menu {
		display: grid;
	}

	.tw-empty-state {
		padding: 1.5rem;
	}

	.tw-entry-content .alignwide,
	.tw-entry-content .alignfull {
		width: calc(100vw - 2 * var(--tw-gutter));
	}
}
