/* ==========================================================================
   BIGSPY AI Theme WP – legacy layout shortcodes (content built with Flatsome UX Builder)
   ========================================================================== */

/* ---------------------------------------------------------------- Section / row / column */
.bs-legacy-section {
	margin-bottom: 0;
}

.bs-legacy-section > .bs-section__inner > :last-child {
	margin-bottom: 0;
}

.bs-legacy-row {
	margin-bottom: 0;
}

/* Only columns belong in the grid; stray <br>/<p> from wpautop must not take a cell. */
.bs-legacy-row > :not(.bs-column) {
	display: none;
}

/* Rows that do not fill 12 columns are centered, never left-heavy. */
@media (min-width: 550px) {
	.bs-legacy-row--centered {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	.bs-legacy-row--centered > .bs-legacy-col {
		flex: 0 0 calc(var(--bs-span-d, 12) * (100% + var(--bs-row-gap)) / 12 - var(--bs-row-gap));
		max-width: 100%;
	}
}

@media (min-width: 550px) and (max-width: 849px) {
	.bs-legacy-row--centered > .bs-legacy-col {
		flex-basis: calc(var(--bs-span-t, 12) * (100% + var(--bs-row-gap)) / 12 - var(--bs-row-gap));
	}
}

/* A column holding only images sits vertically centered next to a taller text column. */
.bs-legacy-row > .bs-legacy-col:has(.bs-legacy-image):not(:has(p, h1, h2, h3, h4, h5, h6, ul, ol, form, .bs-btn, iframe)) {
	align-self: center;
}

.bs-legacy-row > .bs-legacy-col:has(.bs-legacy-image):not(:has(p, h1, h2, h3, h4, h5, h6, ul, ol, form, .bs-btn, iframe)) .bs-legacy-gap {
	display: none;
}

.bs-legacy-row + .bs-legacy-row,
.bs-legacy-row + *:not(.bs-legacy-row),
* + .bs-legacy-row {
	margin-top: 30px;
}

.bs-legacy-col {
	grid-column: span var(--bs-span-d, 12);
}

.bs-legacy-col > .col-inner {
	position: relative;
	width: 100%;
}

.bs-legacy-col > .col-inner > :first-child {
	margin-top: 0;
}

.bs-legacy-col > .col-inner > :last-child {
	margin-bottom: 0;
}

.bs-legacy-col.has-text-align-center > .col-inner {
	text-align: center;
}

.bs-legacy-col.has-text-align-right > .col-inner {
	text-align: right;
}

.col-inner.box-shadow-1 { box-shadow: 0 1px 3px -2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); }
.col-inner.box-shadow-2 { box-shadow: 0 3px 6px -4px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23); }
.col-inner.box-shadow-3 { box-shadow: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .22); }
.col-inner.box-shadow-4 { box-shadow: 0 14px 28px rgba(0, 0, 0, .25), 0 10px 10px rgba(0, 0, 0, .22); }
.col-inner.box-shadow-5 { box-shadow: 0 19px 38px rgba(0, 0, 0, .3), 0 15px 12px rgba(0, 0, 0, .22); }

@media (min-width: 550px) and (max-width: 849px) {
	.bs-legacy-col {
		grid-column: span var(--bs-span-t, var(--bs-span-d, 12));
	}
}

@media (max-width: 549px) {
	.bs-legacy-col {
		grid-column: span var(--bs-span-m, 12);
	}
}

/* ---------------------------------------------------------------- Gap */
.bs-legacy-gap {
	height: var(--bs-gap-d, 30px);
}

@media (max-width: 849px) {
	.bs-legacy-gap {
		height: var(--bs-gap-t, var(--bs-gap-d, 30px));
	}
}

@media (max-width: 549px) {
	.bs-legacy-gap {
		height: var(--bs-gap-m, var(--bs-gap-t, 30px));
	}
}

/* ---------------------------------------------------------------- Text */
.bs-legacy-text > :last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------- Image */
.bs-legacy-image {
	position: relative;
	max-width: 100%;
	margin-bottom: 1.25em;
	overflow: hidden;
	border-radius: var(--bs-img-radius, 0);
}

.has-text-align-center > .col-inner > .bs-legacy-image {
	margin-left: auto;
	margin-right: auto;
}

.bs-legacy-image a {
	display: block;
}

.bs-legacy-image__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--bs-img-radius, 0);
	transition: transform .5s ease, filter .3s ease, box-shadow .3s ease;
}

.bs-legacy-image--zoom:hover .bs-legacy-image__img,
.bs-legacy-image--zoom-long:hover .bs-legacy-image__img {
	transform: scale(1.06);
}

.bs-legacy-image--glow:hover .bs-legacy-image__img {
	filter: brightness(1.08);
}

.bs-legacy-image--grayscale .bs-legacy-image__img {
	filter: grayscale(1);
}

.bs-legacy-image--grayscale:hover .bs-legacy-image__img {
	filter: none;
}

.bs-legacy-image__caption {
	padding: .5em 0;
	font-size: .875em;
	opacity: .8;
}

/* ---------------------------------------------------------------- Buttons */
.bs-legacy-btn {
	margin: 0 .5em 1em 0;
	vertical-align: middle;
}

.bs-legacy-btn--uppercase {
	text-transform: uppercase;
}

.bs-legacy-btn--normal-case {
	text-transform: none;
}

.bs-legacy-btn.bs-btn--block {
	display: flex;
	width: 100%;
	margin-right: 0;
}

.bs-legacy-btn--secondary { background: var(--bs-secondary); }
.bs-legacy-btn--success { background: var(--bs-success); }
.bs-legacy-btn--alert { background: var(--bs-alert); }
.bs-legacy-btn--white { background: #fff; color: var(--bs-primary); }

.bs-legacy-btn--secondary:hover { background: color-mix(in srgb, var(--bs-secondary) 85%, #000); }
.bs-legacy-btn--success:hover { background: color-mix(in srgb, var(--bs-success) 85%, #000); }
.bs-legacy-btn--alert:hover { background: color-mix(in srgb, var(--bs-alert) 85%, #000); }

.bs-legacy-btn.bs-btn--outline.bs-legacy-btn--secondary { background: transparent; border-color: var(--bs-secondary); color: var(--bs-secondary); }
.bs-legacy-btn.bs-btn--outline.bs-legacy-btn--success { background: transparent; border-color: var(--bs-success); color: var(--bs-success); }
.bs-legacy-btn.bs-btn--outline.bs-legacy-btn--alert { background: transparent; border-color: var(--bs-alert); color: var(--bs-alert); }

.bs-legacy-btn.bs-btn--link { background: transparent; }
.bs-legacy-btn.bs-btn--link.bs-legacy-btn--success { color: var(--bs-success); }
.bs-legacy-btn.bs-btn--link.bs-legacy-btn--alert { color: var(--bs-alert); }
.bs-legacy-btn--underline span { text-decoration: underline; text-underline-offset: 3px; }

.bs-legacy-btn--shade,
.bs-legacy-btn--depth {
	box-shadow: 0 6px 14px rgba(0, 0, 0, .15);
}

/* ---------------------------------------------------------------- Title */
.bs-legacy-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .5em 1em;
	margin-bottom: 1.25em;
	padding-bottom: .5em;
	border-bottom: 2px solid var(--bs-border, #e5e7eb);
}

.bs-legacy-title__text {
	margin: 0;
}

.bs-legacy-title--center,
.bs-legacy-title--bold-center {
	justify-content: center;
	text-align: center;
	border-bottom: 0;
}

.bs-legacy-title__link {
	display: inline-flex;
	align-items: center;
	gap: .25em;
	font-size: .9em;
	font-weight: 600;
	text-decoration: none;
}

/* ---------------------------------------------------------------- Accordion */
.bs-legacy-accordion {
	margin-bottom: 1.5em;
}

.bs-legacy-accordion__title {
	margin-bottom: .75em;
}

/* ---------------------------------------------------------------- Posts */
.bs-legacy-posts {
	margin-bottom: 1.5em;
}

.bs-legacy-posts .bs-card__title {
	font-size: 1rem;
	line-height: 1.4;
}

.bs-legacy-posts .bs-card__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: .9em;
}

/* ---------------------------------------------------------------- Team member */
.bs-legacy-person {
	margin-bottom: 1.5em;
	text-align: center;
}

.bs-legacy-person__media {
	max-width: 100%;
	margin: 0 auto 1em;
	overflow: hidden;
}

.bs-legacy-person__media img {
	display: block;
	width: 100%;
	height: auto;
}

.bs-legacy-person__name {
	font-weight: 700;
	text-transform: uppercase;
	color: var(--bs-heading);
}

.bs-legacy-person__title {
	margin-bottom: .5em;
	font-size: .9em;
	opacity: .75;
}

.bs-legacy-person__text > :last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------- Testimonial */
.bs-legacy-testimonial {
	display: flex;
	gap: 1em;
	align-items: flex-start;
}

.bs-legacy-testimonial__media img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 50%;
}

.bs-legacy-testimonial__stars {
	margin-bottom: .35em;
	color: #f5b000;
	letter-spacing: 2px;
}

.bs-legacy-testimonial__text > :last-child {
	margin-bottom: 0;
}

.bs-legacy-testimonial__author {
	margin-top: .5em;
	font-size: .9em;
}

/* ---------------------------------------------------------------- Slider */
.bs-legacy-slider {
	margin-bottom: 1.5em;
}

.bs-legacy-slide > .bs-legacy-row {
	margin: 0;
}

/* ---------------------------------------------------------------- Footer block */
.bs-legacy-footer {
	color: var(--bs-text);
	background: var(--bs-body-bg, #fff);
}

.bs-legacy-footer a:not(.bs-btn) {
	color: var(--bs-link);
}

.bs-legacy-footer iframe {
	max-width: 100%;
}

/* Footer columns share one height; a map fills its column. */
.bs-legacy-footer .bs-legacy-row {
	align-items: stretch;
}

.bs-legacy-footer .bs-legacy-col > .col-inner {
	flex: 1;
}

.bs-legacy-footer .bs-legacy-col > .col-inner > iframe:only-child {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 320px;
}

/* ---------------------------------------------------------------- Utility classes found in legacy content */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.uppercase { text-transform: uppercase; }
.mb-0, .mb-0px { margin-bottom: 0 !important; }
.hidden { display: none !important; }

@media (min-width: 550px) {
	.show-for-small { display: none !important; }
}

@media (max-width: 549px) {
	.hide-for-small { display: none !important; }
}

@media (min-width: 850px) {
	.show-for-medium { display: none !important; }
}

@media (max-width: 849px) {
	.hide-for-medium { display: none !important; }
}

/* ==========================================================================
   Part 2 – banners, text boxes, banner grids, shop lists and other elements
   ========================================================================== */

/* Banner: fixed height or a ratio of its width (Flatsome "height: 56%"). */
.bs-legacy-banner {
	height: var(--bs-lb-d, 500px);
	aspect-ratio: var(--bs-lb-d-ratio, auto);
	margin-bottom: 0;
}

.bs-legacy-banner[style*="--bs-lb-d-ratio"] {
	height: auto;
}

@media (max-width: 849px) {
	.bs-legacy-banner {
		height: var(--bs-lb-t, var(--bs-lb-d, 420px));
		aspect-ratio: var(--bs-lb-t-ratio, var(--bs-lb-d-ratio, auto));
	}

	.bs-legacy-banner[style*="--bs-lb-t-ratio"] {
		height: auto;
	}
}

@media (max-width: 549px) {
	.bs-legacy-banner {
		height: var(--bs-lb-m, var(--bs-lb-t, var(--bs-lb-d, 340px)));
		aspect-ratio: var(--bs-lb-m-ratio, var(--bs-lb-t-ratio, var(--bs-lb-d-ratio, auto)));
	}

	.bs-legacy-banner[style*="--bs-lb-m-ratio"] {
		height: auto;
	}
}

.bs-legacy-banner__layers {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* Text box positioned by percentage inside the banner. */
.bs-legacy-textbox {
	position: absolute;
	left: var(--bs-tb-x, 50%);
	top: var(--bs-tb-y, 50%);
	z-index: 2;
	width: var(--bs-tb-w, 60%);
	max-width: 100%;
	font-size: calc(1em * var(--bs-tb-s, 1));
	transform: translate(calc(var(--bs-tb-x, 50%) * -1), calc(var(--bs-tb-y, 50%) * -1));
}

.bs-legacy-textbox__inner {
	padding: 20px;
}

.bs-legacy-textbox a,
.bs-legacy-textbox button {
	pointer-events: auto;
}

.bs-legacy-textbox__inner > :last-child {
	margin-bottom: 0;
}

@media (max-width: 849px) {
	.bs-legacy-textbox {
		width: var(--bs-tb-wt, var(--bs-tb-w, 60%));
	}
}

@media (max-width: 549px) {
	.bs-legacy-textbox {
		left: var(--bs-tb-xm, 50%);
		top: var(--bs-tb-ym, 50%);
		width: var(--bs-tb-wm, 90%);
		font-size: calc(1em * var(--bs-tb-sm, var(--bs-tb-s, 1)));
		transform: translate(calc(var(--bs-tb-xm, 50%) * -1), calc(var(--bs-tb-ym, 50%) * -1));
	}

	.bs-legacy-textbox__inner {
		padding: 12px;
	}
}

/* Text placed in a section / column without a banner. */
:not(.bs-legacy-banner__layers) > .bs-legacy-textbox {
	position: relative;
	left: auto;
	top: auto;
	transform: none;
	margin: 0 auto;
}

/* Banner grid */
.bs-legacy-banner-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: calc((var(--bs-bg-h, 600px) - 5 * var(--bs-bg-gap, 10px)) / 6);
	gap: var(--bs-bg-gap, 10px);
	margin-bottom: 1.5em;
}

.bs-legacy-col-grid {
	grid-column: span var(--bs-span-d, 12);
	grid-row: span var(--bs-rows, 6);
	min-width: 0;
}

.bs-legacy-col-grid > .bs-legacy-banner {
	height: 100%;
	aspect-ratio: auto;
}

@media (max-width: 849px) {
	.bs-legacy-col-grid {
		grid-column: span var(--bs-span-t, 12);
	}
}

@media (max-width: 549px) {
	.bs-legacy-banner-grid {
		grid-auto-rows: auto;
	}

	.bs-legacy-col-grid {
		grid-column: span var(--bs-span-m, 12);
		grid-row: auto;
	}

	.bs-legacy-col-grid > .bs-legacy-banner {
		height: 240px;
	}
}

/* Slides hold banners edge to edge. */
.bs-legacy-slide > .bs-legacy-banner {
	border-radius: 0;
}

/* Shop elements */
.bs-legacy-products,
.bs-legacy-categories,
.bs-legacy-products-list {
	margin-bottom: 1.5em;
}

.bs-legacy-tabs__title {
	margin-bottom: .6em;
}

/* Featured box with the icon on the right */
.bs-legacy-featured-box--right {
	flex-direction: row-reverse;
	text-align: right;
}

.bs-legacy-featured-box .bs-icon-box__img {
	width: calc(var(--bs-ib-size, 30px) * 2);
	max-width: none;
}

/* Image box */
.bs-legacy-imagebox {
	position: relative;
	overflow: hidden;
	margin-bottom: 1.2em;
	border-radius: 10px;
}

.bs-legacy-imagebox__media {
	overflow: hidden;
	margin: 0 auto;
}

.bs-legacy-imagebox__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.bs-legacy-imagebox:hover .bs-legacy-imagebox__media img {
	transform: scale(1.05);
}

.bs-legacy-imagebox__text {
	padding: 14px 10px;
}

.bs-legacy-imagebox__text > :last-child {
	margin-bottom: 0;
}

.bs-legacy-imagebox--overlay .bs-legacy-imagebox__text,
.bs-legacy-imagebox--shade .bs-legacy-imagebox__text {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding-top: 40px;
	background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .7));
	color: #fff;
}

.bs-legacy-imagebox--overlay :is(h1, h2, h3, h4, h5, h6, a),
.bs-legacy-imagebox--shade :is(h1, h2, h3, h4, h5, h6, a) {
	color: #fff;
}

/* Stack, message box, anchors */
.bs-legacy-stack {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 1em;
}

.bs-legacy-stack > * {
	margin: 0 !important;
}

.bs-legacy-message {
	margin-bottom: 1.5em;
	background-color: var(--bs-primary);
	background-size: cover;
	background-position: center;
	border-radius: 8px;
}

.bs-legacy-message > :last-child {
	margin-bottom: 0;
}

.bs-legacy-anchor {
	display: block;
	scroll-margin-top: calc(var(--bs-sticky-h, 64px) + 20px);
}

.bs-legacy-price .is-disabled {
	opacity: .45;
	text-decoration: line-through;
}

.bs-legacy-search {
	margin-bottom: 1em;
}

/* Flatsome utility classes used inside stored HTML. */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.is-small { font-size: .85em; }
.is-large { font-size: 1.15em; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

/* The banner background color shows when there is no image. */
.bs-legacy-banner .bs-banner__bg {
	background: none;
}
