/* ==========================================================================
   BESTPRICE CUSTOM
   Shared Components / Premium Footer / Utility Components
   ========================================================================== */


/* ==========================================================================
   PREMIUM FOOTER FOUNDATION
   ========================================================================== */

.bp-footer--premium {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(
			145deg,
			#0b0d10 0%,
			#11151a 48%,
			#151a20 100%
		);
	color: #ffffff;
}

.bp-footer--premium::before {
	content: "";
	position: absolute;
	top: -180px;
	right: -140px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	background:
		radial-gradient(
			circle,
			rgba(216, 155, 29, 0.11) 0%,
			rgba(216, 155, 29, 0.035) 42%,
			transparent 70%
		);
	pointer-events: none;
}

.bp-footer--premium::after {
	content: "";
	position: absolute;
	left: -260px;
	bottom: -330px;
	width: 700px;
	height: 700px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.035);
	box-shadow:
		0 0 0 90px rgba(255, 255, 255, 0.012),
		0 0 0 180px rgba(255, 255, 255, 0.008);
	pointer-events: none;
}


/* ==========================================================================
   SERVICE RAIL
   ========================================================================== */

.bp-footer-rail {
	position: relative;
	z-index: 2;
	background:
		linear-gradient(
			90deg,
			#d99b21 0%,
			#b9802d 48%,
			#d8a840 100%
		);
	color: #15181c;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.25),
		inset 0 -1px 0 rgba(0, 0, 0, 0.12);
}

.bp-footer-rail__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bp-footer-rail__item {
	position: relative;
	min-height: 92px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 34px;
	border-right: 1px solid rgba(17, 21, 26, 0.16);
}

.bp-footer-rail__item:first-child {
	padding-left: 0;
}

.bp-footer-rail__item:last-child {
	padding-right: 0;
	border-right: 0;
}


/*
 * The markup contains 01 / 02 / 03, but we deliberately suppress
 * the numerals so the footer does not inherit the Incountry-style
 * numbered trust-block visual language.
 */

.bp-footer-rail__mark {
	flex: 0 0 12px;
	width: 12px;
	height: 12px;
	display: block;
	overflow: hidden;
	border-radius: 50%;
	background:
		radial-gradient(
			circle at 35% 35%,
			#fff3c9 0%,
			#f4c45c 22%,
			#8e5e0d 100%
		);
	color: transparent;
	font-size: 0;
	box-shadow:
		0 0 0 5px rgba(255, 255, 255, 0.14),
		0 5px 14px rgba(84, 53, 7, 0.22);
}

.bp-footer-rail__item strong {
	display: block;
	margin-bottom: 3px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.bp-footer-rail__item div span {
	display: block;
	color: rgba(17, 21, 26, 0.68);
	font-size: 11px;
	line-height: 1.45;
}


/* ==========================================================================
   PREMIUM FOOTER MAIN
   ========================================================================== */

.bp-footer-premium {
	position: relative;
	z-index: 2;
	padding: 78px 0 0;
}

.bp-footer-premium::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: min(calc(100% - 48px), var(--bp-container));
	height: 1px;
	transform: translateX(-50%);
	background:
		linear-gradient(
			90deg,
			transparent,
			rgba(255, 255, 255, 0.08),
			transparent
		);
}


/* ==========================================================================
   BRAND ROW
   ========================================================================== */

.bp-footer-brand-row {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(360px, 0.7fr);
	align-items: stretch;
	gap: 48px;
	padding-bottom: 58px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}


/* Brand identity */

.bp-footer-brand {
	max-width: 650px;
}

.bp-footer-brand__identity {
	display: inline-flex;
	align-items: center;
	gap: 17px;
	margin-bottom: 24px;
}

.bp-brandmark {
	position: relative;
	width: 66px;
	height: 66px;
	display: grid;
	place-items: center;
	overflow: hidden;
	border: 1px solid rgba(216, 155, 29, 0.55);
	border-radius: 18px;
	background:
		linear-gradient(
			145deg,
			#f0b13c 0%,
			#c88718 52%,
			#9b6211 100%
		);
	color: #111419;
	font-size: 22px;
	font-weight: 900;
	letter-spacing: -0.06em;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.35),
		0 12px 28px rgba(0, 0, 0, 0.28);
}

.bp-brandmark::after {
	content: "";
	position: absolute;
	top: -40%;
	left: -45%;
	width: 80%;
	height: 180%;
	transform: rotate(24deg);
	background:
		linear-gradient(
			90deg,
			transparent,
			rgba(255, 255, 255, 0.28),
			transparent
		);
}

.bp-brandword {
	display: flex;
	flex-direction: column;
	line-height: 1;
}

.bp-brandword strong {
	color: #ffffff;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.05em;
}

.bp-brandword small {
	margin-top: 9px;
	color: #8f969e;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.22em;
}

.bp-footer-brand__statement {
	max-width: 560px;
	margin: 0;
	color: #8f969e;
	font-size: 14px;
	line-height: 1.8;
}


/* ==========================================================================
   CONTACT CARD
   ========================================================================== */

.bp-footer-contact-card {
	position: relative;
	overflow: hidden;
	padding: 30px 31px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 18px;
	background:
		linear-gradient(
			145deg,
			rgba(255, 255, 255, 0.075) 0%,
			rgba(255, 255, 255, 0.025) 100%
		);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.08),
		0 20px 50px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(12px);
}

.bp-footer-contact-card::before {
	content: "";
	position: absolute;
	top: -90px;
	right: -70px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background:
		radial-gradient(
			circle,
			rgba(216, 155, 29, 0.18),
			transparent 68%
		);
}

.bp-footer-contact-card__label {
	position: relative;
	z-index: 1;
	display: block;
	margin-bottom: 9px;
	color: #c58d27;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.bp-footer-contact-card__title {
	position: relative;
	z-index: 1;
	display: block;
	margin-bottom: 28px;
	color: #ffffff;
	font-size: 29px;
	line-height: 1.05;
	font-weight: 750;
	letter-spacing: -0.045em;
}

.bp-footer-contact-card__actions {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.bp-footer-contact-card__phone {
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
}

.bp-footer-contact-card__phone:hover {
	color: #e0aa3f;
}

.bp-footer-contact-card__button {
	min-height: 42px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 15px;
	border-radius: 8px;
	background:
		linear-gradient(
			135deg,
			#e2a42b 0%,
			#c5891f 100%
		);
	color: #121519;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.28),
		0 8px 18px rgba(0, 0, 0, 0.18);
	transition:
		transform var(--bp-transition),
		box-shadow var(--bp-transition);
}

.bp-footer-contact-card__button:hover {
	transform: translateY(-2px);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.3),
		0 13px 24px rgba(0, 0, 0, 0.24);
}


/* ==========================================================================
   FOOTER GRID
   ========================================================================== */

.bp-footer-premium__grid {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr 1fr 1.15fr;
	gap: 54px;
	padding: 54px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.bp-footer-premium__column {
	min-width: 0;
}

.bp-footer-premium__heading {
	margin-bottom: 21px;
	color: #717983;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}


/* Links */

.bp-footer-premium__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bp-footer-premium__links li {
	margin-bottom: 10px;
}

.bp-footer-premium__links li:last-child {
	margin-bottom: 0;
}

.bp-footer-premium__links a {
	position: relative;
	display: inline-flex;
	align-items: center;
	color: #b3b9bf;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.45;
	transition:
		color var(--bp-transition),
		transform var(--bp-transition);
}

.bp-footer-premium__links a::before {
	content: "";
	width: 0;
	height: 1px;
	margin-right: 0;
	background: #d89b1d;
	transition:
		width var(--bp-transition),
		margin-right var(--bp-transition);
}

.bp-footer-premium__links a:hover {
	color: #ffffff;
	transform: translateX(2px);
}

.bp-footer-premium__links a:hover::before {
	width: 12px;
	margin-right: 7px;
}


/* ==========================================================================
   VISIT COLUMN
   ========================================================================== */

.bp-footer-premium__visit p {
	margin-bottom: 18px;
	color: #aab0b6;
	font-size: 12px;
	line-height: 1.7;
}

.bp-footer-map-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 27px;
	color: #e2a42b;
	font-size: 10px;
	font-weight: 750;
	letter-spacing: 0.03em;
}

.bp-footer-map-link span {
	transition: transform var(--bp-transition);
}

.bp-footer-map-link:hover span {
	transform: translate(2px, -2px);
}

.bp-footer-premium__hours {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 7px 13px;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.bp-footer-premium__hours span {
	color: #6f7780;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.11em;
}

.bp-footer-premium__hours strong {
	color: #aeb4ba;
	font-size: 10px;
	font-weight: 600;
}


/* ==========================================================================
   PAYMENT / CONTACT META
   ========================================================================== */

.bp-footer-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding: 24px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.bp-footer-meta__payments,
.bp-footer-meta__email {
	display: flex;
	align-items: center;
	gap: 14px;
}

.bp-footer-meta__label {
	color: #676f78;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.bp-footer-payment-chips {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.bp-footer-payment-chips span {
	min-height: 27px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 9px;
	border: 1px solid rgba(255, 255, 255, 0.11);
	border-radius: 6px;
	background:
		linear-gradient(
			145deg,
			rgba(255, 255, 255, 0.055),
			rgba(255, 255, 255, 0.018)
		);
	color: #aab0b5;
	font-size: 8px;
	font-weight: 750;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.bp-footer-meta__email a {
	color: #c5c9cd;
	font-size: 11px;
	font-weight: 550;
}

.bp-footer-meta__email a:hover {
	color: #e1a530;
}


/* ==========================================================================
   FOOTER BOTTOM
   ========================================================================== */

.bp-footer-bottom {
	min-height: 74px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}

.bp-footer-bottom p {
	margin: 0;
	color: #626a73;
	font-size: 9px;
}

.bp-footer-bottom__signature {
	letter-spacing: 0.05em;
}


/* ==========================================================================
   404 PAGE
   ========================================================================== */

.bp-error-page {
	background: #ffffff;
}

.bp-error-page .bp-search-empty {
	max-width: 820px;
}

.bp-error-page__actions {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 38px;
}

.bp-error-page__home {
	background: #ffffff;
	border: 1px solid var(--bp-border);
	color: var(--bp-text);
}

.bp-error-page__home:hover {
	background: var(--bp-bg-dark);
	border-color: var(--bp-bg-dark);
	color: #ffffff;
}

.bp-error-page__search {
	max-width: 560px;
	margin: 0 auto;
	padding-top: 28px;
	border-top: 1px solid var(--bp-border);
}

.bp-error-page__search > p {
	margin-bottom: 13px;
	color: var(--bp-text-soft);
	font-size: 11px;
	font-weight: 750;
}


/* ==========================================================================
   GENERIC WORDPRESS HELPERS
   ========================================================================== */

.woocommerce-account .bp-page-content__inner,
.woocommerce-cart .bp-page-content__inner,
.woocommerce-checkout .bp-page-content__inner {
	max-width: none;
}

.alignwide {
	width: min(1200px, 100%);
	max-width: none;
}

.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.wp-caption {
	max-width: 100%;
}

.wp-caption-text {
	margin-top: 7px;
	color: var(--bp-text-soft);
	font-size: 11px;
}

.gallery {
	display: grid;
	gap: 12px;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}


/* ==========================================================================
   COMMENTS
   ========================================================================== */

.comments-area {
	margin-top: 55px;
	padding-top: 38px;
	border-top: 1px solid var(--bp-border);
}

.comments-title,
.comment-reply-title {
	color: var(--bp-black);
	font-weight: 800;
	letter-spacing: -0.035em;
}

.comment-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.comment-list li {
	margin-bottom: 18px;
	padding: 20px;
	background: #fafaf8;
	border: 1px solid var(--bp-border);
	border-radius: var(--bp-radius-md);
}


/* ==========================================================================
   TABLET
   ========================================================================== */

@media (max-width: 1050px) {

	.bp-footer-brand-row {
		grid-template-columns: 1fr;
	}

	.bp-footer-contact-card {
		max-width: 650px;
	}

	.bp-footer-premium__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}


/* ==========================================================================
   SMALL TABLET
   ========================================================================== */

@media (max-width: 800px) {

	.bp-footer-rail__grid {
		grid-template-columns: 1fr;
	}

	.bp-footer-rail__item {
		min-height: 76px;
		padding: 16px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(17, 21, 26, 0.14);
	}

	.bp-footer-rail__item:last-child {
		border-bottom: 0;
	}

	.bp-footer-premium {
		padding-top: 58px;
	}

	.bp-footer-brand-row {
		gap: 34px;
		padding-bottom: 42px;
	}

	.bp-footer-meta {
		align-items: flex-start;
		flex-direction: column;
	}
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 600px) {

	.bp-footer-premium__grid {
		grid-template-columns: 1fr;
		gap: 35px;
		padding: 42px 0;
	}

	.bp-footer-contact-card {
		padding: 24px;
	}

	.bp-footer-contact-card__actions {
		align-items: flex-start;
		flex-direction: column;
	}

	.bp-footer-contact-card__button {
		width: 100%;
		justify-content: space-between;
	}

	.bp-footer-meta__payments,
	.bp-footer-meta__email {
		align-items: flex-start;
		flex-direction: column;
	}

	.bp-footer-payment-chips span {
		flex: 1 1 calc(50% - 6px);
	}

	.bp-footer-bottom {
		min-height: 88px;
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		gap: 6px;
	}

	.bp-footer-bottom__signature {
		display: none;
	}

	.bp-brandmark {
		width: 58px;
		height: 58px;
		border-radius: 15px;
	}

	.bp-brandword strong {
		font-size: 24px;
	}

	.bp-error-page__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.bp-error-page__actions .bp-button {
		width: 100%;
	}

	.gallery-columns-3,
	.gallery-columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}