/*
Theme Name: Blissful Spa
Theme URI: https://example.com/blissful-spa
Author: Ralph Patinio
Author URI: https://rjpatinio.com
Description: Custom blank-canvas theme for the Blissful Spa one-page site, built for Elementor.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: blissful-spa
Tags: blank-canvas, one-column, custom-logo, custom-menu
*/

:root {
	--bs-deep: #22402E;
	--bs-moss: #3E5C48;
	--bs-sage: #A8B89C;
	--bs-sand: #EFE7DA;
	--bs-paper: #FAF7F1;
	--bs-clay: #C0764A;
	--bs-gold: #C9A24B;
	--bs-ink: #22302A;
}

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

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	margin: 0;
	background: var(--bs-paper);
	color: var(--bs-ink);
	font-family: "Jost", "Helvetica Neue", Helvetica, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: var(--bs-clay);
	color: var(--bs-gold);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
	word-wrap: normal;
}

.skip-link:focus,
.skip-link:focus-visible {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 10px 18px;
	clip-path: none;
	overflow: visible;
	background: var(--bs-deep);
	color: var(--bs-paper);
	border-radius: 999px;
	font-size: 15px;
	line-height: 1;
	text-decoration: none;
}

.bs-main {
	background: var(--bs-paper);
}

a {
	color: inherit;
}

.elementor-section .elementor-widget-text-editor:not(:last-child) {
	margin-bottom: 12px;
}

.elementor-section .elementor-widget-heading:not(:last-child) {
	margin-bottom: 18px;
}

#topbar .elementor-widget-text-editor a {
	transition: color 0.25s ease;
}

#topbar .elementor-widget-text-editor a:hover {
	color: var(--bs-clay);
}

@media (max-width: 767px) {
	.elementor-section .elementor-container {
		row-gap: 26px;
	}

	#topbar .elementor-container {
		row-gap: 6px;
	}

	#topbar {
		padding-top: 12px !important;
		padding-bottom: 12px !important;
	}

	#topbar .elementor-widget:not(:last-child) {
		margin-bottom: 6px !important;
	}

	#topbar h4,
	#topbar .elementor-widget-text-editor {
		text-align: center !important;
	}

	#topbar .elementor-widget-text-editor {
		font-size: 12px;
		letter-spacing: 1.2px;
	}

	#topbar .elementor-widget-button {
		text-align: center;
	}

	section.elementor-section:not(#top):not(#topbar) {
		padding-top: 64px !important;
		padding-bottom: 64px !important;
	}
}

.elementor-image-gallery .gallery {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 18px !important;
}

@media (max-width: 767px) {
	.elementor-image-gallery .gallery {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important;
	}
}

.elementor-image-gallery .gallery-item {
	display: block !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	cursor: pointer;
}

.elementor-image-gallery .gallery-item img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border: none !important;
	transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
	will-change: transform;
}

.elementor-image-gallery .gallery-item::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 16px;
	background: linear-gradient(to top, rgba(27, 51, 37, 0.78) 0%, rgba(27, 51, 37, 0.12) 45%, rgba(27, 51, 37, 0) 70%);
	opacity: 0;
	transition: opacity 0.45s ease;
	pointer-events: none;
}

.elementor-image-gallery .gallery-item:hover img,
.elementor-image-gallery .gallery-item:focus-visible img {
	transform: scale(1.07);
}

.elementor-image-gallery .gallery-item:hover::after,
.elementor-image-gallery .gallery-item:focus-visible::after {
	opacity: 1;
}

.bs-gal-cap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 16px 18px;
	color: var(--bs-paper);
	font-family: "Fraunces", Georgia, serif;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.3px;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.4s ease 0.05s, transform 0.4s ease 0.05s;
	pointer-events: none;
}

.elementor-image-gallery .gallery-item:hover .bs-gal-cap,
.elementor-image-gallery .gallery-item:focus-visible .bs-gal-cap {
	opacity: 1;
	transform: translateY(0);
}

.bs-gal-cap small {
	display: block;
	margin-top: 2px;
	color: var(--bs-gold);
	font-family: "Jost", sans-serif;
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 2.6px;
	text-transform: uppercase;
}

.wpcf7 form .bs-field {
	margin-bottom: 18px;
}

.wpcf7 form .bs-field > p {
	margin: 0;
}

.wpcf7 form .bs-field > label,
.wpcf7 form > .bs-field > label {
	display: block;
	margin-bottom: 7px;
	color: var(--bs-moss);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	font-family: "Jost", sans-serif;
}

.wpcf7 .bs-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 16px;
}

.bs-datetime p {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	margin: 0;
}

.bs-datetime p br {
	display: none;
}

@media (max-width: 480px) {
	.bs-datetime p {
		grid-template-columns: 1fr;
	}
}

.wpcf7 .bs-form-grid .bs-field-wide {
	grid-column: 1 / -1;
}

.wpcf7 input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	opacity: 0.55;
}

.wpcf7 input[type="date"]:focus::-webkit-calendar-picker-indicator,
.wpcf7 input[type="date"]::-webkit-calendar-picker-indicator:hover {
	opacity: 1;
}

@media (max-width: 600px) {
	.wpcf7 .bs-form-grid {
		grid-template-columns: 1fr;
	}
}

.wpcf7-form-control-wrap {
	display: block;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: 13px 16px;
	background: var(--bs-paper);
	border: 1px solid #E2DAC8;
	border-radius: 12px;
	color: var(--bs-ink);
	font-family: "Jost", sans-serif;
	font-size: 15.5px;
	font-weight: 400;
	line-height: 1.5;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
	appearance: none;
	-webkit-appearance: none;
}

.wpcf7 select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23C0764A' stroke-width='2' stroke-linecap='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 42px;
	cursor: pointer;
}

.wpcf7 textarea {
	min-height: 104px;
	resize: vertical;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: #B4AB97;
	font-weight: 300;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--bs-clay);
	background: #FFFFFF;
	box-shadow: 0 0 0 3px rgba(192, 118, 74, 0.16);
}

.wpcf7 .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #B0432F;
	font-size: 12.5px;
	font-weight: 500;
}

.wpcf7 .wpcf7-form-control-wrap[class*="not-valid"] input,
.wpcf7 .wpcf7-form-control-wrap[class*="not-valid"] select,
.wpcf7 .wpcf7-form-control-wrap[class*="not-valid"] textarea {
	border-color: #C9503A;
}

.wpcf7 input[type="submit"] {
	width: 100%;
	padding: 15px 34px;
	background: var(--bs-clay);
	border: none;
	border-radius: 999px;
	color: #FFFFFF;
	font-family: "Jost", sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 1px;
	cursor: pointer;
	transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
	box-shadow: 0 10px 24px -12px rgba(192, 118, 74, 0.65);
}

.wpcf7 input[type="submit"]:hover {
	background: #A8613B;
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -12px rgba(192, 118, 74, 0.75);
}

.wpcf7 input[type="submit"]:active {
	transform: translateY(0);
}

.wpcf7 .wpcf7-spinner {
	margin: 14px auto 0;
	display: block;
}

.wpcf7 .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border: none !important;
	border-radius: 12px;
	font-size: 13.5px;
}

.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok {
	background: rgba(34, 64, 46, 0.08);
	color: var(--bs-deep);
}

.wpcf7 .wpcf7-response-output.wpcf7-validation-errors {
	background: rgba(201, 80, 58, 0.08);
	color: #B0432F;
}

.bs-loader {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	background: var(--bs-paper);
}

.bs-loader-mark {
	color: var(--bs-deep);
	font-family: "Fraunces", Georgia, serif;
	font-size: clamp(30px, 5vw, 44px);
	font-weight: 600;
	letter-spacing: 0.5px;
}

.bs-loader-line {
	width: 46px;
	height: 2px;
	border-radius: 2px;
	background: var(--bs-gold);
	animation: bs-loader-pulse 1.1s ease-in-out infinite;
}

@keyframes bs-loader-pulse {
	0%, 100% { transform: scaleX(0.35); opacity: 0.55; }
	50% { transform: scaleX(1); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.elementor-image-gallery .gallery-item img,
	.bs-gal-cap,
	.elementor-image-gallery .gallery-item::after {
		transition: none;
	}

	.bs-loader-line {
		animation: none;
	}

	#topbar,
	.bs-top-btn {
		transition: none;
	}
}

/* Card gutters: Elementor's column-gap presets render no gap on this markup,
   so the white card columns touch and read as one strip. */
@media (min-width: 768px) {
	#about .elementor-container,
	#services .elementor-container,
	#stories .elementor-container,
	#book .elementor-container {
		column-gap: 36px;
	}
}

/* Sticky top nav. Elementor Free has no sticky option, so pin it here and
   drop it below the WP admin bar for logged-in editors. */
#topbar {
	position: sticky;
	top: 0;
	z-index: 9990;
	transition: padding 0.3s ease, box-shadow 0.3s ease;
}

body.admin-bar #topbar {
	top: 32px;
}

body.bs-scrolled #topbar {
	padding-top: 8px;
	padding-bottom: 8px;
	box-shadow: 0 14px 34px -22px rgba(34, 48, 42, 0.4);
}

/* Floating back-to-top control, revealed after the fold is passed. */
.bs-top-btn {
	position: fixed;
	right: 26px;
	bottom: 26px;
	z-index: 9980;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 999px;
	background: var(--bs-deep);
	color: var(--bs-paper);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 16px 30px -16px rgba(34, 48, 42, 0.55);
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px);
	transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s ease;
}

.bs-top-btn.bs-top-btn--on {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.bs-top-btn.bs-top-btn--on:hover {
	background: var(--bs-clay);
	transform: translateY(-2px);
}

.bs-top-btn:focus-visible {
	outline: 2px solid var(--bs-gold);
	outline-offset: 3px;
}

@media (max-width: 767px) {
	.bs-top-btn {
		right: 16px;
		bottom: 16px;
		width: 44px;
		height: 44px;
	}
}

section[id] {
	scroll-margin-top: 96px;
}

body.admin-bar section[id] {
	scroll-margin-top: 128px;
}

/* Card elevation: separate the white cards from the section background. */
#services .elementor-element-populated,
#stories .elementor-element-populated,
#book .elementor-column:last-child .elementor-element-populated {
	box-shadow: 0 18px 44px -24px rgba(34, 48, 42, 0.38);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

#services .elementor-column:hover .elementor-element-populated,
#stories .elementor-column:hover .elementor-element-populated {
	transform: translateY(-4px);
	box-shadow: 0 28px 56px -26px rgba(34, 48, 42, 0.46);
}

@media (prefers-reduced-motion: reduce) {
	#services .elementor-element-populated,
	#stories .elementor-element-populated,
	#book .elementor-column:last-child .elementor-element-populated {
		transition: none;
	}
}

/* Centered-heading sections: the eyebrow text-editor and divider widgets were
   generated without alignment settings, so both default to the left edge. */
#philosophy .elementor-widget-wrap,
#services-head .elementor-widget-wrap,
#gallery .elementor-widget-wrap,
#stories-head .elementor-widget-wrap {
	text-align: center;
}

#philosophy .elementor-widget-divider .elementor-divider {
	justify-content: center;
}

#philosophy .elementor-widget-spacer {
	--spacer-size: 6px !important;
	margin-bottom: 0 !important;
}

/* Stats band: the counter widget ignores the typography settings stored in
   the page data, so numbers fall back to 69px Roboto and titles to Roboto
   Slab. Restore the brand pairing here. */
#numbers .elementor-counter {
	text-align: center;
}

#numbers .elementor-counter-number-wrapper {
	font-family: "Fraunces", Georgia, serif;
	font-size: 54px;
	font-weight: 500;
	line-height: 1.15;
	color: var(--bs-gold);
}

#numbers .elementor-counter-title {
	font-family: "Jost", sans-serif;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1.5px;
	line-height: 1.7;
	color: #F3EEE6;
}

/* Buttons never received typography settings in the page data and fall back
   to the kit default, 15px Roboto. Widget CSS outranks plain selectors, so
   the brand voice needs the important flag here. */
.elementor-button {
	font-family: "Jost", sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
}

/* Stats band: stars render at the 12px icon default and the rating line at
   14px; both read as afterthoughts next to 54px digits. */
#numbers .elementor-star-rating {
	font-size: 24px;
}

#numbers .elementor-star-rating i {
	color: var(--bs-gold);
}

#numbers .elementor-column:last-child .elementor-widget-text-editor {
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.5px;
}

/* About: the photo card stretches to the text column's height, but the image
   widget renders at its natural ratio and letterboxes. Fill the card instead. */
@media (min-width: 768px) {
	#about .elementor-column:first-child .elementor-element-populated {
		display: flex;
		flex-direction: column;
		padding: 0 !important;
		border-radius: 24px;
		overflow: hidden;
	}

	#about .elementor-column:first-child .elementor-widget-image {
		flex: 1 1 auto;
	}

	#about .elementor-column:first-child .elementor-widget-image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#about .elementor-column:first-child .elementor-element-populated::after {
		content: '';
		position: absolute;
		inset: 14px;
		border: 1px solid rgba(250, 247, 241, 0.5);
		border-radius: 16px;
		pointer-events: none;
	}
}

/* Mobile navigation: one-row bar with logo left, CTA and hamburger right,
   and a full-screen menu that fades in for the Elementor topbar and the
   theme topbar alike. */
.bs-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 46px;
	height: 46px;
	padding: 0 11px;
	background: transparent;
	border: 1px solid var(--bs-sand);
	border-radius: 10px;
	cursor: pointer;
}

.bs-burger span {
	display: block;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: var(--bs-deep);
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.bs-burger.open span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.bs-burger.open span:nth-child(2) {
	opacity: 0;
}

.bs-burger.open span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.bs-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 99990;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 24px;
	background: var(--bs-paper);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.35s ease, visibility 0.35s ease;
}

.bs-mobile-menu.open {
	opacity: 1;
	visibility: visible;
}

.bs-mobile-link {
	display: block;
	padding: 16px 28px;
	font-family: "Jost", sans-serif;
	font-size: 19px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--bs-deep);
	text-decoration: none;
	opacity: 0;
	transform: translateX(28px);
	transition: opacity 0.4s ease, transform 0.4s ease, color 0.25s ease;
}

.bs-mobile-link:hover {
	color: var(--bs-clay);
}

.bs-mobile-menu.open .bs-mobile-link {
	opacity: 1;
	transform: translateX(0);
}

.bs-mobile-menu.open .bs-mobile-link:nth-child(1) { transition-delay: 0.05s; }
.bs-mobile-menu.open .bs-mobile-link:nth-child(2) { transition-delay: 0.1s; }
.bs-mobile-menu.open .bs-mobile-link:nth-child(3) { transition-delay: 0.15s; }
.bs-mobile-menu.open .bs-mobile-link:nth-child(4) { transition-delay: 0.2s; }
.bs-mobile-menu.open .bs-mobile-link:nth-child(5) { transition-delay: 0.25s; }

.bs-mobile-cta {
	margin-top: 26px;
	opacity: 0;
	transform: translateX(28px);
	transition: opacity 0.4s ease 0.3s, transform 0.4s ease 0.3s;
}

.bs-mobile-menu.open .bs-mobile-cta {
	opacity: 1;
	transform: translateX(0);
}

.bs-menu-close {
	position: absolute;
	top: 24px;
	right: 24px;
	width: 46px;
	height: 46px;
	background: transparent;
	border: 1px solid var(--bs-sand);
	border-radius: 10px;
	font-size: 22px;
	line-height: 1;
	color: var(--bs-deep);
	cursor: pointer;
}

@media (max-width: 768px) {
	.bs-burger {
		display: inline-flex;
	}

	.bs-topbar {
		position: relative;
		z-index: 99995;
	}

	#topbar {
		position: relative;
		z-index: 99995;
	}

	#topbar .elementor-container {
		flex-wrap: nowrap;
		align-items: center;
	}

	#topbar .elementor-column {
		width: auto !important;
	}

	#topbar .elementor-column:first-child {
		flex: 1 1 auto;
	}

	#topbar .elementor-column:nth-child(2) {
		display: none;
	}
}

@media (max-width: 768px) {
	#topbar h4.elementor-heading-title {
		font-size: 20px !important;
		white-space: nowrap;
	}

	#topbar .elementor-button {
		padding: 12px 20px !important;
		font-size: 14px !important;
	}
}

.bs-mobile-menu .bs-mobile-cta,
.bs-mobile-menu a.bs-mobile-cta {
	display: inline-block;
	margin-top: 26px;
	padding: 16px 34px;
	background: var(--bs-clay);
	border-radius: 3px;
	color: #ffffff;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
}

/* Tablet-range fix: Elementor stacks its columns below 1025px, so the
   hamburger bar must own that whole range, not just phones. */
@media (max-width: 1024px) {
	.bs-topbar-inner,
	#topbar .elementor-container {
		flex-wrap: nowrap;
		align-items: center;
	}

	.bs-topbar-nav {
		display: none;
	}

	#topbar .elementor-column:nth-child(2) {
		display: none;
	}

	#topbar .elementor-column,
	#topbar .elementor-column:first-child {
		width: auto !important;
		flex: 0 0 auto;
	}

	#topbar .elementor-column:first-child {
		flex: 1 1 auto;
	}

	#topbar h4.elementor-heading-title {
		font-size: 20px !important;
		white-space: nowrap;
		text-align: left !important;
	}

	#topbar .elementor-widget-button,
	#topbar .elementor-button {
		text-align: right;
	}

	#topbar .elementor-button {
		padding: 12px 20px !important;
		font-size: 14px !important;
		white-space: nowrap;
	}

	.bs-burger {
		display: inline-flex;
	}

	.bs-topbar,
	#topbar {
		position: relative;
		z-index: 99995;
	}
}

/* Modern hamburger: borderless, offset double line, morphs into a clean X. */
.bs-burger {
	position: relative;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: none;
	cursor: pointer;
}

.bs-burger span {
	position: absolute;
	left: 9px;
	right: 9px;
	height: 2px;
	border-radius: 2px;
	background: var(--bs-deep);
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), top 0.35s cubic-bezier(0.4, 0, 0.2, 1),
		right 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease, background 0.25s ease;
}

.bs-burger span:nth-child(1) {
	top: 15px;
}

.bs-burger span:nth-child(2) {
	top: 21px;
	right: 17px;
}

.bs-burger span:nth-child(3) {
	top: 27px;
}

.bs-burger:hover span,
.bs-burger:focus-visible span {
	background: var(--bs-clay);
}

.bs-burger.open span:nth-child(1) {
	top: 21px;
	right: 9px;
	transform: rotate(45deg);
}

.bs-burger.open span:nth-child(2) {
	opacity: 0;
	transform: translateX(10px);
}

.bs-burger.open span:nth-child(3) {
	top: 21px;
	right: 9px;
	transform: rotate(-45deg);
}

@media (max-width: 768px) {
	.bs-topbar-inner {
		flex-wrap: nowrap;
		gap: 12px;
	}

	.bs-topbar-brand {
		flex: 1 1 auto;
		font-size: 22px;
		white-space: nowrap;
	}

	.bs-topbar-nav {
		display: none;
	}

	.bs-topbar-cta {
		padding: 11px 22px;
		font-size: 14px;
		white-space: nowrap;
	}
}

@media (max-width: 1024px) {
	#topbar .elementor-column:nth-child(3) {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 12px;
	}
}

@media (max-width: 1024px) {
	#topbar .elementor-column:nth-child(3) {
		margin-left: auto;
	}
}

@media (max-width: 1024px) {
	#topbar .elementor-container {
		padding-right: 68px;
	}

	#topbar .bs-burger {
		position: absolute;
		top: 50%;
		right: 18px;
		margin: 0;
		transform: translateY(-50%);
	}
}

@media (max-width: 1024px) {
	#topbar .elementor-column:nth-child(3) {
		position: static;
	}

	#topbar .bs-burger {
		top: 43px;
		transform: none;
	}
}

@media (max-width: 1024px) {
	#topbar .bs-burger {
		top: 21px;
	}
}

/* Hamburger lines carry the primary brown by default. */
.bs-burger span {
	background: var(--bs-clay);
}

.bs-burger:hover span,
.bs-burger:focus-visible span {
	background: var(--bs-deep);
}
