/* IBD Side Cart v1.0.1 */

.ibd-sc, .ibd-sc-fab, .ibd-sc-backdrop {
	--sc-plum: #482051;
	--sc-plum-dark: #2e1335;
	--sc-plum-soft: #f3ecf4;
	--sc-plum-text: #6e3f7a;
	--sc-sand: #e4d8cc;
	--sc-blush: #f6f2f0;
	--sc-cream: #fff9f6;
	--sc-line: #f0e8e1;
	--sc-ink: #121212;
	--sc-muted: #6a625e;
	--sc-rose: #a0457a;
	--sc-sale: #8a2d3b;
	--sc-ok: #2f6b4f;
	--sc-serif: "Nanum Myeongjo", Georgia, serif;
	--sc-sans: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--sc-label: "Roboto Condensed", "Arial Narrow", sans-serif;
}

/* Hide the theme's own basket panel once the side cart is running. */
.ibd-sc-on .elementor-menu-cart__container,
.ibd-sc-on .elementor-menu-cart__main { display: none !important; }
.ibd-sc-on a.added_to_cart.wc-forward { display: none !important; }
.ibd-sc-open, .ibd-sc-open body { overflow: hidden !important; }

.ibd-sc-vh {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Backdrop and panel ------------------------------------------------------- */
.ibd-sc-backdrop {
	position: fixed; inset: 0; z-index: 2147483000; background: rgba(18, 18, 18, .45);
	opacity: 0; transition: opacity .28s ease;
}
.ibd-sc-backdrop.is-open { opacity: 1; }
.ibd-sc-backdrop[hidden], .ibd-sc[hidden] { display: none !important; }

.ibd-sc {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 2147483001;
	display: flex; flex-direction: column; width: 440px; max-width: 100vw; height: 100vh; height: 100dvh;
	background: #fff; color: var(--sc-ink); font-family: var(--sc-sans); font-size: 15px; line-height: 1.45;
	box-shadow: -12px 0 40px rgba(18, 18, 18, .18); transform: translateX(100%);
	transition: transform .3s cubic-bezier(.2, .8, .2, 1); outline: none; text-align: left;
	-webkit-font-smoothing: antialiased;
}
.ibd-sc.is-open { transform: none; }
.ibd-sc *, .ibd-sc *::before, .ibd-sc *::after { box-sizing: border-box; }
.ibd-sc a { color: inherit; }
.ibd-sc button { font-family: inherit; text-transform: none; letter-spacing: 0; box-shadow: none; line-height: 1.2; }
.ibd-sc svg { display: block; flex: none; }

/* Header */
.ibd-sc .ibd-sc__head {
	display: flex; align-items: center; gap: 12px; flex: none; padding: 18px 16px 16px 24px;
	border-bottom: 1px solid var(--sc-line); background: #fff;
}
.ibd-sc .ibd-sc__title {
	flex: 1; margin: 0; padding: 0; font-family: var(--sc-serif); font-size: 24px; font-weight: 400;
	line-height: 1.2; color: var(--sc-ink); text-transform: none; letter-spacing: 0;
}
.ibd-sc .ibd-sc__count { font-family: var(--sc-sans); font-size: 15px; color: var(--sc-muted); }
.ibd-sc .ibd-sc__close,
.ibd-sc .ibd-sc__close:hover,
.ibd-sc .ibd-sc__close:focus {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; margin: 0;
	border: 0; border-radius: 999px; background: transparent; color: var(--sc-ink); cursor: pointer;
}
.ibd-sc .ibd-sc__close:hover { background: var(--sc-blush); }

/* Free delivery progress */
.ibd-sc .ibd-sc__progress { flex: none; padding: 12px 24px 14px; background: var(--sc-cream); border-bottom: 1px solid var(--sc-line); }
.ibd-sc .ibd-sc__progress-text { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 14px; color: var(--sc-ink); }
.ibd-sc .ibd-sc__progress-icon { color: var(--sc-plum); }
.ibd-sc .ibd-sc__meter { height: 6px; border-radius: 6px; background: var(--sc-sand); overflow: hidden; }
.ibd-sc .ibd-sc__meter span { display: block; height: 100%; border-radius: 6px; background: var(--sc-plum); transition: width .4s ease; }
.ibd-sc .ibd-sc__progress.is-done .ibd-sc__meter span { background: var(--sc-ok); }
.ibd-sc .ibd-sc__progress.is-done .ibd-sc__progress-icon { color: var(--sc-ok); }

/* Toast */
.ibd-sc .ibd-sc__toast {
	display: flex; align-items: center; gap: 12px; flex: none; margin: 12px 16px 0; padding: 10px 12px 10px 16px;
	border-radius: 12px; background: var(--sc-ink); color: #fff; font-size: 14px; animation: ibd-sc-in .2s ease;
}
.ibd-sc .ibd-sc__toast[hidden] { display: none; }
.ibd-sc .ibd-sc__toast.is-error { background: var(--sc-sale); }
.ibd-sc .ibd-sc__toast-text { flex: 1; }
.ibd-sc .ibd-sc__toast-btn,
.ibd-sc .ibd-sc__toast-btn:hover,
.ibd-sc .ibd-sc__toast-btn:focus {
	min-height: 32px; padding: 0 12px; margin: 0; border: 1px solid rgba(255, 255, 255, .6); border-radius: 999px;
	background: transparent; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer;
}
.ibd-sc .ibd-sc__toast-btn:hover { background: rgba(255, 255, 255, .15); }

/* Body */
.ibd-sc .ibd-sc__body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 24px 24px; }

.ibd-sc .ibd-sc__items { margin: 0; padding: 0; list-style: none; }
.ibd-sc .ibd-sc__item {
	display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 10px; align-items: start;
	margin: 0; padding: 10px 0; border-bottom: 1px solid var(--sc-line); transition: opacity .2s;
}
.ibd-sc .ibd-sc__item.is-busy { opacity: .5; pointer-events: none; }
.ibd-sc .ibd-sc__item.is-new { animation: ibd-sc-flash 1.4s ease; }
.ibd-sc .ibd-sc__thumb {
	display: block; width: 56px; height: 56px; border-radius: 8px; overflow: hidden; background: var(--sc-blush);
}
.ibd-sc .ibd-sc__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; border-radius: 0; }
.ibd-sc .ibd-sc__info { min-width: 0; }
.ibd-sc .ibd-sc__name {
	display: block; font-family: var(--sc-serif); font-size: 14px; line-height: 1.25; color: var(--sc-ink); text-decoration: none;
}
.ibd-sc .ibd-sc__name:hover { color: var(--sc-plum); text-decoration: underline; }
.ibd-sc .ibd-sc__meta { margin: 1px 0 0; font-size: 12px; color: var(--sc-muted); }
.ibd-sc .ibd-sc__unit { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 1px 0 0; font-size: 13px; color: var(--sc-ink); }
.ibd-sc .ibd-sc__unit del { font-size: 12px; color: var(--sc-muted); }
.ibd-sc .ibd-sc__save { font-size: 12px; font-weight: 700; color: var(--sc-sale); }
.ibd-sc .ibd-sc__low { margin: 2px 0 0; font-size: 11px; font-weight: 700; color: var(--sc-sale); }
.ibd-sc .ibd-sc__row { display: flex; align-items: center; gap: 6px; margin-top: 6px; }
.ibd-sc .ibd-sc__line { font-weight: 700; font-size: 14px; white-space: nowrap; padding-top: 1px; }

/* Quantity */
.ibd-sc .ibd-sc__qtywrap { display: flex; align-items: center; gap: 8px; }
.ibd-sc .ibd-sc__max { font-size: 12px; color: var(--sc-muted); }
.ibd-sc .ibd-sc__qty {
	display: inline-flex; align-items: center; height: 30px; border: 1px solid var(--sc-sand); border-radius: 999px; background: #fff;
}
.ibd-sc .ibd-sc__qtybtn,
.ibd-sc .ibd-sc__qtybtn:hover,
.ibd-sc .ibd-sc__qtybtn:focus {
	display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 28px; padding: 0; margin: 0;
	border: 0; border-radius: 999px; background: transparent; color: var(--sc-plum); cursor: pointer;
}
.ibd-sc .ibd-sc__qtybtn:hover { background: var(--sc-blush); }
.ibd-sc .ibd-sc__qtybtn:disabled { color: #c9bfb6; cursor: not-allowed; background: transparent; }
.ibd-sc .ibd-sc__qtyinput {
	width: 28px; height: 28px; padding: 0; margin: 0; border: 0; background: transparent; text-align: center;
	font-family: var(--sc-sans); font-size: 14px; font-weight: 700; color: var(--sc-ink); -moz-appearance: textfield; box-shadow: none;
}
.ibd-sc .ibd-sc__qtyinput::-webkit-outer-spin-button,
.ibd-sc .ibd-sc__qtyinput::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ibd-sc .ibd-sc__qtyfixed { font-size: 14px; color: var(--sc-muted); }
.ibd-sc .ibd-sc__remove,
.ibd-sc .ibd-sc__remove:hover,
.ibd-sc .ibd-sc__remove:focus {
	display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; margin: 0;
	border: 0; border-radius: 999px; background: transparent; color: var(--sc-muted); cursor: pointer;
}
.ibd-sc .ibd-sc__remove:hover { background: #f8e9ec; color: var(--sc-sale); }

/* Recommendations */
.ibd-sc .ibd-sc__recs { margin: 22px 0 0; }
.ibd-sc .ibd-sc__recs-title {
	margin: 0 0 12px; font-family: var(--sc-label); font-size: 13px; font-weight: 500; letter-spacing: .08em;
	text-transform: uppercase; color: var(--sc-plum);
}
.ibd-sc .ibd-sc__recs-list {
	display: flex; gap: 12px; margin: 0 -24px; padding: 0 24px 6px; list-style: none; overflow-x: auto;
	scroll-snap-type: x proximity; scroll-padding-inline: 24px; scrollbar-width: thin;
}
.ibd-sc .ibd-sc__rec {
	display: flex; flex-direction: column; flex: 0 0 148px; margin: 0; padding: 8px 8px 10px; border: 1px solid var(--sc-sand);
	border-radius: 14px; background: #fff; scroll-snap-align: start;
}
.ibd-sc .ibd-sc__rec-img { display: block; aspect-ratio: 1 / 1; border-radius: 10px; overflow: hidden; background: var(--sc-blush); }
.ibd-sc .ibd-sc__rec-img img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.ibd-sc .ibd-sc__rec-name {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em;
	margin: 8px 0 2px; font-family: var(--sc-serif); font-size: 14px; line-height: 1.3; color: var(--sc-ink); text-decoration: none;
}
.ibd-sc .ibd-sc__rec-name:hover { color: var(--sc-plum); }
.ibd-sc .ibd-sc__rec-price { display: flex; flex-wrap: wrap; gap: 0 6px; align-items: baseline; font-size: 14px; font-weight: 700; margin-bottom: 8px; }
.ibd-sc .ibd-sc__rec-price del { font-size: 12px; font-weight: 400; color: var(--sc-muted); }
.ibd-sc .ibd-sc__recbtn,
.ibd-sc .ibd-sc__recbtn:hover,
.ibd-sc .ibd-sc__recbtn:focus {
	display: inline-flex; align-items: center; justify-content: center; min-height: 36px; margin: auto 0 0; padding: 0 12px;
	border: 1px solid var(--sc-plum); border-radius: 999px; background: var(--sc-plum); color: #fff;
	font-size: 13px; font-weight: 700; text-decoration: none; cursor: pointer;
}
.ibd-sc .ibd-sc__recbtn:hover { background: var(--sc-plum-dark); border-color: var(--sc-plum-dark); color: #fff; }
.ibd-sc .ibd-sc__recbtn:disabled { opacity: .7; cursor: progress; }
.ibd-sc .ibd-sc__recbtn--ghost,
.ibd-sc .ibd-sc__recbtn--ghost:focus { background: #fff; color: var(--sc-plum); }
.ibd-sc .ibd-sc__recbtn--ghost:hover { background: var(--sc-blush); color: var(--sc-plum); border-color: var(--sc-plum); }

/* Empty */
.ibd-sc .ibd-sc__empty { display: flex; flex-direction: column; align-items: center; padding: 40px 8px 8px; text-align: center; }
.ibd-sc .ibd-sc__empty-icon {
	display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: 14px;
	border-radius: 999px; background: var(--sc-plum-soft); color: var(--sc-plum);
}
.ibd-sc .ibd-sc__empty-icon svg { width: 30px; height: 30px; }
.ibd-sc .ibd-sc__empty-title { margin: 0; font-family: var(--sc-serif); font-size: 22px; color: var(--sc-ink); }
.ibd-sc .ibd-sc__empty-text { margin: 6px 0 16px; color: var(--sc-muted); font-size: 14px; }
.ibd-sc .ibd-sc__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 18px; }
.ibd-sc .ibd-sc__chip {
	display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border: 1px solid var(--sc-sand);
	border-radius: 999px; background: #fff; color: var(--sc-ink); font-size: 14px; text-decoration: none;
}
.ibd-sc .ibd-sc__chip:hover { border-color: var(--sc-plum); color: var(--sc-plum); }
.ibd-sc .ibd-sc__cta,
.ibd-sc .ibd-sc__cta:focus {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px;
	border-radius: 999px; background: var(--sc-plum); color: #fff; font-weight: 700; text-decoration: none;
}
.ibd-sc .ibd-sc__cta:hover { background: var(--sc-plum-dark); color: #fff; }
.ibd-sc .ibd-sc__popular { text-align: left; }

/* Skeleton */
.ibd-sc .ibd-sc__item--skeleton .ibd-sc__thumb,
.ibd-sc .ibd-sc__bar {
	background: linear-gradient(90deg, var(--sc-blush) 25%, #fbf8f6 50%, var(--sc-blush) 75%);
	background-size: 200% 100%; animation: ibd-sc-shimmer 1.2s infinite linear;
}
.ibd-sc .ibd-sc__bar { display: block; height: 14px; border-radius: 6px; margin: 6px 0 10px; }
.ibd-sc .ibd-sc__bar--short { width: 55%; }

/* Footer */
.ibd-sc .ibd-sc__foot {
	flex: none; padding: 10px 24px 12px; padding-bottom: max(12px, env(safe-area-inset-bottom));
	border-top: 1px solid var(--sc-line); background: #fff; box-shadow: 0 -10px 24px rgba(18, 18, 18, .05);
}
.ibd-sc .ibd-sc__foot[hidden] { display: none; }

.ibd-sc .ibd-sc__coupon { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 6px; }
.ibd-sc .ibd-sc__coupon-chip {
	display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 2px 0 10px; border-radius: 999px;
	background: var(--sc-plum-soft); color: var(--sc-plum); font-size: 13px; font-weight: 700; letter-spacing: .04em;
}
.ibd-sc .ibd-sc__coupon-chip button,
.ibd-sc .ibd-sc__coupon-chip button:hover,
.ibd-sc .ibd-sc__coupon-chip button:focus {
	width: 26px; height: 26px; padding: 0; margin: 0; border: 0; border-radius: 999px; background: transparent;
	color: var(--sc-plum); font-size: 18px; line-height: 1; cursor: pointer;
}
.ibd-sc .ibd-sc__coupon-chip button:hover { background: rgba(72, 32, 81, .12); }
.ibd-sc .ibd-sc__coupon-toggle { flex-basis: 100%; }
.ibd-sc .ibd-sc__coupon-toggle summary {
	display: inline-block; cursor: pointer; list-style: none; font-size: 13px; line-height: 1.2; font-weight: 700; color: var(--sc-plum);
	text-decoration: underline; text-underline-offset: 3px;
}
.ibd-sc .ibd-sc__coupon-toggle summary::-webkit-details-marker { display: none; }
.ibd-sc .ibd-sc__coupon-form { display: flex; gap: 6px; margin-top: 6px; }
.ibd-sc .ibd-sc__coupon-input {
	flex: 1; min-width: 0; height: 36px; padding: 0 14px; margin: 0; border: 1px solid var(--sc-sand); border-radius: 999px;
	background: #fff; font-family: var(--sc-sans); font-size: 14px; color: var(--sc-ink); text-transform: uppercase; box-shadow: none;
}
.ibd-sc .ibd-sc__coupon-input:focus { border-color: var(--sc-plum); outline: none; box-shadow: 0 0 0 3px rgba(72, 32, 81, .12); }
.ibd-sc .ibd-sc__coupon-btn,
.ibd-sc .ibd-sc__coupon-btn:hover,
.ibd-sc .ibd-sc__coupon-btn:focus {
	height: 36px; padding: 0 16px; margin: 0; border: 1px solid var(--sc-plum); border-radius: 999px; background: #fff;
	color: var(--sc-plum); font-size: 14px; font-weight: 700; cursor: pointer;
}
.ibd-sc .ibd-sc__coupon-btn:hover { background: var(--sc-blush); }

.ibd-sc .ibd-sc__totals { margin: 0 0 8px; padding: 0; }
.ibd-sc .ibd-sc__trow { display: flex; justify-content: space-between; gap: 12px; padding: 1px 0; font-size: 14px; line-height: 1.35; }
.ibd-sc .ibd-sc__trow dt, .ibd-sc .ibd-sc__trow dd { margin: 0; padding: 0; font-weight: 400; }
.ibd-sc .ibd-sc__trow:first-child dt, .ibd-sc .ibd-sc__trow:first-child dd { font-weight: 700; }
.ibd-sc .ibd-sc__trow.is-discount dd { color: var(--sc-ok); font-weight: 700; }
.ibd-sc .ibd-sc__trow.is-muted { font-size: 13px; color: var(--sc-muted); }

.ibd-sc .ibd-sc__saving {
	display: flex; align-items: center; gap: 6px; margin: 0 0 8px; padding: 5px 10px; border-radius: 8px;
	background: #ecf5ef; color: var(--sc-ok); font-size: 13px;
}

.ibd-sc .ibd-sc__checkout,
.ibd-sc .ibd-sc__checkout:focus {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 0 22px;
	border-radius: 999px; background: var(--sc-plum); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none;
	transition: background .15s;
}
.ibd-sc .ibd-sc__checkout:hover { background: var(--sc-plum-dark); color: #fff; }
.ibd-sc .ibd-sc__checkout-label { display: inline-flex; align-items: center; gap: 10px; }
.ibd-sc .ibd-sc__links { display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 4px; font-size: 13px; }
.ibd-sc .ibd-sc__links a,
.ibd-sc .ibd-sc__links button,
.ibd-sc .ibd-sc__links button:hover,
.ibd-sc .ibd-sc__links button:focus {
	padding: 4px 0; margin: 0; border: 0; background: none; color: var(--sc-plum); font-size: 13px; font-weight: 700;
	text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}

/* Focus */
.ibd-sc a:focus-visible,
.ibd-sc button:focus-visible,
.ibd-sc summary:focus-visible,
.ibd-sc input:focus-visible,
.ibd-sc-fab:focus-visible { outline: 2px solid var(--sc-plum); outline-offset: 2px; }
.ibd-sc .ibd-sc__checkout:focus-visible { outline-offset: 3px; }

/* Floating basket ------------------------------------------------------------ */
.ibd-sc-fab,
.ibd-sc-fab:hover,
.ibd-sc-fab:focus {
	position: fixed; left: 16px; bottom: 20px; z-index: 99990; display: flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; padding: 0; margin: 0; border: 0; border-radius: 999px; background: var(--sc-plum); color: #fff;
	box-shadow: 0 8px 24px rgba(72, 32, 81, .35); cursor: pointer; opacity: 0; transform: translateY(16px) scale(.9);
	pointer-events: none; transition: opacity .2s, transform .2s;
}
.ibd-sc-fab.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.ibd-sc-fab:hover { background: var(--sc-plum-dark); }
.ibd-sc-fab__count {
	position: absolute; top: -2px; right: -2px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px;
	background: var(--sc-rose); color: #fff; font: 700 12px/22px var(--sc-sans); text-align: center; box-shadow: 0 0 0 2px #fff;
}

/* Small screens ---------------------------------------------------------------- */
@media (max-width: 480px) {
	.ibd-sc { width: 100vw; box-shadow: none; }
	.ibd-sc .ibd-sc__head { padding: 14px 8px 12px 16px; }
	.ibd-sc .ibd-sc__title { font-size: 22px; }
	.ibd-sc .ibd-sc__progress { padding: 10px 16px 12px; }
	.ibd-sc .ibd-sc__body { padding: 0 16px 20px; }
	.ibd-sc .ibd-sc__recs-list { margin: 0 -16px; padding: 0 16px 6px; scroll-padding-inline: 16px; }
	.ibd-sc .ibd-sc__item { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 10px; padding: 10px 0; }
	.ibd-sc .ibd-sc__thumb { width: 56px; height: 56px; }
	.ibd-sc .ibd-sc__foot { padding: 10px 16px 12px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
	.ibd-sc .ibd-sc__toast { margin: 10px 12px 0; }
}

@keyframes ibd-sc-flash { 0% { background: var(--sc-plum-soft); } 100% { background: transparent; } }
@keyframes ibd-sc-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes ibd-sc-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

@media (prefers-reduced-motion: reduce) {
	.ibd-sc, .ibd-sc-backdrop, .ibd-sc-fab, .ibd-sc * { transition: none !important; animation: none !important; }
}
