/* Vet Expert Iran — main stylesheet.
 * Values measured from vetexpert.com (theme CSS + computed styles, 2026-11-03).
 * RTL-first: logical properties only; directional icons mirrored via .ve-flip / :dir(rtl).
 */

:root {
	--ve-teal: #00b2a4;
	--ve-teal-light: #add9d6;
	--ve-slate: #415363;
	--ve-ink: #222629;
	--ve-body: #5f5f5f;
	--ve-muted: #707070; /* source #7b7b7b, darkened to reach WCAG AA 4.5:1 */
	--ve-subtle: #9f9f9f;
	--ve-footer-link: #cbcbcb;
	--ve-surface: #fafafa;
	--ve-surface-2: #f4f4f4;
	--ve-border: #d9d9d9;
	--ve-header-h: 100px;
	--ve-container: 1240px;
	--ve-icons: url(../images/icons/);
	--ve-ease: cubic-bezier(.4, 0, .2, 1);
}
@media (min-width: 992px) and (max-width: 1639.98px) { :root { --ve-header-h: 80px; } }
@media (max-width: 991.98px) { :root { --ve-header-h: 70px; } }
@media (min-width: 1640px) { :root { --ve-container: 1506px; } }

/* ---------- Base ---------- */
html { scroll-padding-top: calc(var(--ve-header-h) + 16px); }
html.ve-lock { overflow: hidden; }
body { margin: 0; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body:not(.ve-hero-header) .wp-site-blocks { padding-block-start: var(--ve-header-h); }
@media (max-width: 991.98px) { body.ve-hero-header .wp-site-blocks { padding-block-start: var(--ve-header-h); } }
img { max-width: 100%; height: auto; }
bdi, [dir="ltr"] { unicode-bidi: isolate; }
:focus-visible { outline: 2px solid var(--ve-teal); outline-offset: 2px; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.ve-container { max-width: var(--ve-container); margin-inline: auto; padding-inline: 15px; box-sizing: border-box; }
::selection { background: var(--ve-teal-light); color: var(--ve-ink); }

/* Persian has no letter case or tracking: source uppercase/letter-spacing is applied to Latin runs only. */
:where(h1, h2, h3, h4, h5, h6) { letter-spacing: 0; }
:where(bdi) { text-transform: none; }

/* ---------- Buttons (source .btn__shop / dark pill) ---------- */
.ve-btn-shop, .ve-btn-dark, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	border: 0; border-radius: 28px; cursor: pointer; font: inherit; font-weight: 800; font-size: 15px;
	line-height: 1.4; padding: 14px 40px; text-decoration: none; transition: background-color .3s, color .3s;
}
.ve-btn-shop { background: var(--ve-teal); color: #fff; }
.ve-btn-shop:hover, .ve-btn-shop:focus-visible { background: var(--ve-ink); color: #fff; }
.ve-btn-dark, .is-style-dark .wp-block-button__link { background: var(--ve-ink); color: #fff; }
.ve-btn-dark:hover, .is-style-dark .wp-block-button__link:hover { background: var(--ve-teal); color: #fff; }

/* ---------- Header (fixed, hide-on-scroll, transparent over hero on ≥992px) ---------- */
.ve-header { position: fixed; inset-inline: 0; top: 0; z-index: 9999; height: var(--ve-header-h); background: #fff; transition: transform .4s var(--ve-ease), background-color .3s, box-shadow .3s; }
.ve-header.is-scrolled { box-shadow: 0 2px 30px rgba(0, 0, 0, .06); }
.ve-header.is-hidden { transform: translateY(-100%); }
.ve-header__bar { display: flex; align-items: center; height: 100%; padding-inline: 16px 40px; gap: 24px; }
.ve-header__logo { display: block; flex: none; }
.ve-header__logo img { display: block; height: 50px; width: auto; }
.ve-logo-white { display: none !important; }
.ve-nav { flex: 1; display: flex; justify-content: center; }
.ve-nav__list { display: flex; align-items: center; gap: clamp(20px, 4.2vw, 60px); list-style: none; margin: 0; padding: 0; }
.ve-nav__link { background: none; border: 0; padding: 8px 0; cursor: pointer; font: inherit; font-size: 16px; font-weight: 700; color: var(--ve-slate); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; transition: color .2s; white-space: nowrap; }
.ve-nav__link:hover { color: var(--ve-footer-link); }
.ve-nav__item.is-current > .ve-nav__link, .ve-nav__toggle[aria-expanded="true"] { color: var(--ve-teal); }
.ve-nav__toggle::after { content: ""; width: 12px; height: 7px; background: currentColor; -webkit-mask: url(../images/icons/chevron.svg) center / contain no-repeat; mask: url(../images/icons/chevron.svg) center / contain no-repeat; transition: transform .2s; }
.ve-nav__toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.ve-header__actions { display: flex; align-items: center; gap: 18px; margin-inline-start: auto; }
.ve-icon-btn { width: 24px; height: 24px; border: 0; padding: 0; cursor: pointer; background-color: var(--ve-slate); -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; position: relative; display: inline-block; }
.ve-search-toggle { -webkit-mask-image: url(../images/icons/search.svg); mask-image: url(../images/icons/search.svg); }
.ve-cart-link { -webkit-mask-image: none; mask-image: none; background: none; }
.ve-cart-link::before { content: ""; position: absolute; inset: 0; background: var(--ve-slate); -webkit-mask: url(../images/icons/cart.svg) center / contain no-repeat; mask: url(../images/icons/cart.svg) center / contain no-repeat; }
.ve-cart-count { position: absolute; inset-block-start: -8px; inset-inline-end: -10px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--ve-teal); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.ve-burger { display: none; width: 36px; height: 28px; border: 0; background: none; cursor: pointer; position: relative; padding: 0; }
.ve-burger span, .ve-burger::before, .ve-burger::after { content: ""; position: absolute; inset-inline: 0; height: 2px; background: var(--ve-slate); transition: transform .3s, opacity .3s; }
.ve-burger::before { top: 3px; } .ve-burger span { top: 13px; } .ve-burger::after { top: 23px; }
.ve-burger[aria-expanded="true"] span { opacity: 0; }
.ve-burger[aria-expanded="true"]::before { transform: translateY(10px) rotate(45deg); }
.ve-burger[aria-expanded="true"]::after { transform: translateY(-10px) rotate(-45deg); }

@media (min-width: 992px) {
	.ve-hero-header .ve-header:not(.is-scrolled):not(.is-open) { background: transparent; }
	.ve-hero-header .ve-header:not(.is-scrolled):not(.is-open) .ve-logo-color { display: none !important; }
	.ve-hero-header .ve-header:not(.is-scrolled):not(.is-open) .ve-logo-white { display: block !important; }
	.ve-hero-header .ve-header:not(.is-scrolled):not(.is-open) .ve-nav__link { color: #fff; }
	.ve-hero-header .ve-header:not(.is-scrolled):not(.is-open) .ve-icon-btn:not(.ve-cart-link), .ve-hero-header .ve-header:not(.is-scrolled):not(.is-open) .ve-cart-link::before { background-color: #fff; }
	.ve-header.is-open { background: var(--ve-ink); }
	.ve-header.is-open .ve-logo-color { display: none !important; }
	.ve-header.is-open .ve-logo-white { display: block !important; }
	.ve-header.is-open .ve-nav__link { color: #fff; }
	.ve-header.is-open .ve-icon-btn:not(.ve-cart-link), .ve-header.is-open .ve-cart-link::before { background-color: #fff; }
}
@media (max-width: 1639.98px) { .ve-header__logo img { height: 50px; } }
@media (max-width: 991.98px) {
	.ve-nav { display: none; }
	.ve-burger { display: block; }
	.ve-header__bar { padding-inline: 16px; }
	.ve-header__logo img { height: 44px; }
	.ve-icon-btn { width: 22px; height: 22px; }
}

/* ---------- Mega menu (full screen, three columns; source #222629 panel) ---------- */
.ve-mega { position: fixed; inset: var(--ve-header-h) 0 0 0; z-index: 9998; display: grid; grid-template-columns: 38.6% 25.4% 1fr; background: var(--ve-ink); color: #fff; overflow: auto; }
.ve-mega[hidden] { display: none; }
.ve-mega__close { position: absolute; inset-block-start: 0; inset-inline-end: 0; width: 54px; height: 54px; border: 0; background: #fff url(../images/icons/menu-close.svg) center no-repeat; cursor: pointer; z-index: 3; }
.ve-mega__col--lines { position: relative; padding: 30px 32px 40px 60px; display: flex; flex-direction: column; }
.ve-mega__species { display: inline-flex; flex-direction: column; align-items: center; gap: 6px; color: var(--ve-teal-light); text-decoration: none; font-weight: 700; font-size: 15px; align-self: flex-start; }
.ve-mega__species img { width: 48px; height: auto; }
.ve-mega__lines { list-style: none; margin: auto 0; padding: 0; text-align: end; }
.ve-mega__line > a { display: block; padding: 13px 60px 13px 24px; color: #fff; text-decoration: none; font-size: 16px; font-weight: 500; transition: color .2s, background-color .2s; }
.ve-mega__line.is-active > a, .ve-mega__line > a:hover, .ve-mega__line > a:focus-visible { background: #2c3134; color: var(--ve-teal-light); }
.ve-mega__line .ve-mega__subs { display: none; }
.ve-mega__col--subs { background: rgba(34, 38, 41, .55); border-inline-start: 1px solid rgba(255, 255, 255, .5); display: flex; align-items: center; justify-content: flex-end; padding-inline-end: 60px; }
.ve-mega__col--subs .ve-mega__subs { display: block; list-style: none; margin: 0; padding: 0; text-align: end; }
.ve-mega__col--subs a { display: block; color: #fff; text-decoration: none; padding: 12px 0; font-size: 14px; font-weight: 500; }
.ve-mega__col--subs a:hover, .ve-mega__col--subs a:focus-visible { color: var(--ve-teal-light); }
.ve-mega__photo { background: center / cover no-repeat; grid-column: 2 / 4; grid-row: 1; z-index: 0; }
.ve-mega__col--subs { grid-column: 2; grid-row: 1; z-index: 1; }
.ve-mega__col--lines { grid-column: 1; grid-row: 1; }
@media (max-width: 991.98px) { .ve-mega { display: none !important; } }

/* ---------- Search overlay ---------- */
.ve-search { position: fixed; inset: 0; z-index: 10000; background: rgba(255, 255, 255, .98); display: flex; align-items: center; justify-content: center; padding: 100px 15px; }
.ve-search[hidden] { display: none; }
.ve-search__close { position: absolute; inset-block-start: 30px; inset-inline-end: 32px; width: 39px; height: 39px; border: 0; background: url(../images/icons/close.svg) center no-repeat; cursor: pointer; }
.ve-search__form { display: flex; width: min(100%, 826px); }
.ve-search__form input { flex: 1; border: 0; border-bottom: 2px solid #000; background: transparent; color: var(--ve-ink); font: inherit; font-size: clamp(20px, 3vw, 36px); font-weight: 800; padding: 10px 15px; outline: none; }
.ve-search__form input:focus-visible { border-bottom-color: var(--ve-teal); }
.ve-search__submit { width: 56px; height: 56px; border: 0; cursor: pointer; background: url(../images/icons/search-submit.svg) center no-repeat; margin-inline-start: -56px; }

/* ---------- Mobile drawer ---------- */
.ve-drawer { position: fixed; inset: var(--ve-header-h) 0 0 0; z-index: 9998; background: #fff; overflow-y: auto; }
.ve-drawer[hidden] { display: none; }
.ve-drawer ul { list-style: none; margin: 0; padding: 0; }
.ve-drawer__item { border-bottom: 1px solid #ededed; text-align: center; }
.ve-drawer__item > a, .ve-drawer__toggle { display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; padding: 11px 16px; background: none; border: 0; font: inherit; font-size: 16px; color: var(--ve-ink); text-decoration: none; cursor: pointer; }
.ve-drawer__toggle::after { content: ""; width: 12px; height: 7px; background: currentColor; -webkit-mask: url(../images/icons/chevron.svg) center / contain no-repeat; mask: url(../images/icons/chevron.svg) center / contain no-repeat; transition: transform .2s; }
.ve-drawer__toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.ve-drawer__sub { display: none; }
.ve-drawer__item.is-open > .ve-drawer__sub { display: block; }
.ve-drawer__sub .ve-drawer__item { background: var(--ve-ink); border-color: #3a3f42; }
.ve-drawer__sub .ve-drawer__item > a, .ve-drawer__sub .ve-drawer__toggle { color: #fff; }
.ve-drawer__sub .ve-drawer__sub .ve-drawer__item, .ve-drawer__sub .ve-drawer__sub li { background: #34383a; }
.ve-drawer__sub .ve-drawer__sub a { display: block; padding: 10px 16px; color: #fff; text-decoration: none; font-size: 14px; }

/* ---------- Breadcrumb ---------- */
.ve-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0; list-style: none; margin: 0; padding: 0; font-size: 14px; }
.ve-breadcrumb li { display: inline-flex; align-items: center; color: var(--ve-teal); }
.ve-breadcrumb li + li::before { content: ""; width: 11px; height: 11px; margin-inline: 8px; background: currentColor; opacity: .7; -webkit-mask: url(../images/icons/breadcrumb-arrow.svg) center / contain no-repeat; mask: url(../images/icons/breadcrumb-arrow.svg) center / contain no-repeat; }
:dir(rtl) .ve-breadcrumb li + li::before { transform: scaleX(-1); }
.ve-breadcrumb a { color: var(--ve-teal-light); text-decoration: none; }
.ve-breadcrumb a:hover { color: var(--ve-teal); }
.ve-cat-hero .ve-breadcrumb li, .ve-cat-hero .ve-breadcrumb a { color: #fff; }

/* ---------- Category hero (banner + title + “change to cats”) ---------- */
.ve-cat-hero { position: relative; min-height: clamp(300px, 40vw, 572px); display: flex; color: #fff; background: var(--ve-ink); overflow: hidden; margin: 0; }
.ve-cat-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ve-cat-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to left, rgba(0, 0, 0, .45), rgba(0, 0, 0, .05) 70%); }
.ve-cat-hero__inner { position: relative; z-index: 1; width: 100%; max-width: var(--ve-container); margin-inline: auto; padding: calc(var(--ve-header-h) + 20px) 15px 60px; display: grid; grid-template-rows: auto 1fr; box-sizing: border-box; }
.ve-cat-hero__title { align-self: center; margin: 0; color: #fff; font-size: clamp(26px, 3.6vw, 56px); line-height: 1.3; font-weight: 800; max-width: 14ch; }
.ve-species-switch { position: absolute; inset-block-start: calc(var(--ve-header-h) + 30px); inset-inline-end: 50px; color: #fff; text-decoration: none; font-weight: 700; display: inline-flex; align-items: center; gap: 14px; font-size: 16px; }
.ve-species-switch::after { content: ""; width: 32px; height: 32px; background: #fff; -webkit-mask: url(../images/icons/mega-cat.svg) center / contain no-repeat; mask: url(../images/icons/mega-cat.svg) center / contain no-repeat; }
.ve-species-switch--dogs::after { -webkit-mask-image: url(../images/icons/mega-dog.svg); mask-image: url(../images/icons/mega-dog.svg); }
@media (max-width: 991.98px) { .ve-cat-hero__inner { padding-top: 24px; } .ve-species-switch { inset-block-start: 24px; inset-inline-end: 16px; font-size: 14px; } }

/* ---------- Product page ---------- */
.ve-product { max-width: var(--ve-container); margin: 0 auto; padding: 40px 15px 60px; display: grid; grid-template-columns: 4fr 1fr 7fr; grid-template-areas: "crumb crumb crumb" "gallery . summary"; row-gap: 50px; box-sizing: border-box; }
.ve-product > .ve-breadcrumb { grid-area: crumb; }
.ve-product > .ve-gallery { grid-area: gallery; }
.ve-product > .ve-summary { grid-area: summary; }
@media (max-width: 991.98px) {
	.ve-product { grid-template-columns: 1fr; grid-template-areas: "crumb" "summary" "gallery"; row-gap: 30px; padding-top: 24px; }
}
.ve-summary__title { margin: 0 0 30px; font-size: clamp(22px, 2.3vw, 36px); line-height: 1.3; font-weight: 800; color: var(--ve-ink); }
.ve-summary__title bdi { letter-spacing: .03em; }
.ve-sizes { border: 0; margin: 0 0 12px; padding: 0; min-width: 0; }
.ve-sizes__label { font-size: 14px; font-weight: 700; color: var(--ve-ink); padding: 0; margin-block-end: 12px; }
.ve-sizes__list { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.ve-size { cursor: pointer; position: relative; }
.ve-size input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ve-size span { display: inline-block; font-size: clamp(16px, 1.4vw, 22px); font-weight: 800; color: var(--ve-ink); line-height: 1.4; transition: color .2s; }
.ve-size input:checked + span { color: var(--ve-teal); }
.ve-size input:focus-visible + span { outline: 2px solid var(--ve-teal); outline-offset: 4px; }
.ve-size:hover span { color: var(--ve-teal); }
.ve-summary__desc { margin-block: 30px; color: var(--ve-body); font-size: clamp(15px, 1.2vw, 18px); line-height: 1.9; }
.ve-summary__desc p { display: inline; margin: 0; }
.ve-readmore { color: var(--ve-teal); font-weight: 700; text-decoration: none; margin-inline-start: .35em; }
.ve-readmore:hover { color: #000; }
.ve-summary__prices { margin-block: 18px 0; }
.ve-price { display: none; margin: 0; font-size: 22px; font-weight: 800; color: var(--ve-ink); }
.ve-price.is-active { display: block; }
/* Separate rule: a selector list containing :has() is dropped entirely by browsers without :has() support. */
.ve-summary__form:not(:has(input[data-ve-size])) .ve-price { display: block; }
.ve-price del { color: var(--ve-subtle); font-weight: 400; font-size: .8em; margin-inline-end: 8px; }
.ve-stock--out { display: inline-block; margin-inline-start: 10px; font-size: 14px; color: #c00000; font-weight: 700; }
.ve-summary__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.ve-summary__buy .quantity input { width: 72px; height: 48px; border: 1px solid var(--ve-border); border-radius: 24px; text-align: center; font: inherit; font-weight: 700; }

/* Size → gallery/price switch without JS (modern browsers); JS adds .is-active as fallback. */
.ve-gallery__set { display: none; }
.ve-gallery__set.is-active, .ve-gallery__set:only-of-type { display: block; }
.ve-gallery__main { display: block; border: 1px solid #e5e5e5; background: #fff; }
.ve-gallery__main img { display: block; width: 100%; aspect-ratio: 482 / 422; object-fit: contain; }
.ve-gallery__thumbs { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; margin: 16px 0 0; padding: 0; }
.ve-gallery__thumbs a { display: block; width: 145px; border: 1px solid #e5e5e5; background: #fff; }
.ve-gallery__thumbs a[aria-current="true"] { border-color: var(--ve-teal-light); }
.ve-gallery__thumbs img { display: block; width: 100%; aspect-ratio: 145 / 127; object-fit: contain; }
.ve-lightbox { border: 0; padding: 0; max-width: min(92vw, 1100px); max-height: 92vh; background: #fff; }
.ve-lightbox::backdrop { background: rgba(34, 38, 41, .85); }
.ve-lightbox img { display: block; max-width: 100%; max-height: 90vh; object-fit: contain; }
.ve-lightbox__close { position: absolute; inset-block-start: 8px; inset-inline-end: 8px; width: 39px; height: 39px; border: 0; border-radius: 50%; background: #fff url(../images/icons/close.svg) center / 60% no-repeat; cursor: pointer; }

/* Pure-CSS size switch (no JS needed in browsers with :has) */
.ve-product:has(input[data-ve-size="0"]:checked) [data-ve-for-size="0"] { display: block; }
.ve-product:has(input[data-ve-size="1"]:checked) [data-ve-for-size="1"] { display: block; }
.ve-product:has(input[data-ve-size="2"]:checked) [data-ve-for-size="2"] { display: block; }
.ve-product:has(input[data-ve-size="3"]:checked) [data-ve-for-size="3"] { display: block; }
.ve-product:has(input[data-ve-size="4"]:checked) [data-ve-for-size="4"] { display: block; }
.ve-product:has(input[data-ve-size="5"]:checked) [data-ve-for-size="5"] { display: block; }
.ve-product:not(:has(input[data-ve-size]:checked)) [data-ve-for-size="0"] { display: block; }

/* Description tabs on grey band (source .prodDescGray) */
.ve-tabs { background: var(--ve-surface); padding-block: clamp(40px, 5.5vw, 80px); }
.ve-tabs__inner { max-width: var(--ve-container); margin-inline: auto; padding-inline: 15px; box-sizing: border-box; }
.ve-tabs__list { display: none; }
.ve-tabs.is-enhanced .ve-tabs__list { display: flex; flex-wrap: wrap; gap: 0 60px; border-bottom: 1px solid var(--ve-border); max-width: 600px; margin-block-end: 40px; }
.ve-tabs.is-enhanced .ve-tabs__panel-title { display: none; }
.ve-tabs__tab { background: none; border: 0; padding: 0 0 22px; cursor: pointer; font: inherit; font-size: 17px; font-weight: 700; color: var(--ve-ink); display: inline-flex; align-items: center; gap: 12px; }
.ve-tabs__tab::after { content: ""; width: 14px; height: 14px; background: var(--ve-teal); -webkit-mask: url(../images/icons/plus.svg) center / contain no-repeat; mask: url(../images/icons/plus.svg) center / contain no-repeat; }
.ve-tabs__tab[aria-selected="true"] { color: var(--ve-teal); }
.ve-tabs__tab[aria-selected="true"]::after { -webkit-mask: none; mask: none; height: 2px; }
.ve-tabs__panel { max-width: 75%; color: var(--ve-body); font-size: 16px; line-height: 1.95; }
.ve-tabs__panel + .ve-tabs__panel { margin-block-start: 40px; }
.ve-tabs.is-enhanced .ve-tabs__panel + .ve-tabs__panel { margin-block-start: 0; }
.ve-tabs__panel strong { color: var(--ve-ink); }
.ve-tabs__panel p { margin-block: 0 15px; }
.ve-tabs__panel ul { padding-inline-start: 18px; }
.ve-tabs__panel-title { font-size: 18px; margin-block: 0 16px; }
@media (max-width: 991.98px) { .ve-tabs__panel { max-width: none; } .ve-tabs.is-enhanced .ve-tabs__list { gap: 0 28px; } }

/* Technical tables (feeding guides, dosage): RTL, scroll on small screens, never squeeze numbers */
.wp-block-table, .ve-tab-content figure.wp-block-table { overflow-x: auto; margin: 20px 0; -webkit-overflow-scrolling: touch; }
.wp-block-table table { border-collapse: collapse; width: 100%; min-width: 480px; background: #fff; font-size: 14px; }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--ve-border); padding: 10px 12px; text-align: center; white-space: nowrap; }
.wp-block-table tr > :first-child { text-align: start; font-weight: 700; color: var(--ve-ink); white-space: normal; background: var(--ve-surface-2); }

/* ---------- Product cards (related products + listings) ---------- */
.ve-related { max-width: var(--ve-container); margin: 0 auto; padding: clamp(40px, 5vw, 80px) 15px; box-sizing: border-box; }
.ve-related__title { text-align: center; margin: 0 0 50px; font-size: clamp(22px, 2.4vw, 36px); }
.ve-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 50px 30px; }
@media (max-width: 1199.98px) { .ve-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .ve-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 16px; } }
.ve-card { position: relative; display: flex; flex-direction: column; }
.ve-card[hidden] { display: none; }
.ve-card__img img { display: block; width: 100%; aspect-ratio: 420 / 368; object-fit: contain; transition: transform .3s var(--ve-ease); }
.ve-card:hover .ve-card__img img { transform: scale(1.03); }
.ve-card__title { margin: 20px 0 10px; font-size: clamp(14px, 1.3vw, 20px); line-height: 1.5; }
.ve-card__title a { color: var(--ve-ink); text-decoration: none; letter-spacing: .03em; transition: color .2s; }
.ve-card__title a:hover { color: var(--ve-teal); }
.ve-card__desc { color: var(--ve-muted); font-size: 14px; line-height: 1.8; margin: 0 0 16px; }
.ve-card__plus { margin-top: auto; width: 14px; height: 14px; background: var(--ve-teal); -webkit-mask: url(../images/icons/plus.svg) center / contain no-repeat; mask: url(../images/icons/plus.svg) center / contain no-repeat; align-self: flex-end; }
.ve-more { text-align: center; margin: 50px 0 0; }

/* ---------- Category listing: filter card + 3-column compact grid (source “Products” section) ---------- */
.ve-shop__title { margin: clamp(40px, 5vw, 80px) 0 40px; font-size: clamp(24px, 2.4vw, 36px); }
.ve-shop { max-width: 1240px; margin: 0 auto; padding: 0 15px clamp(50px, 6vw, 90px); box-sizing: border-box; display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 50px; align-items: start; }
@media (max-width: 991.98px) { .ve-shop { grid-template-columns: 1fr; gap: 20px; } }
.ve-shop__filters { position: sticky; top: calc(var(--ve-header-h) + 16px); background: #fff; box-shadow: 0 2px 30px rgba(0, 0, 0, .08); padding: 22px 24px 28px; }
.ve-shop__filters > h2 { font-size: 15px; font-weight: 800; margin: 0 0 8px; }
.ve-shop .wp-block-woocommerce-product-filters h3 { font-size: 14px; font-weight: 800; color: var(--ve-ink); margin: 18px 0 8px; }
.ve-shop .wc-block-product-filter-checkbox-list__label { font-size: 13px; color: var(--ve-body); gap: 8px; }
.ve-shop .wc-block-product-filter-checkbox-list__input { accent-color: var(--ve-teal); }
.ve-shop .wc-block-product-filter-checkbox-list__show-more, .ve-shop .wc-block-product-filters__clear-button .wp-block-button__link { font-size: 13px; color: var(--ve-teal); background: none; padding: 4px 0; }
.ve-shop .wc-block-product-filter-removable-chips__item { background: var(--ve-surface-2); border-radius: 28px; color: var(--ve-slate); font-size: 12px; }
.ve-shop__toolbar { margin-block-end: 24px; font-size: 13px; color: var(--ve-muted); }
.ve-shop .wc-block-product-template { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 60px 40px !important; }
@media (max-width: 575.98px) { .ve-shop .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 36px 16px !important; } }
.ve-shop .wc-block-product { position: relative; display: flex; flex-direction: column; padding-block-end: 28px; }
.ve-shop .wc-block-product::after { content: ""; position: absolute; inset-block-end: 0; inset-inline-end: 0; width: 14px; height: 14px; background: var(--ve-teal); -webkit-mask: url(../images/icons/plus.svg) center / contain no-repeat; mask: url(../images/icons/plus.svg) center / contain no-repeat; }
.ve-shop .wc-block-components-product-image { max-width: 170px; }
.ve-shop .wc-block-components-product-image img { aspect-ratio: 1; object-fit: contain; transition: transform .3s var(--ve-ease); }
.ve-shop .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
.ve-shop .wp-block-post-title { font-size: 14px; font-weight: 800; letter-spacing: .03em; line-height: 1.6; margin: 22px 0 6px; text-align: start; }
.ve-shop .wp-block-post-title a { color: var(--ve-ink); text-decoration: none; }
.ve-shop .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ve-shop .wp-block-post-title a:hover { color: var(--ve-teal); }
.ve-shop .wc-block-components-product-price { color: var(--ve-ink); font-weight: 700; font-size: 14px; text-align: start; }
.ve-shop .wp-block-query-pagination { margin-block-start: 60px; justify-content: center; font-weight: 700; gap: 10px; }
.ve-shop .wp-block-query-pagination a { color: var(--ve-ink); text-decoration: none; }
.ve-shop .wp-block-query-pagination .current { color: var(--ve-teal); }

/* ---------- Footer (source: #222629) ---------- */
.ve-footer { background: var(--ve-ink); color: var(--ve-subtle); font-size: 14px; letter-spacing: 0; }
.ve-footer a { color: var(--ve-footer-link); text-decoration: none; font-weight: 700; }
.ve-footer a:hover { color: #fff; }
.ve-footer .ve-logo img { height: 64px; width: auto; display: block; }
.ve-footer__copy { font-size: 14px; }

/* Footer layout (source: top band with logo, tagline and links; darker bottom band with Vet Planet and copyright) */
.wp-site-blocks > footer.ve-footer { margin-block-start: 0; }
.ve-footer { padding: 30px 0 0; }
.ve-footer p { margin: 0; }
.ve-footer__main { padding: 0 16px 80px; }
.ve-footer__row { margin-block: 0 !important; gap: 24px; flex-wrap: nowrap !important; }
.ve-footer__row > .wp-block-column:first-child { flex: 1 1 0 !important; }
.ve-footer__row > .wp-block-column:last-child { flex: 0 0 200px !important; padding-top: 24px; align-self: flex-start; }
.ve-footer__row > .wp-block-column:first-child > .wp-block-group { gap: 48px; align-items: center; padding-top: 9px; }
.ve-footer__tagline { font-size: 14px; line-height: 24px; color: var(--ve-subtle); }
.ve-footer__menu .wp-block-navigation__container { gap: 6px; }
.ve-footer__menu a { font-size: 14px; line-height: 1.5; }
.ve-footer__bottom { background: #171a1c; padding: 20px 16px 0; }
.ve-footer__bottom > .wp-block-group { flex-direction: column; align-items: flex-start !important; gap: 0; }
.ve-footer__bottom > .wp-block-group > .wp-block-group { gap: 24px; align-items: center; }
.ve-footer__bottom .ve-logo img { height: 53px; }
.ve-footer__bottom .ve-footer__copy { padding: 16px 0; }
@media (max-width: 781.98px) {
	.ve-footer { font-size: 13px; }
	.ve-footer__main { padding-bottom: 50px; }
	.ve-footer__row { flex-direction: column; gap: 40px; }
	.ve-footer__row > .wp-block-column:first-child, .ve-footer__row > .wp-block-column:last-child { flex: 0 0 auto !important; width: 100%; }
	.ve-footer__row > .wp-block-column:last-child { padding-top: 0; }
	.ve-footer__row > .wp-block-column:first-child > .wp-block-group { flex-direction: column; gap: 24px; padding-top: 0; }
	.ve-footer .ve-logo img { height: 54px; }
	.ve-footer__tagline { text-align: center; font-size: 13px; }
	.ve-footer__tagline br { display: none; }
	.ve-footer__tagline bdi { margin-left: .3em; } /* physical: the Latin name sits at the right in RTL text */
	.ve-footer__bottom > .wp-block-group { align-items: center !important; }
	.ve-footer__bottom > .wp-block-group > .wp-block-group { flex-direction: column; gap: 12px; text-align: center; }
	.ve-footer__bottom .ve-logo img { height: 53px; }
	.ve-footer__bottom .ve-footer__copy { text-align: center; font-size: 13px; padding: 16px 0 calc(24px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- WooCommerce notices / cart & checkout blocks in brand style ---------- */
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--ve-teal) !important; color: #fff !important; border-radius: 28px !important; font-weight: 800 !important; }
.wc-block-components-button:not(.is-link):hover { background: var(--ve-ink) !important; }
.woocommerce-notices-wrapper .woocommerce-message, .woocommerce-message { border-top-color: var(--ve-teal); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ======================================================================
 * Landing sections (Stage 4) — values from the source theme CSS
 * hero_carousel, fullBgSection, text_image, globalTitle, competences,
 * articlesBlock, switch, findProduct, blockCounter, blockContact, columns.
 * ==================================================================== */

.ve-landing > *, .ve-cat-landing > * { margin-block: 0; }
.ve-section-title, .is-style-ve-global-title {
	color: var(--ve-ink); font-size: 36px; line-height: 1.45; font-weight: 900; text-align: center;
	margin: 0 auto; padding: 90px 15px 80px; max-width: var(--ve-container); box-sizing: border-box;
}
@media (max-width: 1639.98px) { .is-style-ve-global-title { padding-block: 60px; } }
@media (max-width: 575.98px) { .ve-section-title, .is-style-ve-global-title { font-size: 24px; padding: 45px 15px 40px; } }

/* ---------- Mode-dependent sections (home page) ---------- */
html:not(.ve-mode-cats) .ve-only-cats, html.ve-mode-cats .ve-only-dogs { display: none !important; }

/* ---------- Hero carousel (category / page heroes) ---------- */
.ve-hero { position: relative; margin: 0; }
.ve-hero .ve-hero__track { display: grid; }
.ve-hero .ve-hero__track > .wp-block-cover { grid-area: 1 / 1; }
.ve-hero.is-carousel .ve-hero__track > .wp-block-cover { opacity: 0; transition: opacity .8s var(--ve-ease); }
.ve-hero.is-carousel .ve-hero__track > .wp-block-cover.is-active { opacity: 1; z-index: 1; }
.ve-hero__dots { position: absolute; z-index: 5; inset-block-end: 40px; inset-inline: 0; display: flex; justify-content: center; gap: 15px; }
.ve-hero__dots button { width: 19px; height: 19px; border-radius: 50%; border: 1px solid #fff; background: transparent; padding: 0; cursor: pointer; }
.ve-hero__dots button[aria-current="true"] { background: #fff; }
@media (max-width: 767.98px) { .ve-hero__dots { display: none; } }

.wp-block-cover.is-style-ve-hero-slide { min-height: 660px; padding: 0; color: #fff; align-items: center; }
@media (max-width: 1639.98px) { .wp-block-cover.is-style-ve-hero-slide { min-height: 572px; } }
@media (max-width: 991.98px) { .wp-block-cover.is-style-ve-hero-slide { min-height: 460px; } }
@media (max-width: 575.98px) { .wp-block-cover.is-style-ve-hero-slide { min-height: 125vw; align-items: flex-end; } }
.wp-block-cover.is-style-ve-hero-slide::before, .wp-block-cover.is-style-ve-hero-slide::after { content: ""; position: absolute; inset-inline: 0; top: 0; z-index: 1; pointer-events: none; }
.wp-block-cover.is-style-ve-hero-slide::before { height: 289px; background: linear-gradient(#000, transparent); opacity: .39; }
.wp-block-cover.is-style-ve-hero-slide::after { height: 100%; background: #000; opacity: .15; }
.wp-block-cover.is-style-ve-hero-slide .wp-block-cover__inner-container { z-index: 2; width: 100%; max-width: var(--ve-container); margin-inline: auto; padding: calc(var(--ve-header-h) + 48px) 15px 48px; box-sizing: border-box; }
.wp-block-cover.is-style-ve-hero-slide .wp-block-cover__inner-container > * { max-width: 620px; }
.ve-hero__title { color: inherit; font-size: 56px; line-height: 1.25; font-weight: 900; margin: 0 0 24px; }
.ve-hero__subtitle { color: inherit; font-size: 28px; line-height: 1.4; font-weight: 400; margin: 0; }
@media (max-width: 1639.98px) { .ve-hero__title { font-size: 46px; } .ve-hero__subtitle { font-size: 24px; } }
@media (max-width: 991.98px) { .ve-hero__title { font-size: 34px; } }
@media (max-width: 575.98px) { .ve-hero__title { font-size: 26px; margin-bottom: 12px; } .ve-hero__subtitle { font-size: 18px; } .wp-block-cover.is-style-ve-hero-slide .wp-block-cover__inner-container { padding-bottom: 90px; } }
.ve-cover-picture { display: contents; }

/* Category hero with slides: breadcrumb + switch overlay */
.ve-cat-hero.has-slides { display: block; min-height: 0; background: none; }
.ve-cat-hero.has-slides::after { content: none; }
.ve-cat-hero.has-slides .ve-hero { width: 100%; }
.ve-cat-hero__overlay { position: absolute; inset-inline: 0; top: 0; z-index: 6; max-width: var(--ve-container); margin-inline: auto; padding: calc(var(--ve-header-h) + 20px) 15px 0; box-sizing: border-box; pointer-events: none; }
.ve-cat-hero__overlay > * { pointer-events: auto; }
@media (max-width: 991.98px) {
	.ve-cat-hero__overlay { padding-top: 16px; bottom: 0; }
	.ve-cat-hero.has-slides .ve-species-switch { inset-block-start: auto; inset-block-end: 24px; inset-inline: auto; left: 50%; transform: translateX(-50%); white-space: nowrap; }
	.ve-cat-hero.has-slides .ve-hero__dots { inset-block-end: 68px; }
	.ve-cat-hero.has-slides .wp-block-cover.is-style-ve-hero-slide .wp-block-cover__inner-container { padding-bottom: 110px; }
}

/* ---------- Full-width background sections (fullBgSection) ---------- */
.wp-block-cover.is-style-ve-section, .wp-block-cover.is-style-ve-section-small {
	min-height: 844px; padding: 120px 0; background-color: #cdcdcd; color: var(--ve-ink); align-items: center; margin: 0;
}
.wp-block-cover.is-style-ve-section-small { min-height: 660px; }
@media (max-width: 1639.98px) { .wp-block-cover.is-style-ve-section { min-height: 700px; } .wp-block-cover.is-style-ve-section-small { min-height: 560px; } }
@media (max-width: 1365.98px) { .wp-block-cover.is-style-ve-section { min-height: 0; } }
@media (max-width: 767.98px) {
	.wp-block-cover.is-style-ve-section, .wp-block-cover.is-style-ve-section-small { min-height: 0; padding: 260px 0 40px; align-items: flex-end; }
	.wp-block-cover.ve-pos-center { padding: 60px 0 40px; }
}
.wp-block-cover.ve-shadow::after { content: ""; position: absolute; inset: 0; background: #000; opacity: .15; z-index: 1; }
.wp-block-cover.is-style-ve-section .wp-block-cover__inner-container, .wp-block-cover.is-style-ve-section-small .wp-block-cover__inner-container {
	z-index: 2; width: 100%; max-width: var(--ve-container); margin-inline: auto; padding-inline: 15px; box-sizing: border-box; color: #5f5f5f;
}
.wp-block-cover:not(.is-light).is-style-ve-section .wp-block-cover__inner-container, .wp-block-cover:not(.is-light).is-style-ve-section-small .wp-block-cover__inner-container { color: inherit; }
.wp-block-cover.is-light.is-style-ve-section .wp-block-cover__inner-container { color: #5f5f5f; }
.wp-block-cover[class*="is-style-ve-section"] .wp-block-cover__inner-container > * { max-width: 520px; }
@media (min-width: 1640px) { .wp-block-cover[class*="is-style-ve-section"] .wp-block-cover__inner-container > * { max-width: 627px; } }
.wp-block-cover.ve-pos-center .wp-block-cover__inner-container > * { margin-inline: auto; text-align: center; }
.wp-block-cover.ve-pos-center .wp-block-cover__inner-container > .ve-cover-title { max-width: 730px; }
.ve-cover-title { margin: 0 0 48px; font-weight: 900; color: var(--ve-ink); }
.wp-block-cover:not(.is-light) .ve-cover-title { color: inherit; }
.ve-cover-title--big { font-size: 48px; line-height: 1.45; }
.ve-cover-title--small { font-size: 26px; line-height: 1.4; }
@media (max-width: 1639.98px) { .ve-cover-title--big { font-size: 42px; line-height: 1.3; } }
@media (max-width: 1365.98px) { .ve-cover-title--big { font-size: 40px; } }
@media (max-width: 767.98px) { .ve-cover-title--big { font-size: 34px; } .ve-cover-title { margin-bottom: 16px; } }
@media (max-width: 575.98px) { .ve-cover-title--small { font-size: 22px; } }
.wp-block-cover[class*="is-style-ve-section"] p { font-size: 16px; line-height: 1.75; margin: 0 0 1rem; }
@media (max-width: 767.98px) { .wp-block-cover[class*="is-style-ve-section"] p { font-size: 14px; } }
.wp-block-cover[class*="is-style-ve-section"] .wp-block-buttons { margin-top: 48px; }
.wp-block-media-text.is-style-ve-text-image + .wp-block-cover[class*="is-style-ve-section"] { margin-top: 3rem; }
@media (max-width: 575.98px) { .wp-block-media-text.is-style-ve-text-image + .wp-block-cover[class*="is-style-ve-section"] { margin-top: 1rem; } }

/* ---------- Text + image (text_image_container) ---------- */
.wp-block-media-text.is-style-ve-text-image { max-width: 1960px; margin-inline: auto; grid-template-columns: 50% 1fr; padding-block: 48px; box-sizing: border-box; }
.wp-block-media-text.is-style-ve-text-image.has-media-on-the-right { grid-template-columns: 1fr 50%; }
.wp-block-media-text.is-style-ve-text-image .wp-block-media-text__media { padding-inline-end: 48px; box-sizing: border-box; }
.wp-block-media-text.is-style-ve-text-image.has-media-on-the-right .wp-block-media-text__media { padding-inline: 48px 0; }
.wp-block-media-text.is-style-ve-text-image .wp-block-media-text__media img { width: 100%; height: auto; }
.wp-block-media-text.is-style-ve-text-image .wp-block-media-text__content { padding: 48px 0; max-width: 738px; }
.wp-block-media-text.is-style-ve-text-image.has-media-on-the-right .wp-block-media-text__content { justify-self: end; padding-inline-start: 15px; }
.wp-block-media-text.is-style-ve-text-image:not(.has-media-on-the-right) .wp-block-media-text__content { padding-inline-end: 48px; }
.wp-block-media-text.is-style-ve-text-image h2 { color: var(--ve-ink); font-size: 26px; line-height: 1.4; font-weight: 900; margin: 0 0 2rem; }
.wp-block-media-text.is-style-ve-text-image p, .wp-block-media-text.is-style-ve-text-image li { color: #5f5f5f; font-size: 16px; line-height: 1.75; }
@media (max-width: 991.98px) {
	.wp-block-media-text.is-style-ve-text-image, .wp-block-media-text.is-style-ve-text-image.has-media-on-the-right { grid-template-columns: 100% !important; padding-block: 0; }
	.wp-block-media-text.is-style-ve-text-image .wp-block-media-text__media { grid-column: 1; grid-row: 1 !important; padding: 0 !important; }
	.wp-block-media-text.is-style-ve-text-image .wp-block-media-text__content { grid-column: 1; grid-row: 2 !important; padding: 24px 15px !important; max-width: none; justify-self: stretch; }
}
@media (max-width: 575.98px) { .wp-block-media-text.is-style-ve-text-image h2 { font-size: 22px; margin-bottom: 1.2rem; } }

/* ---------- Category tiles (competences / relatedCategory) ---------- */
.ve-tiles { max-width: var(--ve-container); margin-inline: auto; padding: 0 15px 60px; box-sizing: border-box; }
.ve-tiles__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 30px; }
.ve-tile { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ve-tile__img { display: block; width: min(284px, 100%); aspect-ratio: 1; }
.ve-tile__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.ve-tile__title { color: var(--ve-ink) !important; font-size: 26px; line-height: 1.4; font-weight: 900; text-decoration: none; padding: 24px 0; }
.ve-tile__title:hover { color: var(--ve-teal) !important; }
.ve-tiles .ve-readmore { position: relative; padding-inline-end: 30px; font-size: 16px; margin: 0; }
.ve-tiles .ve-readmore::after { content: ""; position: absolute; inset-inline-end: 2px; top: 50%; width: 15px; height: 15px; margin-top: -7px; background: url(../images/icons/arrow-teal.svg) no-repeat 100% 50%; transition: all .3s; }
:dir(rtl) .ve-tiles .ve-readmore::after { transform: scaleX(-1); background-position: 0 50%; }
.ve-tiles .ve-readmore:hover::after { inset-inline-end: -6px; width: 23px; }
.ve-tiles--siblings, .ve-related-cats { background: var(--ve-surface); max-width: none; padding: 100px 15px; }
.ve-related-cats .ve-tiles__list, .ve-related-cats .ve-section-title { max-width: var(--ve-container); margin-inline: auto; }
.ve-related-cats .ve-section-title { padding-top: 0; padding-bottom: 50px; }
.ve-related-cats .ve-tiles__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ve-related-cats .ve-tile__img { width: min(240px, 100%); }
@media (max-width: 1639.98px) { .ve-tile__title { font-size: 22px; } .ve-related-cats { padding: 80px 15px 60px; } }
@media (max-width: 991.98px) { .ve-tiles__list, .ve-related-cats .ve-tiles__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; } .ve-tile__img { padding-inline: 25px; box-sizing: border-box; } }
@media (max-width: 575.98px) { .ve-tile__title { font-size: 16px; padding: 12px 0; } .ve-tile__img { padding: 0; } .ve-related-cats { padding: 40px 15px 0; } }

/* ---------- Articles (articlesBlock) ---------- */
.ve-articles-block { max-width: var(--ve-container); margin-inline: auto; padding: 100px 15px; box-sizing: border-box; }
.ve-articles-block .ve-section-title { padding: 0 0 48px; }
.ve-news { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.ve-news__link { display: flex; flex-direction: column; height: 100%; background: var(--ve-surface); text-decoration: none; color: inherit; padding-bottom: 16px; }
.ve-news__img { display: block; overflow: hidden; aspect-ratio: 482 / 244; }
.ve-news__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1); transition: transform 2s; display: block; }
.ve-news__link:hover .ve-news__img img { transform: scale(1.2); }
.ve-news__body { padding: 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ve-news__date { color: var(--ve-muted); font-size: 14px; line-height: 1.7; }
.ve-news__title { color: var(--ve-ink); font-size: 16px; line-height: 1.6; font-weight: 900; }
.ve-news__plus { align-self: flex-end; width: 14px; height: 14px; margin-inline-end: 24px; background: url(../images/icons/plus.svg) no-repeat 50%; }
@media (max-width: 1639.98px) { .ve-articles-block { padding-block: 60px; } }
@media (max-width: 991.98px) { .ve-news { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; } }
@media (max-width: 575.98px) { .ve-news { grid-template-columns: 1fr; } .ve-articles-block { padding-block: 35px; } }
.ve-articles-block .ve-more { text-align: center; margin: 48px 0 0; }

/* ---------- Home hero video ---------- */
.ve-home-hero { position: relative; min-height: 872px; padding-bottom: 100px; display: flex; align-items: flex-end; overflow: hidden; background: var(--ve-ink); margin: 0; }
.ve-home-hero::before, .ve-home-hero::after { content: ""; position: absolute; inset-inline: 0; top: 0; z-index: 1; }
.ve-home-hero::before { height: 289px; background: linear-gradient(#000, transparent); opacity: .39; }
.ve-home-hero::after { height: 100%; background: #000; opacity: .15; }
.ve-home-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ve-home-hero__poster, .ve-home-hero__poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; margin: 0; }
.ve-home-hero__inner { position: relative; z-index: 2; width: 100%; max-width: var(--ve-container); margin-inline: auto; padding-inline: 15px; box-sizing: border-box; }
.ve-home-hero__title { margin: 0; color: #fff; text-align: center; font-size: 60px; line-height: 1.3; font-weight: 900; }
@media (max-width: 1639.98px) { .ve-home-hero { min-height: 600px; } .ve-home-hero__title { font-size: 44px; } }
@media (max-width: 767.98px) { .ve-home-hero__title { font-size: 28px; } }
@media (max-width: 575.98px) { .ve-home-hero { min-height: 145vw; } }

/* ---------- Dog / Cat switch ---------- */
.ve-switch { position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center; margin: -55px auto 55px; width: max-content; background: #fff; border-radius: 56.5px; padding: 20px 20px 12px; }
.ve-switch__btn { border: 0; background: none; padding: 0; cursor: pointer; }
.ve-switch__track { position: relative; display: block; width: 160px; height: 74px; border: 1px solid #ededed; border-radius: 42px; box-shadow: inset 1px 2px 7px rgba(0, 0, 0, .15); background: #fff url(../images/icons/mode-track-dog.svg) no-repeat 50%; transition: background-color .5s; }
html.ve-mode-cats .ve-switch__track { background-image: url(../images/icons/mode-track-cat.svg); }
.ve-switch__knob { position: absolute; top: 3px; inset-inline-start: 4px; width: 66px; height: 66px; border: 2px solid var(--ve-teal); border-radius: 50%; box-sizing: border-box; transition: inset-inline-start .5s ease; }
html.ve-mode-cats .ve-switch__knob { inset-inline-start: 88px; }
:dir(rtl) .ve-switch__track { transform: scaleX(-1); }
.ve-switch__label { color: var(--ve-teal); font-weight: 900; font-size: 14px; margin-top: 8px; }
@media (max-width: 575.98px) { .ve-switch { margin-bottom: 35px; } }

/* ---------- Quiz (findProduct) ---------- */
.ve-quiz { background: var(--ve-surface); padding: 100px 15px; margin: 0; }
.ve-quiz .ve-section-title { padding: 0 0 48px; }
.ve-quiz__progress, .ve-quiz__step { max-width: 828px; margin-inline: auto; }
.ve-quiz__progress { display: flex; align-items: center; gap: 24px; }
.ve-quiz__start { color: var(--ve-teal); font-weight: 900; font-size: 20px; }
.ve-quiz__bar { flex: 1; height: 32px; border-radius: 16.5px; background: var(--ve-surface); border: .5px solid #c8e2e0; box-shadow: inset 0 0 7px 0 rgba(66, 68, 90, .28); overflow: hidden; display: flex; }
.ve-quiz__fill { background: var(--ve-teal); border-radius: 16.5px; transition: width .6s ease; }
.ve-quiz__goal { width: 31px; height: 30px; background: url(../images/quiz-goal.svg) no-repeat 50% / contain; }
.ve-quiz__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 72px 0 48px; }
.ve-quiz__q { flex: 1; margin: 0; text-align: center; color: var(--ve-ink); font-size: 26px; line-height: 1.4; font-weight: 400; }
.ve-quiz__prev, .ve-quiz__next { background: var(--ve-ink); color: #fff; border: 0; border-radius: 28px; height: 56px; padding: 0 35px; font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; text-decoration: none; transition: background .2s; }
.ve-quiz__prev:hover, .ve-quiz__next:hover { background: #454b4e; color: #fff; }
.ve-quiz__prev:disabled { visibility: hidden; }
.ve-quiz__next:disabled, .ve-quiz__finish[aria-disabled="true"] { background: #d1d1d1; cursor: not-allowed; }
.ve-quiz__opts { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: 24px; max-width: 552px; margin-inline: auto; }
.ve-quiz__opts--3 { --n: 3; }
.ve-quiz__opts--4 { --n: 4; max-width: 690px; }
.ve-quiz__opts--8, .ve-quiz__opts--6, .ve-quiz__opts--5, .ve-quiz__opts--7 { --n: 4; max-width: 828px; }
.ve-quiz__opt { background: none; border: 0; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 16px; color: var(--ve-subtle); font: inherit; font-size: 16px; font-weight: 700; text-align: center; padding: 8px; }
.ve-quiz__icon svg { max-width: 100%; height: auto; display: block; }
.ve-quiz__icon svg path, .ve-quiz__icon svg rect { transition: fill .2s; }
.ve-quiz__opt:hover { color: #d9d9d9; }
.ve-quiz__opt:hover svg path, .ve-quiz__opt:hover svg rect { fill: #d9d9d9; }
.ve-quiz__opt[aria-checked="true"] { color: var(--ve-teal); }
.ve-quiz__opt[aria-checked="true"] svg path, .ve-quiz__opt[aria-checked="true"] svg rect { fill: var(--ve-teal); }
@media (max-width: 767.98px) {
	.ve-quiz__head { flex-wrap: wrap; margin: 40px 0 24px; }
	.ve-quiz__q { order: -1; flex-basis: 100%; }
	.ve-quiz__opts--4, .ve-quiz__opts--8, .ve-quiz__opts--6 { --n: 2; }
}
@media (max-width: 575.98px) { .ve-quiz { padding-block: 40px; } .ve-quiz__q { font-size: 22px; } .ve-quiz__opt { font-size: 13px; } .ve-quiz__start { font-size: 18px; } }

/* ---------- Counters (blockCounter) ---------- */
.wp-block-columns.is-style-ve-counters { background: url(../images/counters_e5c338ca7d00d7d0d2b26d96649b8b0e.jpg) no-repeat 50% / cover; min-height: 800px; margin: 0; padding: 48px max(15px, calc((100% - var(--ve-container)) / 2)) 80px; box-sizing: border-box; flex-wrap: wrap !important; justify-content: center; align-content: center; gap: 0; }
.wp-block-columns.is-style-ve-counters > .wp-block-column { flex: 0 0 33% !important; padding-top: 48px; }
.ve-counter__num { color: var(--ve-teal-light); font-size: 110px; line-height: 1; font-weight: 900; text-align: center; margin: 0; direction: ltr; unicode-bidi: isolate; }
.ve-counter__text { color: #fff; font-size: 26px; line-height: 1.4; font-weight: 900; text-align: center; margin: 32px 0 0; }
@media (max-width: 1365.98px) { .ve-counter__num { font-size: 80px; } .ve-counter__text { font-size: 22px; } }
@media (max-width: 991.98px) { .wp-block-columns.is-style-ve-counters > .wp-block-column { flex-basis: 100% !important; } }
@media (max-width: 575.98px) { .ve-counter__num { font-size: 60px; } .ve-counter__text { font-size: 18px; } }

/* ---------- Feature columns (partnership) ---------- */
.wp-block-columns.is-style-ve-features { max-width: var(--ve-container); margin: 0 auto; padding: 0 15px 48px; box-sizing: border-box; gap: 30px; }
.wp-block-columns.is-style-ve-features .ve-feature__icon img { width: auto; max-height: 120px; }
.wp-block-columns.is-style-ve-features h3 { color: var(--ve-ink); font-size: 26px; line-height: 1.4; font-weight: 900; margin: 48px 0 16px; }
.wp-block-columns.is-style-ve-features p { color: #5f5f5f; font-size: 16px; line-height: 1.65; }
@media (max-width: 575.98px) { .wp-block-columns.is-style-ve-features h3 { font-size: 20px; margin-top: 24px; } }

/* ---------- Vet Planet big link ---------- */
.ve-vetplanet { justify-content: center; margin: 0; }
.ve-vetplanet .wp-block-button__link { background: #fff; color: var(--ve-ink); font-size: 36px; font-weight: 900; border-radius: 0; width: 100%; padding: 40px 0; }
.ve-vetplanet .wp-block-button { width: 100%; }
.ve-vetplanet .wp-block-button__link:hover { background: var(--ve-teal); color: #fff; }
@media (max-width: 575.98px) { .ve-vetplanet .wp-block-button__link { font-size: 22px; } }

/* ---------- Contact form (blockContact) ---------- */
.ve-contact { background: url(../images/contact_form_bg_ae8c3b344b24f1f837cc17df529e3dc5.jpg) no-repeat 50% / cover; padding: 100px 15px; margin: 0; }
.ve-contact--white { background: #fff; }
.ve-contact > * { max-width: 930px; margin-inline: auto; }
.ve-contact .ve-section-title { padding: 0 0 24px; }
.ve-contact__mail { text-align: center; margin: 0 auto 48px; }
.ve-contact__mail a { color: var(--ve-teal); font-size: 26px; line-height: 1.6; font-weight: 900; text-decoration: none; }
.ve-contact__mail a:hover { text-decoration: underline; }
.ve-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
.ve-contact input[type="text"], .ve-contact input[type="email"], .ve-contact textarea {
	width: 100%; box-sizing: border-box; background: transparent; border: 1px solid var(--ve-border); color: #5f5f5f; font: inherit; font-size: 16px; padding: 0 20px; height: 56px; margin: 0 0 30px; border-radius: 0;
}
.ve-contact textarea { height: 228px; padding: 12px 20px; resize: vertical; }
.ve-contact input:focus, .ve-contact textarea:focus { border-color: var(--ve-teal); outline: none; }
.ve-contact__form p { margin: 0; }
.ve-contact__consent { display: flex; gap: 12px; align-items: flex-start; color: #5f5f5f; font-size: 14px; line-height: 1.7; }
.ve-contact__consent input { width: 18px; height: 18px; accent-color: var(--ve-teal); margin-top: 3px; flex: none; }
.ve-contact__consent a { color: var(--ve-teal); }
.ve-contact__submit { text-align: center; margin-top: 30px !important; }
.ve-contact__hp { position: absolute !important; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ve-contact__notice { text-align: center; padding: 12px 16px; margin: 0 auto 24px !important; border-radius: 6px; font-weight: 700; }
.ve-contact__notice.is-ok { background: #e3f6f4; color: #00756c; }
.ve-contact__notice.is-error { background: #fdeaea; color: #a32020; }
@media (max-width: 767.98px) { .ve-contact__grid { grid-template-columns: 1fr; } .ve-contact textarea { height: 140px; } }
@media (max-width: 575.98px) { .ve-contact { padding: 35px 15px; } .ve-contact__mail a { font-size: 18px; } .ve-contact input[type="text"], .ve-contact input[type="email"] { height: 44px; margin-bottom: 16px; } }

/* ---------- Interactive figure (veterinary diets) ---------- */
.ve-bodymap { background: var(--ve-surface); padding: 48px max(15px, calc((100% - var(--ve-container)) / 2)); display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; margin: 0; box-sizing: border-box; }
.ve-bodymap__figure { position: relative; }
.ve-bodymap__figure img { display: block; width: 100%; height: auto; }
.ve-bodymap__dot { position: absolute; width: 8.7%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; border: 0; background: #9f9f9f; opacity: .75; cursor: pointer; transition: all .3s; padding: 0; }
.ve-bodymap__dot:hover, .ve-bodymap__dot[aria-expanded="true"] { background: var(--ve-teal); opacity: 1; }
.ve-bodymap__panel h2 { color: var(--ve-ink); font-size: 36px; line-height: 1.3; font-weight: 900; margin: 0; }
.ve-bodymap__panel p { color: #5f5f5f; font-size: 18px; line-height: 1.6; margin: 20px 0; }
@media (max-width: 767.98px) { .ve-bodymap { grid-template-columns: 1fr; } .ve-bodymap__panel h2 { font-size: 24px; } .ve-bodymap__panel p { font-size: 16px; } }

/* ---------- Pages ---------- */
.ve-landing .ve-product-grid { padding-top: 0; }
.ve-landing .wp-block-buttons.ve-vetplanet { padding: 0; }
/* Cover text block keeps the source's physical side (photos are composed around it); text itself stays RTL. */
.wp-block-cover.is-position-center-left .wp-block-cover__inner-container > * { margin-left: 0; margin-right: auto; }
.wp-block-cover.is-position-center-right .wp-block-cover__inner-container > * { margin-right: 0; margin-left: auto; }
@media (max-width: 767.98px) { .wp-block-cover.is-position-center-left .wp-block-cover__inner-container > *, .wp-block-cover.is-position-center-right .wp-block-cover__inner-container > * { margin-inline: 0; max-width: none; } }
.wp-block-cover[class*="is-style-ve-section"]:not(.is-light), .wp-block-cover[class*="is-style-ve-section"]:not(.is-light) .wp-block-cover__inner-container, .wp-block-cover[class*="is-style-ve-section"]:not(.is-light) .ve-cover-title { color: #fff; }
.wp-block-cover.has-custom-content-position[class*="is-style-ve-"] .wp-block-cover__inner-container { width: 100%; max-width: var(--ve-container); margin-inline: auto; }
.ve-cover-picture > img.wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: none; box-shadow: none; object-fit: cover; z-index: 0; }
.ve-cat-hero.has-slides .ve-hero, .ve-landing > .ve-hero { overflow: hidden; }
.ve-hero__subtitle--small { font-size: 16px !important; line-height: 1.65; }
.wp-block-cover.is-light.is-style-ve-hero-slide::before, .wp-block-cover.is-light.is-style-ve-hero-slide::after { content: none; }
.wp-block-cover.is-light.is-style-ve-hero-slide .ve-hero__title { color: var(--ve-ink); }

/* Article category filter (source: grouped Dog / Cats link lists) */
.ve-afilter { display: flex; flex-direction: column; gap: 14px; align-items: center; margin: 8px auto 40px; }
.ve-afilter__group { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; }
.ve-afilter__head { font-weight: 700; color: var(--ve-ink); font-size: 1rem; min-width: 4em; text-align: center; }
.ve-afilter__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ve-afilter__link { display: inline-block; padding: 6px 16px; border: 1px solid var(--ve-teal-light); border-radius: 999px; color: var(--ve-slate); font-size: .875rem; text-decoration: none; transition: background-color .2s, color .2s, border-color .2s; }
.ve-afilter__link:hover, .ve-afilter__link:focus-visible { border-color: var(--ve-teal); color: var(--ve-teal); }
.ve-afilter__link.is-active { background: var(--ve-teal); border-color: var(--ve-teal); color: #fff; }
@media (max-width: 600px) {
	.ve-afilter__group { flex-direction: column; gap: 8px; }
	.ve-afilter__link { padding: 5px 12px; font-size: .8125rem; }
}
/* Article cards: titles are h2 (correct outline under the page h1) at the former h3 size */
.ve-articles .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); }

/* Pages that open with a full-width hero under the transparent header: no default block gap above main
   (it collapsed through body and showed as a white strip above the hero). */
body.home .wp-site-blocks > main,
body.tax-product_cat .wp-site-blocks > main,
body.page-template-page-landing .wp-site-blocks > main { margin-block-start: 0; }
