/* Vitalment Content Manager – homepage sections. Design only; all texts come from the admin panel. */

.vcm-home {
	--vm-teal: #03474b;
	--vm-teal-d: #02363a;
	--vm-mint: #d0ecde;
	--vm-mint-l: #eef6f2;
	--vm-beige: #f5efe6;
	--vm-ink: #143234;
	--vm-muted: #5f7b76;
	--vm-line: #dde8e3;
	--vm-sale: #a9543f;
	--vm-r: 18px;
	--vm-serif: "Cormorant Infant", Georgia, serif;
	--vm-sans: Mulish, Arial, sans-serif;
	font-family: var(--vm-sans);
	color: var(--vm-ink);
	width: 100%;
	box-sizing: border-box;
}
.vcm-home *, .vcm-home *::before, .vcm-home *::after { box-sizing: border-box; }
.vcm-home.vm-sec { padding: 88px 0; }
.vcm-home.vm-sec.vm-joined { padding-top: 0; }
.vcm-home .vm-wrap { max-width: 1240px; width: 100%; margin: 0 auto; padding: 0 24px; }

/* Typography */
.vcm-home .vm-eyebrow { font: 800 12px/1.2 var(--vm-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--vm-teal); margin: 0 0 14px; }
.vcm-home .vm-h1 { font: 700 58px/1.04 var(--vm-serif); color: var(--vm-teal); margin: 0 0 20px; letter-spacing: -.01em; padding: 0; }
.vcm-home .vm-h2 { font: 700 46px/1.08 var(--vm-serif); color: var(--vm-teal); margin: 0 0 12px; padding: 0; }
.vcm-home .vm-lead, .vcm-home .vm-lead p { font: 400 17px/1.65 var(--vm-sans); color: var(--vm-muted); margin: 0; max-width: 620px; }
.vcm-home .vm-lead p + p { margin-top: .8em; }

/* Buttons & links */
.vcm-home .vm-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.vcm-home .vm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border-radius: 999px; font: 800 15px/1 var(--vm-sans); border: 2px solid var(--vm-teal); background: var(--vm-teal); color: #fff; text-decoration: none; transition: background .2s, color .2s, border-color .2s; white-space: nowrap; }
.vcm-home .vm-btn:hover, .vcm-home .vm-btn:focus-visible { background: var(--vm-teal-d); border-color: var(--vm-teal-d); color: #fff; }
.vcm-home .vm-btn--ghost { background: transparent; color: var(--vm-teal); }
.vcm-home .vm-btn--ghost:hover { background: var(--vm-teal); color: #fff; }
.vcm-home .vm-btn--light { background: #fff; border-color: #fff; color: var(--vm-teal); }
.vcm-home .vm-btn--light:hover { background: var(--vm-mint); border-color: var(--vm-mint); color: var(--vm-teal); }
.vcm-home .vm-btn--outline-light { background: transparent; border-color: rgba(255,255,255,.55); color: #fff; }
.vcm-home .vm-btn--outline-light:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }
.vcm-home .vm-link { display: inline-block; padding: 0 0 6px; border-bottom: 2px solid var(--vm-mint); font: 800 14px/1 var(--vm-sans); color: var(--vm-teal); text-decoration: none; white-space: nowrap; }
.vcm-home .vm-link:hover { border-color: var(--vm-teal); color: var(--vm-teal); }
.vcm-home .vm-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.vcm-home .vm-ico { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; }

/* HERO */
.vcm-home.vm-hero { background: linear-gradient(120deg, #eaf4ef 0%, #f5efe6 100%); padding: 60px 0 68px; }
.vcm-home .vm-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.vcm-home .vm-hero-grid.is-text-only { grid-template-columns: 1fr; }
.vcm-home .vm-hero-grid .vm-btns { margin-top: 30px; }
.vcm-home .vm-hero-visual { position: relative; display: grid; grid-template-columns: 1fr 1.15fr 1fr; align-items: center; padding: 40px 0; }
.vcm-home .vm-hero-visual::before { content: ""; position: absolute; left: 4%; right: 4%; top: 0; bottom: 0; border-radius: 50%; background: radial-gradient(circle, #d3eadf 0%, rgba(211,234,223,.45) 55%, rgba(211,234,223,0) 71%); }
.vcm-home .vm-hero-visual--1, .vcm-home .vm-hero-visual--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 460px; margin-left: auto; gap: 18px; }
.vcm-home .vm-hero-visual--1 { grid-template-columns: minmax(0, 1fr); max-width: 320px; }
.vcm-home .vm-hero-img { position: relative; z-index: 1; }
.vcm-home .vm-frame { position: relative; padding-bottom: 133.33%; border-radius: 22px; overflow: hidden; background: #fff; border: 6px solid #fff; box-shadow: 0 26px 50px -26px rgba(3,71,75,.5); }
.vcm-home .vm-frame img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; margin: 0; }
.vcm-home .vm-hero-visual--3 > .vm-hero-img:nth-child(1) { transform: translate(14%, 6%) scale(1.02); }
.vcm-home .vm-hero-visual--3 > .vm-hero-img:nth-child(2) { z-index: 2; transform: scale(1.22); }
.vcm-home .vm-hero-visual--3 > .vm-hero-img:nth-child(3) { transform: translate(-14%, -6%) scale(1.02); }

/* USP */
.vcm-home.vm-usp { background: var(--vm-teal); padding: 0; }
.vcm-home .vm-usp-grid { display: flex; }
.vcm-home .vm-usp-item { flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 22px 16px; border-left: 1px solid rgba(208,236,222,.18); }
.vcm-home .vm-usp-item:first-child { border-left: 0; }
.vcm-home .vm-usp-item .vm-ico { width: 42px; height: 42px; background: rgba(208,236,222,.14); color: var(--vm-mint); }
.vcm-home .vm-usp-text { font: 800 14px/1.3 var(--vm-sans); color: #fff; }

/* CATEGORIES */
.vcm-home.vm-cats { background: #fff; }
.vcm-home .vm-cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.vcm-home .vm-cat { position: relative; display: block; height: 0; padding-bottom: 133%; border-radius: var(--vm-r); overflow: hidden; background: var(--vm-teal); text-decoration: none; isolation: isolate; }
.vcm-home .vm-cat-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; margin: 0; filter: grayscale(1) contrast(1.08) brightness(.95); transition: transform .5s ease; z-index: -2; }
.vcm-home .vm-cat::before { content: ""; position: absolute; inset: 0; background: #0b5d5f; mix-blend-mode: multiply; opacity: .72; z-index: -1; transition: opacity .4s; }
.vcm-home .vm-cat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2,40,43,0) 45%, rgba(2,40,43,.88) 100%); z-index: -1; }
.vcm-home .vm-cat:hover .vm-cat-img { transform: scale(1.05); }
.vcm-home .vm-cat:hover::before { opacity: .55; }
.vcm-home .vm-cat-title { position: absolute; left: 22px; right: 22px; bottom: 22px; display: flex; align-items: center; justify-content: space-between; gap: 10px; font: 800 22px/1.2 var(--vm-sans); color: #fff; }
.vcm-home .vm-cat-arrow { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--vm-teal); }
.vcm-home .vm-cat-arrow svg { width: 16px; height: 16px; }

/* PRODUCT CARDS (homepage only) */
.vcm-home .vm-products .woocommerce { margin: 0 !important; }
.vcm-home .vm-products ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0 !important; padding: 0 !important; }
.vcm-home .vm-products.vm-cols3 ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vcm-home .vm-products ul.products::before, .vcm-home .vm-products ul.products::after { display: none !important; content: none !important; }
.vcm-home .vm-products ul.products li.product { width: auto; min-width: 0; margin: 0; float: none !important; clear: none !important; padding: 12px 12px 16px !important; background: #fff !important; border: 1px solid var(--vm-line) !important; border-radius: var(--vm-r) !important; box-shadow: 0 10px 30px -20px rgba(3,71,75,.28) !important; display: flex !important; flex-direction: column; text-align: left !important; position: relative; transition: transform .2s, box-shadow .2s; }
/* Width and gap are forced only in the grid listings. In a carousel the same
   two properties are set inline by Swiper and must stay free. */
.vcm-home .vm-products:not(.vm-carousel) ul.products li.product { width: auto !important; margin: 0 !important; }
.vcm-home .vm-products ul.products li.product::before, .vcm-home .vm-products ul.products li.product::after { display: none !important; }
.vcm-home .vm-products ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -22px rgba(3,71,75,.45) !important; }
.vcm-home .vm-products li.product a.woocommerce-LoopProduct-link { display: flex !important; flex-direction: column; flex: 1 1 auto; color: inherit; text-decoration: none; padding: 0 !important; margin: 0 !important; background: none !important; }
.vcm-home .vm-products li.product .xtra-product-thumbnail { position: relative !important; aspect-ratio: 1 / 1; border-radius: 12px !important; overflow: hidden; background: #f3f6f4 !important; margin: 0 0 14px !important; padding: 0 !important; top: auto !important; transform: none !important; box-shadow: none !important; width: 100% !important; }
.vcm-home .vm-products li.product .xtra-product-thumbnail img { width: 100% !important; height: 100% !important; object-fit: cover; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; transform: none !important; }
.vcm-home .vm-products li.product span.onsale { position: absolute !important; top: 10px !important; left: 10px !important; right: auto !important; bottom: auto !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; line-height: 1 !important; padding: 7px 10px !important; margin: 0 !important; border-radius: 999px !important; background: var(--vm-teal) !important; color: #fff !important; font: 800 12px/1 var(--vm-sans) !important; z-index: 3; box-shadow: none !important; }
.vcm-home .vm-products li.product span.onsale::before { content: "−"; }
.vcm-home .vm-promo-list li.product span.onsale { background: var(--vm-sale) !important; }
.vcm-home.has-badge .vm-best li.product .xtra-product-thumbnail::after { content: var(--vm-badge); position: absolute; top: 10px; right: 10px; background: #fff; color: var(--vm-teal); font: 800 10.5px/1 var(--vm-sans); letter-spacing: .08em; text-transform: uppercase; padding: 7px 9px; border-radius: 999px; z-index: 3; }
.vcm-home .vm-products li.product .woocommerce-loop-product__title { position: relative !important; display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font: 700 15px/1.4 var(--vm-sans) !important; color: var(--vm-ink) !important; margin: 0 0 12px !important; padding: 20px 0 0 !important; text-align: left !important; letter-spacing: 0 !important; text-transform: none !important; min-height: calc(2 * 1.4em + 20px); }
.vcm-home .vm-products li.product .codevz-product-category-after-title { position: absolute !important; top: 0; left: 0; right: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block !important; font: 700 10.5px/1.4 var(--vm-sans) !important; letter-spacing: .1em; text-transform: uppercase; color: #86a29b !important; margin: 0 !important; opacity: 1 !important; }
.vcm-home .vm-products li.product .star-rating { display: none !important; }
.vcm-home .vm-products li.product .price { position: static !important; display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: auto 0 14px !important; padding: 0 !important; background: none !important; box-shadow: none !important; border-radius: 0 !important; font: 800 18px/1.2 var(--vm-sans) !important; color: var(--vm-teal) !important; text-align: left !important; transform: none !important; width: auto !important; }
.vcm-home .vm-products li.product .price del { order: 2; font-size: 13.5px !important; font-weight: 400 !important; color: #8fa6a1 !important; opacity: 1 !important; }
.vcm-home .vm-products li.product .price ins { order: 1; text-decoration: none !important; background: none !important; color: inherit !important; }
.vcm-home .vm-promo-list li.product .price ins { color: var(--vm-sale) !important; }
.vcm-home .vm-products li.product a.button, .vcm-home .vm-products li.product a.added_to_cart { position: static !important; display: flex !important; align-items: center; justify-content: center; gap: 8px; width: 100% !important; margin: 0 !important; min-height: 44px; padding: 0 12px !important; border-radius: 999px !important; background: var(--vm-teal) !important; color: #fff !important; font: 800 13.5px/1 var(--vm-sans) !important; opacity: 1 !important; visibility: visible !important; transform: none !important; box-shadow: none !important; border: 0 !important; text-transform: none !important; letter-spacing: 0 !important; }
.vcm-home .vm-products li.product a.button:hover { background: var(--vm-teal-d) !important; }
.vcm-home .vm-products li.product a.added_to_cart { margin-top: 8px !important; background: var(--vm-mint) !important; color: var(--vm-teal) !important; }
.vcm-home .vm-products li.product .xtra-product-icons { z-index: 4; }
.vcm-home .vm-products .woocommerce-pagination { display: none; }

/* BESTSELLERS */
.vcm-home.vm-best-sec { background: var(--vm-teal); }
.vcm-home.vm-best-sec .vm-h2, .vcm-home.vm-best-sec .vm-eyebrow { color: #fff; }
.vcm-home.vm-best-sec .vm-lead, .vcm-home.vm-best-sec .vm-lead p { color: var(--vm-mint); }
.vcm-home.vm-best-sec .vm-link { color: #fff; border-color: rgba(208,236,222,.45); }
.vcm-home.vm-best-sec .vm-products li.product { border-color: transparent !important; }

/* QUALITY */
.vcm-home.vm-quality { background: var(--vm-mint-l); }
.vcm-home .vm-quality-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.vcm-home .vm-quality-grid.is-text-only { grid-template-columns: 1fr; }
.vcm-home .vm-pillars { display: grid; gap: 14px; }
.vcm-home .vm-pillar { display: grid; grid-template-columns: 52px 1fr; gap: 16px; background: #fff; border: 1px solid var(--vm-line); border-radius: var(--vm-r); padding: 26px 28px; }
.vcm-home .vm-pillar-num { font: 800 24px/1.1 var(--vm-sans); color: var(--vm-teal); }
.vcm-home .vm-pillar strong { display: block; font: 800 16px/1.3 var(--vm-sans); color: var(--vm-ink); margin: 0 0 5px; }
.vcm-home .vm-pillar-desc p { font: 400 14px/1.55 var(--vm-sans); color: var(--vm-muted); margin: 0; }

/* PROMOTIONS */
.vcm-home.vm-promo { background: var(--vm-beige); }
.vcm-home .vm-promo-grid { display: grid; grid-template-columns: .9fr 3fr; gap: 22px; align-items: stretch; }
.vcm-home .vm-promo-feature { position: relative; overflow: hidden; border-radius: var(--vm-r); padding: 30px 26px; background: linear-gradient(155deg, #bf7a64 0%, #a5563f 55%, #8a4634 100%); display: flex; flex-direction: column; align-items: flex-start; color: #fff; }
.vcm-home .vm-promo-feature::after { content: "%"; position: absolute; right: -2px; bottom: 70px; font: 700 120px/.9 var(--vm-serif); color: rgba(255,255,255,.13); pointer-events: none; }
.vcm-home .vm-badge { display: inline-block; background: #fff; color: #a5563f; padding: 8px 12px; border-radius: 999px; font: 800 12px/1 var(--vm-sans); letter-spacing: .08em; text-transform: uppercase; }
.vcm-home .vm-card-title { font: 800 28px/1.15 var(--vm-sans); color: #fff; margin: 16px 0 12px; padding: 0; }
.vcm-home .vm-card-text p { font: 400 14.5px/1.6 var(--vm-sans); color: #fbeae5; margin: 0; }
.vcm-home .vm-promo-feature .vm-btn { margin-top: auto; position: relative; z-index: 1; padding: 0 22px; font-size: 14px; color: #8a4634; }
.vcm-home .vm-promo-feature .vm-card-text { margin-bottom: 26px; }

/* SETS */
.vcm-home.vm-sets { background: #fff; }
.vcm-home .vm-sets-grid { display: grid; grid-template-columns: 1fr 2.3fr; gap: 48px; align-items: start; }
.vcm-home .vm-sets-intro { position: sticky; top: 120px; background: linear-gradient(160deg, #03474b, #0b5d5f); border-radius: 28px; padding: 40px 34px; }
.vcm-home .vm-sets-intro .vm-eyebrow { color: var(--vm-mint); }
.vcm-home .vm-sets-intro .vm-h2 { color: #fff; }
.vcm-home .vm-sets-intro .vm-lead, .vcm-home .vm-sets-intro .vm-lead p { color: var(--vm-mint); }

/* MONTH */
.vcm-home.vm-month { background: var(--vm-mint-l); }

/* ABOUT */
.vcm-home.vm-about { background: var(--vm-beige); }
.vcm-home .vm-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.vcm-home .vm-about-grid.has-photo { grid-template-columns: .85fr 1fr 1fr; gap: 40px; }
.vcm-home .vm-about-grid.no-cards { grid-template-columns: 1fr; }
.vcm-home .vm-about-grid.has-photo.no-cards { grid-template-columns: .85fr 1fr; }
.vcm-home .vm-about-photo img { display: block; width: 100%; height: auto; border-radius: 28px; }
.vcm-home .vm-about-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vcm-home .vm-card { background: #fff; border: 1px solid var(--vm-line); border-radius: var(--vm-r); padding: 26px 24px; }
.vcm-home .vm-card .vm-ico { width: 46px; height: 46px; background: var(--vm-mint-l); color: var(--vm-teal); margin-bottom: 16px; }
.vcm-home .vm-card strong { display: block; font: 800 16px/1.3 var(--vm-sans); color: var(--vm-ink); }
.vcm-home .vm-card-desc p { font: 400 14px/1.55 var(--vm-sans); color: var(--vm-muted); margin: 8px 0 0; }

/* REVIEWS */
.vcm-home.vm-reviews { background: var(--vm-mint-l); }
.vcm-home .vm-rev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.vcm-home .vm-rev { margin: 0; background: #fff; border: 1px solid var(--vm-line); border-radius: var(--vm-r); padding: 28px; display: flex; flex-direction: column; }
.vcm-home .vm-rev::before { content: "\201C"; display: block; font: 700 60px/.7 var(--vm-serif); color: var(--vm-mint); height: 30px; }
.vcm-home .vm-stars { color: #d9a441; letter-spacing: 2px; font-size: 15px; margin-bottom: 10px; }
.vcm-home .vm-stars-off { color: #dfe7e3; }
.vcm-home .vm-rev blockquote { margin: 0; padding: 0; border: 0; font: 400 15.5px/1.65 var(--vm-sans); color: var(--vm-muted); quotes: none; }
.vcm-home .vm-rev blockquote p { margin: 0 0 .8em; font: inherit; color: inherit; }
.vcm-home .vm-rev figcaption { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--vm-line); }
.vcm-home .vm-rev figcaption strong { display: block; font: 800 14px/1.3 var(--vm-sans); color: var(--vm-ink); }
.vcm-home .vm-rev figcaption span { font: 400 12.5px/1.3 var(--vm-sans); color: #9aa9a6; }

/* KNOWLEDGE BASE */
.vcm-home.vm-kb-sec { background: #fff; }
.vcm-home .vm-kb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.vcm-home .vm-kb { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--vm-line); border-radius: var(--vm-r); overflow: hidden; text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s; }
.vcm-home .vm-kb:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -24px rgba(3,71,75,.4); }
.vcm-home .vm-kb-img { position: relative; display: block; height: 0; padding-bottom: 52%; overflow: hidden; }
.vcm-home .vm-kb-img img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; margin: 0; }
.vcm-home .vm-kb-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.4); background: linear-gradient(135deg, #03474b, #2f7d74); }
.vcm-home .vm-kb-ph--2 { background: linear-gradient(135deg, #1f5f63, #8fbfae); }
.vcm-home .vm-kb-ph--3 { background: linear-gradient(135deg, #355c3a, #a9c98c); }
.vcm-home .vm-kb-ph svg { width: 56px; height: 56px; }
.vcm-home .vm-kb-body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.vcm-home .vm-kb-tag { font: 800 11px/1 var(--vm-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--vm-teal); margin-bottom: 12px; }
.vcm-home .vm-kb-title { font: 800 19px/1.38 var(--vm-sans); color: var(--vm-ink); margin-bottom: 18px; }
.vcm-home .vm-kb-read { margin-top: auto; font: 800 13.5px/1 var(--vm-sans); color: var(--vm-teal); }

/* NEWSLETTER */
.vcm-home.vm-news-sec { background: #fff; }
.vcm-home .vm-news { background: var(--vm-teal); border-radius: 28px; padding: 56px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; }
.vcm-home .vm-news .vm-eyebrow { color: var(--vm-mint); }
.vcm-home .vm-news .vm-h2 { color: #fff; }
.vcm-home .vm-news .vm-lead, .vcm-home .vm-news .vm-lead p { color: var(--vm-mint); }
.vcm-home .vm-news-form { color: #fff; }
.vcm-home .vm-news-form .mailpoet_form { padding: 0 !important; margin: 0 !important; background: none !important; }
.vcm-home .vm-news-form .mailpoet_paragraph { margin: 0 0 14px !important; }
.vcm-home .vm-news-form .mailpoet_text { width: 100% !important; min-height: 54px; padding: 0 22px !important; border: 0 !important; border-radius: 999px !important; background: #fff !important; color: var(--vm-ink) !important; font: 400 15.5px/1 var(--vm-sans) !important; box-shadow: none !important; }
.vcm-home .vm-news-form .mailpoet_checkbox_label { display: flex !important; gap: 10px; align-items: flex-start; font: 400 13.5px/1.55 var(--vm-sans) !important; color: var(--vm-mint) !important; }
.vcm-home .vm-news-form .mailpoet_checkbox { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0 !important; accent-color: #fff; }
.vcm-home .vm-news-form .mailpoet_paragraph a { color: #fff !important; text-decoration: underline; }
.vcm-home .vm-news-form p, .vcm-home .vm-news-form .mailpoet_paragraph { font: 400 13.5px/1.55 var(--vm-sans); color: var(--vm-mint); }
.vcm-home .vm-news-form .mailpoet_submit { display: inline-flex !important; align-items: center; justify-content: center; min-height: 52px; padding: 0 30px !important; border: 2px solid #fff !important; border-radius: 999px !important; background: #fff !important; color: var(--vm-teal) !important; font: 800 15px/1 var(--vm-sans) !important; cursor: pointer; width: auto !important; }
.vcm-home .vm-news-form .mailpoet_submit:hover { background: var(--vm-mint) !important; border-color: var(--vm-mint) !important; }
.vcm-home .vm-news-form .mailpoet_error, .vcm-home .vm-news-form .parsley-errors-list { color: #ffd7cf !important; font-size: 12.5px; margin-top: 6px; }
.vcm-home .vm-news-form .mailpoet_validate_success { color: #fff !important; font-weight: 700; }

/* FINAL CTA */
.vcm-home.vm-final { background: var(--vm-beige); padding: 88px 0 96px; }
.vcm-home .vm-final-box { background: linear-gradient(120deg, #03474b, #0b5d5f); border-radius: 32px; padding: 56px 64px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.vcm-home .vm-final-box .vm-h2 { color: #fff; margin: 0 0 10px; }
.vcm-home .vm-final-box .vm-lead, .vcm-home .vm-final-box .vm-lead p { color: var(--vm-mint); }
.vcm-home .vm-final-box .vm-btns { margin-top: 0; flex: 0 0 auto; }

/* TABLET */
@media (max-width: 1024px) {
	.vcm-home .vm-h1 { font-size: 46px; }
	.vcm-home .vm-h2 { font-size: 38px; }
	.vcm-home .vm-hero-grid, .vcm-home .vm-quality-grid, .vcm-home .vm-about-grid, .vcm-home .vm-about-grid.has-photo, .vcm-home .vm-sets-grid { grid-template-columns: 1fr; gap: 36px; }
	.vcm-home .vm-hero-visual { max-width: 560px; width: 100%; margin: 0 auto; }
	.vcm-home .vm-sets-intro { position: static; }
	.vcm-home .vm-usp-grid { flex-wrap: wrap; }
	.vcm-home .vm-usp-item { flex: 1 1 50%; }
	.vcm-home .vm-usp-item:nth-child(odd) { border-left: 0; }
	.vcm-home .vm-promo-grid { grid-template-columns: 1fr; }
	.vcm-home .vm-products ul.products, .vcm-home .vm-products.vm-cols3 ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vcm-home .vm-news { grid-template-columns: 1fr; }
	.vcm-home .vm-about-photo img { max-height: 420px; object-fit: cover; }
}

/* MOBILE */
@media (max-width: 767px) {
	.vcm-home.vm-sec { padding: 52px 0; }
	.vcm-home .vm-wrap { padding: 0 16px; }
	.vcm-home .vm-eyebrow { font-size: 11px; margin-bottom: 10px; }
	.vcm-home .vm-h1 { font-size: 34px; line-height: 1.08; margin-bottom: 12px; }
	.vcm-home .vm-h2 { font-size: 30px; }
	.vcm-home .vm-lead, .vcm-home .vm-lead p { font-size: 14.5px; line-height: 1.55; }
	.vcm-home .vm-head { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 22px; }
	.vcm-home .vm-btns { margin-top: 22px; }

	.vcm-home.vm-hero { padding: 22px 0 26px; }
	.vcm-home .vm-hero-grid { gap: 16px; }
	.vcm-home .vm-hero-grid .vm-btns { flex-wrap: nowrap; gap: 8px; margin-top: 18px; }
	.vcm-home .vm-hero-grid .vm-btn { flex: 1 1 0; min-height: 46px; padding: 0 10px; font-size: 14px; }
	.vcm-home .vm-hero-visual { max-width: 300px; padding: 26px 0 18px; }
	.vcm-home .vm-frame { border-width: 4px; border-radius: 14px; }

	.vcm-home .vm-usp-grid { display: flex; flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 6px; }
	.vcm-home .vm-usp-grid::-webkit-scrollbar { display: none; }
	.vcm-home .vm-usp-item { flex: 0 0 auto; padding: 13px 12px; border-left: 0; gap: 9px; scroll-snap-align: start; }
	.vcm-home .vm-usp-item .vm-ico { width: 32px; height: 32px; }
	.vcm-home .vm-usp-item .vm-ico svg { width: 14px; height: 14px; }
	.vcm-home .vm-usp-text { font-size: 12.5px; white-space: nowrap; }

	.vcm-home .vm-cat-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
	.vcm-home .vm-cat { padding-bottom: 125%; }
	.vcm-home .vm-cat-title { left: 14px; right: 10px; bottom: 14px; font-size: 15px; letter-spacing: -.01em; }
	.vcm-home .vm-cat-arrow { display: none; }

	.vcm-home .vm-products ul.products, .vcm-home .vm-products.vm-cols3 ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.vcm-home .vm-products.vm-scroll ul.products { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 66%; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 16px 14px !important; margin: 0 -16px !important; scrollbar-width: none; }
	.vcm-home .vm-products.vm-scroll ul.products::-webkit-scrollbar { display: none; }
	.vcm-home .vm-products.vm-scroll li.product { scroll-snap-align: start; }
	/* Swipe hint: next card peeks in and a small progress bar follows the scroll where supported. */
	.vcm-home .vm-products.vm-scroll { --vm-track: rgba(3,71,75,.14); --vm-thumb: var(--vm-teal); timeline-scope: --vmx; }
	.vcm-home.vm-best-sec .vm-products.vm-scroll { --vm-track: rgba(208,236,222,.25); --vm-thumb: #fff; }
	.vcm-home .vm-products.vm-scroll ul.products { grid-auto-columns: 64%; scroll-timeline: --vmx x; }
	.vcm-home .vm-products.vm-scroll::after { content: ""; display: block; width: 88px; height: 4px; margin: 8px auto 0; border-radius: 99px; background: linear-gradient(var(--vm-thumb), var(--vm-thumb)) 0 0 / 38% 100% no-repeat, var(--vm-track); animation: vm-swipe linear both; animation-timeline: --vmx; }
	@keyframes vm-swipe { to { background-position: 100% 0, 0 0; } }
	.vcm-home .vm-products ul.products li.product { padding: 8px 8px 10px !important; border-radius: 14px !important; }
	.vcm-home .vm-products li.product .xtra-product-thumbnail { margin-bottom: 10px !important; border-radius: 10px !important; }
	.vcm-home .vm-products li.product .woocommerce-loop-product__title { font-size: 13px !important; line-height: 1.38 !important; padding-top: 17px !important; margin-bottom: 8px !important; min-height: calc(2 * 1.38em + 17px); }
	.vcm-home .vm-products li.product .codevz-product-category-after-title { font-size: 9.5px !important; }
	.vcm-home .vm-products li.product .price { font-size: 15px !important; gap: 2px 8px; margin-bottom: 10px !important; }
	.vcm-home .vm-products li.product .price del { font-size: 12px !important; }
	.vcm-home .vm-products li.product a.button { min-height: 38px; font-size: 12px !important; padding: 0 8px !important; }
	.vcm-home .vm-products li.product span.onsale { top: 7px !important; left: 7px !important; padding: 6px 8px !important; font-size: 11px !important; }
	.vcm-home.has-badge .vm-best li.product .xtra-product-thumbnail::after { top: 7px; right: 7px; font-size: 9px; padding: 6px 7px; }
	.vcm-home .vm-products li.product .xtra-product-icons { display: none !important; }

	.vcm-home .vm-quality-grid { gap: 26px; }
	.vcm-home .vm-pillar { grid-template-columns: 40px 1fr; gap: 10px; padding: 18px; }
	.vcm-home .vm-promo-feature { padding: 24px 20px; }
	.vcm-home .vm-card-title { font-size: 24px; }
	.vcm-home .vm-promo-feature::after { font-size: 80px; bottom: auto; top: 12px; }
	.vcm-home .vm-sets-intro { padding: 28px 22px; border-radius: 22px; }
	.vcm-home .vm-about-grid { gap: 26px; }
	.vcm-home .vm-about-cards { gap: 10px; }
	.vcm-home .vm-card { padding: 16px; }
	.vcm-home .vm-card .vm-ico { width: 38px; height: 38px; margin-bottom: 12px; }
	.vcm-home .vm-card strong { font-size: 14px; }
	.vcm-home .vm-rev-grid, .vcm-home .vm-kb-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 4px 16px 14px; gap: 12px; scrollbar-width: none; }
	.vcm-home .vm-rev, .vcm-home .vm-kb { scroll-snap-align: start; }
	.vcm-home .vm-kb-title { font-size: 17px; }
	.vcm-home .vm-news { padding: 30px 22px; border-radius: 22px; }
	.vcm-home.vm-final { padding: 52px 0 64px; }
	.vcm-home .vm-final-box { flex-direction: column; align-items: flex-start; padding: 34px 22px; border-radius: 24px; }
	.vcm-home .vm-final-box .vm-btns { width: 100%; flex-wrap: nowrap; }
	.vcm-home .vm-final-box .vm-btn { flex: 1 1 0; padding: 0 12px; }
}

/* Knowledge base: article not published yet. */
.vcm-home .vm-kb.is-soon { cursor: default; }
.vcm-home .vm-kb.is-soon:hover { transform: none; box-shadow: none; }
.vcm-home .vm-kb-soon { margin-top: auto; display: inline-flex; align-items: center; align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--vm-mint-l); color: var(--vm-teal); font: 800 11px/1 var(--vm-sans); letter-spacing: .1em; text-transform: uppercase; }

/* ================================================================
   VISUAL DIRECTION v2 – modern specialist store (less wellness).
   Overrides above: cooler neutrals, sans-serif headings, tighter
   spacing, smaller radii. Content and layout structure unchanged.
   ================================================================ */
.vcm-home { --vm-beige: #f5f8f8; --vm-mint-l: #f2f6f6; --vm-line: #e2e9e8; --vm-r: 10px; }
.vcm-home.vm-sec { padding: 68px 0; }
.vcm-home.vm-sec.vm-joined { padding-top: 0; }

/* Typography: sans-serif drives the store, serif only in the hero headline. */
.vcm-home .vm-h2 { font: 800 36px/1.15 var(--vm-sans); letter-spacing: -.02em; color: var(--vm-teal); margin: 0 0 10px; }
.vcm-home .vm-h1 { font-size: 50px; line-height: 1.06; margin-bottom: 16px; }
.vcm-home .vm-eyebrow { font-size: 11.5px; letter-spacing: .16em; color: #5f7b76; margin-bottom: 10px; }
.vcm-home .vm-lead, .vcm-home .vm-lead p { font-size: 16px; line-height: 1.6; }
.vcm-home .vm-head { margin-bottom: 26px; align-items: flex-end; }

/* Buttons: ecommerce CTA instead of large pills. */
.vcm-home .vm-btn { min-height: 48px; padding: 0 24px; border-radius: 8px; font-size: 14.5px; border-width: 1.5px; }
.vcm-home .vm-link { font-size: 13.5px; border-bottom-width: 2px; }

/* Section backgrounds: white / very light cool neutral / dark teal accents. */
.vcm-home.vm-hero { background: linear-gradient(115deg, #f7faf9 0%, #eaf1f0 100%); padding: 52px 0 56px; }
.vcm-home.vm-cats, .vcm-home.vm-sets, .vcm-home.vm-kb-sec, .vcm-home.vm-news-sec { background: #fff; }
.vcm-home.vm-quality { background: #fff; }
.vcm-home.vm-promo { background: #fff; }
.vcm-home.vm-about { background: #f5f8f8; }
.vcm-home.vm-month, .vcm-home.vm-reviews { background: #f5f8f8; }
.vcm-home.vm-final { background: #fff; padding: 68px 0 76px; }

/* Cards: compact, subtle border, small radius. */
.vcm-home .vm-cat { border-radius: 10px; padding-bottom: 116%; }
.vcm-home .vm-cat-title { left: 18px; right: 18px; bottom: 18px; font-size: 19px; letter-spacing: -.01em; }
.vcm-home .vm-cat-arrow { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 8px; }
.vcm-home .vm-cat::before { opacity: .62; }
.vcm-home .vm-cat:hover::before { opacity: .38; }
.vcm-home .vm-products ul.products { gap: 16px; }
.vcm-home .vm-products ul.products li.product { border-radius: 10px !important; padding: 10px 10px 14px !important; box-shadow: none !important; }
.vcm-home .vm-products ul.products li.product:hover { box-shadow: 0 12px 26px -20px rgba(3,71,75,.5) !important; }
.vcm-home .vm-products li.product .xtra-product-thumbnail { border-radius: 8px !important; margin-bottom: 12px !important; }
.vcm-home .vm-products li.product span.onsale { border-radius: 6px !important; font-size: 11.5px !important; padding: 6px 9px !important; }
.vcm-home.has-badge .vm-best li.product .xtra-product-thumbnail::after { border-radius: 6px; }
.vcm-home .vm-products li.product .woocommerce-loop-product__title { font-size: 14.5px !important; margin-bottom: 10px !important; }
.vcm-home .vm-products li.product .price { font-size: 17px !important; margin-bottom: 12px !important; }
.vcm-home .vm-products li.product a.button, .vcm-home .vm-products li.product a.added_to_cart { border-radius: 8px !important; min-height: 42px; font-size: 13px !important; }

/* Quality: technical info block instead of a pastel editorial panel. */
.vcm-home .vm-quality-grid { gap: 44px; align-items: start; }
.vcm-home .vm-pillars { gap: 10px; }
.vcm-home .vm-pillar { grid-template-columns: 40px 1fr; gap: 12px; padding: 18px 20px; border-radius: 10px; border-left: 3px solid var(--vm-teal); background: #f7fafa; }
.vcm-home .vm-pillar-num { font: 800 15px/1.4 var(--vm-sans); color: #7f9792; }
.vcm-home .vm-pillar strong { font-size: 15.5px; }
.vcm-home .vm-pillar-desc p { font-size: 13.5px; }

/* Promotions and sets: products first. */
.vcm-home .vm-promo-grid { gap: 16px; grid-template-columns: .8fr 3fr; }
.vcm-home .vm-promo-feature { border-radius: 10px; padding: 24px 22px; }
.vcm-home .vm-promo-feature::after { font-size: 90px; }
.vcm-home .vm-card-title { font-size: 24px; letter-spacing: -.01em; }
.vcm-home .vm-badge { border-radius: 6px; font-size: 11px; }
.vcm-home .vm-sets-grid { gap: 32px; grid-template-columns: .95fr 2.4fr; }
.vcm-home .vm-sets-intro { border-radius: 12px; padding: 30px 26px; top: 100px; }

/* About, reviews, knowledge base, newsletter, final CTA. */
.vcm-home .vm-about-grid { gap: 44px; }
.vcm-home .vm-about-cards { gap: 10px; }
.vcm-home .vm-card { border-radius: 10px; padding: 20px 18px; }
.vcm-home .vm-card .vm-ico { width: 40px; height: 40px; border-radius: 8px; margin-bottom: 12px; }
.vcm-home .vm-card strong { font-size: 15px; }
.vcm-home .vm-rev { border-radius: 10px; padding: 22px; }
.vcm-home .vm-kb { border-radius: 10px; }
.vcm-home .vm-kb-img { padding-bottom: 46%; }
.vcm-home .vm-kb-body { padding: 18px 20px 20px; }
.vcm-home .vm-kb-title { font-size: 17px; line-height: 1.35; margin-bottom: 14px; }
.vcm-home .vm-kb-soon { border-radius: 6px; }
.vcm-home .vm-news { border-radius: 12px; padding: 40px 44px; gap: 32px; }
.vcm-home .vm-news-form .mailpoet_text { border-radius: 8px !important; min-height: 48px; }
.vcm-home .vm-news-form .mailpoet_submit { border-radius: 8px !important; min-height: 48px; }
.vcm-home .vm-final-box { border-radius: 12px; padding: 40px 44px; }
.vcm-home .vm-usp-item { padding: 18px 16px; }
.vcm-home .vm-usp-item .vm-ico { border-radius: 8px; width: 38px; height: 38px; }
.vcm-home .vm-usp-text { font-size: 13.5px; }
.vcm-home .vm-frame { border-radius: 12px; border-width: 4px; }

@media (max-width: 1024px) {
	.vcm-home .vm-h1 { font-size: 40px; }
	.vcm-home .vm-h2 { font-size: 30px; }
}

@media (max-width: 767px) {
	.vcm-home.vm-sec { padding: 44px 0; }
	.vcm-home.vm-hero { padding: 20px 0 24px; }
	.vcm-home.vm-final { padding: 44px 0 52px; }
	.vcm-home .vm-h1 { font-size: 31px; }
	.vcm-home .vm-h2 { font-size: 26px; }
	.vcm-home .vm-lead, .vcm-home .vm-lead p { font-size: 14.5px; }
	.vcm-home .vm-head { margin-bottom: 18px; }
	.vcm-home .vm-btns { margin-top: 18px; }
	.vcm-home .vm-btn { min-height: 46px; font-size: 14px; }
	.vcm-home .vm-hero-grid .vm-btn { flex: 1 1 0; }
	.vcm-home .vm-cat-grid { gap: 10px; }
	.vcm-home .vm-cat { padding-bottom: 108%; }
	.vcm-home .vm-cat-title { font-size: 14.5px; left: 12px; right: 10px; bottom: 12px; }
	.vcm-home .vm-products ul.products, .vcm-home .vm-products.vm-cols3 ul.products { gap: 10px; }
	.vcm-home .vm-products.vm-scroll ul.products { grid-auto-columns: 62%; }
	.vcm-home .vm-pillar { padding: 14px 16px; }
	.vcm-home .vm-sets-intro { padding: 22px 18px; }
	.vcm-home .vm-news { padding: 26px 20px; }
	.vcm-home .vm-final-box { padding: 28px 20px; }
	.vcm-home .vm-card { padding: 14px; }
}


/* ================================================================
   SLIDER, PRODUCT CAROUSELS AND CATEGORY HOVER
   Slides come from "Slajdy" in the admin, products from WooCommerce.
   Without JavaScript the slider shows the first slide and the
   carousels stay a plain grid.
   ================================================================ */

/* --- Full width slider --- */
.vcm-home.vm-slider-sec { padding: 0; background: var(--vm-teal); }
.vcm-home .vm-slider { position: relative; }
.vcm-home .vm-slider-viewport { overflow: hidden; }
.vcm-home .vm-slide { position: relative; display: flex; align-items: center; min-height: 520px; background: linear-gradient(115deg, #02363a 0%, #0b5d5f 100%); overflow: hidden; }
/* The photo sits on the right of the slide, in a panel no wider than the
   picture can fill well, and fades into the brand gradient on its left edge.
   The text keeps the dark side, so it stays readable on any uploaded photo. */
.vcm-home .vm-slide-media { position: absolute; top: 0; bottom: 0; right: 0; left: auto; width: min(46%, 660px); display: block; -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, #000 26%); mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, #000 26%); }
.vcm-home .vm-slide-media img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; margin: 0; display: block; }
.vcm-home .vm-slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,54,58,.82) 0%, rgba(2,54,58,.62) 42%, rgba(2,54,58,.3) 66%, rgba(2,54,58,.12) 100%); }
.vcm-home .vm-slide-inner { position: relative; z-index: 1; padding-top: 56px; padding-bottom: 56px; }
.vcm-home .vm-slide-copy { max-width: 560px; }
.vcm-home .vm-slide-title { font: 800 44px/1.1 var(--vm-sans); letter-spacing: -.02em; color: #fff; margin: 0 0 14px; padding: 0; }
.vcm-home .vm-slide-text { font: 400 17px/1.6 var(--vm-sans); color: var(--vm-mint); margin: 0 0 26px; max-width: 480px; }
.vcm-home .vm-slide .vm-btn { margin: 0; }

/* Slider controls */
.vcm-home .vm-slider-nav { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 10px; background: rgba(255,255,255,.16); color: #fff; cursor: pointer; transition: background .2s, opacity .2s; }
.vcm-home .vm-slider-nav:hover { background: rgba(255,255,255,.3); }
.vcm-home .vm-slider-nav svg { width: 20px; height: 20px; }
.vcm-home .vm-slider-prev { left: 18px; }
.vcm-home .vm-slider-prev svg { transform: rotate(180deg); }
.vcm-home .vm-slider-next { right: 18px; }
.vcm-home .vm-slider-nav.is-disabled { opacity: .35; cursor: default; }
.vcm-home .vm-slider-dots { position: absolute; left: 0; right: 0; bottom: 20px; z-index: 2; display: flex; justify-content: center; gap: 8px; }
.vcm-home .vm-dot { width: 26px; height: 4px; padding: 0; border: 0; border-radius: 99px; background: rgba(255,255,255,.4); cursor: pointer; transition: background .2s, width .2s; }
.vcm-home .vm-dot.is-active { background: #fff; width: 40px; }
.vcm-home .vm-slider-nav:focus-visible, .vcm-home .vm-dot:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Without JavaScript only the first slide is shown, so the page never
   looks like a broken stack of banners. */
.vcm-home .vm-slider:not(.is-ready) .swiper-wrapper { display: block; }
.vcm-home .vm-slider:not(.is-ready) .vm-slide + .vm-slide { display: none; }

/* --- Product carousels --- */
/* min-width:0 keeps the carousel from widening its grid or flex parent:
   without it the track would size itself to the whole product list. */
.vcm-home .vm-carousel { position: relative; min-width: 0; max-width: 100%; }
.vcm-home .vm-carousel-viewport { min-width: 0; max-width: 100%; }
.vcm-home .vm-sets-grid > * { min-width: 0; }
.vcm-home .vm-carousel-viewport { padding: 10px 4px 16px; margin: -10px -4px -16px; }
.vcm-home .vm-carousel.is-ready ul.products { display: flex !important; grid-template-columns: none !important; gap: 0 !important; padding: 0 !important; margin: 0 !important; }
.vcm-home .vm-carousel.is-ready ul.products li.product { height: auto; }
/* Until Swiper takes over, the cards stay a normal grid. */
.vcm-home .vm-carousel:not(.is-ready) ul.products li.product { width: auto !important; margin: 0 !important; }
.vcm-home .vm-carousel-nav { position: absolute; top: 38%; z-index: 3; transform: translateY(-50%); display: none; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--vm-line); border-radius: 10px; background: #fff; color: var(--vm-teal); cursor: pointer; box-shadow: 0 10px 24px -14px rgba(3,71,75,.5); transition: background .2s, color .2s, opacity .2s; }
.vcm-home .vm-carousel.is-ready .vm-carousel-nav { display: flex; }
.vcm-home .vm-carousel-nav:hover { background: var(--vm-teal); color: #fff; border-color: var(--vm-teal); }
.vcm-home .vm-carousel-nav svg { width: 18px; height: 18px; }
.vcm-home .vm-carousel-prev { left: -14px; }
.vcm-home .vm-carousel-prev svg { transform: rotate(180deg); }
.vcm-home .vm-carousel-next { right: -14px; }
.vcm-home .vm-carousel-nav.is-disabled { opacity: 0; pointer-events: none; }
.vcm-home .vm-carousel-dots { display: none; justify-content: center; gap: 8px; margin-top: 18px; }
.vcm-home .vm-carousel.is-ready .vm-carousel-dots { display: flex; }
.vcm-home .vm-carousel-dots .vm-dot { background: rgba(3,71,75,.22); }
.vcm-home .vm-carousel-dots .vm-dot.is-active { background: var(--vm-teal); }
.vcm-home.vm-best-sec .vm-carousel-dots .vm-dot { background: rgba(208,236,222,.3); }
.vcm-home.vm-best-sec .vm-carousel-dots .vm-dot.is-active { background: #fff; }
.vcm-home .vm-carousel-nav:focus-visible, .vcm-home .vm-carousel-dots .vm-dot:focus-visible { outline: 2px solid var(--vm-teal); outline-offset: 2px; }

/* Sets: the carousel sits next to the intro panel, so the arrows stay inside. */
.vcm-home .vm-sets-carousel .vm-carousel-prev { left: -10px; }
.vcm-home .vm-sets-carousel .vm-carousel-next { right: -10px; }

/* --- Categories: grey by default, full colour on hover --- */
.vcm-home .vm-cat-img { transition: transform .5s ease, filter .45s ease; }
.vcm-home .vm-cat:hover .vm-cat-img, .vcm-home .vm-cat:focus-visible .vm-cat-img { filter: grayscale(0) contrast(1.02) brightness(1); }
/* Touch devices have no hover state, so the photos are in colour right away. */
@media (hover: none) {
	.vcm-home .vm-cat-img { filter: grayscale(0) contrast(1.02) brightness(1); }
	.vcm-home .vm-cat::before { opacity: .4; }
}

/* --- Thin benefits bar directly under the slider --- */
.vcm-home.vm-usp .vm-usp-item { padding: 13px 16px; }
.vcm-home.vm-usp .vm-usp-item .vm-ico { width: 32px; height: 32px; }
.vcm-home.vm-usp .vm-usp-item .vm-ico svg { width: 15px; height: 15px; }
.vcm-home.vm-usp .vm-usp-text { font-size: 13px; }

/* --- "Co nas wyróżnia": one text block, no competence cards --- */
.vcm-home .vm-about-grid.no-cards { max-width: 820px; margin: 0 auto; text-align: center; }
.vcm-home .vm-about-grid.no-cards .vm-lead, .vcm-home .vm-about-grid.no-cards .vm-lead p { max-width: none; }
.vcm-home .vm-about-grid.no-cards .vm-btns { justify-content: center; }

@media (max-width: 1024px) {
	.vcm-home .vm-slide { min-height: 440px; }
	.vcm-home .vm-slide-media { width: 42%; }
	.vcm-home .vm-slide-title { font-size: 36px; }
	/* Below the desktop breakpoint the sets intro sits above its carousel.
	   (The v2 block re-declares the two column layout without a media query.) */
	.vcm-home .vm-sets-grid { grid-template-columns: 1fr; gap: 26px; }
	.vcm-home .vm-sets-intro { position: static; }
}
@media (max-width: 767px) {
	.vcm-home .vm-slide { min-height: 440px; align-items: flex-end; }
	/* On a phone the photo fills the slide and the text sits on a dark base. */
	.vcm-home .vm-slide-media { inset: 0; width: auto; -webkit-mask-image: none; mask-image: none; }
	.vcm-home .vm-slide-shade { background: linear-gradient(180deg, rgba(2,40,43,.5) 0%, rgba(2,40,43,.72) 42%, rgba(2,40,43,.95) 100%); }
	.vcm-home .vm-slide-inner { padding-top: 40px; padding-bottom: 54px; }
	.vcm-home .vm-slide-copy { max-width: none; }
	.vcm-home .vm-slide-title { font-size: 27px; margin-bottom: 10px; }
	.vcm-home .vm-slide-text { font-size: 14.5px; margin-bottom: 20px; }
	.vcm-home .vm-slider-nav { display: none; }
	.vcm-home .vm-slider-dots { bottom: 14px; }
	.vcm-home .vm-dot { width: 20px; }
	.vcm-home .vm-dot.is-active { width: 30px; }
	.vcm-home .vm-carousel.is-ready .vm-carousel-nav { display: none; }
	.vcm-home .vm-carousel-viewport { padding: 6px 2px 12px; margin: -6px -2px -12px; }
	.vcm-home .vm-carousel-dots { margin-top: 14px; }
	.vcm-home .vm-about-grid.no-cards { text-align: left; }
	.vcm-home .vm-about-grid.no-cards .vm-btns { justify-content: flex-start; }
}
