/* ==========================================================
   Cocoa Bloom by Biya : menu card style (v2)
   ========================================================== */
:root {
	--plum: #6d2441; --plum2: #8e3b62; --choc: #4a2419;
	--blush: #fbe4ec; --pink: #f7c3d6; --pink2: #f3a6c4; --rose: #e57fa6;
	--lav: #e6d6f3; --lilac: #b884c9; --wa: #25d366; --muted: #8a4d67; --line: #f3c9da;
	--script: 'Pacifico', cursive; --head: 'Grandstander', 'Nunito', sans-serif; --body: 'Nunito', system-ui, sans-serif; --hand: 'Caveat Brush', cursive;
	--ease: cubic-bezier(.22, 1, .36, 1); --pop: cubic-bezier(.34, 1.56, .64, 1);
	--cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 76'%3E%3Cpath d='M22 68c-15 0-22-13-15-24-9-9-2-26 13-24 2-13 19-17 28-9 7-11 26-11 32 0 11-6 28 0 26 13 15 2 17 20 6 26 7 13-4 24-17 20-7 9-24 9-30 0-9 6-24 6-30-2z' fill='%23f7c3d6' stroke='%23e89ab8' stroke-width='3'/%3E%3C/svg%3E");
	--cloud-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 76'%3E%3Cpath d='M22 68c-15 0-22-13-15-24-9-9-2-26 13-24 2-13 19-17 28-9 7-11 26-11 32 0 11-6 28 0 26 13 15 2 17 20 6 26 7 13-4 24-17 20-7 9-24 9-30 0-9 6-24 6-30-2z' fill='%23fff' stroke='%23f3a6c4' stroke-width='3'/%3E%3C/svg%3E");
	--flower: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cg fill='%23c99ad9'%3E%3Ccircle cx='30' cy='13' r='12'/%3E%3Ccircle cx='46' cy='24' r='12'/%3E%3Ccircle cx='40' cy='44' r='12'/%3E%3Ccircle cx='20' cy='44' r='12'/%3E%3Ccircle cx='14' cy='24' r='12'/%3E%3C/g%3E%3Ccircle cx='30' cy='30' r='15' fill='%239a5fb0'/%3E%3C/svg%3E");
	--flower-p: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cg fill='%23f7c3d6'%3E%3Ccircle cx='30' cy='13' r='12'/%3E%3Ccircle cx='46' cy='24' r='12'/%3E%3Ccircle cx='40' cy='44' r='12'/%3E%3Ccircle cx='20' cy='44' r='12'/%3E%3Ccircle cx='14' cy='24' r='12'/%3E%3C/g%3E%3Ccircle cx='30' cy='30' r='15' fill='%23e57fa6'/%3E%3C/svg%3E");
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0; font-family: var(--body); font-weight: 600; font-size: 17px; line-height: 1.6; color: var(--plum);
	background-color: #fbe2ec;
	background-image:
		radial-gradient(circle at 10% 8%, rgba(255,255,255,.8) 0 70px, transparent 71px),
		radial-gradient(circle at 92% 18%, rgba(230,214,243,.95) 0 110px, transparent 111px),
		radial-gradient(circle at 20% 45%, rgba(255,255,255,.55) 0 50px, transparent 51px),
		radial-gradient(circle at 85% 62%, rgba(230,214,243,.8) 0 90px, transparent 91px),
		radial-gradient(circle at 10% 85%, rgba(230,214,243,.7) 0 80px, transparent 81px),
		linear-gradient(180deg, #fbe1ec, #f5e3f4 50%, #fbe1ec);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--head); font-weight: 800; line-height: 1.15; color: var(--plum); margin: 0 0 .4em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px dashed var(--rose); outline-offset: 3px; border-radius: 10px; }
.cb-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.cb-skip { position: absolute; left: -999px; top: 8px; z-index: 999; background: var(--plum); color: #fff; padding: 8px 14px; border-radius: 10px; }
.cb-skip:focus { left: 8px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.cb-hp { position: absolute; left: -9999px; }

/* ---------- buttons ---------- */
.cb-btn, .button, button.button, input.button, a.button, .wc-block-components-button:not(.is-link) {
	--bg: var(--plum); --fg: #fff;
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 26px; border: 0; border-radius: 999px; background: var(--bg) !important; color: var(--fg) !important;
	font: 800 16px/1.2 var(--body) !important; letter-spacing: .01em; cursor: pointer; text-align: center;
	box-shadow: 0 10px 22px -12px var(--bg); transition: transform .2s var(--ease), box-shadow .2s, opacity .2s;
	-webkit-tap-highlight-color: transparent;
}
.cb-btn:hover, .button:hover { transform: translateY(-2px); }
.cb-btn:active, .button:active { transform: scale(.97); }
.cb-btn--wa { --bg: var(--wa); }
.cb-btn--pink { --bg: var(--rose); }
.cb-btn--line { --bg: #fff; --fg: var(--plum); box-shadow: inset 0 0 0 2px var(--plum); }
.cb-btn--block { display: flex; width: 100%; }
.cb-btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.cb-btn.is-loading { opacity: .7; pointer-events: none; }
.cb-ic { width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--blush); color: var(--plum); display: grid; place-items: center; position: relative; cursor: pointer; }
.cb-count { position: absolute; top: -3px; right: -3px; min-width: 21px; height: 21px; padding: 0 5px; border-radius: 999px; background: var(--rose); color: #fff; border: 2px solid #fff; font: 800 11px/1 var(--body); display: grid; place-items: center; }
.cb-count.is-empty { display: none; }
.cb-bag.is-bump { animation: cb-bump .6s var(--pop); }
@keyframes cb-bump { 30% { transform: scale(1.25) rotate(-8deg); } 60% { transform: scale(.92) rotate(5deg); } }

/* ---------- top + header ---------- */
.cb-top { background: var(--plum); color: #fde7ef; font-size: 14px; font-weight: 700; text-align: center; padding: 8px 12px; }
.cb-header { position: sticky; top: 0; z-index: 50; background: rgba(255,246,250,.95); border-bottom: 2px dashed var(--pink2); backdrop-filter: blur(8px); transition: transform .35s var(--ease); }
.admin-bar .cb-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cb-header { top: 0; } }
.cb-header.is-hidden { transform: translateY(-110%); }
.cb-hd { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 92px; }
.cb-logo { display: flex; align-items: center; gap: 12px; }
.cb-logo img { width: 72px; height: 72px; border-radius: 50%; box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--pink2); }
.cb-logo b { display: block; font: 400 28px/1.1 var(--script); color: var(--plum); }
.cb-logo small { font: 19px var(--hand); color: var(--rose); }
.cb-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.cb-nav__list a { display: block; padding: 8px 12px; border-radius: 999px; font-weight: 800; font-size: 16px; transition: background .2s, color .2s; }
.cb-nav__list a:hover { background: var(--blush); }
.cb-nav__list .is-on a, .cb-nav__list .current-menu-item a { color: var(--rose); }
.cb-nav__head, .cb-nav__wa, .cb-burger { display: none; }
.cb-hd__r { display: flex; align-items: center; gap: 10px; }
@media (max-width: 1020px) {
	.cb-hd { height: 76px; }
	.cb-burger { display: grid; }
	.cb-hd__wa { display: none; }
	.cb-logo img { width: 54px; height: 54px; }
	.cb-logo b { font-size: 22px; }
	.cb-logo small { font-size: 16px; }
	.cb-nav { position: fixed; inset: 0 auto 0 0; width: min(86vw, 360px); z-index: 80; background: #fff6fa; padding: 18px; display: flex; flex-direction: column; gap: 16px; transform: translateX(-105%); transition: transform .45s var(--ease); overflow-y: auto; box-shadow: 20px 0 50px -20px rgba(74,36,25,.4); }
	.cb-nav.is-open { transform: none; }
	.cb-nav__head { display: flex; justify-content: space-between; align-items: center; font: 800 22px var(--head); }
	.cb-nav__list { flex-direction: column; gap: 8px; }
	.cb-nav__list a { font: 800 20px var(--head); background: #fff; border: 2px solid var(--line); border-radius: 18px; padding: 12px 16px; }
	.cb-nav__wa { display: inline-flex; margin-top: auto; }
}
.cb-overlay { position: fixed; inset: 0; background: rgba(60,20,35,.45); z-index: 70; opacity: 0; transition: opacity .3s; }
.cb-overlay.is-on { opacity: 1; }
body.cb-lock { overflow: hidden; }

/* ---------- cart drawer ---------- */
.cb-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(92vw, 420px); z-index: 90; background: #fff8fb; display: flex; flex-direction: column; transform: translateX(105%); transition: transform .45s var(--ease); border-radius: 28px 0 0 28px; box-shadow: -20px 0 50px -20px rgba(74,36,25,.4); }
.cb-drawer.is-open { transform: none; }
.cb-drawer__h { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; background: var(--plum); color: #fff; border-radius: 28px 0 0 0; }
.cb-drawer__h b { font: 800 22px var(--head); }
.cb-drawer__h .cb-ic { background: rgba(255,255,255,.15); color: #fff; }
.cb-drawer .widget_shopping_cart_content { flex: 1; overflow-y: auto; padding: 16px 18px 22px; display: flex; flex-direction: column; }
.cb-drawer .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cb-drawer .woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 70px 1fr; column-gap: 12px; align-items: center; padding: 10px 40px 10px 10px; background: #fff; border: 2px solid var(--line); border-radius: 20px; font-size: 14px; }
.cb-drawer .woocommerce-mini-cart-item > a:not(.remove) { display: contents; font: 800 16px var(--head); }
.cb-drawer .woocommerce-mini-cart-item img { grid-row: span 3; width: 70px; height: 70px; object-fit: cover; border-radius: 14px; margin: 0; }
.cb-drawer .woocommerce-mini-cart-item .quantity { grid-column: 2; color: var(--muted); display: block; border: 0; background: none; border-radius: 0; font-weight: 800; }
.admin-bar .cb-drawer { top: 32px; }
.cb-drawer .woocommerce-mini-cart-item dl { grid-column: 2; margin: 2px 0; font-size: 12px; color: var(--muted); }
.cb-drawer .woocommerce-mini-cart-item dl dt, .cb-drawer .woocommerce-mini-cart-item dl dd { display: inline; margin: 0; }
.cb-drawer .woocommerce-mini-cart-item dl dd p { display: inline; margin: 0; }
.cb-drawer .woocommerce-mini-cart-item dl dd::after { content: ""; display: block; }
.cb-drawer .remove_from_cart_button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; background: #fde3ea; color: #d1436d !important; display: grid; place-items: center; font-weight: 900; }
.cb-drawer .woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: auto 0 12px; padding-top: 16px; font: 800 20px var(--head); }
.cb-drawer .woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin: 0; }
.cb-drawer .woocommerce-mini-cart__buttons .button { width: 100%; }
.cb-drawer .woocommerce-mini-cart__buttons .button:not(.checkout) { --bg: #fff; --fg: var(--plum); box-shadow: inset 0 0 0 2px var(--plum); }
.cb-drawer .woocommerce-mini-cart__empty-message { margin: auto; text-align: center; font: 800 20px var(--head); }
.cb-drawer .woocommerce-mini-cart__empty-message::before { content: "\2661"; display: block; font-size: 54px; color: var(--rose); }

/* ---------- hero ---------- */
.cb-hero { position: relative; padding: 60px 0 60px; overflow: hidden; }
.cb-corner { position: absolute; top: 0; width: 230px; z-index: 1; }
.cb-corner--l { left: 0; }
.cb-corner--r { right: 0; transform: scaleX(-1); }
.cb-sp { position: absolute; color: #fff; filter: drop-shadow(0 0 5px rgba(255,255,255,.9)); animation: cb-twinkle 3s ease-in-out infinite; }
.cb-sp--sm svg { width: 16px; height: 16px; }
.cb-dd { position: absolute; color: var(--pink2); opacity: .7; }
@keyframes cb-twinkle { 50% { transform: scale(.6) rotate(20deg); opacity: .5; } }
.cb-hero__in { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1.05fr; gap: 40px; align-items: center; }
.cb-kick { display: inline-flex; align-items: center; gap: 8px; background: #fff; border-radius: 999px; padding: 6px 16px; font: 22px var(--hand); color: var(--rose); box-shadow: 0 6px 16px -10px rgba(0,0,0,.3); }
.cb-hero__title { margin: 12px 0 0; font: 400 clamp(56px, 8vw, 96px)/1.1 var(--script); color: var(--plum); text-shadow: 3px 4px 0 #fff; }
.cb-tagline { font: 800 clamp(22px, 3vw, 32px) var(--head); color: var(--rose); margin: 4px 0 0; }
.cb-tagline span { color: var(--plum); }
.cb-lead { font-size: 19px; line-height: 1.6; color: var(--muted); max-width: 480px; margin: 16px 0 26px; }
.cb-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.cb-trustrow { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.cb-trustrow span { background: #fff; border-radius: 14px; padding: 7px 13px; font-size: 15px; font-weight: 700; box-shadow: 0 6px 14px -10px rgba(0,0,0,.35); }
.cb-trustrow b { color: var(--rose); }
.cb-stage { position: relative; height: 540px; }
.cb-stage__main { position: absolute; inset: 40px 0 30px 40px; border-radius: 44px; overflow: hidden; border: 10px solid #fff; box-shadow: 0 30px 60px -26px rgba(74,36,25,.6); }
.cb-stage__main img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; transition: transform 6s var(--ease); }
.cb-stage:hover .cb-stage__main img { transform: scale(1.06); }
.cb-stage__bow { position: absolute; z-index: 4; top: 2px; left: 50%; width: 150px; margin-left: -55px; filter: drop-shadow(0 8px 10px rgba(217,88,127,.35)); animation: cb-sway 4s ease-in-out infinite; transform-origin: 50% 40%; }
@keyframes cb-sway { 50% { transform: rotate(-5deg); } }
.cb-polaroid { position: absolute; z-index: 3; left: 0; bottom: -6px; width: 210px; background: #fff; padding: 9px 9px 34px; border-radius: 8px; transform: rotate(-8deg); box-shadow: 0 22px 40px -20px rgba(74,36,25,.6); transition: transform .3s var(--pop); }
.cb-polaroid:hover { transform: rotate(-3deg) scale(1.04); }
.cb-polaroid img { aspect-ratio: 1; object-fit: cover; border-radius: 4px; }
.cb-polaroid span { position: absolute; left: 0; right: 0; bottom: 6px; text-align: center; font: 24px var(--hand); }
.cb-bigcloud { position: absolute; z-index: 3; right: -10px; bottom: 0; width: 150px; height: 96px; display: grid; place-items: center; align-content: center; font: 800 24px/1 var(--head); background: var(--cloud-w) center/100% 100% no-repeat; transform: rotate(6deg); }
.cb-bigcloud small { font: 20px var(--hand); color: var(--rose); }

/* ---------- promo ---------- */
.cb-promo { margin-top: 0; }
.cb-promo__in { position: relative; display: grid; grid-template-columns: 240px 1fr auto; align-items: center; gap: 30px; background: var(--plum); color: #fff; border-radius: 40px; padding: 22px 36px 22px 22px; overflow: hidden; box-shadow: 0 26px 50px -30px var(--plum); }
.cb-promo__in::before { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: rgba(247,195,214,.15); }
.cb-promo__img { height: 170px; border-radius: 28px; overflow: hidden; border: 5px solid var(--pink); }
.cb-promo__img img { width: 100%; height: 100%; object-fit: cover; }
.cb-promo__badge { position: absolute; left: 190px; top: 12px; width: 84px; height: 84px; border-radius: 50%; background: var(--pink); color: var(--plum); display: grid; place-items: center; align-content: center; text-align: center; font: 800 22px/1 var(--head); transform: rotate(-12deg); box-shadow: 0 0 0 4px var(--plum), 0 0 0 7px var(--pink); animation: cb-wiggle 3s ease-in-out infinite; }
.cb-promo__badge small { font-size: 13px; }
@keyframes cb-wiggle { 50% { transform: rotate(-4deg) scale(1.06); } }
.cb-promo h3 { font: 800 34px/1.15 var(--head); color: var(--pink); margin: 0; }
.cb-promo p { margin: 8px 0 12px; color: #fde7ef; }
.cb-code { display: inline-flex; gap: 8px; align-items: center; background: rgba(255,255,255,.12); border: 2px dashed var(--pink); border-radius: 14px; padding: 6px 14px; color: #fff; font-weight: 800; cursor: pointer; }
.cb-code small { font-size: 11px; color: var(--pink); }
.cb-promo__timer { text-align: center; position: relative; }
.cb-promo__timer > span { display: block; font-weight: 800; font-size: 15px; color: var(--pink); margin-bottom: 8px; }
.cb-timer { display: flex; gap: 10px; }
.cb-timer div { background: #fff; color: var(--plum); border-radius: 16px; width: 68px; padding: 8px 0; text-align: center; }
.cb-timer b { display: block; font: 800 26px/1 var(--head); }
.cb-timer small { font-size: 12px; color: var(--rose); font-weight: 700; }

/* ---------- section heads ---------- */
.cb-sec { padding: 80px 0; position: relative; }
.cb-sec--tight { padding-top: 20px; }
.cb-sec--page { padding-bottom: 80px; }
.cb-head { text-align: center; margin-bottom: 44px; }
.cb-hand { font: 30px var(--hand); color: var(--rose); }
.cb-pill { display: inline-flex; align-items: center; gap: 10px; background: var(--plum); color: #fff; font: 800 30px var(--head); padding: 10px 36px; border-radius: 999px; margin: 6px 0 12px; box-shadow: 0 10px 24px -12px var(--plum); }
.cb-head h2 { font-size: clamp(32px, 4.5vw, 46px); margin: 2px 0 10px; }
.cb-head p { color: var(--muted); margin: 0; font-size: 18px; }

/* ---------- product cards ---------- */
.cb-grid, .woocommerce ul.products { list-style: none; margin: 0; padding: 0; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.cb-card { position: relative; background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 36px; padding: 12px; box-shadow: 0 18px 40px -28px rgba(74,36,25,.5); display: flex; flex-direction: column; width: auto !important; margin: 0 !important; float: none !important; transition: transform .35s var(--pop), box-shadow .35s; }
.cb-card:hover { transform: translateY(-6px); box-shadow: 0 26px 46px -26px rgba(74,36,25,.55); }
.cb-num { position: absolute; top: -14px; left: -10px; z-index: 3; width: 56px; height: 56px; display: grid; place-items: center; font: 800 21px var(--head); color: #fff; background: var(--flower) center/contain no-repeat; }
.cb-card__ph { display: block; position: relative; border-radius: 26px; overflow: hidden; aspect-ratio: 1/1.02; background: var(--blush); }
.cb-card__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.cb-card:hover .cb-card__ph img { transform: scale(1.07); }
.cb-rib { position: absolute; bottom: 12px; right: 0; background: #c99ad9; color: #fff; font: 800 14px var(--head); padding: 6px 18px 6px 14px; clip-path: polygon(0 0, 100% 0, 93% 50%, 100% 100%, 0 100%); }
.cb-rib--sale { background: var(--rose); }
.cb-card__t { font-size: 20px; margin: 14px 6px 2px; }
.cb-card__d { font-size: 14.5px; color: var(--muted); margin: 0 6px 10px; }
.cb-card__ft { margin: auto 4px 2px; display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; }
.cb-card__r { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.cb-pr { display: flex; flex-direction: column; align-items: flex-start; }
.cb-was { font-weight: 800; font-size: 15px; color: #b07a92; text-decoration: line-through; text-decoration-color: var(--rose); text-decoration-thickness: 2px; margin: 0 0 2px 8px; }
.cb-cloud { width: 112px; height: 66px; display: grid; place-items: center; align-content: center; text-align: center; font: 800 19px/1 var(--head); color: var(--plum); background: var(--cloud) center/100% 100% no-repeat; }
.cb-cloud small { font: 700 11px var(--body); margin-bottom: 2px; }
.cb-save { background: var(--rose); color: #fff; font-weight: 800; font-size: 12px; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.cb-add { width: 48px; height: 48px; padding: 0 !important; border-radius: 50% !important; display: grid !important; place-items: center; font: 800 26px/1 var(--head) !important; --bg: var(--plum); background: var(--bg) !important; color: #fff !important; box-shadow: 0 8px 16px -8px var(--plum); transition: transform .3s var(--pop), background .2s; }
.cb-add:hover { transform: rotate(90deg) !important; }
.cb-add.loading { opacity: .6; }
.cb-add.added { --bg: var(--rose); }
.cb-card .added_to_cart, .added_to_cart.wc-forward { display: none !important; }
.cb-card--cta { background: var(--plum); border-color: var(--plum); color: #fff; justify-content: center; align-items: center; text-align: center; padding: 30px 20px; }
.cb-card--cta > svg { width: 54px; height: 50px; color: var(--pink); }
.cb-card--cta h3 { color: #fff; font-size: 26px; margin: 12px 0 6px; }
.cb-card--cta p { color: #fde7ef; }

/* ---------- moments ---------- */
.cb-moments { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.cb-mo { --c: var(--pink); display: block; background: #fff; border: 2px solid var(--c); border-radius: 30px; overflow: hidden; box-shadow: 0 18px 36px -26px rgba(74,36,25,.5); transition: transform .35s var(--pop); }
.cb-mo:hover { transform: translateY(-6px) rotate(-1deg); }
.cb-mo__img { display: block; height: 170px; overflow: hidden; position: relative; }
.cb-mo__img img { width: 100%; height: 100%; object-fit: cover; }
.cb-mo__img::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 26px; background: radial-gradient(circle at 13px 26px, #fff 13px, transparent 14px) -13px 0/26px 26px repeat-x; }
.cb-mo__b { display: block; position: relative; padding: 6px 18px 18px; }
.cb-mo__ic { position: absolute; top: -34px; right: 16px; width: 54px; height: 54px; border-radius: 50%; background: var(--c); border: 4px solid #fff; display: grid; place-items: center; font-size: 24px; }
.cb-mo b { display: block; font: 800 21px var(--head); margin: 4px 0; }
.cb-mo__d { display: block; font-size: 15px; color: var(--muted); line-height: 1.4; margin-bottom: 12px; }
.cb-mo__p { display: inline-block; background: var(--c); font-weight: 800; font-size: 14px; padding: 6px 14px; border-radius: 999px; }
.cb-mo--eid { --c: #e9d27f; } .cb-mo--get { --c: #a9dcc4; } .cb-mo--bd { --c: #f7c3d6; } .cb-mo--nk { --c: #e6d6f3; }
.cb-mo--ty { --c: #ffd2b0; } .cb-mo--cg { --c: #c9b2ec; } .cb-mo--nb { --c: #bfe0f5; } .cb-mo--jb { --c: #f3a6c4; }
.cb-note-strip { margin-top: 26px; display: flex; align-items: center; gap: 18px; background: rgba(255,255,255,.7); border: 2px dashed var(--pink2); border-radius: 999px; padding: 14px 16px 14px 18px; }
.cb-note-strip__ic { width: 54px; height: 54px; flex: none; border-radius: 50%; background: var(--plum); color: #fff; display: grid; place-items: center; font-size: 24px; }
.cb-note-strip div { flex: 1; }
.cb-note-strip b { display: block; font: 800 19px var(--head); }
.cb-note-strip span { color: var(--muted); font-size: 15px; }

/* ---------- build a box ---------- */
.cb-bab { background: rgba(255,255,255,.6); border: 3px dashed var(--pink2); border-radius: 48px; padding: 40px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 36px; align-items: start; }
.cb-steps-mini { display: flex; flex-wrap: wrap; gap: 8px; }
.cb-steps-mini span { font-weight: 800; font-size: 13px; padding: 6px 14px; border-radius: 999px; background: #fff; color: #b48a9c; }
.cb-steps-mini .is-on { background: var(--plum); color: #fff; }
.cb-steps-mini .is-done { background: #e9f6ee; color: #2f8a53; }
.cb-lbl { font: 800 18px var(--head); margin: 20px 0 10px; display: flex; align-items: center; gap: 10px; }
.cb-lbl small { font: 700 13px var(--body); color: var(--muted); }
.cb-cnt { font: 800 13px var(--body); background: var(--blush); color: var(--rose); padding: 4px 10px; border-radius: 999px; }
.cb-sizes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cb-size, .cb-shp { background: #fff; border: 2px solid var(--line); border-radius: 20px; padding: 12px 6px; text-align: center; cursor: pointer; transition: transform .2s var(--pop), border-color .2s; }
.cb-size:hover, .cb-shp:hover { transform: translateY(-2px); }
.cb-size b { display: block; font: 800 26px var(--head); }
.cb-size small { font-size: 12.5px; color: var(--muted); font-weight: 700; }
.cb-size.is-on, .cb-shp.is-on { border-color: var(--plum); background: var(--blush); box-shadow: 0 0 0 3px var(--pink); }
.cb-shapes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.cb-shp { font-weight: 800; font-size: 14px; color: #c9a3b4; }
.cb-shp svg { width: 42px; height: 40px; display: block; margin: 0 auto 6px; }
.cb-shp span, .cb-shp { color: var(--plum); }
.cb-shp svg { color: #c9a3b4; }
.cb-shp.is-on svg { color: var(--plum); }
.cb-flav { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.cb-fl { background: none; border: 0; padding: 0; text-align: center; font-size: 13px; font-weight: 800; cursor: pointer; }
.cb-fl__h { width: 64px; height: 64px; margin: 0 auto 4px; position: relative; background: #fff; border-radius: 20px; display: grid; place-items: center; box-shadow: 0 6px 12px -8px rgba(0,0,0,.4); transition: transform .2s var(--pop); }
.cb-fl:hover .cb-fl__h { transform: scale(1.08) rotate(-4deg); }
.cb-fl:active .cb-fl__h { transform: scale(.92); }
.cb-fl__h svg { width: 48px; height: 46px; }
.cb-fl__h em { position: absolute; top: -7px; right: -7px; background: var(--rose); color: #fff; font: 800 12px var(--body); width: 23px; height: 23px; border-radius: 50%; display: grid; place-items: center; font-style: normal; border: 2px solid #fff; }
.cb-fl__h em[hidden] { display: none; }
.cb-in { width: 100%; background: #fff; border: 2px solid var(--line); border-radius: 18px; padding: 13px 16px; font-size: 16px; font-weight: 700; color: var(--plum); outline: 0; transition: border-color .2s, box-shadow .2s; }
.cb-in:focus { border-color: var(--plum); box-shadow: 0 0 0 4px rgba(109,36,65,.12); }
.cb-bab__r { display: grid; grid-template-columns: 1.05fr 1fr; gap: 18px; align-items: start; }
.cb-boxview { position: relative; background: #2a1a1f; border-radius: 28px; padding: 14px; box-shadow: 0 30px 50px -26px rgba(0,0,0,.6); margin-top: 20px; }
.cb-boxbow { position: absolute; top: -34px; left: 50%; width: 110px; margin-left: -55px; }
.cb-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; background: linear-gradient(135deg, #e8c47a, #c9973e); padding: 12px; border-radius: 16px; }
.cb-slots--12 { grid-template-columns: repeat(4, 1fr); }
.cb-slot { aspect-ratio: 1; border: 0; padding: 0; background: rgba(255,255,255,.25); border-radius: 12px; display: grid; place-items: center; position: relative; cursor: pointer; animation: cb-drop .4s var(--pop); }
.cb-slot svg { width: 84%; height: 84%; filter: drop-shadow(0 4px 3px rgba(0,0,0,.25)); }
.cb-slot__x { position: absolute; top: -6px; right: -6px; width: 20px; height: 20px; border-radius: 50%; background: #fff; color: var(--plum); font: 900 14px/1 var(--body); display: grid; place-items: center; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.cb-slot.is-empty { background: rgba(255,255,255,.35); box-shadow: inset 0 0 0 2px rgba(255,255,255,.7); color: #fff; font-weight: 800; font-size: 22px; cursor: default; animation: none; }
@keyframes cb-drop { from { transform: scale(.4) translateY(-20px); opacity: 0; } }
.cb-picks { background: #fff; border-radius: 26px; padding: 16px; box-shadow: 0 14px 30px -22px rgba(0,0,0,.45); }
.cb-picks__h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.cb-picks__h b { font: 800 18px var(--head); }
.cb-picks__h button { background: none; border: 0; color: var(--rose); text-decoration: underline; font-size: 13px; cursor: pointer; }
.cb-picks ul { list-style: none; margin: 0 0 10px; padding: 0; }
.cb-picks li { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: 14px; font-weight: 800; }
.cb-picks__empty { color: var(--muted); font-weight: 700 !important; justify-content: center; text-align: center; border: 0 !important; padding: 18px 0 !important; }
.cb-pdot svg { width: 26px; height: 25px; display: block; }
.cb-pn { flex: 1; }
.cb-qty { display: inline-flex; align-items: center; gap: 7px; background: var(--blush); border-radius: 999px; padding: 2px 4px; }
.cb-qty button { width: 22px; height: 22px; border-radius: 50%; border: 0; background: #fff; color: var(--plum); font-weight: 900; cursor: pointer; display: grid; place-items: center; padding: 0; }
.cb-rm { width: 24px; height: 24px; border-radius: 50%; border: 0; background: #fde3ea; color: #d1436d; font: 900 15px/1 var(--body); cursor: pointer; display: grid; place-items: center; padding: 0; }
.cb-ptotal { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 10px; font: 800 16px var(--head); }
.cb-ptotal small { display: block; font: 700 12px var(--body); color: var(--muted); }
.cb-ptotal .cb-cloud { width: 104px; height: 62px; font-size: 17px; }

/* ---------- big orders, how, gallery ---------- */
.cb-big { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.cb-big h2 { font-size: clamp(32px, 4.5vw, 46px); }
.cb-big p { color: var(--muted); font-size: 18px; }
.cb-occ { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 26px; }
.cb-occ span { background: #fff; border-radius: 999px; padding: 8px 18px; font-weight: 800; box-shadow: 0 6px 14px -10px rgba(0,0,0,.35); }
.cb-occ span:nth-child(odd) { background: var(--lav); }
.cb-stack { position: relative; height: 460px; }
.cb-stack img { position: absolute; border: 9px solid #fff; border-radius: 30px; box-shadow: 0 26px 50px -24px rgba(74,36,25,.6); }
.cb-stack .a { right: 10px; top: 0; width: 330px; transform: rotate(4deg); }
.cb-stack .b { left: 10px; bottom: 0; width: 250px; transform: rotate(-7deg); }
.cb-how { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.cb-how > div { background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 32px; padding: 26px 18px; text-align: center; }
.cb-flower { width: 66px; height: 66px; margin: 0 auto 12px; display: grid; place-items: center; font: 800 26px var(--head); color: #fff; background: var(--flower-p) center/contain no-repeat; }
.cb-how h3 { font-size: 20px; margin: 0 0 4px; }
.cb-how p { margin: 0; font-size: 15px; color: var(--muted); }
.cb-gal { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.cb-gal img { aspect-ratio: 1; object-fit: cover; border-radius: 22px; border: 5px solid #fff; }
.cb-gal img:nth-child(odd) { rotate: -2deg; }
.cb-gal img:nth-child(even) { rotate: 2deg; translate: 0 10px; }

/* ---------- footer ---------- */
.cb-footer { background: var(--plum); color: #f6dbe5; padding: 90px 0 30px; position: relative; margin-top: 50px; }
.cb-footer__drip { position: absolute; top: -1px; left: 0; width: 100%; height: 60px; fill: #fbe1ec; }
.cb-fg { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 30px; }
.cb-footer__name { font: 400 40px var(--script); color: var(--pink); }
.cb-footer p { color: #ecc9d6; }
.cb-footer h4 { color: #fff; font-size: 19px; margin-bottom: 12px; }
.cb-footer ul { list-style: none; padding: 0; margin: 0; line-height: 2.1; color: #ecc9d6; }
.cb-footer a:hover { color: var(--pink); }
.cb-soc { display: flex; gap: 10px; }
.cb-soc a { width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.12); display: grid; place-items: center; }
.cb-fbot { border-top: 1px dashed rgba(255,255,255,.25); margin-top: 34px; padding-top: 16px; text-align: center; font-size: 14px; color: #d9a9bd; }

/* ---------- mobile nav + toast ---------- */
.cb-mnav { display: none; }
.cb-toast { position: fixed; left: 50%; top: 110px; z-index: 120; background: var(--plum); color: #fff; padding: 12px 22px; border-radius: 999px; font-weight: 800; box-shadow: 0 14px 30px -10px rgba(0,0,0,.4); transform: translate(-50%, -20px); opacity: 0; pointer-events: none; transition: transform .4s var(--pop), opacity .3s; max-width: 92vw; text-align: center; }
.cb-toast.is-on { transform: translate(-50%, 0); opacity: 1; }

/* ---------- reveal ---------- */
.cb-anim .cb-reveal, .cb-anim .cb-card { opacity: 0; translate: 0 30px; transition: opacity .7s var(--ease), translate .8s var(--ease), transform .35s var(--pop), box-shadow .35s; transition-delay: calc(var(--i, 0) * 80ms), calc(var(--i, 0) * 80ms), 0s, 0s; }
.cb-anim .cb-reveal.is-in, .cb-anim .cb-card.is-in { opacity: 1; translate: 0 0; }

/* ---------- inner pages ---------- */
.cb-pagehero { text-align: center; padding: 50px 20px 30px; }
.cb-pagehero h1 { font-size: clamp(36px, 6vw, 56px); margin: 14px 0 8px; }
.cb-pagehero .cb-lead { margin: 0 auto; }
.cb-pagehero--sm { padding: 30px 0 20px; }
.cb-pagehero--sm h1 { margin: 0; }
.cb-page { padding-bottom: 80px; }
.cb-entry--text { max-width: 760px; margin: 0 auto; background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 36px; padding: 34px; font-size: 18px; }
.cb-progress { list-style: none; display: flex; justify-content: center; gap: 8px; padding: 0; margin: 14px 0 0; font-weight: 800; font-size: 14px; }
.cb-progress li { background: #fff; padding: 6px 14px; border-radius: 999px; color: #b48a9c; }
.cb-progress .is-done { background: #e9f6ee; color: #2f8a53; }
.cb-progress .is-on { background: var(--plum); color: #fff; }
.cb-thanks { max-width: 640px; margin: 0 auto; text-align: center; background: #fff; border-radius: 36px; padding: 40px 26px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.cb-thanks > svg { width: 60px; height: 56px; color: var(--rose); }
.cb-thanks p { color: var(--muted); }

/* ---------- custom order ---------- */
.cb-co { display: grid; grid-template-columns: 1.45fr .85fr; gap: 30px; align-items: start; padding-bottom: 80px; }
.cb-panel { background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 36px; padding: 30px 32px; }
.cb-alert { background: #fde3ea; color: #b4325b; border-radius: 16px; padding: 10px 14px; }
.cb-q { display: block; margin: 0 0 26px; padding: 0; border: 0; }
.cb-qt { display: flex; align-items: center; gap: 10px; font: 800 20px var(--head); margin-bottom: 12px; padding: 0; }
.cb-qt i { width: 34px; height: 34px; flex: none; display: grid; place-items: center; font: 800 14px var(--head); color: #fff; font-style: normal; background: var(--flower) center/contain no-repeat; }
.cb-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cb-chip input, .cb-pk input, .cb-sw input { position: absolute; opacity: 0; pointer-events: none; }
.cb-chip span { display: inline-block; padding: 9px 18px; border-radius: 999px; background: #fff; border: 2px solid var(--line); font-weight: 800; cursor: pointer; transition: background .2s, color .2s; }
.cb-chip input:checked + span { background: var(--plum); border-color: var(--plum); color: #fff; }
.cb-chip input:focus-visible + span, .cb-pk input:focus-visible + span { outline: 3px dashed var(--rose); outline-offset: 2px; }
.cb-pick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.cb-pk { position: relative; cursor: pointer; }
.cb-pk span { display: block; background: #fff; border: 2px solid var(--line); border-radius: 22px; padding: 8px; text-align: center; font: 800 14px var(--head); position: relative; }
.cb-pk img { aspect-ratio: 1; object-fit: cover; border-radius: 16px; margin-bottom: 6px; }
.cb-pk input:checked + span { border-color: var(--plum); box-shadow: 0 0 0 3px var(--pink); }
.cb-pk input:checked + span::after { content: "\2713"; position: absolute; top: -8px; right: -8px; width: 28px; height: 28px; border-radius: 50%; background: var(--plum); color: #fff; display: grid; place-items: center; font-size: 14px; border: 3px solid #fff; }
.cb-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cb-range { -webkit-appearance: none; appearance: none; width: 100%; height: 10px; border-radius: 10px; background: linear-gradient(90deg, var(--pink2), var(--plum)) 0/var(--p, 50%) 100% no-repeat, #f3d3e0; margin: 14px 0 10px; }
.cb-range::-webkit-slider-thumb { -webkit-appearance: none; width: 30px; height: 30px; border-radius: 50%; background: #fff; border: 4px solid var(--plum); cursor: pointer; }
.cb-range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 4px solid var(--plum); cursor: pointer; }
.cb-range-l { display: flex; justify-content: space-between; font-size: 14px; color: var(--muted); }
.cb-range-l b { color: var(--plum); font: 800 18px var(--head); }
.cb-sw { display: flex; flex-wrap: wrap; gap: 12px; }
.cb-sw label { position: relative; cursor: pointer; }
.cb-sw i { display: block; width: 44px; height: 44px; border-radius: 50%; border: 4px solid #fff; box-shadow: 0 0 0 2px var(--line); }
.cb-sw input:checked + i { box-shadow: 0 0 0 3px var(--plum); }
.cb-drop { position: relative; display: block; border: 2px dashed var(--pink2); border-radius: 22px; padding: 22px; text-align: center; color: var(--muted); background: rgba(251,228,236,.5); cursor: pointer; }
.cb-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.cb-drop b { display: block; color: var(--plum); font: 800 17px var(--head); }
.cb-side { position: sticky; top: 120px; }
.cb-sum { background: var(--plum); color: #fff; border-radius: 36px; padding: 28px; }
.cb-sum h3 { color: var(--pink); font-size: 28px; }
.cb-sum ul { list-style: none; padding: 0; margin: 0 0 18px; }
.cb-sum li { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px dashed rgba(255,255,255,.25); }
.cb-sum li b { color: var(--pink); text-align: right; }
.cb-sum p { font-size: 14px; color: #f3c7d8; text-align: center; margin: 12px 0 0; }
.cb-note { margin-top: 16px; background: #fff; border-radius: 28px; padding: 18px; display: flex; gap: 14px; align-items: center; }
.cb-note img { width: 72px; height: 72px; border-radius: 18px; object-fit: cover; }
.cb-note b { display: block; font: 800 17px var(--head); }
.cb-note span { font-size: 14px; color: var(--muted); }

/* ==========================================================
   WooCommerce pages
   ========================================================== */
.cb-woo { padding: 30px 20px 80px; }
.cb-head--shop { margin-bottom: 20px; }
.cb-catbar { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 26px; }
.cb-catbar a { background: #fff; border: 2px solid var(--line); border-radius: 999px; padding: 8px 18px; font-weight: 800; }
.cb-catbar a.is-on { background: var(--plum); border-color: var(--plum); color: #fff; }
.woocommerce-breadcrumb { font-size: 14px; color: var(--muted); margin-bottom: 16px; }
.woocommerce-products-header { display: none; }
.woocommerce-ordering { display: flex; justify-content: flex-end; margin: 0 0 30px; }
.woocommerce-ordering select { appearance: none; border: 2px solid var(--line); background: #fff; border-radius: 999px; padding: 10px 20px; font-weight: 800; color: var(--plum); }
.woocommerce nav.woocommerce-pagination ul { display: flex; gap: 8px; justify-content: center; border: 0; margin-top: 30px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #fff; font-weight: 800; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--plum); color: #fff; }
.woocommerce span.onsale { position: absolute; top: 14px; left: 14px; z-index: 3; background: var(--rose); color: #fff; font-weight: 800; padding: 6px 14px; border-radius: 999px; min-height: 0; line-height: 1.3; }

/* single product */
.cb-woo--product div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 50px; align-items: start; position: relative; }
.cb-woo--product div.product > * { min-width: 0; }
.cb-woo--product .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; position: sticky; top: 120px; }
.cb-woo--product .woocommerce-product-gallery__image img { border-radius: 36px; border: 10px solid #fff; box-shadow: 0 30px 60px -30px rgba(74,36,25,.6); width: 100%; }
.cb-woo--product .woocommerce-product-gallery__trigger { position: absolute; top: 22px; right: 22px; z-index: 5; width: 42px; height: 42px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 0; }
.cb-woo--product .woocommerce-product-gallery__trigger::before { content: "\2922"; font-size: 18px; color: var(--plum); }
.cb-woo--product .flex-control-thumbs { display: flex; gap: 10px; list-style: none; padding: 0; margin: 14px 0 0; }
.cb-woo--product .flex-control-thumbs li { width: 74px; }
.cb-woo--product .flex-control-thumbs img { border-radius: 14px; opacity: .6; cursor: pointer; }
.cb-woo--product .flex-control-thumbs img.flex-active { opacity: 1; }
.cb-woo--product .summary { width: 100% !important; float: none !important; margin: 0 !important; }
.cb-woo--product .product_title { font-size: clamp(32px, 5vw, 48px); margin-bottom: 10px; }
.cb-woo--product .summary .price { display: flex; align-items: flex-end; gap: 14px; margin: 0 0 14px; }
.cb-woo--product .summary .price .cb-cloud { width: 150px; height: 88px; font-size: 26px; }
.cb-woo--product .woocommerce-product-details__short-description { color: var(--muted); font-size: 18px; }
.cb-woo--product form.cart { display: flex; gap: 12px; flex-wrap: wrap; margin: 20px 0 12px; }
.cb-woo--product form.cart .single_add_to_cart_button { flex: 1; min-height: 56px; font-size: 18px !important; }
.cb-woo--product .product_meta { display: none; }
.cb-trust { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 16px 0 0; }
.cb-trust li { background: #fff; border-radius: 999px; padding: 7px 14px; font-weight: 800; font-size: 14px; }
.summary .cb-btn--wa { margin-top: 6px; }
.woocommerce-tabs { grid-column: 1 / -1; background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 32px; padding: 20px 24px; }
.woocommerce-tabs ul.tabs { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 14px; border: 0; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: none; }
.woocommerce-tabs ul.tabs li a { display: block; padding: 8px 18px; border-radius: 999px; background: #fff; font-weight: 800; }
.woocommerce-tabs ul.tabs li.active a { background: var(--plum); color: #fff; }
.related.products, .up-sells { grid-column: 1 / -1; }
.related.products > h2 { text-align: center; font-size: 36px; margin: 20px 0 30px; }

.quantity { display: inline-flex; align-items: center; background: #fff; border: 2px solid var(--line); border-radius: 999px; overflow: hidden; }
.quantity .qty { width: 44px; border: 0; text-align: center; font-weight: 900; font-size: 17px; background: transparent; -moz-appearance: textfield; min-height: 50px; }
.quantity .qty::-webkit-inner-spin-button, .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; }
.cb-qbtn { width: 42px; min-height: 50px; border: 0; background: none; font-size: 20px; font-weight: 900; color: var(--plum); cursor: pointer; }
.cb-qbtn:hover { background: var(--blush); }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { list-style: none; border: 0 !important; border-radius: 20px !important; background: #fff !important; color: var(--plum) !important; padding: 14px 18px !important; margin: 0 0 20px !important; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; box-shadow: 0 10px 24px -18px rgba(0,0,0,.4); border-left: 6px solid var(--rose) !important; font-weight: 700; }
.woocommerce-error { border-left-color: #d1436d !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }

/* forms (classic checkout, account) */
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { font-weight: 800; font-size: 15px; margin-bottom: 6px; display: block; }
.woocommerce form .form-row .required { color: var(--rose); text-decoration: none; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce textarea, .select2-container .select2-selection--single { width: 100%; min-height: 52px; background: #fff; border: 2px solid var(--line); border-radius: 16px; padding: 12px 16px; font-weight: 700; color: var(--plum); outline: 0; }
.woocommerce form .input-text:focus, .woocommerce textarea:focus { border-color: var(--plum); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 50px; }

/* classic cart */
.cb-page--shop .woocommerce { display: grid; gap: 24px; }
.woocommerce-cart-form, .cart-collaterals .cart_totals, form.checkout #customer_details, #order_review { background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 32px; padding: 22px; }
table.shop_table { width: 100%; border-collapse: collapse; border: 0; }
table.shop_table th { text-align: left; padding: 10px 8px; border-bottom: 2px dashed var(--line); font-family: var(--head); }
table.shop_table td { padding: 12px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.shop_table .product-thumbnail img { width: 70px; border-radius: 14px; }
table.shop_table a.remove { width: 30px; height: 30px; border-radius: 50%; background: #fde3ea; color: #d1436d !important; display: grid; place-items: center; font-weight: 900; }
.cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
.wc-proceed-to-checkout .checkout-button { width: 100%; padding: 18px !important; font-size: 18px !important; }
form.checkout { display: grid; gap: 24px; }
@media (min-width: 1000px) {
	form.checkout { grid-template-columns: 1.3fr 1fr; column-gap: 30px; align-items: start; }
	form.checkout #customer_details { grid-row: 1 / span 3; }
	form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; }
}
form.checkout #customer_details .col-1, form.checkout #customer_details .col-2 { width: 100%; float: none; }
#payment { background: transparent !important; }
#payment ul.payment_methods { list-style: none; padding: 0; border: 0; }
#payment ul.payment_methods li { background: #fff; border-radius: 16px; padding: 14px; margin-bottom: 8px; }
#payment div.payment_box { background: var(--blush) !important; border-radius: 12px; }
#payment div.payment_box::before { display: none; }
#payment #place_order { width: 100%; min-height: 58px; font-size: 18px !important; float: none; }

/* block cart / checkout */
.wc-block-components-sidebar-layout .wc-block-components-main { background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 32px; padding: 24px !important; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { background: #fff; border: 2px solid var(--line); border-radius: 32px; padding: 20px !important; }
.wc-block-components-title, .wc-block-components-checkout-step__title { font-family: var(--head) !important; font-weight: 800 !important; color: var(--plum) !important; }
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-combobox .wc-block-components-combobox-control input { border: 2px solid var(--line) !important; border-radius: 16px !important; background: #fff !important; font-weight: 700 !important; }
.wc-block-components-text-input input:focus { border-color: var(--plum) !important; box-shadow: none !important; }
.wc-block-components-checkout-place-order-button, .wc-block-cart__submit-button { width: 100%; min-height: 58px; font-size: 18px !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--plum) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--plum) !important; }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: 14px; }
.wc-block-components-product-name { font-weight: 800; color: var(--plum) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--head); font-size: 22px; }

/* thank you + account */
.woocommerce-order { background: rgba(255,250,252,.97); border-radius: 32px; padding: 26px; }
.woocommerce-thankyou-order-received { font: 800 28px var(--head); text-align: center; color: var(--rose); }
.woocommerce-account .woocommerce { display: grid; gap: 24px; }
@media (min-width: 900px) { .woocommerce-account .woocommerce { grid-template-columns: 240px 1fr; } }
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 8px; margin: 0; background: #fff; border-radius: 26px; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 10px 14px; border-radius: 16px; font-weight: 800; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--plum); color: #fff; }
.woocommerce-MyAccount-content { background: #fff; border-radius: 26px; padding: 22px; }

/* ==========================================================
   Responsive
   ========================================================== */
@media (max-width: 1100px) {
	.cb-grid, .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cb-bab { grid-template-columns: 1fr; }
	.cb-moments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.cb-hero__in, .cb-big, .cb-co, .cb-woo--product div.product { grid-template-columns: 1fr; }
	.cb-hero__copy { text-align: center; }
	.cb-lead { margin-left: auto; margin-right: auto; }
	.cb-ctas, .cb-trustrow { justify-content: center; }
	.cb-stage { height: 440px; max-width: 560px; width: 100%; margin: 0 auto; }
	.cb-promo__in { grid-template-columns: 1fr; text-align: center; padding: 20px; border-radius: 32px; gap: 14px; }
	.cb-promo__badge { left: auto; right: 18px; top: 18px; }
	.cb-timer { justify-content: center; }
	.cb-side { position: static; }
	.cb-woo--product .woocommerce-product-gallery { position: relative; top: 0; }
	.cb-how { grid-template-columns: repeat(2, 1fr); }
	.cb-gal { grid-template-columns: repeat(3, 1fr); }
	.cb-fg { grid-template-columns: 1fr 1fr; }
	.cb-big { text-align: center; }
	.cb-occ { justify-content: center; }
	.cb-footer { padding-bottom: 120px; }
	.cb-mnav { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 10px; right: 10px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; background: #fff; border-radius: 26px; padding: 8px 6px; box-shadow: 0 12px 30px -10px rgba(74,36,25,.45); }
	.cb-mnav a { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12px; font-weight: 800; color: var(--muted); }
	.cb-mnav a.is-on { color: var(--rose); }
	.cb-mnav .cb-count { top: -4px; right: calc(50% - 24px); }
	.cb-mnav__wa { margin-top: -30px; }
	.cb-mnav__wa i { width: 58px; height: 58px; border-radius: 50%; background: var(--wa); color: #fff; display: grid; place-items: center; border: 4px solid #fff; box-shadow: 0 8px 16px -6px rgba(0,0,0,.35); }
	.cb-mnav__wa i svg { width: 26px; height: 26px; }
}
@media (max-width: 700px) {
	body { font-size: 16px; }
	.cb-wrap { padding: 0 14px; }
	.cb-top { font-size: 12.5px; }
	.cb-hero { padding: 34px 0 40px; }
	.cb-corner { width: 130px; }
	.cb-stage { height: 360px; }
	.cb-stage__main { inset: 30px 0 26px 0; border-radius: 32px; }
	.cb-stage__bow { width: 100px; margin-left: -50px; top: 6px; }
	.cb-polaroid { width: 130px; padding: 6px 6px 24px; left: -6px; bottom: -14px; }
	.cb-polaroid span { font-size: 17px; }
	.cb-bigcloud { width: 118px; height: 76px; font-size: 19px; right: -6px; bottom: -10px; }
	.cb-promo__img { height: 150px; }
	.cb-promo h3 { font-size: 28px; }
	.cb-promo__badge { width: 70px; height: 70px; font-size: 18px; }
	.cb-timer div { width: 60px; }
	.cb-sec { padding: 56px 0; }
	.cb-sec--tight { padding-top: 10px; }
	.cb-pill { font-size: 22px; padding: 8px 24px; }
	.cb-hand { font-size: 26px; }
	.cb-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.cb-card { padding: 8px; border-radius: 26px; }
	.cb-card__ph { border-radius: 20px; }
	.cb-num { width: 42px; height: 42px; font-size: 16px; }
	.cb-rib { font-size: 11px; padding: 4px 12px 4px 10px; }
	.cb-card__t { font-size: 16px; margin: 10px 4px 0; }
	.cb-card__d { font-size: 12.5px; margin: 0 4px 6px; }
	.cb-cloud { width: 88px; height: 54px; font-size: 15px; }
	.cb-was { font-size: 12px; margin-left: 4px; }
	.cb-save { font-size: 10px; padding: 3px 7px; }
	.cb-add { width: 38px; height: 38px; font-size: 20px !important; }
	.cb-card--cta h3 { font-size: 20px; }
	.cb-card--cta .cb-btn { padding: 12px 14px; font-size: 14px !important; }
	.cb-moments { gap: 12px; }
	.cb-mo { border-radius: 22px; }
	.cb-mo__img { height: 110px; }
	.cb-mo__ic { width: 40px; height: 40px; font-size: 18px; top: -26px; right: 10px; }
	.cb-mo__b { padding: 4px 10px 12px; }
	.cb-mo b { font-size: 16px; }
	.cb-mo__d { font-size: 12px; margin-bottom: 8px; }
	.cb-mo__p { font-size: 11px; padding: 4px 9px; }
	.cb-note-strip { flex-direction: column; text-align: center; border-radius: 28px; }
	.cb-bab { padding: 24px 14px; border-radius: 32px; }
	.cb-bab__r { grid-template-columns: 1fr; }
	.cb-shapes { gap: 6px; }
	.cb-shp { font-size: 12px; padding: 8px 4px; }
	.cb-shp svg { width: 32px; height: 30px; }
	.cb-flav { grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.cb-stack { height: 320px; }
	.cb-stack .a { width: 210px; }
	.cb-stack .b { width: 160px; }
	.cb-panel { padding: 22px 16px; border-radius: 28px; }
	.cb-row2 { grid-template-columns: 1fr; }
	.cb-pick { grid-template-columns: repeat(2, 1fr); }
	.cb-entry--text { padding: 22px; }
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--line); }
	table.shop_table_responsive tr td { display: flex; justify-content: space-between; border: 0; padding: 4px 0; }
	table.shop_table_responsive tr td::before { content: attr(data-title); font-weight: 800; }
	.cb-toast { top: 90px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- logo only ---------- */
.cb-logo img { width: 80px; height: 80px; }
@media (max-width: 1020px) { .cb-logo img { width: 60px; height: 60px; } }

/* ---------- melting chocolate corners ---------- */
.cb-corner { width: 260px; overflow: visible; }
.cb-drip { transform-box: fill-box; transform-origin: 50% 0; animation: cb-melt 5s ease-in-out infinite alternate; }

@keyframes cb-melt { 0% { transform: scaleY(.55); } 60% { transform: scaleY(1.12); } 100% { transform: scaleY(.9); } }
@keyframes cb-fall { 0% { transform: translateY(-14px) scale(.4); opacity: 0; } 15% { opacity: 1; transform: translateY(0) scale(1); } 70% { opacity: 1; } 100% { transform: translateY(70px) scale(.8, 1.2); opacity: 0; } }
@media (max-width: 700px) { .cb-corner { width: 150px; } }

/* ---------- box card "from" ---------- */
.cb-was--from { text-decoration: none; color: var(--rose); font-family: var(--hand); font-size: 18px; }

/* ---------- custom order bar ---------- */
.cb-custombar { margin-top: -20px; margin-bottom: 30px; }
.cb-custombar__in { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; background: linear-gradient(120deg, #fff 0%, var(--blush) 55%, var(--lav) 100%); border: 2px dashed var(--pink2); border-radius: 999px; padding: 16px 22px 16px 16px; box-shadow: 0 20px 40px -30px rgba(74,36,25,.5); }
.cb-custombar__pics { display: flex; }
.cb-custombar__pics img { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; border: 5px solid #fff; box-shadow: 0 8px 18px -10px rgba(0,0,0,.4); }
.cb-custombar__pics img + img { margin-left: -26px; transform: rotate(8deg); }
.cb-custombar__txt .cb-hand { font-size: 22px; }
.cb-custombar__txt h3 { font-size: 28px; margin: 0 0 2px; }
.cb-custombar__txt p { margin: 0; color: var(--muted); }
@media (max-width: 900px) {
	.cb-custombar { margin-top: 0; }
	.cb-custombar__in { grid-template-columns: 1fr; text-align: center; justify-items: center; border-radius: 34px; padding: 22px 18px; gap: 12px; }
	.cb-custombar__txt h3 { font-size: 24px; }
}

.cb-drip { animation-duration: 6s; }
@keyframes cb-melt { 0% { transform: scaleY(.7); } 55% { transform: scaleY(1.08); } 100% { transform: scaleY(.95); } }


/* ---------- v2.2 polish ---------- */
.cb-hd { height: auto; padding: 12px 0; }
.cb-logo img { width: 64px; height: 64px; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--pink2); }
@media (max-width: 1020px) { .cb-hd { padding: 10px 0; } .cb-logo img { width: 54px; height: 54px; } }
.cb-corner { width: 280px; }
@media (max-width: 700px) { .cb-corner { width: 160px; } }
.cb-footer__logo { width: 96px; height: 96px; border-radius: 50%; box-shadow: 0 0 0 4px var(--pink), 0 10px 24px -10px rgba(0,0,0,.5); margin-bottom: 14px; }
.cb-note-strip__ic { background: linear-gradient(135deg, var(--plum), var(--plum2)); box-shadow: 0 8px 18px -8px var(--plum); }
.cb-add svg { display: block; }
.cb-add:hover { transform: scale(1.08) !important; }
.add_to_cart_button.cb-add:hover { transform: rotate(90deg) scale(1.05) !important; }

.cb-note-strip .cb-note-strip__ic { color: #fff; }
.cb-note-strip__ic svg { width: 30px; height: 30px; }


/* ---------- v2.3: deeper buttons with icons ---------- */
.cb-btn--pink { --bg: #c8467a; }
.cb-btn--wa { --bg: #1ea952; }
.cb-btn--plum { --bg: #6d2441; }
.cb-btn { box-shadow: 0 12px 24px -12px var(--bg), inset 0 -3px 0 rgba(0,0,0,.14); }
.cb-btn:hover { filter: brightness(1.08); }
.cb-btn--line { box-shadow: inset 0 0 0 2px var(--plum); }
.cb-btn svg { flex: none; }
.cb-code svg { margin-right: 2px; }
/* icons on WooCommerce buttons */
.single_add_to_cart_button::before, .checkout-button::before, #place_order::before, .woocommerce-mini-cart__buttons .checkout::before, .woocommerce-mini-cart__buttons .button:not(.checkout)::before, .wc-block-cart__submit-button::before, .wc-block-components-checkout-place-order-button::before {
	content: ""; width: 20px; height: 20px; flex: none; background: currentColor;
	-webkit-mask: var(--ico) center/contain no-repeat; mask: var(--ico) center/contain no-repeat;
}
.single_add_to_cart_button, .woocommerce-mini-cart__buttons .button:not(.checkout) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l-1 13H7L6 7z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E"); }
.checkout-button, #place_order, .woocommerce-mini-cart__buttons .checkout, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='10' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"); }

/* ---------- save tag as % ---------- */
.cb-save { background: #c8467a; letter-spacing: .02em; }

/* ---------- build a box v2 layout ---------- */
.cb-bab__r { grid-template-columns: 1fr; gap: 22px; }
.cb-boxstage { display: flex; flex-direction: column; align-items: center; gap: 14px; background: radial-gradient(circle at 50% 40%, #fff 0, rgba(255,255,255,0) 70%); padding-top: 10px; }
.cb-boxview { width: min(100%, 360px); margin-top: 24px; }
.cb-slots, .cb-slots--12 { grid-template-columns: repeat(3, 1fr); }
.cb-slot.is-empty { background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.55) 0 36%, rgba(255,255,255,.25) 37%); }
.cb-boxtag { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 2px dashed var(--pink2); border-radius: 999px; padding: 6px 16px; font: 24px var(--hand); color: var(--plum); transform: rotate(-3deg); box-shadow: 0 8px 16px -12px rgba(0,0,0,.4); max-width: 100%; }
.cb-boxtag span { color: var(--rose); }
.cb-boxtag b { font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-boxtag[hidden] { display: none; }
.cb-boxmeta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.cb-boxmeta span { background: #fff; border-radius: 999px; padding: 5px 14px; font-weight: 800; font-size: 14px; box-shadow: 0 6px 14px -10px rgba(0,0,0,.35); }
.cb-boxmeta span:last-child { background: var(--plum); color: #fff; }
.cb-picks ul { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; }
.cb-picks__empty { grid-column: 1 / -1; }
.cb-picks .cb-ptotal { padding-top: 6px; }
@media (max-width: 700px) { .cb-picks ul { grid-template-columns: 1fr; } .cb-boxview { width: min(100%, 300px); } }

/* ---------- build a box v2.4: options + picks left, sticky box right ---------- */
.cb-bab { grid-template-columns: 1.1fr .9fr; align-items: start; }
.cb-bab__l .cb-picks { margin-top: 22px; }
.cb-bab__r { position: sticky; top: 120px; }
.cb-boxview { width: min(100%, 380px); }
@media (max-width: 1100px) {
	.cb-bab { grid-template-columns: 1fr; }
	.cb-bab__r { position: static; order: -1; }
}

/* ---------- v2.4: full-width drip band ---------- */
.cb-corner { display: none; }
.cb-dripband { position: absolute; top: 0; left: 0; width: 100%; height: 120px; z-index: 1; pointer-events: none; }
.cb-hero { padding-top: 110px; }
@media (max-width: 700px) { .cb-dripband { height: 80px; } .cb-hero { padding-top: 80px; } }

/* ---------- footer wave ---------- */
.cb-footer__drip { height: 50px; fill: #fbe1ec; }

/* ---------- gift moment cards: buttons aligned at the bottom ---------- */
.cb-moments { align-items: stretch; }
.cb-mo { display: flex; flex-direction: column; height: 100%; }
.cb-mo__b { display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.cb-mo__p { margin-top: auto; }

/* ---------- timer secs ---------- */
.cb-timer b[data-s] { color: var(--rose); }

.cb-note-strip .cb-btn span, .cb-note-strip .cb-btn { color: #fff !important; font-size: 16px; }


/* v2.4.2: tighter hero, drips run behind the content */
.cb-hero { padding-top: 46px; }
.cb-dripband { z-index: 0; height: 130px; }
.cb-hero__in { z-index: 2; }
@media (max-width: 700px) { .cb-hero { padding-top: 34px; } .cb-dripband { height: 90px; } }


/* ---------- v2.5: top bar marquee ---------- */
.cb-top { overflow: hidden; white-space: nowrap; padding: 8px 0; }
.cb-top__track { display: inline-flex; align-items: center; gap: 22px; animation: cb-marquee 40s linear infinite; padding-left: 22px; }
.cb-top__track i { font-style: normal; color: var(--pink); }
.cb-top:hover .cb-top__track { animation-play-state: paused; }
@keyframes cb-marquee { to { transform: translateX(-50%); } }

/* ---------- dark cart icon ---------- */
.cb-bag { background: var(--plum); color: #fff; box-shadow: 0 8px 18px -10px var(--plum); }
.cb-bag:hover { background: #561a33; }
.cb-bag .cb-count { background: var(--pink); color: var(--plum); border-color: #fff; }

/* ---------- countdown: even boxes with colons ---------- */
.cb-timer { display: inline-flex; align-items: center; gap: 6px; }
.cb-timer .cb-tu { width: 66px; height: 70px; padding: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; background: #fff; border-radius: 16px; box-shadow: inset 0 -4px 0 rgba(109,36,65,.12); }
.cb-timer .cb-tu b { font: 800 28px/1 var(--head); color: var(--plum); font-variant-numeric: tabular-nums; }
.cb-timer .cb-tu small { font: 800 10.5px/1 var(--body); color: var(--rose); text-transform: uppercase; letter-spacing: .08em; }
.cb-timer .cb-tu:last-child b { color: #c8467a; }
.cb-tc { font: 800 26px/1 var(--head); color: var(--pink); margin-top: -14px; animation: cb-blink 1s steps(2) infinite; }
@keyframes cb-blink { 50% { opacity: .25; } }
@media (max-width: 700px) { .cb-timer .cb-tu { width: 58px; height: 62px; } .cb-timer .cb-tu b { font-size: 24px; } }

/* v2.6: glossy chocolate drips */
.cb-dripband { height: 200px; z-index: 0; }
@media (max-width: 700px) { .cb-dripband { height: 120px; } }


.cb-dripband { height: auto; aspect-ratio: 1440 / 200; }
@media (max-width: 700px) { .cb-dripband { height: 110px; aspect-ratio: auto; } }


/* ==========================================================
   v2.8: shop cards, product page, cart, checkout, upload
   ========================================================== */
/* shop cards: same padding as homepage cards (WooCommerce layout CSS was removing it) */
.woocommerce ul.products li.cb-card, .woocommerce-page ul.products li.cb-card { padding: 12px !important; margin: 0 !important; width: auto !important; float: none !important; display: flex !important; flex-direction: column; }
.cb-card__d { min-height: 2.9em; }
.cb-card__ft { margin-top: auto; }
@media (max-width: 700px) { .woocommerce ul.products li.cb-card { padding: 8px !important; } }

/* quantity box: keep the number field small */
.woocommerce .quantity .qty, .woocommerce-page .quantity .qty, .quantity input.qty { width: 54px !important; min-width: 0 !important; min-height: 50px; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; border-radius: 0 !important; text-align: center; font: 900 18px var(--body) !important; }

/* single product page */
.cb-woo--product { padding-top: 30px; }
.cb-woo--product div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; }
.cb-woo--product .woocommerce-product-gallery { position: relative !important; top: auto !important; }
.cb-woo--product .woocommerce-product-gallery__image img { border-radius: 36px; border: 10px solid #fff; }
.cb-woo--product span.onsale { top: 22px; left: 22px; }
.cb-woo--product .summary { background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 36px; padding: 32px 32px 26px; box-shadow: 0 24px 50px -36px rgba(74,36,25,.5); }
.cb-woo--product .product_title { font-size: clamp(30px, 4vw, 42px); margin: 0 0 12px; }
.cb-woo--product .summary .price { display: flex !important; flex-direction: row; align-items: center; gap: 16px; margin: 0 0 14px !important; }
.cb-woo--product .summary .price .cb-pr { flex-direction: row-reverse; align-items: center; gap: 12px; }
.cb-woo--product .summary .price .cb-was { font-size: 18px; margin: 0; }
.cb-woo--product .summary .price .cb-cloud { width: 140px; height: 84px; font-size: 26px; }
.cb-woo--product .summary .price .cb-save { font-size: 14px; padding: 6px 14px; }
.cb-woo--product .woocommerce-product-details__short-description { font-size: 17px; color: var(--muted); border-top: 2px dashed var(--line); padding-top: 14px; }
.cb-woo--product form.cart { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 12px; margin: 18px 0 12px; }
.cb-woo--product form.cart .quantity { flex: none; }
.cb-woo--product form.cart .single_add_to_cart_button { flex: 1; }
.cb-pinfo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 18px; }
.cb-pinfo div { background: var(--blush); border-radius: 18px; padding: 12px; }
.cb-pinfo b { display: flex; align-items: center; gap: 6px; font: 800 15px var(--head); margin-bottom: 2px; }
.cb-pinfo b svg { width: 18px; height: 18px; color: #c8467a; }
.cb-pinfo span { font-size: 13px; color: var(--muted); line-height: 1.35; display: block; }
.cb-woo--product .cb-trust { display: none; }
.cb-woo--product .woocommerce-tabs { margin-top: 10px; padding: 26px 30px; }
.cb-woo--product .woocommerce-tabs .panel { font-size: 17px; color: var(--plum); }
.cb-woo--product .woocommerce-tabs .panel h2 { font-size: 24px; }
.cb-woo--product .related.products > h2 { margin-top: 30px; }
@media (max-width: 900px) {
	.cb-woo--product div.product { grid-template-columns: 1fr; gap: 24px; }
	.cb-woo--product .summary { padding: 22px 18px; }
	.cb-pinfo { grid-template-columns: 1fr; }
}

/* cart: two columns */
.cb-cart-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.cb-cart-grid > .woocommerce-notices-wrapper, .cb-cart-grid > .woocommerce-message, .cb-cart-grid > .woocommerce-info, .cb-cart-grid > .woocommerce-error { grid-column: 1 / -1; }
.cb-cart-grid .cart-collaterals { position: sticky; top: 120px; }
.cb-cart-grid .cart_totals { background: #fff !important; }
.cb-cart-grid .cart_totals h2 { font-size: 26px; }
.cb-cart-grid .cart_totals table th { width: 40%; }
.cb-cart-grid .cart_totals .order-total td, .cb-cart-grid .cart_totals .order-total th { font: 800 22px var(--head); border-bottom: 0; }
table.shop_table td.actions .coupon .input-text { width: 190px !important; min-width: 150px; flex: 1; }
table.shop_table .product-name a { font: 800 17px var(--head); }
@media (max-width: 1000px) { .cb-cart-grid { grid-template-columns: 1fr; } .cb-cart-grid .cart-collaterals { position: static; } }

/* checkout */
.woocommerce-checkout #billing_country_field, .woocommerce-checkout #shipping_country_field, #billing_postcode_field, #shipping_postcode_field, #billing_state_field, #shipping_state_field, .wc-block-components-address-form__postcode, .wc-block-components-address-form__state { display: none !important; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); column-gap: 30px; row-gap: 18px; align-items: start; }
form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; font-size: 24px; }
form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 120px; background: #fff; }
form.checkout #customer_details h3 { font-size: 24px; margin-bottom: 14px; }
form.checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
form.checkout .woocommerce-billing-fields__field-wrapper .form-row { width: 100% !important; margin-right: 0 !important; }
form.checkout #billing_address_1_field, form.checkout #billing_city_field, form.checkout #billing_phone_field, form.checkout #billing_email_field { grid-column: 1 / -1; }
form.checkout #billing_city_field { grid-column: auto; }
form.checkout #order_review table.shop_table { font-size: 15px; }
form.checkout #order_review .order-total th, form.checkout #order_review .order-total td { font: 800 22px var(--head); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: #fff !important; }
@media (max-width: 1000px) {
	form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
	form.checkout #customer_details, form.checkout #order_review_heading, form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
	form.checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* custom order: upload box */
.cb-drop { display: flex !important; flex-direction: column; align-items: center; gap: 4px; padding: 24px 18px; transition: border-color .2s, background .2s; }
.cb-drop:hover { border-color: #c8467a; background: #fde9f1; }
.cb-drop__ic { width: 52px; height: 52px; border-radius: 50%; background: #c8467a; color: #fff; display: grid; place-items: center; margin-bottom: 6px; box-shadow: 0 10px 20px -10px #c8467a; }
.cb-drop__ic svg { transform: rotate(-45deg); }
.cb-drop small { font-size: 14px; }
.cb-drop__prev { width: 120px; height: 120px; object-fit: cover; border-radius: 18px; border: 4px solid #fff; box-shadow: 0 10px 20px -10px rgba(0,0,0,.35); margin-top: 8px; position: relative; z-index: 2; pointer-events: none; }
.cb-drop__x { position: absolute; top: 10px; right: 10px; z-index: 3; width: 32px; height: 32px; border-radius: 50%; border: 0; background: #fde3ea; color: #d1436d; font: 900 18px/1 var(--body); cursor: pointer; }
.cb-drop.has-file { border-style: solid; border-color: #c8467a; }
.cb-drop.has-file .cb-drop__ic { background: #1ea952; }

form.checkout #billing_city_field { grid-column: 1 / -1 !important; }
form.checkout .woocommerce-additional-fields h3 { font-size: 22px; margin-top: 10px; }
#order_review .woocommerce-shipping-totals ul { list-style: none; padding: 0; margin: 0; }
.cart_totals .woocommerce-shipping-destination, .cart_totals .shipping-calculator-button { display: none; }
.cart_totals .woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; }


.cb-drop__prev[hidden], .cb-drop__x[hidden] { display: none !important; }
.cb-drop__ic svg { transform: none; }


/* ==========================================================
   v3.0: Shopify style side cart, cart and checkout
   ========================================================== */
/* side cart */
.cb-drawer .widget_shopping_cart_content { padding: 0; }
.cb-mc { list-style: none; margin: 0; padding: 16px 18px 6px; display: grid; gap: 12px; flex: 1; overflow-y: auto; }
.cb-mc__item { position: relative; display: grid; grid-template-columns: 78px 1fr; gap: 14px; align-items: center; padding: 12px 40px 12px 12px; background: #fff; border: 2px solid var(--line); border-radius: 22px; transition: opacity .2s; }
.cb-mc__item.is-busy { opacity: .55; pointer-events: none; }
.cb-mc__img img { width: 78px; height: 78px; object-fit: cover; border-radius: 16px; display: block; margin: 0; }
.cb-mc__name { display: block; font: 800 16px/1.2 var(--head); margin-bottom: 2px; }
.cb-mc__meta { font-size: 12px; color: var(--muted); line-height: 1.4; margin-bottom: 4px; }
.cb-mc__meta dl { margin: 0; }
.cb-mc__meta dt, .cb-mc__meta dd { display: inline; margin: 0; }
.cb-mc__meta dd p { display: inline; margin: 0; }
.cb-mc__meta dd::after { content: ""; display: block; }
.cb-mc__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
.cb-mc__qty { display: inline-flex; align-items: center; gap: 10px; background: var(--blush); border-radius: 999px; padding: 3px; font-weight: 900; }
.cb-mc__qty button { width: 28px; height: 28px; border-radius: 50%; border: 0; background: #fff; color: var(--plum); font: 900 16px/1 var(--body); cursor: pointer; display: grid; place-items: center; padding: 0; }
.cb-mc__qty button:hover { background: var(--plum); color: #fff; }
.cb-mc__price { font: 800 15px var(--head); }
.cb-mc__rm { position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; border-radius: 50%; background: #fde3ea; color: #d1436d !important; display: grid; place-items: center; font-weight: 900; line-height: 1; }
.cb-mc__foot { padding: 16px 18px 20px; border-top: 2px dashed var(--line); background: #fff; display: grid; gap: 10px; }
.cb-mc__sub { display: flex; justify-content: space-between; align-items: center; font: 800 20px var(--head); }
.cb-mc__note { margin: 0; font-size: 13px; color: var(--muted); }
.cb-mc__view { text-align: center; font-weight: 800; color: var(--plum); text-decoration: underline; font-size: 14px; }
.cb-mc__empty { margin: auto; text-align: center; padding: 40px 20px; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.cb-mc__empty-ic svg { width: 56px; height: 56px; color: var(--pink2); }
.cb-mc__empty b { font: 800 22px var(--head); }
.cb-mc__empty p { color: var(--muted); }
.cb-drawer .widget_shopping_cart_content { display: flex; flex-direction: column; overflow: hidden; }

/* cart page: no Update cart button, it updates by itself */
.woocommerce-cart-form button[name="update_cart"] { display: none !important; }
.woocommerce-cart-form.processing, .woocommerce-cart-form .blockUI.blockOverlay { opacity: .6; }

/* checkout: Shopify style */
.woocommerce-checkout .cb-top, .woocommerce-checkout .cb-nav, .woocommerce-checkout .cb-hd__wa, .woocommerce-checkout .cb-mnav, .woocommerce-checkout .cb-footer .cb-fg { display: none !important; }
.woocommerce-checkout .cb-hd { justify-content: center; }
.woocommerce-checkout .cb-burger { display: none !important; }
.woocommerce-checkout .cb-footer { padding: 60px 0 24px; }
.woocommerce-checkout .cb-pagehero--sm h1 { font-size: 34px; }
form.checkout.woocommerce-checkout { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 34px; }
form.checkout #customer_details { grid-column: 1; grid-row: 1; }
form.checkout .cb-co-pay { grid-column: 1; grid-row: 2; background: rgba(255,250,252,.97); border: 2px solid var(--line); border-radius: 32px; padding: 22px; }
form.checkout #order_review_heading { grid-column: 2; grid-row: 1; align-self: start; display: none; }
form.checkout #order_review { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 110px; background: #fff7fa; border: 2px solid var(--line); border-radius: 32px; padding: 22px; }
form.checkout #order_review::before { content: "Order summary"; display: block; font: 800 22px var(--head); color: var(--plum); margin-bottom: 10px; }
.woocommerce-billing-fields > h3, .woocommerce-additional-fields > h3 { display: none; }
.cb-co-h { display: flex; align-items: center; gap: 10px; font: 800 21px var(--head) !important; margin: 0 0 14px !important; }
.cb-co-h span { width: 30px; height: 30px; border-radius: 50%; background: var(--plum); color: #fff; display: grid; place-items: center; font: 800 14px var(--head); }
.woocommerce-additional-fields { margin-top: 18px; }
#order_review table.shop_table thead { display: none; }
#order_review table.shop_table td, #order_review table.shop_table th { border: 0; padding: 8px 0; vertical-align: middle; }
#order_review table.shop_table tr.cart_item td { padding: 10px 0; }
#order_review table.shop_table .product-total { text-align: right; font-weight: 800; }
#order_review table.shop_table tfoot th { font-weight: 700; color: var(--muted); font-family: var(--body); }
#order_review table.shop_table tfoot td { text-align: right; font-weight: 800; }
#order_review table.shop_table tfoot tr.order-total th, #order_review table.shop_table tfoot tr.order-total td { padding-top: 14px; border-top: 2px dashed var(--line); font: 800 22px var(--head) !important; color: var(--plum); }
#order_review .woocommerce-shipping-methods { text-align: right; }
.cb-oi { display: flex; align-items: center; gap: 14px; }
.cb-oi__img { position: relative; flex: none; }
.cb-oi__img img { width: 62px; height: 62px; object-fit: cover; border-radius: 14px; border: 2px solid #fff; box-shadow: 0 6px 14px -8px rgba(0,0,0,.35); display: block; }
.cb-oi__img em { position: absolute; top: -8px; right: -8px; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; background: var(--plum); color: #fff; font: 800 12px/24px var(--body); text-align: center; font-style: normal; border: 2px solid #fff; }
.cb-oi__name { font: 800 15px/1.25 var(--head); }
.cb-oi__name dl, .cb-oi__name .variation { font: 600 12px var(--body); color: var(--muted); margin: 2px 0 0; }
.cb-co-pay #payment { margin: 0; }
.cb-co-pay #payment ul.payment_methods li { border: 2px solid var(--plum); }
.cb-co-pay #payment .place-order { padding: 0; margin-top: 12px; }
#place_order { display: flex !important; align-items: center; justify-content: center; gap: 10px; }
#place_order svg { width: 20px; height: 20px; }
.woocommerce-checkout #place_order::before { display: none; }
@media (max-width: 1000px) {
	form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
	form.checkout #order_review { grid-column: 1; grid-row: 1; position: static; }
	form.checkout #customer_details { grid-row: 2; }
	form.checkout .cb-co-pay { grid-row: 3; }
}

.cb-drawer .cb-mc { padding: 16px 18px 6px; flex: 1; overflow-y: auto; align-content: start; }
.woocommerce-checkout .cb-hd { justify-content: space-between; }

