/* CompleteGrow side cart. Everything is scoped to #cg-cart so theme / Elementor styles can't leak in. */

#cg-cart {
	--cg-ink: #15261c;
	--cg-forest: #24503a;
	--cg-forest-2: #1b4130;
	--cg-sage: #5b8d76;
	--cg-sage-50: #f0f6f1;
	--cg-sage-100: #e1ece4;
	--cg-cream: #fbf8f1;
	--cg-cream-line: #efe7d6;
	--cg-line: #e5ebe6;
	--cg-line-2: #d4ded7;
	--cg-muted: #5f6f66;
	--cg-soft: #8b9890;
	--cg-terra: #ad4f28;
	--cg-terra-50: #fbeee6;
	--cg-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--cg-width: 452px;

	position: fixed;
	inset: 0;
	z-index: 999999;
	visibility: hidden;
	pointer-events: none;
	font-size: 14px;
	line-height: 1.5;
	color: var(--cg-ink);
	-webkit-font-smoothing: antialiased;
}
#cg-cart *,
#cg-cart *::before,
#cg-cart *::after { box-sizing: border-box; }

#cg-cart.is-open { visibility: visible; pointer-events: auto; }

#cg-cart .cg-cart__overlay {
	position: absolute;
	inset: 0;
	background: rgba(14, 28, 20, .45);
	opacity: 0;
	transition: opacity .28s ease;
}
#cg-cart.is-open .cg-cart__overlay { opacity: 1; }

#cg-cart .cg-cart__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: var(--cg-width);
	max-width: 100%;
	background: #fff;
	display: flex;
	flex-direction: column;
	border-radius: 22px 0 0 22px;
	box-shadow: -30px 0 60px -20px rgba(8, 20, 14, .45);
	transform: translateX(104%);
	transition: transform .34s cubic-bezier(.2, .8, .2, 1);
	outline: none;
	overflow: hidden;
}
#cg-cart.is-open .cg-cart__panel { transform: none; }

@media (prefers-reduced-motion: reduce) {
	#cg-cart .cg-cart__panel,
	#cg-cart .cg-cart__overlay { transition: none; }
}

html.cg-cart-locked,
html.cg-cart-locked body { overflow: hidden !important; }

/* ---------- resets against theme styles ---------- */
#cg-cart button {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
	line-height: inherit;
	min-height: 0;
	min-width: 0;
	width: auto;
	cursor: pointer;
	border-radius: 0;
}
#cg-cart button:disabled { cursor: default; }
#cg-cart a { color: inherit; text-decoration: none; box-shadow: none; }
#cg-cart ul,
#cg-cart dl,
#cg-cart dd,
#cg-cart p { margin: 0; padding: 0; list-style: none; }
#cg-cart img { max-width: 100%; height: auto; display: block; border: 0; border-radius: 0; box-shadow: none; }
#cg-cart .amount,
#cg-cart bdi { color: inherit; font: inherit; }
#cg-cart,
#cg-cart dt,
#cg-cart dd,
#cg-cart p,
#cg-cart li,
#cg-cart span,
#cg-cart a,
#cg-cart b,
#cg-cart small,
#cg-cart input { text-transform: none; letter-spacing: normal; }
#cg-cart dt,
#cg-cart dd { font-family: inherit; font-size: inherit; color: inherit; line-height: inherit; }
#cg-cart .cg-ic { width: 18px; height: 18px; flex: none; display: block; }
#cg-cart :focus-visible { outline: 2px solid var(--cg-sage); outline-offset: 2px; }

/* ---------- layout ---------- */
#cg-cart .cg-cart__inner { display: flex; flex-direction: column; height: 100%; min-height: 0; }
#cg-cart .cg-scroll { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 0 24px 16px; outline: none; scrollbar-width: auto; scrollbar-color: #b9cdbf transparent; }
#cg-cart .cg-scroll::-webkit-scrollbar { width: 10px; }
#cg-cart .cg-scroll::-webkit-scrollbar-track { background: transparent; }
#cg-cart .cg-scroll::-webkit-scrollbar-thumb { background: #c5d6cb; border-radius: 999px; border: 2px solid #fff; }
#cg-cart .cg-scroll::-webkit-scrollbar-thumb:hover { background: #93b09f; }

/* ---------- header ---------- */
#cg-cart .cg-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 22px 24px 16px; flex: none; }
#cg-cart .cg-head__title { display: flex; align-items: center; gap: 10px; min-width: 0; }
#cg-cart .cg-h { margin: 0; padding: 0; font-family: var(--cg-serif); font-size: 28px; line-height: 1.05; font-weight: 600; letter-spacing: -.01em; color: var(--cg-ink); text-transform: none; }
#cg-cart .cg-count { min-width: 24px; height: 24px; padding: 0 7px; border-radius: 999px; background: var(--cg-forest); color: #fff; font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
#cg-cart .cg-head__right { display: flex; align-items: center; gap: 14px; }
#cg-cart .cg-link { font-size: 13px; font-weight: 500; color: var(--cg-forest); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--cg-line-2); }
#cg-cart .cg-close { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--cg-line); display: inline-flex; align-items: center; justify-content: center; color: var(--cg-ink); transition: background .15s; }
#cg-cart .cg-close:hover { background: var(--cg-sage-50); }
#cg-cart .cg-close .cg-ic { width: 15px; height: 15px; stroke-width: 2.4; }

/* ---------- promo banner ---------- */
#cg-cart .cg-promo {
	--p-bg: linear-gradient(135deg, #2f6a4b 0%, #22503a 52%, #183d2b 100%);
	--p-ink: #eef6f1;
	--p-eyebrow: #a8d8bb;
	--p-strong: #ffffff;
	--p-chip: rgba(255, 255, 255, .13);
	--p-dash: rgba(255, 255, 255, .42);
	--p-btn-bg: #fff;
	--p-btn-ink: var(--cg-forest-2);
	--p-glow: rgba(168, 216, 187, .2);
	position: relative;
	isolation: isolate;
	overflow: hidden;
	flex: none; /* the scroll area is a flex column – never squash the banner */
	margin-bottom: 14px;
	padding: 15px 16px 16px;
	border-radius: 18px;
	background: var(--p-bg);
	color: var(--p-ink);
	font-size: 13px;
	line-height: 1.4;
	box-shadow: 0 14px 28px -20px rgba(16, 44, 30, .75), inset 0 1px 0 rgba(255, 255, 255, .1);
}
/* soft light in the top-right corner */
#cg-cart .cg-promo::before { content: ""; position: absolute; z-index: -1; right: -110px; top: -130px; width: 320px; height: 300px; border-radius: 50%; background: radial-gradient(closest-side, var(--p-glow), transparent); pointer-events: none; }
/* big faint tag */
#cg-cart .cg-promo__deco { position: absolute; z-index: -1; right: -18px; bottom: -26px; color: currentColor; opacity: .09; transform: rotate(-24deg); pointer-events: none; }
#cg-cart .cg-promo__deco .cg-ic { width: 118px; height: 118px; stroke-width: 1.3; }

#cg-cart .cg-promo__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; min-height: 22px; }
#cg-cart .cg-promo__eyebrow { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--p-eyebrow); line-height: 1.2; min-width: 0; }
#cg-cart .cg-promo__eyebrow .cg-ic { width: 14px; height: 14px; stroke-width: 2; }
#cg-cart .cg-promo__timer { display: inline-flex; align-items: center; gap: 5px; flex: none; margin-left: auto; padding: 4px 9px 4px 7px; border-radius: 999px; background: var(--p-chip); font-size: 11.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
#cg-cart .cg-promo__timer[hidden] { display: none; }
#cg-cart .cg-promo__timer .cg-ic { width: 13px; height: 13px; stroke-width: 2.2; }
#cg-cart .cg-promo__timer.is-soon .cg-ic { animation: cg-tick 1.6s ease-in-out infinite; }

#cg-cart .cg-promo__txt { font-size: 15px; font-weight: 500; line-height: 1.38; letter-spacing: -.003em; padding-right: 8px; text-wrap: pretty; }
#cg-cart .cg-promo__txt strong,
#cg-cart .cg-promo__txt b { font-weight: 700; color: var(--p-strong); }
#cg-cart .cg-promo__txt em { font-style: normal; color: var(--p-eyebrow); font-weight: 700; }
#cg-cart .cg-promo__txt a { text-decoration: underline; text-underline-offset: 2px; }

#cg-cart .cg-promo__code { display: flex; align-items: stretch; gap: 8px; margin-top: 12px; }
#cg-cart .cg-promo__ticket { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 40px; padding: 0 13px; border: 1.5px dashed var(--p-dash); border-radius: 11px; background: var(--p-chip); }
#cg-cart .cg-promo__ticket small { font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .78; white-space: nowrap; }
#cg-cart .cg-promo__ticket b { font-size: 14.5px; font-weight: 700; letter-spacing: .12em; color: var(--p-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#cg-cart .cg-promo__btn { flex: none; height: 40px; padding: 0 18px; border-radius: 11px; background: var(--p-btn-bg); color: var(--p-btn-ink); font-weight: 700; font-size: 13.5px; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .45); transition: transform .15s, filter .15s; }
#cg-cart .cg-promo__btn:hover { transform: translateY(-1px); filter: brightness(1.04); }
#cg-cart .cg-promo__done { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 13px; border-radius: 11px; background: var(--p-chip); font-weight: 700; font-size: 13px; color: var(--p-strong); }
#cg-cart .cg-promo__done .cg-ic { width: 15px; height: 15px; stroke-width: 3; color: var(--p-eyebrow); }
#cg-cart .cg-promo.is-applied .cg-promo__ticket { border-style: solid; }

#cg-cart .cg-promo--terra {
	--p-bg: linear-gradient(135deg, #c96a36 0%, #ad4f28 55%, #8f3d1c 100%);
	--p-ink: #fff5ee;
	--p-eyebrow: #ffd6bf;
	--p-glow: rgba(255, 214, 191, .2);
	--p-btn-ink: var(--cg-terra);
	box-shadow: 0 14px 28px -20px rgba(120, 45, 15, .8), inset 0 1px 0 rgba(255, 255, 255, .14);
}
#cg-cart .cg-promo--night {
	--p-bg: linear-gradient(140deg, #262a28 0%, #151816 55%, #0d0f0e 100%);
	--p-ink: #efebe2;
	--p-eyebrow: #e7c47c;
	--p-strong: #f3d58f;
	--p-chip: rgba(231, 196, 124, .1);
	--p-dash: rgba(231, 196, 124, .5);
	--p-btn-bg: linear-gradient(180deg, #f3d792 0%, #d9ac56 100%);
	--p-btn-ink: #1b1a16;
	--p-glow: rgba(231, 196, 124, .22);
	box-shadow: 0 16px 30px -18px rgba(0, 0, 0, .8), inset 0 0 0 1px rgba(231, 196, 124, .22);
}
#cg-cart .cg-promo--night .cg-promo__deco { color: #e7c47c; opacity: .1; }
#cg-cart .cg-promo--sage {
	--p-bg: linear-gradient(135deg, #f6faf7 0%, #e6f0e9 100%);
	--p-ink: var(--cg-forest-2);
	--p-eyebrow: #3f7a5c;
	--p-strong: var(--cg-forest-2);
	--p-chip: #fff;
	--p-dash: rgba(36, 80, 58, .32);
	--p-btn-bg: var(--cg-forest);
	--p-btn-ink: #fff;
	--p-glow: rgba(255, 255, 255, .9);
	border: 1px solid #d5e5da;
	box-shadow: none;
}
#cg-cart .cg-promo--sage .cg-promo__deco { opacity: .05; }

@keyframes cg-tick { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-12deg); } }

/* ---------- rewards card ---------- */
#cg-cart .cg-rewards {
	--r-bg: linear-gradient(135deg, #f7fbf8 0%, #e9f3ec 100%);
	--r-line: #d6e7dc;
	--r-accent: var(--cg-forest);
	--r-accent-2: #3f8360;
	--r-fill: linear-gradient(90deg, #8cc0a2 0%, #3f8360 60%, #24503a 100%);
	--r-track: #d9e9df;
	--r-soft: #edf5f0;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	flex: none;
	border-radius: 18px;
	background: var(--r-bg);
	border: 1px solid var(--r-line);
	padding: 14px 16px 16px;
}
#cg-cart .cg-rewards--gift {
	--r-bg: linear-gradient(135deg, #fffaf5 0%, #fcefe3 100%);
	--r-line: #f1dccb;
	--r-accent: var(--cg-terra);
	--r-accent-2: #d0763f;
	--r-fill: linear-gradient(90deg, #f0b48a 0%, #d0763f 55%, #ad4f28 100%);
	--r-track: #f4e0d0;
	--r-soft: #fbece0;
}
#cg-cart .cg-rewards.has-unlocked { padding-bottom: 0; }

#cg-cart .cg-rw { display: flex; align-items: center; gap: 13px; }
#cg-cart .cg-rw__badge { position: relative; width: 44px; height: 44px; flex: none; border-radius: 14px; background: #fff; color: var(--r-accent); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px var(--r-line), 0 6px 14px -8px rgba(60, 40, 20, .35); }
#cg-cart .cg-rw__badge > .cg-ic { width: 22px; height: 22px; stroke-width: 1.8; }
#cg-cart .cg-rewards--gift:not(.is-done) .cg-rw__badge > .cg-ic { animation: cg-wiggle 3.2s ease-in-out infinite; transform-origin: 50% 70%; }
#cg-cart .cg-rw__txt { flex: 1; min-width: 0; }
#cg-cart .cg-rw__txt b { display: block; text-wrap: pretty; font-size: 14px; font-weight: 600; line-height: 1.32; color: var(--cg-ink); letter-spacing: -.004em; }
#cg-cart .cg-rw__txt b em { font-style: normal; font-weight: 700; color: var(--r-accent); white-space: nowrap; }
#cg-cart .cg-rw__txt small { display: block; margin-top: 2px; font-size: 12px; line-height: 1.35; color: var(--cg-muted); }
#cg-cart .cg-rw__txt small .amount { font-weight: 600; color: var(--cg-ink); }

/* unlocked (head) */
/* Unlocked: one slim, flat row in the same style as the rest of the cart
   (sage card, white icon tile, green tick – like the "✓ Free shipping" pill in the totals). */
#cg-cart .cg-rewards.is-done { --r-bg: var(--cg-sage-50); --r-line: var(--cg-sage-100); padding: 9px 14px 9px 9px; border-radius: 14px; }
#cg-cart .cg-rewards--gift.is-done { --r-bg: #fdf5ee; --r-line: #f3e2d4; }
#cg-cart .cg-rewards.is-done.has-unlocked { padding-bottom: 0; }
#cg-cart .cg-rewards.is-done .cg-rw { gap: 11px; }
#cg-cart .cg-rewards.is-done .cg-rw__badge { width: 36px; height: 36px; border-radius: 10px; box-shadow: 0 0 0 1px var(--r-line); }
#cg-cart .cg-rewards.is-done .cg-rw__badge > .cg-ic { width: 19px; height: 19px; stroke-width: 1.9; }
#cg-cart .cg-rewards.is-done .cg-rw__txt b { font-size: 13.5px; line-height: 1.3; color: var(--cg-forest-2); }
#cg-cart .cg-rewards.is-done .cg-rw__txt small { margin-top: 1px; font-size: 12px; line-height: 1.3; }
#cg-cart .cg-rw__ok { width: 22px; height: 22px; border-radius: 50%; background: var(--cg-forest); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
#cg-cart .cg-rw__ok .cg-ic { width: 12px; height: 12px; stroke-width: 3.2; }
#cg-cart .cg-rewards.is-done .cg-rw__unlocked { margin: 9px -14px 0 -9px; padding: 7px 14px 8px 13px; }

/* progress track with milestones */
#cg-cart .cg-track { position: relative; height: 26px; margin: 14px 13px 20px 0; }
#cg-cart .cg-track__bar { position: absolute; left: 0; right: 0; top: 50%; height: 8px; margin-top: -4px; border-radius: 999px; background: var(--r-track); overflow: hidden; }
#cg-cart .cg-track__bar i { position: relative; display: block; height: 100%; min-width: 8px; border-radius: 999px; background: var(--r-fill); transition: width .6s cubic-bezier(.2, .8, .2, 1); overflow: hidden; }
#cg-cart .cg-track__bar i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, .55) 50%, transparent 80%); transform: translateX(-100%); animation: cg-shine 2.8s ease-in-out infinite; }
#cg-cart .cg-track__mk { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
#cg-cart .cg-track__dot { width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--r-accent); border: 2px solid var(--r-track); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 3px 8px -4px rgba(40, 30, 20, .35); }
#cg-cart .cg-track__dot .cg-ic { width: 13px; height: 13px; stroke-width: 2.2; }
#cg-cart .cg-track__mk--ship .cg-track__dot { color: var(--cg-forest); }
#cg-cart .cg-track__mk--gift .cg-track__dot { color: var(--cg-terra); }
#cg-cart .cg-track .cg-track__mk--gift.is-end .cg-track__lbl { color: var(--cg-terra); }
#cg-cart .cg-track__mk.is-done .cg-track__dot { background: var(--cg-forest); border-color: var(--cg-forest); color: #fff; }
#cg-cart .cg-track__mk.is-done .cg-track__dot .cg-ic { stroke-width: 3.2; width: 12px; height: 12px; }
#cg-cart .cg-track__lbl { position: absolute; top: 29px; font-size: 11px; font-weight: 600; line-height: 1; color: var(--cg-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
#cg-cart .cg-track__mk.is-end .cg-track__lbl { color: var(--r-accent); }

/* rewards already unlocked, as a footer band */
#cg-cart .cg-rw__unlocked { margin: 14px -16px 0; padding: 9px 16px 10px; background: rgba(255, 255, 255, .62); border-top: 1px solid var(--r-line); }
#cg-cart .cg-rw__u { display: flex; align-items: center; gap: 10px; padding: 3px 0; }
#cg-cart .cg-rw__u + .cg-rw__u { border-top: 1px dashed var(--r-line); margin-top: 3px; padding-top: 6px; }
#cg-cart .cg-rw__uic { width: 28px; height: 28px; border-radius: 9px; background: var(--cg-sage-50); color: var(--cg-forest); display: inline-flex; align-items: center; justify-content: center; flex: none; }
#cg-cart .cg-rw__u--gift .cg-rw__uic { background: var(--cg-terra-50); color: var(--cg-terra); }
#cg-cart .cg-rw__uic .cg-ic { width: 16px; height: 16px; stroke-width: 1.9; }
#cg-cart .cg-rw__utxt { flex: 1; min-width: 0; text-wrap: pretty; font-size: 12px; line-height: 1.35; color: var(--cg-muted); }
#cg-cart .cg-rw__utxt b { font-weight: 600; font-size: 12.5px; color: var(--cg-forest-2); }
#cg-cart .cg-rw__utxt b { display: block; }
#cg-cart .cg-rw__utxt small { display: block; font-size: 11.5px; line-height: 1.3; }
#cg-cart .cg-rw__ucheck { width: 20px; height: 20px; border-radius: 50%; background: var(--cg-forest); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
#cg-cart .cg-rw__ucheck .cg-ic { width: 11px; height: 11px; stroke-width: 3.4; }

@keyframes cg-wiggle { 0%, 78%, 100% { transform: rotate(0); } 82% { transform: rotate(-12deg); } 86% { transform: rotate(10deg); } 90% { transform: rotate(-6deg); } 94% { transform: rotate(3deg); } }
@keyframes cg-shine { 0%, 45% { transform: translateX(-100%); } 90%, 100% { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) {
	#cg-cart .cg-rw__badge,
	#cg-cart .cg-rw__badge > .cg-ic,
	#cg-cart .cg-track__bar i::after,
	#cg-cart .cg-promo__timer .cg-ic { animation: none !important; }
}

/* ---------- lines ---------- */
#cg-cart .cg-lines { margin-top: 6px; }
#cg-cart .cg-line { position: relative; display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--cg-line); transition: opacity .2s; }
#cg-cart .cg-line.is-busy { opacity: .45; pointer-events: none; }
#cg-cart .cg-line__img { width: 88px; height: 88px; border-radius: 16px; overflow: hidden; background: #f4efe4; flex: none; display: block; }
#cg-cart .cg-line__img img { width: 100%; height: 100%; object-fit: cover; }
#cg-cart .cg-line__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
#cg-cart .cg-line__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
#cg-cart .cg-line__title { font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: -.005em; color: var(--cg-ink); }
#cg-cart a.cg-line__title:hover { color: var(--cg-forest); }
#cg-cart .cg-line__remove { color: var(--cg-soft); padding: 2px; margin: -2px -2px 0 0; border-radius: 8px; transition: color .15s, background .15s; }
#cg-cart .cg-line__remove:hover { color: var(--cg-terra); background: var(--cg-terra-50); }
#cg-cart .cg-line__meta { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 12px; color: var(--cg-muted); min-width: 0; }
#cg-cart .cg-line__sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
#cg-cart .cg-line__bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; }
#cg-cart .cg-line__price { font-size: 16px; font-weight: 600; font-variant-numeric: lining-nums tabular-nums; }
#cg-cart .cg-line.is-gift .cg-line__price { color: var(--cg-terra); }
#cg-cart .cg-line__qtyfixed { font-size: 12.5px; color: var(--cg-muted); }

#cg-cart .cg-pill { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; font-weight: 600; font-size: 11.5px; line-height: 1; padding: 5px 9px; white-space: nowrap; background: #fff; border: 1px solid var(--cg-line-2); color: var(--cg-ink); flex: none; }
#cg-cart .cg-pill--tag { background: var(--cg-terra); border-color: var(--cg-terra); color: #fff; text-transform: uppercase; letter-spacing: .09em; font-size: 9.5px; padding: 5px 8px; }
#cg-cart .cg-pill--gift { background: var(--cg-terra-50); border-color: var(--cg-terra-50); color: var(--cg-terra); }
#cg-cart .cg-pill--free { background: var(--cg-sage-50); border-color: var(--cg-sage-50); color: var(--cg-forest); }
#cg-cart .cg-pill--bundle { background: var(--cg-terra-50); border-color: var(--cg-terra-50); color: var(--cg-terra); }
#cg-cart .cg-line__price del { display: block; font-size: 12px; font-weight: 500; color: var(--cg-soft); text-align: right; line-height: 1.2; }
#cg-cart .cg-line__price { text-align: right; }
#cg-cart .cg-pill .cg-ic { width: 12px; height: 12px; stroke-width: 3; }

#cg-cart .cg-qty { display: inline-flex; align-items: center; height: 38px; border: 1px solid var(--cg-line-2); border-radius: 999px; background: #fff; padding: 0 3px; }
#cg-cart .cg-qty button { width: 31px; height: 31px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--cg-forest); transition: background .15s; }
#cg-cart .cg-qty button:hover:not(:disabled) { background: var(--cg-sage-50); }
#cg-cart .cg-qty button:disabled { color: #b7c2bb; }
#cg-cart .cg-qty .cg-ic { width: 14px; height: 14px; stroke-width: 2.6; }
#cg-cart .cg-qty__n { min-width: 24px; text-align: center; font-weight: 600; font-size: 14.5px; font-variant-numeric: tabular-nums; }

/* ---------- offer ---------- */
#cg-cart .cg-offer { margin-top: 16px; border-radius: 16px; background: var(--cg-cream); border: 1px solid var(--cg-cream-line); padding: 14px; }
#cg-cart .cg-offer__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
#cg-cart .cg-offer__label { font-size: 12px; font-weight: 600; color: var(--cg-ink); }
#cg-cart .cg-offer--addon .cg-pill--tag { background: var(--cg-forest); border-color: var(--cg-forest); }
#cg-cart .cg-offer__row { display: flex; align-items: center; gap: 12px; }
#cg-cart .cg-offer__img { width: 56px; height: 56px; border-radius: 12px; background: #fff; border: 1px solid var(--cg-cream-line); overflow: hidden; flex: none; display: block; }
#cg-cart .cg-offer__img img { width: 100%; height: 100%; object-fit: contain; }
#cg-cart .cg-offer__txt { flex: 1; min-width: 0; }
#cg-cart .cg-offer__txt b { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
#cg-cart .cg-offer__txt > span { display: block; font-size: 12px; color: var(--cg-muted); line-height: 1.4; margin-top: 2px; }
#cg-cart .cg-offer__txt em { font-style: normal; font-weight: 700; color: var(--cg-terra); }
#cg-cart .cg-offer__txt del { color: var(--cg-soft); font-weight: 500; margin: 0 2px; text-decoration-thickness: 1px; }
#cg-cart .cg-offer__btn { height: 36px; padding: 0 13px; border-radius: 10px; background: #fff; border: 1px solid var(--cg-forest); color: var(--cg-forest); font-weight: 600; font-size: 12.5px; display: inline-flex; align-items: center; white-space: nowrap; transition: background .15s, color .15s; }
#cg-cart .cg-offer__btn:hover { background: var(--cg-forest); color: #fff; }
#cg-cart .cg-offer.is-busy { opacity: .5; pointer-events: none; }

/* ---------- messages ---------- */
#cg-cart .cg-msg { margin-top: 14px; padding: 10px 12px; border-radius: 10px; background: var(--cg-terra-50); color: #7d3616; font-size: 13px; }
#cg-cart .cg-msg[hidden] { display: none; }

/* ---------- empty ---------- */
#cg-cart .cg-empty { text-align: center; padding: 48px 12px 24px; }
#cg-cart .cg-empty__ic { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: var(--cg-sage-50); color: var(--cg-forest); display: flex; align-items: center; justify-content: center; }
#cg-cart .cg-empty__ic .cg-ic { width: 30px; height: 30px; stroke-width: 1.6; }
#cg-cart .cg-empty__title { font-family: var(--cg-serif); font-size: 22px; font-weight: 600; margin-bottom: 6px; }
#cg-cart .cg-empty__text { color: var(--cg-muted); margin-bottom: 22px; }

/* ---------- footer ---------- */
#cg-cart .cg-foot { flex: none; padding: 16px 24px 20px; border-top: 1px solid var(--cg-line); background: #fff; box-shadow: 0 -18px 30px -24px rgba(20, 40, 30, .25); }
#cg-cart .cg-totals { margin: 0 0 14px; }
#cg-cart .cg-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 13.5px; color: var(--cg-muted); padding: 2px 0; }
#cg-cart .cg-row dt { font-weight: 400; margin: 0; }
#cg-cart .cg-row dd { color: var(--cg-ink); font-weight: 500; margin: 0; font-variant-numeric: lining-nums tabular-nums; }
#cg-cart .cg-row.is-later dd { color: var(--cg-muted); font-weight: 400; font-size: 12.5px; }
#cg-cart .cg-row.is-discount dd { color: var(--cg-terra); }
#cg-cart .cg-row.is-total { margin-top: 8px; padding-top: 10px; border-top: 1px dashed var(--cg-line-2); color: var(--cg-ink); font-size: 16px; }
#cg-cart .cg-row.is-total dt { font-weight: 600; }
#cg-cart .cg-row.is-total dd { font-size: 22px; font-weight: 600; letter-spacing: -.01em; }

#cg-cart .cg-checkout {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 58px;
	width: 100%;
	border-radius: 14px;
	background: linear-gradient(180deg, #2c5e45 0%, #214a35 100%);
	color: #fff;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: .005em;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 12px 24px -14px rgba(27, 65, 48, .8);
	transition: transform .15s, box-shadow .15s, filter .15s;
}
#cg-cart .cg-checkout:hover { color: #fff; filter: brightness(1.08); transform: translateY(-1px); }
#cg-cart .cg-checkout .cg-ic { width: 18px; height: 18px; stroke-width: 2.2; }
#cg-cart .cg-empty .cg-checkout { max-width: 260px; margin: 0 auto; }

#cg-cart .cg-or { display: flex; align-items: center; gap: 12px; color: var(--cg-soft); font-size: 12px; font-weight: 500; margin: 16px 0 12px; letter-spacing: .02em; }
#cg-cart .cg-or::before,
#cg-cart .cg-or::after { content: ""; flex: 1; height: 1px; background: var(--cg-line); }
/* Hide the divider until a payment plugin actually draws its buttons. */
#cg-cart .cg-express:not(.has-buttons) .cg-or { display: none; }
#cg-cart .cg-express__slot { min-height: 0; }
#cg-cart .cg-express__slot .woocommerce-mini-cart__buttons { margin: 0; padding: 0; }

#cg-cart .cg-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: auto; padding: 18px 0 4px; flex: none; }
#cg-cart .cg-trust li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 7px; font-size: 11.5px; color: var(--cg-muted); font-weight: 500; line-height: 1.3; }
#cg-cart .cg-trust__ic { width: 36px; height: 36px; border-radius: 50%; background: var(--cg-sage-50); color: var(--cg-forest); display: inline-flex; align-items: center; justify-content: center; }
#cg-cart .cg-trust__ic .cg-ic { width: 18px; height: 18px; stroke-width: 1.8; }
#cg-cart .cg-trust__ic.has-img { background: transparent; }
#cg-cart .cg-trust__ic.has-img img { width: 32px; height: 32px; object-fit: contain; }

/* ---------- discount code ---------- */
#cg-cart .cg-coupon { margin: -4px 0 10px; }
#cg-cart .cg-coupon__toggle { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; color: var(--cg-forest); padding: 4px 0; }
#cg-cart .cg-coupon__toggle .cg-ic { width: 15px; height: 15px; }
#cg-cart .cg-coupon__toggle:hover span { text-decoration: underline; text-underline-offset: 3px; }
#cg-cart .cg-coupon__form { display: flex; gap: 8px; margin-top: 6px; }
#cg-cart .cg-coupon__form[hidden] { display: none; }
#cg-cart .cg-coupon__input { flex: 1; min-width: 0; height: 42px; margin: 0; padding: 0 12px; border: 1px solid var(--cg-line-2); border-radius: 10px; background: #fff; color: var(--cg-ink); font: inherit; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; box-shadow: none; }
#cg-cart .cg-coupon__input::placeholder { text-transform: none; letter-spacing: normal; color: var(--cg-soft); }
#cg-cart .cg-coupon__input:focus { outline: none; border-color: var(--cg-sage); box-shadow: 0 0 0 3px rgba(91, 141, 118, .18); }
#cg-cart .cg-coupon__apply { height: 42px; padding: 0 16px; border-radius: 10px; background: var(--cg-forest); color: #fff; font-weight: 600; font-size: 13.5px; }
#cg-cart .cg-coupon__apply:hover { filter: brightness(1.1); }
#cg-cart .cg-coupon.is-busy .cg-coupon__apply { opacity: .6; pointer-events: none; }
#cg-cart .cg-coupon__msg { margin-top: 6px; font-size: 12.5px; color: #9a3f17; }
#cg-cart .cg-coupon__msg[hidden] { display: none; }
#cg-cart .cg-coupon__remove { font-size: 11.5px; color: var(--cg-soft); text-decoration: underline; text-underline-offset: 2px; margin-left: 4px; }
#cg-cart .cg-coupon__remove:hover { color: var(--cg-terra); }

/* ---------- payment icons ---------- */
#cg-cart .cg-payicons { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 12px 0 0; padding: 0; }
#cg-cart .cg-payicons li { display: flex; align-items: center; justify-content: center; height: 26px; margin: 0; padding: 0; }
#cg-cart .cg-payicons img { display: block; width: auto; height: calc(26px * var(--cg-icon-scale, 1)); max-width: 48px; object-fit: contain; }

/* Long carts: give the room to the items. */
#cg-cart .is-tight .cg-or { margin: 12px 0 10px; }

/* busy spinner on the whole panel (e.g. while refreshing) */
#cg-cart .cg-cart__panel.is-busy .cg-checkout { opacity: .7; pointer-events: none; }

/* ---------- phones ---------- */
/* total row: free-shipping pill used by the compact phone layout */
#cg-cart .cg-total-ship { display: none; margin-left: 8px; vertical-align: 2px; }

@media (max-width: 600px) {
	/* Compact checkout area on phones. */
	#cg-cart .cg-coupon { margin: -2px 0 6px; }
	#cg-cart .cg-coupon__toggle { font-size: 12.5px; padding: 2px 0; }
	#cg-cart .cg-totals { margin-bottom: 10px; }
	#cg-cart .cg-totals[data-simple] .is-subtotal,
	#cg-cart .cg-totals[data-simple] .is-ship { display: none; }
	#cg-cart .cg-totals[data-simple] .cg-total-ship { display: inline-flex; }
	#cg-cart .cg-totals[data-simple] .cg-row.is-total { margin-top: 0; padding-top: 0; border-top: 0; }
	#cg-cart .cg-row.is-total { font-size: 15px; }
	#cg-cart .cg-row.is-total dd { font-size: 20px; }
	#cg-cart .cg-or { margin: 10px 0 8px; }
	#cg-cart .cg-payicons { margin-top: 8px; gap: 5px; }
	#cg-cart .cg-payicons li { height: 22px; }
	#cg-cart .cg-payicons img { height: calc(22px * var(--cg-icon-scale, 1)); }
	#cg-cart { --cg-width: 100%; }
	#cg-cart .cg-cart__panel { border-radius: 0; box-shadow: none; }
	#cg-cart .cg-head { padding: 16px 16px 12px; }
	#cg-cart .cg-h { font-size: 25px; }
	#cg-cart .cg-scroll { padding: 0 16px 14px; }
	#cg-cart .cg-line { padding: 14px 0; gap: 14px; }
	#cg-cart .cg-line__img { width: 80px; height: 80px; }
	#cg-cart .cg-foot { padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); }
	#cg-cart .cg-checkout { height: 50px; font-size: 15.5px; }
	#cg-cart .cg-trust li { font-size: 11px; gap: 5px; }
	#cg-cart .cg-trust__ic { width: 30px; height: 30px; }
	#cg-cart .cg-trust__ic .cg-ic { width: 16px; height: 16px; }
	#cg-cart .cg-promo { padding: 13px 14px 14px; border-radius: 16px; margin-bottom: 12px; }
	#cg-cart .cg-promo__txt { font-size: 14px; }
	#cg-cart .cg-promo__code { margin-top: 10px; }
	#cg-cart .cg-promo__ticket,
	#cg-cart .cg-promo__btn,
	#cg-cart .cg-promo__done { height: 38px; }
	#cg-cart .cg-rewards { padding: 12px 14px 14px; border-radius: 16px; }
	#cg-cart .cg-rewards.has-unlocked { padding-bottom: 0; }
	#cg-cart .cg-rw { gap: 11px; }
	#cg-cart .cg-rw__badge { width: 40px; height: 40px; border-radius: 12px; }
	#cg-cart .cg-rw__badge > .cg-ic { width: 20px; height: 20px; }
	#cg-cart .cg-rw__txt b { font-size: 13.5px; }
	#cg-cart .cg-rw__txt small { font-size: 11.5px; }
	#cg-cart .cg-track { margin: 12px 13px 18px 0; }
	#cg-cart .cg-rw__unlocked { margin: 12px -14px 0; padding: 8px 14px 9px; }
	/* unlocked row: compact on phones */
	#cg-cart .cg-rewards.is-done { padding: 7px 12px 7px 7px; border-radius: 12px; }
	#cg-cart .cg-rewards.is-done.has-unlocked { padding-bottom: 0; }
	#cg-cart .cg-rewards.is-done .cg-rw { gap: 10px; }
	#cg-cart .cg-rewards.is-done .cg-rw__badge { width: 32px; height: 32px; border-radius: 9px; }
	#cg-cart .cg-rewards.is-done .cg-rw__badge > .cg-ic { width: 17px; height: 17px; }
	#cg-cart .cg-rewards.is-done .cg-rw__txt b { font-size: 13px; }
	#cg-cart .cg-rewards.is-done .cg-rw__txt small { font-size: 11.5px; }
	#cg-cart .cg-rw__ok { width: 20px; height: 20px; }
	#cg-cart .cg-rw__ok .cg-ic { width: 11px; height: 11px; }
	#cg-cart .cg-rewards.is-done .cg-rw__unlocked { margin: 7px -12px 0 -7px; padding: 6px 12px 7px 11px; }
}

/* ================================================================== */
/* Product pages                                                       */
/* ================================================================== */

/* Calm, on-brand "adding…" state (replaces WooCommerce's purple disabled look). */
@keyframes cg-spin { to { transform: rotate(360deg); } }
.cg-adding { pointer-events: none; }
.cg-btn-spin { display: inline-block; width: 15px; height: 15px; margin-left: 10px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -3px; animation: cg-spin .7s linear infinite; }

/* "View cart" button WooCommerce adds next to Add to cart after adding. */
form.cart .added_to_cart.wc-forward {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	min-height: 48px;
	margin: 0 0 0 10px;
	padding: 0 22px;
	border: 1.5px solid #5b8d76 !important;
	border-radius: 8px;
	background: #fff !important;
	color: #24503a !important;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
	vertical-align: middle;
	opacity: 1 !important;
	transition: background .15s, color .15s, border-color .15s;
}
form.cart .added_to_cart.wc-forward:hover,
form.cart .added_to_cart.wc-forward:focus-visible {
	background: #24503a !important;
	border-color: #24503a !important;
	color: #fff !important;
}
