/* Floating cart: a tab on the left edge that slides out on hover and opens a cart drawer from the left. */

.sol-fcart { font-family: var(--sol-font); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
.sol-fcart *, .sol-fcart *::before, .sol-fcart *::after { box-sizing: border-box; }

/* ---------- Tab ---------- */
.sol-fcart__tab {
	position: fixed; left: 0; top: 50%; z-index: 92; transform: translateY(-50%);
	display: flex; align-items: center; gap: 0; padding: 10px 12px 10px 10px; margin: 0;
	border: 1px solid rgba(255, 255, 255, .08); border-left: 0; border-radius: 0 20px 20px 0; cursor: pointer;
	color: #fff; font: inherit; text-align: left;
	background: linear-gradient(160deg, #1e293b 0%, #0f172a 70%);
	box-shadow: 0 22px 44px -16px rgba(15, 23, 42, .6), inset 0 1px 0 rgba(255, 255, 255, .08);
	overflow: hidden; isolation: isolate;
	transition: padding .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s, transform .35s cubic-bezier(.2, .8, .2, 1);
}
.sol-fcart__tab::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(110deg, transparent 30%, rgba(251, 191, 36, .22) 50%, transparent 70%);
	transform: translateX(-120%);
}
.sol-fcart__tab:hover::before, .sol-fcart__tab:focus-visible::before { animation: sol-fcart-shine 1s ease; }
.sol-fcart__tab:hover, .sol-fcart__tab:focus-visible, .sol-fcart__tab[aria-expanded="true"] {
	padding-right: 18px; box-shadow: 0 26px 50px -16px rgba(217, 119, 6, .55), inset 0 1px 0 rgba(255, 255, 255, .1);
}
.sol-fcart__icon {
	position: relative; width: 46px; height: 46px; border-radius: 14px; flex-shrink: 0;
	display: grid; place-items: center; color: var(--sol-ink);
	background: linear-gradient(135deg, #fbbf24, var(--sol-harvest));
	box-shadow: 0 10px 22px -8px rgba(217, 119, 6, .8), inset 0 1px 0 rgba(255, 255, 255, .45);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.sol-fcart__icon .sol-icon { width: 22px; height: 22px; stroke-width: 2.2; }
.sol-fcart__count {
	position: absolute; top: -7px; right: -7px; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 999px;
	display: grid; place-items: center; font-size: .7rem; font-weight: 800; line-height: 1;
	background: #fff; color: var(--sol-ink); box-shadow: 0 0 0 2px #0f172a, 0 4px 10px rgba(0, 0, 0, .3);
}
.sol-fcart__count.is-empty { display: none; }
.sol-fcart__label {
	display: flex; flex-direction: column; white-space: nowrap; overflow: hidden;
	max-width: 0; opacity: 0; margin-left: 0;
	transition: max-width .4s cubic-bezier(.2, .8, .2, 1), opacity .25s, margin .4s cubic-bezier(.2, .8, .2, 1);
}
.sol-fcart__label b { font-family: var(--sol-display); font-size: .92rem; font-weight: 600; }
.sol-fcart__total { font-size: .78rem; color: #fbbf24; font-weight: 600; }
.sol-fcart__tab:hover .sol-fcart__label, .sol-fcart__tab:focus-visible .sol-fcart__label, .sol-fcart__tab[aria-expanded="true"] .sol-fcart__label { max-width: 170px; opacity: 1; margin-left: 12px; }

/* Pulsing ring while the cart has items. */
.sol-fcart__ring { position: absolute; left: 10px; top: 50%; width: 46px; height: 46px; margin-top: -23px; border-radius: 14px; pointer-events: none; }
.sol-fcart.has-items .sol-fcart__ring { animation: sol-fcart-ring 2.6s ease-out infinite; }

/* Entrance on page load (only with motion allowed; never hides the tab otherwise). */
.sol-anim .sol-fcart__tab { animation: sol-fcart-in .8s cubic-bezier(.2, .8, .2, 1) .9s backwards; }
/* Item added: the bag jumps and the badge pops. */
.sol-fcart.is-bump .sol-fcart__icon { animation: sol-fcart-bump .8s cubic-bezier(.3, 1.6, .5, 1); }
.sol-fcart.is-bump .sol-fcart__count { animation: sol-fcart-pop .6s cubic-bezier(.3, 1.8, .5, 1); }

@keyframes sol-fcart-in { from { transform: translate(-110%, -50%); } }
@keyframes sol-fcart-shine { to { transform: translateX(120%); } }
@keyframes sol-fcart-ring { 0% { box-shadow: 0 0 0 0 rgba(251, 191, 36, .55); } 70%, 100% { box-shadow: 0 0 0 16px rgba(251, 191, 36, 0); } }
@keyframes sol-fcart-bump { 0%, 100% { transform: none; } 40% { transform: translateY(-5px); } 70% { transform: translateY(1px); } }
@keyframes sol-fcart-pop { 0% { transform: scale(.4); } 60% { transform: scale(1.35); } 100% { transform: none; } }

/* ---------- Drawer ---------- */
.sol-fcart__backdrop {
	position: fixed; inset: 0; z-index: 998; background: rgba(15, 23, 42, .5);
	-webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
	opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s;
}
.sol-fcart__drawer {
	position: fixed; left: 0; top: 0; bottom: 0; z-index: 999; width: min(430px, 92vw);
	display: flex; flex-direction: column; background: #fff; color: var(--sol-ink);
	border-radius: 0 28px 28px 0; box-shadow: 30px 0 80px -20px rgba(15, 23, 42, .45);
	transform: translateX(-104%); visibility: hidden;
	transition: transform .5s cubic-bezier(.2, .85, .2, 1), visibility 0s linear .5s;
}
.sol-fcart.is-open .sol-fcart__backdrop { opacity: 1; visibility: visible; transition: opacity .35s ease, visibility 0s; }
.sol-fcart.is-open .sol-fcart__drawer { transform: none; visibility: visible; transition: transform .5s cubic-bezier(.2, .85, .2, 1), visibility 0s; }
.sol-fcart.is-open .sol-fcart__tab { transform: translate(-110%, -50%); }

.sol-fcart__head {
	position: relative; overflow: hidden; display: flex; align-items: center; gap: 14px; padding: 22px 22px 22px 24px;
	color: #fff; border-radius: 0 28px 0 0;
	background: radial-gradient(120% 140% at 100% 0%, rgba(217, 119, 6, .45), transparent 55%), linear-gradient(160deg, #1e293b, #0f172a);
}
.sol-fcart__head::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 22px 22px; -webkit-mask-image: linear-gradient(90deg, transparent, #000); mask-image: linear-gradient(90deg, transparent, #000); }
.sol-fcart__head > * { position: relative; z-index: 1; }
.sol-fcart__head-icon { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; color: var(--sol-ink); background: linear-gradient(135deg, #fbbf24, var(--sol-harvest)); flex-shrink: 0; }
.sol-fcart__head-icon .sol-icon { width: 22px; height: 22px; }
.sol-fcart__head > div { flex: 1; min-width: 0; }
.sol-fcart__title { margin: 0; font-family: var(--sol-display); font-size: 1.3rem; font-weight: 700; line-height: 1.2; }
.sol-fcart__heading-count { font-size: .8rem; color: rgba(255, 255, 255, .65); }
.sol-fcart__close { width: 40px; height: 40px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .2s, transform .3s; }
.sol-fcart__close:hover { background: rgba(255, 255, 255, .16); }
.sol-fcart__close .sol-icon { width: 18px; height: 18px; }

.sol-fcart__body { flex: 1; overflow-y: auto; padding: 18px 20px; overscroll-behavior: contain; }

/* WooCommerce mini cart inside the drawer. */
.sol-fcart .widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }
.sol-fcart .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sol-fcart .woocommerce-mini-cart-item {
	position: relative; display: block; padding: 14px 44px 14px 14px; margin: 0; border-radius: 16px;
	background: #f8fafc; border: 1px solid #eef2f7; font-size: .85rem; color: var(--sol-mist);
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.sol-fcart .woocommerce-mini-cart-item:hover { border-color: rgba(217, 119, 6, .35); box-shadow: 0 10px 24px -18px rgba(15, 23, 42, .5); }
.sol-fcart .woocommerce-mini-cart-item > a:not(.remove) { display: flex; align-items: center; gap: 12px; font-family: var(--sol-display); font-weight: 600; font-size: .95rem; line-height: 1.3; color: var(--sol-ink); text-decoration: none; margin-bottom: 6px; }
.sol-fcart .woocommerce-mini-cart-item img { width: 54px !important; height: 54px !important; object-fit: cover; border-radius: 12px; flex-shrink: 0; margin: 0 !important; float: none !important; box-shadow: 0 4px 12px -6px rgba(15, 23, 42, .4); }
.sol-fcart .woocommerce-mini-cart-item .quantity { display: block; padding-left: 66px; color: var(--sol-mist); }
.sol-fcart .woocommerce-mini-cart-item .quantity .amount { color: var(--sol-harvest-dark); font-weight: 700; }
.sol-fcart .woocommerce-mini-cart-item .variation { padding-left: 66px; margin: 4px 0 0; font-size: .78rem; }
.sol-fcart .woocommerce-mini-cart-item a.remove {
	position: absolute; top: 12px; right: 12px; width: 26px; height: 26px; border-radius: 50%;
	display: grid; place-items: center; font-size: 17px; line-height: 1; text-decoration: none;
	color: var(--sol-mist) !important; background: #fff; border: 1px solid var(--sol-border); transition: background .2s, color .2s, transform .2s;
}
.sol-fcart .woocommerce-mini-cart-item a.remove:hover { background: #fee2e2; color: #b91c1c !important; border-color: #fecaca; }
.sol-fcart .woocommerce-mini-cart__total {
	display: flex; justify-content: space-between; align-items: baseline; margin: 18px 0 0; padding: 16px 4px 0;
	border-top: 1px dashed var(--sol-border); font-size: .9rem; color: var(--sol-mist);
}
.sol-fcart .woocommerce-mini-cart__total .amount { font-family: var(--sol-display); font-size: 1.45rem; font-weight: 700; color: var(--sol-ink); }
.sol-fcart .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; margin: 16px 0 0; }
.sol-fcart .woocommerce-mini-cart__buttons .button {
	display: inline-flex; align-items: center; justify-content: center; margin: 0 !important; padding: 13px 16px; border-radius: 12px;
	font-family: var(--sol-display); font-weight: 600; font-size: .95rem; text-decoration: none; text-align: center;
	border: 1px solid rgba(15, 23, 42, .18); background: #fff; color: var(--sol-ink) !important; transition: background .2s, transform .2s, box-shadow .2s;
}
.sol-fcart .woocommerce-mini-cart__buttons .button:hover { transform: translateY(-1px); background: var(--sol-chalk); }
.sol-fcart .woocommerce-mini-cart__buttons .button.checkout { background: linear-gradient(135deg, #fbbf24, var(--sol-harvest)); border-color: transparent; box-shadow: 0 12px 24px -10px rgba(217, 119, 6, .7); }
.sol-fcart .woocommerce-mini-cart__buttons .button.checkout:hover { box-shadow: 0 16px 30px -10px rgba(217, 119, 6, .85); }
.sol-fcart .woocommerce-mini-cart__empty-message {
	margin: auto 0; padding: 40px 12px; text-align: center; color: var(--sol-mist); font-size: .95rem;
}
.sol-fcart .woocommerce-mini-cart__empty-message::before {
	content: ""; display: block; width: 84px; height: 84px; margin: 0 auto 18px; border-radius: 26px;
	background: var(--sol-harvest-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E") center / 40px no-repeat;
	box-shadow: 0 0 0 10px rgba(254, 243, 199, .45);
}

.sol-fcart__foot { padding: 14px 20px 20px; border-top: 1px solid #eef2f7; display: grid; gap: 8px; }
.sol-fcart__browse { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px; border-radius: 12px; background: var(--sol-ink); color: #fff !important; text-decoration: none; font-weight: 600; font-size: .9rem; transition: background .2s; }
.sol-fcart__browse:hover { background: var(--sol-ink-2); }
.sol-fcart__browse .sol-icon { width: 16px; height: 16px; color: #fbbf24; }
.sol-fcart__secure { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; font-size: .75rem; color: var(--sol-mist); }
.sol-fcart__secure .sol-icon { width: 13px; height: 13px; }

/* Items slide in one after another when the drawer opens. */
.sol-anim .sol-fcart.is-open .woocommerce-mini-cart-item { animation: sol-fcart-item .5s cubic-bezier(.2, .8, .2, 1) backwards; }
.sol-anim .sol-fcart.is-open .woocommerce-mini-cart-item:nth-child(2) { animation-delay: .06s; }
.sol-anim .sol-fcart.is-open .woocommerce-mini-cart-item:nth-child(3) { animation-delay: .12s; }
.sol-anim .sol-fcart.is-open .woocommerce-mini-cart-item:nth-child(n+4) { animation-delay: .18s; }
@keyframes sol-fcart-item { from { opacity: 0; transform: translateX(-24px); } }

/* Phones: the tab sits low on the left edge so it doesn't cover text. */
@media (max-width: 767px) {
	.sol-fcart__tab { top: auto; bottom: 110px; transform: none; padding: 8px 10px 8px 8px; border-radius: 0 16px 16px 0; }
	.sol-fcart__icon { width: 40px; height: 40px; border-radius: 12px; }
	.sol-fcart__ring { left: 8px; width: 40px; height: 40px; margin-top: -20px; border-radius: 12px; }
	.sol-fcart.is-open .sol-fcart__tab { transform: translateX(-110%); }
	@keyframes sol-fcart-in { from { transform: translateX(-110%); } }
	.sol-fcart__tab:hover .sol-fcart__label { max-width: 0; opacity: 0; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.sol-fcart__tab, .sol-fcart__drawer, .sol-fcart__backdrop, .sol-fcart__label { transition: none; }
	.sol-fcart.has-items .sol-fcart__ring { animation: none; }
}
