/* Sila — Header classique: copy of the silalevis.ca header (Elementor
   template #76, JetMenu mobile menu). Values are the live site's computed
   styles. Its colors and fonts are not Sila 4 tokens: they stay local to this
   element, which goes away when the Figma header (header.css) comes back. */

@font-face {
	font-family: "Lato";
	src: url("../../fonts/lato-300-normal.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Roboto";
	src: url("../../fonts/roboto-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.sila-header-classic {
	--classic-bar: rgba(40, 42, 55, 0.95);   /* #282A37F2 */
	--classic-bar-solid: #282a37;
	--classic-drawer: #191b26;
	--classic-white: #fff;
	--classic-burgundy: #5a0009;
	--classic-red: #ad172b;
	--classic-font-link: "Lato", sans-serif;
	--classic-font-button: "Roboto", sans-serif;
	--classic-pointer-ease: cubic-bezier(0.58, 0.3, 0.005, 1);  /* Elementor nav pointer */
	--classic-slide-ease: cubic-bezier(0.5, 0.12, 0.46, 0.88);  /* JetMenu slide-out */

	color: var(--classic-white);
}

/* Sticky and in the flow (silalevis.ca uses position: fixed, which covers
   the top of the hero). The element is the only child of Bricks'
   #brx-header wrapper, so the wrapper sticks. Anchors land below the bar
   via scroll-padding-top; header-classic.js keeps --sila-header-height in
   sync with the bar. */
:root {
	--sila-header-top: var(--wp-admin--admin-bar--height, 0px);
	--sila-header-height: 94px;
}

.sila-frontend > #brx-header:has(> .sila-header-classic) {
	position: sticky;
	top: var(--sila-header-top);
	z-index: 998;
}

html:has(> .sila-frontend > #brx-header > .sila-header-classic) {
	scroll-padding-top: calc(var(--sila-header-top) + var(--sila-header-height));
}

/* The admin bar scrolls away at this width. */
@media (max-width: 600px) {
	:root {
		--sila-header-top: 0px;
	}
}

.sila-header-classic__bar {
	background-color: var(--classic-bar);
}

/* Elementor boxed section: 1140px box, columns 40% / 19.664% / 40% with
   10px padding, content centered vertically. */
.sila-header-classic__box {
	display: flex;
	max-width: 1140px;
	margin: 0 auto;
}

.sila-header-classic__col {
	display: flex;
	align-items: center;
	min-width: 0;
	padding: 10px;
}

.sila-header-classic__col--left {
	width: 40%;
}

.sila-header-classic__col--center {
	width: 19.664%;
	justify-content: center;
}

/* Link, Contact, favorites: evenly spread, 12px apart at least. */
.sila-header-classic__col--right {
	width: 40%;
	justify-content: space-evenly;
	column-gap: 12px;
}

.sila-header-classic__menu {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sila-header-classic__item {
	margin: 0;
}

.sila-header-classic__link {
	position: relative;
	display: block;
	padding: 13px 11px;
	color: var(--classic-white);
	font-family: var(--classic-font-link);
	font-size: 16px;
	font-weight: 300;
	line-height: 20px;
	letter-spacing: normal;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

.sila-header-classic__link:hover,
.sila-header-classic__link:focus-visible {
	color: var(--classic-white);
}

.sila-header-classic__link:focus-visible {
	outline: none;
}

/* Elementor "underline" pointer: a 1px line under the padded link, shown
   on hover, focus and the current page. Right links fade in; left links
   ("drop out") also drop 10px into place. */
.sila-header-classic__link::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: currentColor;
	opacity: 0;
	transition: 0.3s var(--classic-pointer-ease);
}

.sila-header-classic__link:hover::after,
.sila-header-classic__link:focus-visible::after,
.sila-header-classic__link.is-active::after {
	opacity: 1;
}

.sila-header-classic__menu--drop .sila-header-classic__link:not(:hover):not(:focus-visible):not(.is-active)::after {
	bottom: 10px;
}

/* 200px, shrinking with the center column below a 1140px viewport
   (Elementor images are max-width: 100%). */
.sila-header-classic__logo {
	display: block;
	flex: 0 1 200px;
	min-width: 0;
	line-height: 0;
}

.sila-header-classic__logo-img {
	display: block;
	width: 100%;
	height: auto;
}

/* Elementor button (small): white, burgundy Roboto caps, square. */
.sila-header-classic__cta {
	display: inline-block;
	flex: none;
	padding: 12px 24px;
	border: 0;
	border-radius: 0;
	background-color: var(--classic-white);
	color: var(--classic-burgundy);
	font-family: var(--classic-font-button);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

.sila-header-classic__cta:hover,
.sila-header-classic__cta:focus-visible {
	color: var(--classic-burgundy);
}

.sila-header-classic__cta:focus-visible {
	outline: 1px solid var(--classic-white);
	outline-offset: 3px;
}

/* Livya Favorites Button (plugin element): a white heart like the bar's
   links, badge in the Contact button's colors (count written by embed.js). */
.sila-header-classic__favorites {
	flex: none;
	line-height: 0;
}

.sila-header-classic .livya-favorites-button {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: transparent;
	color: var(--classic-white);
	cursor: pointer;
}

.sila-header-classic .livya-favorites-button__icon svg {
	display: block;
	width: 22px;
	height: 22px;
	transition: transform 0.3s var(--classic-pointer-ease);
}

.sila-header-classic .livya-favorites-button:hover .livya-favorites-button__icon svg,
.sila-header-classic .livya-favorites-button:focus-visible .livya-favorites-button__icon svg {
	transform: scale(1.12);
}

.sila-header-classic .livya-favorites-button:focus-visible {
	outline: 1px solid var(--classic-white);
	outline-offset: 2px;
}

.sila-header-classic .livya-favorites-count {
	top: -3px;
	right: -5px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border: 2px solid var(--classic-bar-solid);
	font-family: var(--classic-font-button);
	font-size: 11px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
}

/* favorites.js: the badge pops when a favorite is added. */
.sila-header-classic .livya-favorites-button.is-bumped .livya-favorites-count {
	animation: sila-header-classic-bump 0.6s var(--sila-ease-out);
}

@keyframes sila-header-classic-bump {
	30% {
		transform: scale(1.35);
	}
}

/* Menu toggle + slide-out menu: 1024px and below only. */
.sila-header-classic__toggle,
.sila-header-classic__cover,
.sila-header-classic__drawer {
	display: none;
}

.sila-header-classic__icon {
	display: block;
	height: 20px;
}

.sila-header-classic__icon--bars {
	width: 17.5px;
}

.sila-header-classic__icon--times {
	width: 13.75px;
}

/* Elementor tablet breakpoint: logo left, favorites + toggle right. */
@media (max-width: 1024px) {
	.sila-header-classic__box {
		align-items: center;
		padding: 10px;
	}

	.sila-header-classic__col--left,
	.sila-header-classic__menu,
	.sila-header-classic__cta {
		display: none;
	}

	.sila-header-classic__col--center,
	.sila-header-classic__col--right {
		display: contents;
	}

	.sila-header-classic__logo {
		margin-right: auto;
	}

	.sila-header-classic__favorites {
		order: 1;
		margin-right: 8px;
	}

	.sila-header-classic__toggle {
		order: 2;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 35px;
		min-height: 35px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--classic-white);
		cursor: pointer;
	}

	.sila-header-classic__toggle[aria-expanded="false"] .sila-header-classic__icon--times,
	.sila-header-classic__toggle[aria-expanded="true"] .sila-header-classic__icon--bars {
		display: none;
	}

	.sila-header-classic__toggle:focus-visible,
	.sila-header-classic__close:focus-visible {
		outline: 1px solid var(--classic-white);
		outline-offset: 2px;
	}

	/* The page behind dims; the menu slides in from the left. Both are
	   hidden (not only off screen) while closed. */
	.sila-header-classic__cover {
		position: fixed;
		inset: 0;
		z-index: 1;
		display: block;
		background-color: rgba(0, 0, 0, 0.5);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s var(--classic-slide-ease) 0.1s, visibility 0s linear 0.4s;
	}

	.sila-header-classic__drawer {
		position: fixed;
		top: var(--sila-header-top);
		left: 0;
		z-index: 2;
		display: flex;
		flex-direction: column;
		width: 400px;
		max-width: 100%;
		height: calc(100dvh - var(--sila-header-top));
		padding: 20px;
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		background-color: var(--classic-drawer);
		transform: translateX(-100%);
		visibility: hidden;
		transition: transform 0.3s var(--classic-slide-ease), visibility 0s linear 0.3s;
	}

	.sila-header-classic.is-open .sila-header-classic__cover {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.3s var(--classic-slide-ease) 0.1s, visibility 0s;
	}

	.sila-header-classic.is-open .sila-header-classic__drawer {
		transform: none;
		visibility: visible;
		transition: transform 0.3s var(--classic-slide-ease), visibility 0s;
	}

	.sila-header-classic__controls {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		min-height: 35px;
	}

	.sila-header-classic__close {
		display: flex;
		align-items: center;
		justify-content: center;
		min-width: 30px;
		min-height: 30px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--classic-white);
		cursor: pointer;
	}

	.sila-header-classic__drawer-list {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.sila-header-classic__drawer-list .sila-header-classic__item {
		padding: 10px 0;
	}

	.sila-header-classic__drawer-list .sila-header-classic__link {
		display: flex;
		padding: 0;
		font-family: var(--sila-font-display);
		font-size: 20px;
		font-weight: 400;
		line-height: 30px;
		white-space: normal;
	}

	.sila-header-classic__drawer-list .sila-header-classic__link::after {
		content: none;
	}

	.sila-header-classic__drawer-list .sila-header-classic__link:hover,
	.sila-header-classic__drawer-list .sila-header-classic__link:focus-visible,
	.sila-header-classic__drawer-list .sila-header-classic__link.is-active {
		color: var(--classic-red);
	}
}

/* JetMenu's own width below 783px. */
@media (max-width: 782px) {
	.sila-header-classic__drawer {
		width: 360px;
	}
}

@media (max-width: 767px) {
	.sila-header-classic__drawer {
		width: 80%;
	}

	.sila-header-classic__drawer-list .sila-header-classic__link {
		font-size: 30px;
		line-height: 45px;
		letter-spacing: 2px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sila-header-classic__link::after,
	.sila-header-classic .livya-favorites-button__icon svg,
	.sila-header-classic__cover,
	.sila-header-classic__drawer,
	.sila-header-classic.is-open .sila-header-classic__cover,
	.sila-header-classic.is-open .sila-header-classic__drawer {
		transition-duration: 0s;
		transition-delay: 0s;
	}

	.sila-header-classic .livya-favorites-button.is-bumped .livya-favorites-count {
		animation: none;
	}
}
