.meditek-gift-progress {
	--meditek-green: #2f6b4f;
	--meditek-teal: #258b82;
	--meditek-ink: #1d2c30;
	--meditek-muted: #687976;
	--meditek-border: #d8e5e1;
	box-sizing: border-box;
	width: 100%;
	max-width: 920px;
	margin: 14px auto;
	padding: 15px 17px;
	border: 1px solid var(--meditek-border);
	border-radius: 15px;
	background: linear-gradient(145deg,#fbfdfc,#f1f7f5);
	color: var(--meditek-ink);
	font-family: inherit;
	font-size: 14px;
	line-height: 1.35;
	box-shadow: 0 5px 16px rgba(29,64,56,.05);
}
.meditek-gift-progress *, .meditek-gift-progress *::before, .meditek-gift-progress *::after { box-sizing:border-box; }
.woocommerce .meditek-gift-progress { width:100%; max-width:920px; padding:15px 17px; border-radius:15px; font-size:14px; line-height:1.35; }

body.single-product .woocommerce div.product form.cart .single_variation_wrap { display:flex; width:100%; flex-direction:column; align-items:stretch; }
body.single-product .woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation-add-to-cart { display:flex; width:100%; flex-flow:row wrap; align-items:center; }
body.single-product .woocommerce div.product form.cart .single_variation_wrap > section.meditek-gift-progress { flex:0 0 auto; align-self:center; width:100%; max-width:920px; min-width:0; margin:0 auto 16px; }

.woocommerce .meditek-gift-progress h3.meditek-gift-heading { margin:0; color:#247d76; font-size:19px; font-weight:700; line-height:1.25; }
.meditek-gift-progress-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 15px; }
.meditek-gift-count { flex:0 0 auto; padding:5px 10px; border-radius:999px; background:#e5f2ef; color:var(--meditek-green); font-size:12px; font-weight:700; line-height:1.3; }

.meditek-gift-roadmap { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; gap:8px; margin:0; }
.meditek-gift-milestone { position:relative; display:flex; min-width:0; flex-direction:column; align-items:stretch; color:#7c8986; text-align:center; }
.meditek-gift-milestone::after { position:absolute; top:30px; left:50%; width:1px; height:7px; transform:translateX(-50%); background:#cbd8d3; content:""; }
.meditek-gift-milestone-label { display:flex; height:30px; min-height:30px; align-items:center; justify-content:center; padding:4px 5px; border:1px solid #dce7e4; border-radius:8px; background:#fff; font-size:11px; font-weight:650; line-height:1.15; white-space:nowrap; }
.meditek-gift-milestone-dot { position:absolute; z-index:3; top:37px; right:auto; left:50%; display:block; width:14px; height:14px; transform:translateX(-50%); border:2px solid #cbd8d3; border-radius:50%; background:#fff; }
.meditek-gift-milestone.is-unlocked .meditek-gift-milestone-label { border-color:#a9d8cd; background:#e8f5f1; color:var(--meditek-green); }
.meditek-gift-milestone.is-unlocked .meditek-gift-milestone-dot { border-color:var(--meditek-green); background:var(--meditek-green); }

.meditek-gift-progress-track { position:relative; height:8px; margin:10px 0 8px; overflow:visible; border:1px solid #d4e1dd; border-radius:999px; background:#e7eeeb; }
.meditek-gift-progress-fill { position:absolute; inset:0 auto 0 0; z-index:1; width:0; border-radius:inherit; background:linear-gradient(90deg,#2f6b4f,#258b82); transition:width .35s ease; }
.meditek-gift-progress-preview { position:absolute; inset:0 auto 0 0; z-index:2; width:0; border-radius:inherit; background:repeating-linear-gradient(135deg,#72b7a8 0 6px,#d9eee8 6px 12px); transition:width .35s ease,left .35s ease; }
.meditek-gift-progress-cursor { position:absolute; z-index:4; top:50%; display:block; width:18px; height:18px; transform:translate(-50%,-50%); border:3px solid #2f6b4f; border-radius:50%; background:#f8fbf9; box-shadow:0 1px 4px rgba(29,64,56,.18); transition:left .35s ease; }
.meditek-gift-thresholds { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 14px; text-align:center; }
.meditek-gift-threshold { display:flex; min-width:0; flex-direction:column; align-items:center; gap:2px; color:#788681; }
.meditek-gift-threshold strong { color:var(--meditek-ink); font-size:13px; font-weight:700; line-height:1.2; }
.meditek-gift-threshold small { font-size:10px; line-height:1.2; }
.meditek-gift-threshold.is-unlocked small { color:var(--meditek-green); font-weight:650; }

.meditek-gift-rewards-wrap { position:relative; padding:0 30px; }
.woocommerce .meditek-gift-progress .meditek-gift-rewards { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 24px)/3); gap:12px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:#9eb8b0 transparent; padding:10px 2px 10px; }
.woocommerce .meditek-gift-progress .meditek-gift-rewards article.meditek-gift-reward { position:relative; display:flex; width:100%; min-width:0; max-width:none; min-height:0; flex-direction:column; overflow:visible; border:1px solid #d7e1de; border-radius:12px; background:#fff; color:var(--meditek-ink); transition:border-color .2s ease,box-shadow .2s ease; }
.meditek-gift-reward.is-unlocked { border-color:#78ae98; box-shadow:0 3px 10px rgba(47,107,79,.08); }
.meditek-gift-reward.is-locked { opacity:.78; }
.meditek-gift-offer-tag { position:absolute; z-index:3; top:-8px; left:50%; transform:translateX(-50%); padding:3px 12px; border:1px solid #276449; border-radius:999px; background:#2f6b4f; color:#fff; font-size:10px; font-weight:750; letter-spacing:.05em; line-height:1.25; white-space:nowrap; }
.meditek-gift-reward-image { display:flex; height:92px; flex:0 0 92px; align-items:center; justify-content:center; overflow:hidden; border-radius:11px 11px 0 0; background:#f5f1e8; }
.meditek-gift-reward-image img { display:block; width:100%; height:100%; object-fit:contain; }
.meditek-gift-reward-image > span[aria-hidden="true"] { font-size:38px; }
.meditek-gift-reward-status { display:block; align-self:flex-start; margin:8px 10px 0; padding:3px 8px; border-radius:999px; background:#edf2f0; color:#5c6966; font-size:10px; font-weight:700; line-height:1.25; }
.meditek-gift-reward.is-unlocked .meditek-gift-reward-status { background:#e7f3ed; color:var(--meditek-green); }
.woocommerce .meditek-gift-progress h4 { min-height:36px; margin:6px 10px 3px; color:var(--meditek-ink); font-size:13px; font-weight:700; line-height:1.3; }
.woocommerce .meditek-gift-progress .meditek-gift-reward p { margin:0 10px 10px; color:var(--meditek-muted); font-size:11px; line-height:1.3; }

.woocommerce .meditek-gift-progress button.meditek-gift-carousel-arrow { position:absolute; z-index:4; top:50%; display:flex; width:32px; min-width:32px; max-width:32px; height:32px; min-height:32px; align-items:center; justify-content:center; transform:translateY(-50%); margin:0; padding:0; border:1px solid #d2e2db; border-radius:50%; background:#2f6b4f; color:#fff; font-size:21px; font-weight:500; line-height:1; cursor:pointer; box-shadow:0 2px 7px rgba(47,107,79,.16); }
.meditek-gift-carousel-arrow.is-prev { left:0; }
.meditek-gift-carousel-arrow.is-next { right:0; }
.meditek-gift-carousel-arrow:disabled { opacity:.35; cursor:default; }
.woocommerce .meditek-gift-progress p.meditek-gift-progress-text { margin:8px 0 0; color:var(--meditek-ink); font-size:13px; font-weight:500; line-height:1.4; }
.woocommerce .meditek-gift-progress p.meditek-gift-carousel-hint { margin:3px 32px 0 0; color:#71817c; font-size:11px; line-height:1.3; text-align:right; }
.meditek-gift-carousel-hint span { color:var(--meditek-green); font-size:14px; font-weight:700; }

@media (min-width:701px) and (max-width:980px) {
	.woocommerce .meditek-gift-progress .meditek-gift-rewards { grid-auto-columns:calc((100% - 12px)/2); }
}
@media (max-width:700px) {
	.meditek-gift-progress { padding:13px 12px; border-radius:13px; }
	.woocommerce .meditek-gift-progress h3.meditek-gift-heading { font-size:17px; }
	.meditek-gift-roadmap { gap:5px; }
	.meditek-gift-milestone-label { height:32px; min-height:32px; padding:3px 2px; font-size:9px; }
	.meditek-gift-milestone::after { top:32px; height:8px; }
	.meditek-gift-milestone-dot { top:40px; right:auto; left:50%; width:12px; height:12px; transform:translateX(-50%); }
	.meditek-gift-thresholds { gap:4px; }
	.meditek-gift-threshold strong { font-size:11px; }
	.meditek-gift-threshold small { font-size:9px; }
	.meditek-gift-rewards-wrap { padding:0 24px; }
	.woocommerce .meditek-gift-progress .meditek-gift-rewards { grid-auto-columns:calc((100% - 12px)/3); gap:6px; }
	.meditek-gift-offer-tag { top:-7px; padding:2px 7px; font-size:8px; }
	.meditek-gift-reward-image { height:56px; flex-basis:56px; }
	.meditek-gift-reward-image > span[aria-hidden="true"] { font-size:25px; }
	.meditek-gift-reward-status { margin:5px 4px 0; padding:2px 4px; font-size:8px; }
	.woocommerce .meditek-gift-progress h4 { min-height:40px; margin:4px 4px 2px; font-size:9px; line-height:1.2; overflow-wrap:anywhere; }
	body.single-product .woocommerce div.product .meditek-gift-progress h4 { min-height:40px; margin:4px 4px 2px; font-size:9px; line-height:1.2; }
	.woocommerce .meditek-gift-progress .meditek-gift-reward p { margin:0 4px 6px; font-size:8px; overflow-wrap:anywhere; }
	.woocommerce .meditek-gift-progress button.meditek-gift-carousel-arrow { width:24px; min-width:24px; max-width:24px; height:24px; min-height:24px; font-size:17px; }
	.meditek-gift-rewards-wrap { padding:0 20px; }
	.woocommerce .meditek-gift-progress button.meditek-gift-carousel-arrow { display:none; }
	.woocommerce .meditek-gift-progress p.meditek-gift-carousel-hint { margin:4px 2px 0; font-size:10px; }
}

@media (max-width:380px) {
	.meditek-gift-heading { font-size:16px; }
	.meditek-gift-milestone-label { font-size:9px; }
	.meditek-gift-rewards-wrap { padding:0 22px; }
	.woocommerce .meditek-gift-progress .meditek-gift-rewards { grid-auto-columns:calc((100% - 10px)/3); gap:5px; }
}
