/* CompleteGrow cart page. Everything is scoped to #cgp so theme / Elementor styles can't leak in. */

#cgp {
	--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;
	--cgp-radius: 22px;
	--cgp-top: 24px;

	position: relative;
	overflow: hidden;
	background: #f6f8f4;
	color: var(--cg-ink);
	font-size: 15px;
	line-height: 1.5;
	padding: 36px 0 96px;
	-webkit-font-smoothing: antialiased;
}
#cgp *,
#cgp *::before,
#cgp *::after { box-sizing: border-box; }
/* Theme header floating over the page (Gardyn on desktop): start just under it. */
#cgp.has-offset { padding-top: calc(var(--cgp-offset, 0px) + 20px); }

/* ---------- resets against theme styles ---------- */
#cgp 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;
	height: auto;
	cursor: pointer;
	border-radius: 0;
}
#cgp button:disabled { cursor: default; }
#cgp a { color: inherit; text-decoration: none; box-shadow: none; }
#cgp ul,
#cgp ol,
#cgp dl,
#cgp dd,
#cgp p { margin: 0; padding: 0; list-style: none; }
#cgp li { margin: 0; padding: 0; }
#cgp li::marker { content: none; }
#cgp h1,
#cgp h2,
#cgp h3 { margin: 0; padding: 0; color: var(--cg-ink); text-transform: none; letter-spacing: normal; }
#cgp img { max-width: 100%; height: auto; display: block; border: 0; border-radius: 0; box-shadow: none; }
#cgp .amount,
#cgp bdi { color: inherit; font: inherit; }
#cgp dt,
#cgp dd,
#cgp span,
#cgp b,
#cgp small,
#cgp p,
#cgp a,
#cgp li,
#cgp input { text-transform: none; letter-spacing: normal; }
#cgp dt,
#cgp dd { font-family: inherit; font-size: inherit; color: inherit; line-height: inherit; font-weight: inherit; }
#cgp .cg-ic { width: 18px; height: 18px; flex: none; display: block; }
#cgp :focus-visible { outline: 2px solid var(--cg-sage); outline-offset: 2px; }
#cgp [hidden] { display: none !important; }

/* ---------- layout ---------- */
#cgp .cgp-wrap { position: relative; z-index: 1; max-width: 1220px; margin: 0 auto; padding: 0 28px; }

#cgp .cgp-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	grid-template-areas: "dyn side" "extras side";
	grid-template-rows: auto 1fr;
	gap: 24px 30px;
	align-items: start;
}
#cgp .cgp-dyn { grid-area: dyn; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
#cgp .cgp-side { grid-area: side; position: sticky; top: var(--cgp-top); align-self: start; }
#cgp .cgp-side.is-tall { position: static; }
#cgp .cgp-extras { grid-area: extras; min-width: 0; }

/* ---------- steps ---------- */
#cgp .cgp-steps { display: flex; align-items: center; width: max-content; max-width: 100%; margin: 0 auto 24px; padding: 5px; background: #fff; border: 1px solid var(--cg-line); border-radius: 999px; box-shadow: 0 10px 24px -20px rgba(20, 50, 35, .35); }
#cgp .cgp-steps li { display: flex; align-items: center; gap: 9px; padding: 7px 16px 7px 7px; border-radius: 999px; color: var(--cg-soft); font-size: 14px; font-weight: 500; white-space: nowrap; }
#cgp .cgp-steps li span { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--cg-line-2); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; color: var(--cg-soft); flex: none; }
#cgp .cgp-steps li + li::before { content: ""; width: 26px; height: 1.5px; background: var(--cg-line-2); margin: 0 6px 0 -8px; flex: none; }
#cgp .cgp-steps li.is-current { background: var(--cg-forest); color: #fff; }
#cgp .cgp-steps li.is-current span { background: #fff; border-color: #fff; color: var(--cg-forest); }

/* ---------- heading ---------- */
#cgp .cgp-head { margin-bottom: 26px; }
#cgp .cgp-head__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; margin-top: 8px; }
#cgp .cgp-head__row .cgp-back { margin-left: auto; }
#cgp .cgp-title { font-family: var(--cg-serif); font-size: 44px; line-height: 1.04; font-weight: 600; letter-spacing: -.02em; color: var(--cg-ink); }
#cgp .cgp-title em { font-style: italic; font-weight: 500; color: #4a8465; }
#cgp .cgp-sub { font-size: 16px; color: var(--cg-muted); }
#cgp .cgp-back { display: inline-flex; align-items: center; gap: 9px; flex: none; padding: 11px 18px; border: 1px solid var(--cg-line-2); border-radius: 999px; background: #fff; color: var(--cg-forest); font-size: 14.5px; font-weight: 500; transition: background .15s, border-color .15s; }
#cgp .cgp-back:hover { background: var(--cg-sage-50); border-color: var(--cg-sage); }
#cgp .cgp-back .cg-ic { width: 17px; height: 17px; }

/* ---------- WooCommerce notices ---------- */
#cgp .cgp-notices:empty { display: none; }
#cgp .cgp-notices { margin-bottom: 18px; }
#cgp .cgp-notices .woocommerce-message,
#cgp .cgp-notices .woocommerce-info,
#cgp .cgp-notices .woocommerce-error { margin: 0 0 10px; padding: 13px 16px; list-style: none; border: 1px solid var(--cg-line); border-left: 4px solid var(--cg-sage); border-radius: 14px; background: #fff; color: var(--cg-ink); font-size: 14.5px; box-shadow: none; }
#cgp .cgp-notices .woocommerce-error { border-left-color: var(--cg-terra); }
#cgp .cgp-notices .woocommerce-message::before,
#cgp .cgp-notices .woocommerce-info::before,
#cgp .cgp-notices .woocommerce-error::before { display: none; }
#cgp .cgp-notices .button { float: right; margin-left: 12px; padding: 4px 12px; border-radius: 8px; background: var(--cg-sage-50); color: var(--cg-forest); font-size: 13px; }

/* ================================================================== */
/* Promo banner (shared settings with the side cart)                   */
/* ================================================================== */
#cgp .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;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 24px;
	padding: 18px 22px;
	border-radius: var(--cgp-radius);
	background: var(--p-bg);
	color: var(--p-ink);
	box-shadow: 0 18px 34px -24px rgba(16, 44, 30, .8), inset 0 1px 0 rgba(255, 255, 255, .1);
}
#cgp .cg-promo::before { content: ""; position: absolute; z-index: -1; right: -110px; top: -140px; width: 360px; height: 320px; border-radius: 50%; background: radial-gradient(closest-side, var(--p-glow), transparent); pointer-events: none; }
#cgp .cg-promo__deco { position: absolute; z-index: -1; right: 180px; bottom: -40px; opacity: .08; transform: rotate(-24deg); pointer-events: none; }
#cgp .cg-promo__deco .cg-ic { width: 140px; height: 140px; stroke-width: 1.2; }
#cgp .cg-promo__body { flex: 1 1 300px; min-width: 0; }
#cgp .cg-promo__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
#cgp .cg-promo__eyebrow { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--p-eyebrow); line-height: 1.2; }
#cgp .cg-promo__eyebrow .cg-ic { width: 15px; height: 15px; stroke-width: 2; }
#cgp .cg-promo__timer { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; border-radius: 999px; background: var(--p-chip); font-size: 12px; font-weight: 600; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
#cgp .cg-promo__timer .cg-ic { width: 13px; height: 13px; stroke-width: 2.2; }
#cgp .cg-promo__timer.is-soon .cg-ic { animation: cgp-tick 1.6s ease-in-out infinite; }
#cgp .cg-promo__txt { font-size: 18px; font-weight: 500; line-height: 1.35; letter-spacing: -.005em; text-wrap: pretty; }
#cgp .cg-promo__txt strong,
#cgp .cg-promo__txt b { font-weight: 700; color: var(--p-strong); }
#cgp .cg-promo__txt em { font-style: normal; font-weight: 700; color: var(--p-eyebrow); }
#cgp .cg-promo__txt a { text-decoration: underline; text-underline-offset: 2px; }
#cgp .cg-promo__code { display: flex; align-items: stretch; gap: 8px; flex: 0 1 auto; }
#cgp .cg-promo__ticket { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 210px; height: 46px; padding: 0 16px; border: 1.5px dashed var(--p-dash); border-radius: 12px; background: var(--p-chip); }
#cgp .cg-promo__ticket small { font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .8; white-space: nowrap; }
#cgp .cg-promo__ticket b { font-size: 15.5px; font-weight: 700; letter-spacing: .12em; color: var(--p-strong); white-space: nowrap; }
#cgp .cg-promo__btn { flex: none; height: 46px; padding: 0 22px; border-radius: 12px; background: var(--p-btn-bg); color: var(--p-btn-ink); font-weight: 700; font-size: 14.5px; box-shadow: 0 8px 16px -10px rgba(0, 0, 0, .5); transition: transform .15s, filter .15s; }
#cgp .cg-promo__btn:hover { transform: translateY(-1px); filter: brightness(1.04); }
#cgp .cg-promo__done { display: inline-flex; align-items: center; gap: 7px; height: 46px; padding: 0 16px; border-radius: 12px; background: var(--p-chip); font-weight: 700; font-size: 14px; color: var(--p-strong); }
#cgp .cg-promo__done .cg-ic { width: 16px; height: 16px; stroke-width: 3; color: var(--p-eyebrow); }
#cgp .cg-promo.is-applied .cg-promo__ticket { border-style: solid; }
#cgp .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 18px 34px -24px rgba(120, 45, 15, .85), inset 0 1px 0 rgba(255, 255, 255, .14); }
#cgp .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, .2); box-shadow: 0 18px 34px -22px rgba(0, 0, 0, .8), inset 0 0 0 1px rgba(231, 196, 124, .22); }
#cgp .cg-promo--night .cg-promo__deco { color: #e7c47c; opacity: .1; }
#cgp .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; }
#cgp .cg-promo--sage .cg-promo__deco { opacity: .05; }
@keyframes cgp-tick { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-12deg); } }

/* ================================================================== */
/* Rewards card (free shipping / free gift)                            */
/* ================================================================== */
#cgp .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;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-radius: var(--cgp-radius);
	background: var(--r-bg);
	border: 1px solid var(--r-line);
	padding: 18px 22px 20px;
}
#cgp .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; }
#cgp .cg-rewards.has-unlocked { padding-bottom: 0; }
#cgp .cg-rw { display: flex; align-items: center; gap: 15px; }
#cgp .cg-rw__badge { position: relative; width: 50px; height: 50px; flex: none; border-radius: 15px; 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 8px 16px -10px rgba(60, 40, 20, .35); }
#cgp .cg-rw__badge > .cg-ic { width: 24px; height: 24px; stroke-width: 1.8; }
#cgp .cg-rewards--gift:not(.is-done) .cg-rw__badge > .cg-ic { animation: cgp-wiggle 3.2s ease-in-out infinite; transform-origin: 50% 70%; }
#cgp .cg-rw__txt { flex: 1; min-width: 0; }
#cgp .cg-rw__txt b { display: block; font-size: 16px; font-weight: 600; line-height: 1.32; color: var(--cg-ink); text-wrap: pretty; }
#cgp .cg-rw__txt b em { font-style: normal; font-weight: 700; color: var(--r-accent); white-space: nowrap; }
#cgp .cg-rw__txt small { display: block; margin-top: 3px; font-size: 13.5px; line-height: 1.35; color: var(--cg-muted); }
#cgp .cg-rw__txt small .amount { font-weight: 600; color: var(--cg-ink); }
#cgp .cg-rw__ok { width: 26px; height: 26px; border-radius: 50%; background: var(--cg-forest); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
#cgp .cg-rw__ok .cg-ic { width: 14px; height: 14px; stroke-width: 3.2; }

/* unlocked: slim, flat row */
#cgp .cg-rewards.is-done { --r-bg: var(--cg-sage-50); --r-line: var(--cg-sage-100); padding: 12px 18px 12px 12px; border-radius: 18px; }
#cgp .cg-rewards--gift.is-done { --r-bg: #fdf5ee; --r-line: #f3e2d4; }
#cgp .cg-rewards.is-done.has-unlocked { padding-bottom: 0; }
#cgp .cg-rewards.is-done .cg-rw { gap: 13px; }
#cgp .cg-rewards.is-done .cg-rw__badge { width: 42px; height: 42px; border-radius: 12px; box-shadow: 0 0 0 1px var(--r-line); }
#cgp .cg-rewards.is-done .cg-rw__badge > .cg-ic { width: 21px; height: 21px; stroke-width: 1.9; }
#cgp .cg-rewards.is-done .cg-rw__txt b { font-size: 15px; color: var(--cg-forest-2); }
#cgp .cg-rewards.is-done .cg-rw__txt small { margin-top: 1px; font-size: 13px; }

/* progress track */
#cgp .cg-track { position: relative; height: 28px; margin: 16px 14px 22px 0; }
#cgp .cg-track__bar { position: absolute; left: 0; right: 0; top: 50%; height: 9px; margin-top: -4.5px; border-radius: 999px; background: var(--r-track); overflow: hidden; }
#cgp .cg-track__bar i { position: relative; display: block; height: 100%; min-width: 9px; border-radius: 999px; background: var(--r-fill); transition: width .6s cubic-bezier(.2, .8, .2, 1); overflow: hidden; }
#cgp .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: cgp-shine 2.8s ease-in-out infinite; }
#cgp .cg-track__mk { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
#cgp .cg-track__dot { width: 28px; height: 28px; 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); }
#cgp .cg-track__dot .cg-ic { width: 14px; height: 14px; stroke-width: 2.2; }
#cgp .cg-track__mk--ship .cg-track__dot { color: var(--cg-forest); }
#cgp .cg-track__mk--gift .cg-track__dot { color: var(--cg-terra); }
#cgp .cg-track__mk.is-done .cg-track__dot { background: var(--cg-forest); border-color: var(--cg-forest); color: #fff; }
#cgp .cg-track__mk.is-done .cg-track__dot .cg-ic { stroke-width: 3.2; width: 13px; height: 13px; }
#cgp .cg-track__lbl { position: absolute; top: 31px; font-size: 12px; font-weight: 600; line-height: 1; color: var(--cg-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
#cgp .cg-track .cg-track__mk.is-end .cg-track__lbl { color: var(--r-accent); }
#cgp .cg-track .cg-track__mk--gift.is-end .cg-track__lbl { color: var(--cg-terra); }

/* already unlocked, as a footer band */
#cgp .cg-rw__unlocked { margin: 16px -22px 0; padding: 10px 22px 11px; background: rgba(255, 255, 255, .62); border-top: 1px solid var(--r-line); }
#cgp .cg-rewards.is-done .cg-rw__unlocked { margin: 12px -18px 0 -12px; padding: 9px 18px 10px 16px; }
#cgp .cg-rw__u { display: flex; align-items: center; gap: 12px; padding: 3px 0; }
#cgp .cg-rw__u + .cg-rw__u { border-top: 1px dashed var(--r-line); margin-top: 3px; padding-top: 7px; }
#cgp .cg-rw__uic { width: 32px; height: 32px; border-radius: 10px; background: var(--cg-sage-50); color: var(--cg-forest); display: inline-flex; align-items: center; justify-content: center; flex: none; }
#cgp .cg-rw__u--gift .cg-rw__uic { background: var(--cg-terra-50); color: var(--cg-terra); }
#cgp .cg-rw__uic .cg-ic { width: 17px; height: 17px; stroke-width: 1.9; }
#cgp .cg-rw__utxt { flex: 1; min-width: 0; font-size: 13px; line-height: 1.35; color: var(--cg-muted); text-wrap: pretty; }
#cgp .cg-rw__utxt b { display: block; font-weight: 600; font-size: 14px; color: var(--cg-forest-2); }
#cgp .cg-rw__utxt small { display: block; font-size: 12.5px; line-height: 1.3; }
#cgp .cg-rw__ucheck { width: 22px; height: 22px; border-radius: 50%; background: var(--cg-forest); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
#cgp .cg-rw__ucheck .cg-ic { width: 12px; height: 12px; stroke-width: 3.4; }
@keyframes cgp-wiggle { 0%, 78%, 100% { transform: rotate(0); } 82% { transform: rotate(-12deg); } 86% { transform: rotate(10deg); } 90% { transform: rotate(-6deg); } 94% { transform: rotate(3deg); } }
@keyframes cgp-shine { 0%, 45% { transform: translateX(-100%); } 90%, 100% { transform: translateX(100%); } }

/* ================================================================== */
/* Items card                                                          */
/* ================================================================== */
#cgp .cgp-items { margin: 0; background: #fff; border: 1px solid var(--cg-line); border-radius: var(--cgp-radius); box-shadow: 0 22px 44px -34px rgba(20, 50, 35, .45); overflow: hidden; }
#cgp .cgp-lines { padding: 4px 26px; }
#cgp .cgp-line {
	display: grid;
	grid-template-columns: 118px minmax(0, 1fr) auto;
	grid-template-areas: "img info total" "img actions actions";
	gap: 14px 22px;
	align-items: start;
	padding: 24px 0;
	border-bottom: 1px solid var(--cg-line);
	transition: opacity .2s;
}
#cgp .cgp-line:last-child { border-bottom: 0; }
#cgp .cgp-line.is-busy { opacity: .45; pointer-events: none; }
#cgp .cgp-line__img { grid-area: img; width: 118px; height: 118px; border-radius: 18px; overflow: hidden; background: #f4efe4; display: block; }
#cgp .cgp-line__img img { width: 100%; height: 100%; object-fit: cover; }
#cgp .cgp-line__info { grid-area: info; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
#cgp .cgp-line__title { font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: -.008em; color: var(--cg-ink); }
#cgp a.cgp-line__title:hover { color: var(--cg-forest); }
#cgp .cgp-line__meta { display: flex; align-items: center; gap: 9px; margin-top: 7px; max-width: 100%; min-width: 0; font-size: 14px; color: var(--cg-muted); }
#cgp .cgp-line__sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
#cgp .cgp-line__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 8px; }
#cgp .cgp-line__tags:empty { display: none; }
#cgp .cgp-stock { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 500; color: var(--cg-forest); }
#cgp .cgp-stock i { width: 8px; height: 8px; border-radius: 50%; background: #3f9a67; box-shadow: 0 0 0 3px rgba(63, 154, 103, .18); }
#cgp .cgp-stock.is-later { color: #8a5a12; }
#cgp .cgp-stock.is-later i { background: #d4952b; box-shadow: 0 0 0 3px rgba(212, 149, 43, .2); }
#cgp .cgp-line__unit { margin-top: 8px; font-size: 14px; color: var(--cg-muted); }
#cgp .cgp-line__unit b { font-weight: 600; color: var(--cg-ink); }
#cgp .cgp-line__unit .cgp-dot { font-style: normal; margin: 0 6px; color: var(--cg-soft); }
#cgp .cgp-line__actions { grid-area: actions; display: flex; align-items: center; gap: 18px; }
#cgp .cgp-line__remove { display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; margin-left: -8px; font-size: 13.5px; color: var(--cg-soft); border-radius: 8px; transition: color .15s, background .15s; }
#cgp .cgp-line__remove .cg-ic { width: 15px; height: 15px; }
#cgp .cgp-line__remove:hover { color: var(--cg-terra); background: var(--cg-terra-50); }
#cgp .cgp-qty + .cgp-line__remove { margin-left: 0; }
#cgp .cgp-line__total { grid-area: total; text-align: right; font-size: 19px; font-weight: 600; font-variant-numeric: lining-nums tabular-nums; line-height: 1.25; padding-top: 1px; white-space: nowrap; }
#cgp .cgp-line__total del { display: block; font-size: 13px; font-weight: 500; color: var(--cg-soft); }
#cgp .cgp-line.is-gift .cgp-line__total { color: var(--cg-terra); }
#cgp .cgp-qtyfixed { font-size: 13.5px; color: var(--cg-muted); }

#cgp .cgp-pill { display: inline-flex; align-items: center; gap: 5px; flex: none; border-radius: 999px; font-weight: 600; font-size: 12.5px; line-height: 1; padding: 6px 10px; white-space: nowrap; background: #fff; border: 1px solid var(--cg-line-2); color: var(--cg-ink); }
#cgp .cgp-pill .cg-ic { width: 13px; height: 13px; }
#cgp .cgp-pill--gift,
#cgp .cgp-pill--bundle { background: var(--cg-terra-50); border-color: var(--cg-terra-50); color: var(--cg-terra); }
#cgp .cgp-pill--tag { background: var(--cg-terra); border-color: var(--cg-terra); color: #fff; text-transform: uppercase; letter-spacing: .09em; font-size: 10px; padding: 5px 9px; }
#cgp .cgp-offer--addon .cgp-pill--tag { background: var(--cg-forest); border-color: var(--cg-forest); }

/* quantity stepper */
#cgp .cgp-qty { display: inline-flex; align-items: center; height: 46px; padding: 0 4px; border: 1px solid var(--cg-line-2); border-radius: 999px; background: #fff; }
#cgp .cgp-qty button { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--cg-forest); transition: background .15s; }
#cgp .cgp-qty button:hover:not(:disabled) { background: var(--cg-sage-50); }
#cgp .cgp-qty button:disabled { color: #b7c2bb; }
#cgp .cgp-qty .cg-ic { width: 15px; height: 15px; stroke-width: 2.6; }
#cgp .cgp-qty__n {
	width: 38px;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--cg-ink);
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 36px;
	text-align: center;
	font-variant-numeric: tabular-nums;
	-moz-appearance: textfield;
	appearance: textfield;
}
#cgp .cgp-qty__n::-webkit-inner-spin-button,
#cgp .cgp-qty__n::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
#cgp .cgp-qty__n:focus { outline: none; }
#cgp .cgp-qty:focus-within { border-color: var(--cg-sage); box-shadow: 0 0 0 3px rgba(91, 141, 118, .16); }

/* offer inside the items card */
#cgp .cgp-offer { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 18px; align-items: center; margin: 2px 26px 24px; padding: 16px 18px; border-radius: 18px; background: var(--cg-cream); border: 1px solid var(--cg-cream-line); transition: opacity .2s; }
#cgp .cgp-offer.is-busy { opacity: .5; pointer-events: none; }
#cgp .cgp-offer__img { width: 72px; height: 72px; border-radius: 14px; background: #fff; border: 1px solid var(--cg-cream-line); overflow: hidden; display: block; }
#cgp .cgp-offer__img img { width: 100%; height: 100%; object-fit: contain; }
#cgp .cgp-offer__txt { min-width: 0; }
#cgp .cgp-offer__label { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cg-soft); margin-bottom: 3px; }
#cgp .cgp-offer__title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
#cgp .cgp-offer__title b { font-size: 17px; font-weight: 600; line-height: 1.3; }
#cgp .cgp-offer__detail { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.4; color: var(--cg-muted); }
#cgp .cgp-offer__detail em { font-style: normal; font-weight: 700; color: var(--cg-terra); }
#cgp .cgp-offer__detail del { color: var(--cg-soft); font-weight: 500; margin: 0 2px; }
#cgp .cgp-offer__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 20px; border-radius: 13px; border: 1.5px solid var(--cg-forest); background: #fff; color: var(--cg-forest); font-size: 15px; font-weight: 600; white-space: nowrap; transition: background .15s, color .15s; }
#cgp .cgp-offer__btn .cg-ic { width: 17px; height: 17px; stroke-width: 2.3; }
#cgp .cgp-offer__btn:hover { background: var(--cg-forest); color: #fff; }

#cgp .cgp-msg { margin: 0 26px 18px; padding: 11px 14px; border-radius: 12px; background: var(--cg-terra-50); color: #7d3616; font-size: 14px; }

/* card footer: discount code */
#cgp .cgp-items__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; padding: 16px 26px; border-top: 1px solid var(--cg-line); background: #fbfcfa; }
#cgp .cgp-coupon { flex: 1 1 320px; min-width: 0; }
#cgp .cgp-coupon__toggle { display: none; align-items: center; gap: 11px; font-size: 15.5px; font-weight: 500; color: var(--cg-forest); padding: 3px 0; }
#cgp .cgp-coupon__plus { width: 28px; height: 28px; border-radius: 9px; background: var(--cg-sage-50); display: inline-flex; align-items: center; justify-content: center; }
#cgp .cgp-coupon__plus .cg-ic { width: 15px; height: 15px; stroke-width: 2.4; }
#cgp .cgp-coupon__toggle:hover { color: var(--cg-forest-2); }
#cgp .cgp-coupon__form { display: flex; gap: 8px; max-width: 440px; }
#cgp .cgp-coupon__input { flex: 1; min-width: 0; height: 46px; margin: 0; padding: 0 14px; border: 1px solid var(--cg-line-2); border-radius: 12px; background: #fff; color: var(--cg-ink); font: inherit; font-size: 15px; text-transform: uppercase; letter-spacing: .04em; box-shadow: none; }
#cgp .cgp-coupon__input::placeholder { text-transform: none; letter-spacing: normal; color: var(--cg-soft); }
#cgp .cgp-coupon__input:focus { outline: none; border-color: var(--cg-sage); box-shadow: 0 0 0 3px rgba(91, 141, 118, .18); }
#cgp .cgp-coupon__apply { height: 46px; padding: 0 20px; border-radius: 12px; background: var(--cg-forest); color: #fff; font-weight: 600; font-size: 14.5px; }
#cgp .cgp-coupon__apply:hover { filter: brightness(1.1); }
#cgp .cgp-coupon.is-busy .cgp-coupon__apply { opacity: .6; pointer-events: none; }
#cgp .cgp-coupon__msg { margin-top: 8px; font-size: 13.5px; color: #9a3f17; }
#cgp .cgp-auto { display: none; align-items: center; gap: 7px; font-size: 13.5px; color: var(--cg-soft); white-space: nowrap; }
#cgp .cgp-auto .cg-ic { width: 15px; height: 15px; }
#cgp .cgp-update { height: 42px; padding: 0 18px; border-radius: 11px; background: var(--cg-forest); color: #fff; font-weight: 600; }
/* With JavaScript: discount field opens on tap, changes save by themselves. */
#cgp.cgp-js .cgp-coupon__toggle { display: inline-flex; }
#cgp.cgp-js .cgp-coupon:not(.is-open) .cgp-coupon__form { display: none; }
#cgp.cgp-js .cgp-coupon.is-open .cgp-coupon__toggle { display: none; }
#cgp.cgp-js .cgp-auto { display: inline-flex; }
#cgp.cgp-js .cgp-update { display: none; }

/* ================================================================== */
/* Order summary                                                       */
/* ================================================================== */
#cgp .cgp-summary { background: #fff; border: 1px solid var(--cg-line); border-radius: 26px; padding: 30px 30px 26px; box-shadow: 0 26px 54px -38px rgba(20, 50, 35, .5); }
#cgp .cgp-summary__title { font-family: var(--cg-serif); font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: -.01em; margin-bottom: 20px; }
#cgp .cgp-rows { display: flex; flex-direction: column; gap: 4px; }
#cgp .cgp-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 6px 0; font-size: 15px; }
#cgp .cgp-row dt { color: var(--cg-muted); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
#cgp .cgp-row dd { color: var(--cg-ink); font-weight: 500; text-align: right; font-variant-numeric: lining-nums tabular-nums; }
#cgp .cgp-row__muted { color: var(--cg-soft); }
#cgp .cgp-row.is-discount dd { color: var(--cg-terra); }
#cgp .cgp-row.is-later dd { color: var(--cg-muted); font-weight: 400; font-size: 14px; }
#cgp .cgp-code { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 7px; background: var(--cg-terra-50); color: var(--cg-terra); font-size: 12px; font-weight: 700; letter-spacing: .05em; }
#cgp .cgp-code .cg-ic { width: 12px; height: 12px; }
#cgp .cgp-row__remove { font-size: 12.5px; color: var(--cg-soft); text-decoration: underline; text-underline-offset: 2px; }
#cgp .cgp-row__remove:hover { color: var(--cg-terra); }
#cgp .cgp-free { display: inline-flex; align-items: center; gap: 5px; padding: 5px 11px; border-radius: 999px; background: var(--cg-sage-50); color: var(--cg-forest); font-size: 13px; font-weight: 600; }
#cgp .cgp-free .cg-ic { width: 13px; height: 13px; stroke-width: 3; }
#cgp .cgp-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 14px; padding-top: 18px; border-top: 1px dashed var(--cg-line-2); }
#cgp .cgp-total__label { font-size: 18px; font-weight: 600; }
#cgp .cgp-total__val { font-size: 32px; font-weight: 700; letter-spacing: -.02em; line-height: 1; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
#cgp .cgp-total__val small { margin-right: 7px; font-size: 12px; font-weight: 600; letter-spacing: .08em; color: var(--cg-soft); vertical-align: 4px; }
#cgp .cgp-tax { margin-top: 6px; text-align: right; font-size: 12.5px; color: var(--cg-soft); }

#cgp .cgp-checkout {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	height: 62px;
	margin-top: 22px;
	border-radius: 16px;
	background: linear-gradient(180deg, #2c5e45 0%, #214a35 100%);
	color: #fff;
	font-weight: 600;
	font-size: 17px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 14px 26px -16px rgba(27, 65, 48, .85);
	transition: transform .15s, filter .15s;
}
#cgp .cgp-checkout:hover { color: #fff; filter: brightness(1.08); transform: translateY(-1px); }
#cgp .cgp-checkout .cg-ic { width: 19px; height: 19px; stroke-width: 2.2; }
#cgp.is-busy .cgp-sum .cgp-checkout { opacity: .7; pointer-events: none; }
#cgp.is-busy .cgp-sum .cgp-rows,
#cgp.is-busy .cgp-sum .cgp-total { opacity: .55; transition: opacity .15s; }

/* messages from PayPal / Stripe (payment errors, verification) right above their buttons */
#cgp .cgp-pay-notices:empty { display: none; }
#cgp .cgp-pay-notices { margin: 16px 0 0; }
#cgp .cgp-pay-notices .woocommerce-error,
#cgp .cgp-pay-notices .woocommerce-message,
#cgp .cgp-pay-notices .woocommerce-info,
#cgp .cgp-pay-notices .wc-block-components-notice-banner { display: block; margin: 0 0 8px; padding: 11px 14px; list-style: none; border: 1px solid #f1d6c7; border-left: 4px solid var(--cg-terra); border-radius: 12px; background: var(--cg-terra-50); color: #7d3616; font-size: 13.5px; line-height: 1.45; box-shadow: none; text-align: left; }
#cgp .cgp-pay-notices .woocommerce-message,
#cgp .cgp-pay-notices .woocommerce-info { border-color: var(--cg-sage-100); border-left-color: var(--cg-sage); background: var(--cg-sage-50); color: var(--cg-forest-2); }
#cgp .cgp-pay-notices li { margin: 0; padding: 0; list-style: none; }
#cgp .cgp-pay-notices li + li { margin-top: 4px; }
#cgp .cgp-pay-notices .woocommerce-error::before,
#cgp .cgp-pay-notices .woocommerce-message::before,
#cgp .cgp-pay-notices .woocommerce-info::before { display: none; }
#cgp .cgp-pay-hint { margin: 2px 0 0; font-size: 13px; color: var(--cg-muted); }

#cgp .cgp-or { display: flex; align-items: center; gap: 12px; color: var(--cg-soft); font-size: 13px; font-weight: 500; margin: 20px 0 14px; }
#cgp .cgp-or::before,
#cgp .cgp-or::after { content: ""; flex: 1; height: 1px; background: var(--cg-line); }
#cgp .cgp-express:not(.has-buttons) .cgp-or { display: none; }
#cgp .cgp-express__slot > * + * { margin-top: 10px; }
#cgp .cgp-express__slot #wc-stripe-express-checkout-button-separator,
#cgp .cgp-express__slot .wc-stripe-express-checkout-button-separator { display: none !important; }
#cgp .cgp-express__slot #wc-stripe-express-checkout-element { margin-top: 0 !important; }

#cgp .cgp-secure { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 20px 0 12px; font-size: 14px; color: var(--cg-muted); font-weight: 500; }
#cgp .cgp-secure .cg-ic { width: 17px; height: 17px; color: var(--cg-forest); }
#cgp .cgp-payicons { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 7px; }
#cgp .cgp-payicons li { display: flex; align-items: center; justify-content: center; height: 26px; }
#cgp .cgp-payicons img { width: auto; height: calc(26px * var(--cgp-icon-scale, 1)); max-width: 48px; object-fit: contain; }

#cgp .cgp-eyebrow { font-family: inherit; font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--cg-soft); line-height: 1.3; }
#cgp .cgp-next { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--cg-line); }
#cgp .cgp-next ol { margin-top: 16px; display: flex; flex-direction: column; gap: 18px; }
#cgp .cgp-next li { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; align-items: start; }
#cgp .cgp-next li:not(:last-child)::before { content: ""; position: absolute; left: 17.5px; top: 40px; bottom: -16px; width: 1px; background: var(--cg-line-2); }
#cgp .cgp-next__ic { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--cg-line-2); background: #fff; color: var(--cg-forest); display: inline-flex; align-items: center; justify-content: center; }
#cgp .cgp-next__ic .cg-ic { width: 16px; height: 16px; }
#cgp .cgp-next b { display: block; font-size: 15px; font-weight: 600; line-height: 1.3; margin-top: 1px; }
#cgp .cgp-next p { margin-top: 2px; font-size: 14px; color: var(--cg-muted); line-height: 1.4; }

/* ================================================================== */
/* Why shop with us + help banner                                      */
/* ================================================================== */
#cgp .cgp-values { margin-top: 10px; }
#cgp .cgp-values__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
#cgp .cgp-value { padding: 22px; background: #fff; border: 1px solid var(--cg-line); border-radius: 20px; }
#cgp .cgp-value__ic { width: 46px; height: 46px; border-radius: 13px; background: var(--cg-sage-50); color: var(--cg-forest); display: inline-flex; align-items: center; justify-content: center; }
#cgp .cgp-value__ic .cg-ic { width: 22px; height: 22px; stroke-width: 1.8; }
#cgp .cgp-value__ic.has-img { background: var(--cg-sage-50); }
#cgp .cgp-value__ic.has-img img { width: 30px; height: 30px; object-fit: contain; }
#cgp .cgp-value b { display: block; margin-top: 16px; font-size: 16.5px; font-weight: 600; line-height: 1.3; }
#cgp .cgp-value.is-rating .cgp-value__ic { background: #fdf3df; color: #dd9f24; }
#cgp .cgp-stars { display: flex; gap: 2px; margin-top: 6px; color: #e3a52b; }
#cgp .cgp-stars .cg-ic { width: 16px; height: 16px; }
#cgp .cgp-value p { margin-top: 5px; font-size: 14.5px; color: var(--cg-muted); line-height: 1.45; }
#cgp .cgp-value a,
#cgp .cgp-help__txt a,
#cgp .cgp-next a { color: var(--cg-forest); font-weight: 700; white-space: nowrap; }

#cgp .cgp-help { display: flex; align-items: center; gap: 18px; margin-top: 16px; padding: 22px 24px; border-radius: var(--cgp-radius); background: linear-gradient(135deg, #2c5e45 0%, #1f4a35 60%, #183d2b 100%); color: #fff; box-shadow: 0 20px 36px -26px rgba(16, 44, 30, .8); }
#cgp .cgp-help__ic { width: 48px; height: 48px; flex: none; border-radius: 14px; background: rgba(255, 255, 255, .12); display: inline-flex; align-items: center; justify-content: center; color: #cfe7d8; }
#cgp .cgp-help__ic .cg-ic { width: 22px; height: 22px; }
#cgp .cgp-help__txt { flex: 1; min-width: 0; }
#cgp .cgp-help__txt b { display: block; font-size: 17px; font-weight: 600; color: #fff; }
#cgp .cgp-help__txt p { margin-top: 2px; font-size: 14.5px; color: rgba(255, 255, 255, .78); }
#cgp .cgp-help__txt a { color: #fff; }
#cgp .cgp-help__btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; flex: none; height: 50px; padding: 0 22px; border-radius: 14px; background: #fff; color: var(--cg-forest-2); font-size: 16px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; transition: transform .15s; }
#cgp .cgp-help__btn:hover { transform: translateY(-1px); color: var(--cg-forest-2); }
#cgp .cgp-help__btn .cg-ic { width: 18px; height: 18px; }

/* ================================================================== */
/* Empty cart                                                          */
/* ================================================================== */
#cgp .cgp-empty-promo { max-width: 860px; margin: 0 auto 18px; }
#cgp .cgp-empty { max-width: 860px; margin: 0 auto; padding: 52px 28px; text-align: center; background: #fff; border: 1px solid var(--cg-line); border-radius: 26px; box-shadow: 0 22px 44px -34px rgba(20, 50, 35, .45); }
#cgp .cgp-empty__ic { width: 76px; height: 76px; margin: 0 auto 18px; border-radius: 50%; background: var(--cg-sage-50); color: var(--cg-forest); display: flex; align-items: center; justify-content: center; }
#cgp .cgp-empty__ic .cg-ic { width: 34px; height: 34px; stroke-width: 1.6; }
#cgp .cgp-empty__title { font-family: var(--cg-serif); font-size: 32px; font-weight: 600; line-height: 1.15; }
#cgp .cgp-empty__text { margin: 8px 0 26px; color: var(--cg-muted); font-size: 16px; }
#cgp .cgp-empty__btn { max-width: 300px; margin: 0 auto; }
#cgp .cgp-empty-extras { max-width: 860px; margin: 26px auto 0; }

/* ================================================================== */
/* Phones: sticky checkout bar                                         */
/* ================================================================== */
#cgp .cgp-bar { display: none; }

/* ================================================================== */
/* Responsive                                                          */
/* ================================================================== */
@media (max-width: 1100px) {
	#cgp .cgp-grid { grid-template-columns: minmax(0, 1fr) 360px; gap: 22px 24px; }
	#cgp .cgp-line { grid-template-columns: 96px minmax(0, 1fr) auto; gap: 12px 18px; }
	#cgp .cgp-line__img { width: 96px; height: 96px; }
	#cgp .cgp-summary { padding: 26px 24px 22px; }
}

@media (max-width: 900px) {
	#cgp { padding: 22px 0 110px; }
	#cgp .cgp-wrap { padding: 0 20px; }
	#cgp .cgp-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "dyn" "side" "extras"; grid-template-rows: auto; gap: 18px; }
	#cgp .cgp-side { position: static; }
	#cgp .cgp-title { font-size: 38px; }

	#cgp .cgp-bar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		display: flex;
		align-items: center;
		gap: 14px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
		background: rgba(255, 255, 255, .97);
		border-top: 1px solid var(--cg-line);
		box-shadow: 0 -12px 30px -20px rgba(20, 50, 35, .5);
		transform: translateY(110%);
		transition: transform .25s ease;
	}
	#cgp .cgp-bar.is-shown { transform: none; }
	#cgp .cgp-bar__dyn { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
	#cgp .cgp-bar__label { font-size: 12px; color: var(--cg-muted); white-space: nowrap; }
	#cgp .cgp-bar__label em { font-style: normal; color: var(--cg-forest); }
	#cgp .cgp-bar__total { font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }
	#cgp .cgp-bar__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-left: auto; height: 48px; padding: 0 22px; border-radius: 13px; background: linear-gradient(180deg, #2c5e45 0%, #214a35 100%); color: #fff; font-weight: 600; font-size: 15.5px; white-space: nowrap; }
	#cgp .cgp-bar__btn .cg-ic { width: 17px; height: 17px; }
}

@media (max-width: 760px) {
	#cgp .cgp-values__grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	#cgp .cgp-value { display: grid; grid-template-columns: 42px minmax(0, 1fr); column-gap: 14px; align-items: center; padding: 14px 16px; border-radius: 16px; }
	#cgp .cgp-value__ic { grid-row: span 2; width: 42px; height: 42px; border-radius: 12px; }
	#cgp .cgp-value__ic .cg-ic { width: 20px; height: 20px; }
	#cgp .cgp-value__ic.has-img img { width: 26px; height: 26px; }
	#cgp .cgp-value b { margin-top: 0; font-size: 15px; }
	#cgp .cgp-value p { margin-top: 1px; font-size: 13.5px; }
	#cgp .cgp-stars { margin: 3px 0 1px; }
	#cgp .cgp-stars .cg-ic { width: 14px; height: 14px; }
}

@media (max-width: 640px) {
	#cgp { font-size: 14px; padding-top: 16px; }
	#cgp .cgp-wrap { padding: 0 14px; }
	#cgp .cgp-steps { margin-bottom: 18px; padding: 4px; }
	#cgp .cgp-steps li { gap: 6px; padding: 5px 11px 5px 5px; font-size: 12.5px; }
	#cgp .cgp-steps li span { width: 22px; height: 22px; font-size: 11px; }
	#cgp .cgp-steps li + li::before { width: 12px; margin: 0 4px 0 -6px; }
	#cgp .cgp-head { margin-bottom: 14px; }
	#cgp .cgp-title { font-size: 32px; }
	#cgp .cgp-head__row { margin-top: 6px; gap: 6px 12px; }
	#cgp .cgp-sub { font-size: 14px; }
	#cgp .cgp-back { padding: 0; border: 0; background: none; gap: 5px; font-size: 13.5px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--cg-line-2); }
	#cgp .cgp-back:hover { background: none; }
	#cgp .cgp-back .cg-ic { width: 15px; height: 15px; }
	#cgp .cgp-line__img { align-self: start; }

	#cgp .cgp-dyn { gap: 12px; }
	#cgp .cg-promo { flex-direction: column; align-items: stretch; gap: 12px; padding: 15px 16px 16px; border-radius: 18px; }
	#cgp .cg-promo__body { flex: none; }
	#cgp .cg-promo__txt { font-size: 15.5px; }
	#cgp .cg-promo__ticket { flex: 1; min-width: 0; height: 42px; padding: 0 13px; }
	#cgp .cg-promo__btn,
	#cgp .cg-promo__done { height: 42px; }
	#cgp .cg-promo__deco { right: -18px; bottom: -30px; }

	#cgp .cg-rewards { padding: 13px 14px 15px; border-radius: 16px; }
	#cgp .cg-rewards.has-unlocked { padding-bottom: 0; }
	#cgp .cg-rw { gap: 11px; }
	#cgp .cg-rw__badge { width: 40px; height: 40px; border-radius: 12px; }
	#cgp .cg-rw__badge > .cg-ic { width: 20px; height: 20px; }
	#cgp .cg-rw__txt b { font-size: 14px; }
	#cgp .cg-rw__txt small { font-size: 12px; }
	#cgp .cg-track { margin: 12px 13px 18px 0; height: 26px; }
	#cgp .cg-track__dot { width: 26px; height: 26px; }
	#cgp .cg-track__lbl { top: 29px; font-size: 11px; }
	#cgp .cg-rw__unlocked { margin: 12px -14px 0; padding: 8px 14px 9px; }
	#cgp .cg-rewards.is-done { padding: 7px 12px 7px 7px; border-radius: 13px; }
	#cgp .cg-rewards.is-done.has-unlocked { padding-bottom: 0; }
	#cgp .cg-rewards.is-done .cg-rw { gap: 10px; }
	#cgp .cg-rewards.is-done .cg-rw__badge { width: 32px; height: 32px; border-radius: 9px; }
	#cgp .cg-rewards.is-done .cg-rw__badge > .cg-ic { width: 17px; height: 17px; }
	#cgp .cg-rewards.is-done .cg-rw__txt b { font-size: 13px; }
	#cgp .cg-rewards.is-done .cg-rw__txt small { font-size: 11.5px; }
	#cgp .cg-rw__ok { width: 20px; height: 20px; }
	#cgp .cg-rw__ok .cg-ic { width: 11px; height: 11px; }
	#cgp .cg-rewards.is-done .cg-rw__unlocked { margin: 7px -12px 0 -7px; padding: 6px 12px 7px 11px; }
	#cgp .cg-rw__uic { width: 28px; height: 28px; border-radius: 9px; }
	#cgp .cg-rw__uic .cg-ic { width: 16px; height: 16px; }
	#cgp .cg-rw__utxt b { font-size: 12.5px; }
	#cgp .cg-rw__utxt small { font-size: 11.5px; }
	#cgp .cg-rw__ucheck { width: 20px; height: 20px; }

	#cgp .cgp-items { border-radius: 18px; }
	#cgp .cgp-lines { padding: 2px 14px; }
	#cgp .cgp-line { grid-template-columns: 78px minmax(0, 1fr) auto; grid-template-areas: "img info info" "img actions total"; gap: 10px 14px; padding: 16px 0; align-items: center; }
	#cgp .cgp-line__info { align-self: start; }
	#cgp .cgp-line__actions { gap: 8px; }
	#cgp .cgp-line__remove span { display: none; }
	#cgp .cgp-line__remove { padding: 8px; margin-left: 0; }
	#cgp .cgp-line__remove .cg-ic { width: 17px; height: 17px; }
	#cgp .cgp-line__img { width: 78px; height: 78px; border-radius: 14px; }
	#cgp .cgp-line__title { font-size: 15.5px; }
	#cgp .cgp-line__meta { margin-top: 5px; font-size: 12.5px; gap: 7px; }
	#cgp .cgp-pill { font-size: 11.5px; padding: 5px 8px; }
	#cgp .cgp-line__tags { margin-top: 6px; }
	#cgp .cgp-stock { font-size: 12.5px; }
	#cgp .cgp-line__unit { margin-top: 5px; font-size: 12.5px; }
	#cgp .cgp-qty { height: 40px; }
	#cgp .cgp-qty button { width: 32px; height: 32px; }
	#cgp .cgp-qty__n { width: 32px; height: 32px; line-height: 32px; font-size: 15px; }
	#cgp .cgp-line__total { font-size: 16.5px; }

	#cgp .cgp-offer { grid-template-columns: 54px minmax(0, 1fr); gap: 10px 12px; margin: 0 14px 16px; padding: 13px; border-radius: 15px; }
	#cgp .cgp-offer__img { width: 54px; height: 54px; border-radius: 12px; }
	#cgp .cgp-offer__label { font-size: 10.5px; }
	#cgp .cgp-offer__title b { font-size: 15px; }
	#cgp .cgp-offer__detail { font-size: 13px; }
	#cgp .cgp-offer__btn { grid-column: 1 / -1; width: 100%; height: 44px; font-size: 14.5px; }
	#cgp .cgp-msg { margin: 0 14px 14px; }

	#cgp .cgp-items__foot { padding: 12px 14px; gap: 8px 12px; }
	#cgp .cgp-coupon { flex-basis: 100%; }
	#cgp .cgp-coupon__toggle { font-size: 14.5px; }
	#cgp .cgp-coupon__plus { width: 24px; height: 24px; border-radius: 8px; }
	#cgp .cgp-coupon__form { max-width: none; }
	#cgp .cgp-coupon__input,
	#cgp .cgp-coupon__apply { height: 44px; }
	#cgp .cgp-auto { display: none !important; }

	#cgp .cgp-summary { padding: 20px 16px 18px; border-radius: 20px; }
	#cgp .cgp-summary__title { font-size: 24px; margin-bottom: 12px; }
	#cgp .cgp-row { font-size: 14px; padding: 4px 0; }
	#cgp .cgp-total { margin-top: 10px; padding-top: 14px; }
	#cgp .cgp-total__label { font-size: 16px; }
	#cgp .cgp-total__val { font-size: 26px; }
	#cgp .cgp-checkout { height: 54px; margin-top: 16px; font-size: 16px; border-radius: 14px; }
	#cgp .cgp-or { margin: 14px 0 10px; font-size: 12px; }
	#cgp .cgp-secure { margin: 14px 0 8px; font-size: 13px; }
	#cgp .cgp-payicons { gap: 5px; }
	#cgp .cgp-payicons li { height: 22px; }
	#cgp .cgp-payicons img { height: calc(22px * var(--cgp-icon-scale, 1)); }
	#cgp .cgp-next { margin-top: 18px; padding-top: 16px; }
	#cgp .cgp-next ol { margin-top: 12px; gap: 12px; }
	#cgp .cgp-next li { grid-template-columns: 30px minmax(0, 1fr); gap: 12px; }
	#cgp .cgp-next li:not(:last-child)::before { left: 14.5px; top: 34px; bottom: -10px; }
	#cgp .cgp-next__ic { width: 30px; height: 30px; }
	#cgp .cgp-next__ic .cg-ic { width: 14px; height: 14px; }
	#cgp .cgp-next b { font-size: 14px; }
	#cgp .cgp-next p { font-size: 13px; }

	#cgp .cgp-help { flex-wrap: wrap; gap: 12px 14px; padding: 16px; border-radius: 18px; }
	#cgp .cgp-help__ic { width: 40px; height: 40px; border-radius: 12px; }
	#cgp .cgp-help__txt b { font-size: 15.5px; }
	#cgp .cgp-help__txt p { font-size: 13.5px; }
	#cgp .cgp-help__btn { width: 100%; height: 46px; font-size: 15px; }

	#cgp .cgp-empty { padding: 36px 18px; border-radius: 20px; }
	#cgp .cgp-empty__title { font-size: 26px; }
}

@media (max-width: 400px) {
	#cgp .cgp-sub__extra { display: none; }
	#cgp .cgp-steps li { padding-right: 9px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	#cgp .cg-rw__badge > .cg-ic,
	#cgp .cg-track__bar i::after,
	#cgp .cg-promo__timer .cg-ic { animation: none !important; }
	#cgp .cgp-bar { transition: none; }
}



/* Keep the closed coupon design */
#cgp.cgp-js .cgp-coupon:not(.is-open) .cgp-coupon__form {
	display: none !important;
}

/* Hide the toggle after opening */
#cgp.cgp-js .cgp-coupon.is-open .cgp-coupon__toggle {
	display: none !important;
}

/* Full-width coupon row when opened */
#cgp .cgp-coupon.is-open {
	flex: 1 0 100% !important;
	width: 100% !important;
}

/* Wide field with compact Apply button */
#cgp .cgp-coupon.is-open .cgp-coupon__form {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 110px !important;
	gap: 8px !important;
	width: 100% !important;
	max-width: none !important;
}

#cgp .cgp-coupon.is-open .cgp-coupon__input {
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
}

#cgp .cgp-coupon.is-open .cgp-coupon__apply {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 110px !important;
	min-width: 110px !important;
	max-width: 110px !important;
	margin: 0 !important;
}
#cgp .cgp-auto {
	display: none !important;
}




/* Default: header is part of the page layout */
body.woocommerce-cart #cgp,
body.woocommerce-cart #cgp.has-offset {
	padding-top: 36px !important;
}

/* Large desktop: header overlays the cart */
@media (min-width: 1367px) {
	body.woocommerce-cart #cgp,
	body.woocommerce-cart #cgp.has-offset {
		padding-top: 185px !important;
	}
}

/* Tablet */
@media (max-width: 900px) {
	body.woocommerce-cart #cgp,
	body.woocommerce-cart #cgp.has-offset {
		padding-top: 22px !important;
	}
}

/* Mobile */
@media (max-width: 640px) {
	body.woocommerce-cart #cgp,
	body.woocommerce-cart #cgp.has-offset {
		padding-top: 16px !important;
	}
}

/* Fix title overlap from 1200px to 1370px */
@media (min-width: 1200px) and (max-width: 1370px) {
	body.woocommerce-cart #cgp,
	body.woocommerce-cart #cgp.has-offset {
		padding-top: 185px !important;
	}
}

/* Hide the redundant title and Continue shopping button on an empty cart */
#cgp.is-empty .cgp-head {
	display: none !important;
}


/* Reduce desktop top spacing */
@media (min-width: 1200px) {
	body.woocommerce-cart #cgp,
	body.woocommerce-cart #cgp.has-offset {
		padding-top: 155px !important;
	}
}