/*
Theme Name: VI-EX
Theme URI: https://vi-ex-eshop.com/
Description: Vlastní šablona Visual Expert. Interiérové vůně CARPEX, profesionální aroma difuzéry, italská kosmetika NEFÉL.
Author: Visual Expert
Author URI: https://vi-ex-eshop.com/
Template: generatepress
Version: 1.66.0
Text Domain: vi-ex
*/

/* =========================================================
   1. DESIGNOVÉ PROMĚNNÉ
   Jediné místo, kde se mění barvy, písma a rozměry.
   ========================================================= */

:root {
	--vex-accent:      #FF0066;
	--vex-accent-tmav: #E80059;

	--vex-ink:         #12100F;
	--vex-ink-2:       #3D3733;
	--vex-ink-3:       #6B625B;

	--vex-paper:       #FBF8F3;
	--vex-paper-2:     #F3EDE4;
	--vex-white:       #FFFFFF;
	--vex-line:        #E2D9CB;

	--vex-night:       #0A0908;
	--vex-night-2:     #141110;

	--vex-gold:        #F0B93C;
	--vex-gold-2:      #FFDE9B;
	--vex-green:       #7BF0A8;

	--vex-display:     "Fraunces", Georgia, serif;
	--vex-sans:        "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
	--vex-mono:        "IBM Plex Mono", ui-monospace, monospace;

	--vex-wrap:        1280px;
	--vex-gut:         clamp(20px, 5vw, 60px);
	--vex-sekce:       clamp(72px, 10vw, 132px);
}

/* =========================================================
   2. ZÁKLAD
   ========================================================= */

* { box-sizing: border-box; }

body {
	font-family: var(--vex-sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--vex-ink);
	background: var(--vex-paper);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5 {
	font-family: var(--vex-display);
	font-weight: 300;
	line-height: 1.06;
	letter-spacing: -0.03em;
	color: var(--vex-ink);
	margin: 0 0 .5em;
}

h1 { font-size: clamp(38px, 5.6vw, 66px); }
h2 { font-size: clamp(30px, 4vw, 48px); }
h3 { font-size: clamp(22px, 2.4vw, 30px); }
h4 { font-size: 20px; }

p { margin: 0 0 1em; }

a {
	color: var(--vex-ink);
	text-decoration: none;
	transition: color .24s ease;
}
a:hover { color: var(--vex-accent); }

:focus-visible {
	outline: 2px solid var(--vex-accent);
	outline-offset: 3px;
}

img { max-width: 100%; height: auto; }

/* =========================================================
   3. ROZVRŽENÍ
   ========================================================= */

.vex-wrap,
.site-content .container,
.inside-article {
	max-width: var(--vex-wrap);
	margin-inline: auto;
}

.vex-sekce { padding-block: var(--vex-sekce); }

.vex-tmava {
	background: var(--vex-night-2);
	color: rgba(255, 255, 255, .9);
}
.vex-tmava h1,
.vex-tmava h2,
.vex-tmava h3 { color: #fff; }

/* =========================================================
   4. TLAČÍTKA
   ========================================================= */

.vex-btn,
.wp-block-button__link,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 54px;
	padding: 0 30px;
	border-radius: 99px;
	font-family: var(--vex-sans);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	border: 1.5px solid transparent;
	background: var(--vex-accent);
	color: #fff;
	cursor: pointer;
	transition: .24s ease;
	white-space: nowrap;
	text-transform: none;
}

.vex-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--vex-accent-tmav);
	color: #fff;
	transform: translateY(-2px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit.alt {
	background: var(--vex-accent);
	color: #fff;
}

.vex-btn-outline {
	background: none;
	border-color: var(--vex-ink);
	color: var(--vex-ink);
	box-shadow: none;
}
.vex-btn-outline:hover {
	background: var(--vex-ink);
	color: #fff;
}

.vex-btn-svetle {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .55);
	color: #fff;
	backdrop-filter: blur(6px);
}
.vex-btn-svetle:hover {
	background: #fff;
	color: var(--vex-night);
}

/* =========================================================
   5. FORMULÁŘE
   ========================================================= */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
select,
textarea {
	font-family: var(--vex-sans);
	font-size: 16px;
	color: var(--vex-ink);
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	border-radius: 0;
	padding: 14px 16px;
	width: 100%;
	transition: border-color .2s ease;
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--vex-ink);
	outline: none;
}

label {
	font-size: 14px;
	font-weight: 500;
	color: var(--vex-ink-2);
	margin-bottom: 6px;
	display: block;
}

/* =========================================================
   6. TYPOGRAFICKÉ PRVKY
   ========================================================= */

.vex-eyebrow {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--vex-ink-2);
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
}
.vex-eyebrow::before {
	content: "";
	width: 20px;
	height: 1px;
	background: var(--vex-accent);
}

.vex-mono {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--vex-ink-3);
}

.vex-lede {
	font-size: 17.5px;
	line-height: 1.62;
	color: var(--vex-ink-2);
	max-width: 64ch;
}

/* =========================================================
   7. CENY A WOOCOMMERCE DROBNOSTI
   ========================================================= */

.woocommerce .price,
.woocommerce ul.products li.product .price {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 22px;
	color: var(--vex-ink);
	letter-spacing: -0.02em;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 21px;
	line-height: 1.14;
	letter-spacing: -0.02em;
}

.woocommerce span.onsale {
	background: var(--vex-accent);
	color: #fff;
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-radius: 99px;
	padding: 7px 14px;
	min-height: 0;
	min-width: 0;
	line-height: 1;
}

/* =========================================================
   8. ČÁSTICOVÁ STOPA ZA KURZOREM
   Kreslí se do plátna přes celou stránku, neruší klikání.
   ========================================================= */

#vex-stopa {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 9999;
}

/* =========================================================
   9. OHLED NA POHYB
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	#vex-stopa { display: none !important; }
}

/* =========================================================
   10. HLAVIČKA
   ========================================================= */

.vex-skip {
	position: absolute;
	left: -9999px;
}
.vex-skip:focus {
	left: 16px;
	top: 16px;
	z-index: 200;
	background: #fff;
	color: var(--vex-ink);
	padding: 12px 18px;
}

/* Horní tmavý pruh */
.vex-top {
	background: var(--vex-night);
	color: rgba(255, 255, 255, .82);
	font-family: var(--vex-mono);
	font-size: 11.5px;
	letter-spacing: .04em;
}
.vex-top-in {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 28px;
	min-height: 38px;
	padding-block: 8px;
}
.vex-top a { color: inherit; }
.vex-top a:hover { color: #fff; }
.vex-top-doprava { color: var(--vex-gold-2); }

@media (min-width: 900px) {
	.vex-top-in { justify-content: space-between; }
}

/* Hlavní pruh */
.vex-head {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(251, 248, 243, .94);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--vex-line);
	transition: box-shadow .3s ease;
}
.vex-head.vex-zmenseno {
	box-shadow: 0 10px 30px -22px rgba(18, 16, 15, .7);
}

.vex-head-in {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: 84px;
	transition: min-height .3s ease;
}
.vex-zmenseno .vex-head-in { min-height: 64px; }

/* Logo */
.vex-logo {
	display: block;
	flex: none;
	color: var(--vex-ink);
	line-height: 0;
}
.vex-logo svg {
	width: auto;
	height: 46px;
	transition: height .3s ease;
	display: block;
}
.vex-zmenseno .vex-logo svg { height: 36px; }
.vex-logo:hover { color: var(--vex-ink); }

.vex-logo-text {
	font-family: var(--vex-display);
	font-size: 19px;
	letter-spacing: .08em;
}
.vex-logo-text b { font-weight: 300; color: var(--vex-accent); }

/* Vyhledávání */
.vex-hledat {
	display: none;
	flex: 1;
	max-width: 420px;
	position: relative;
	margin: 0;
}
.vex-hledat input[type="search"] {
	border-radius: 99px;
	padding: 12px 48px 12px 20px;
	font-size: 15px;
	background: var(--vex-white);
}
.vex-hledat button {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	min-height: 0;
	width: 40px;
	height: 40px;
	padding: 0;
	background: none;
	border: 0;
	color: var(--vex-ink-2);
	border-radius: 99px;
}
.vex-hledat button:hover {
	background: none;
	color: var(--vex-accent);
	transform: translateY(-50%);
}
.vex-hledat svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

@media (min-width: 900px) {
	.vex-hledat { display: block; }
}

/* Ikony vpravo */
.vex-nastroje {
	display: flex;
	align-items: center;
	gap: 2px;
	margin-left: auto;
}
.vex-ikona {
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	background: none;
	border: 0;
	border-radius: 99px;
	cursor: pointer;
	position: relative;
	color: var(--vex-ink);
	min-height: 0;
	padding: 0;
	transition: background .2s ease;
}
.vex-ikona:hover {
	background: rgba(18, 16, 15, .07);
	color: var(--vex-ink);
	transform: none;
}
.vex-ikona svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}
.vex-pocet {
	position: absolute;
	top: 7px;
	right: 5px;
	background: var(--vex-accent);
	color: #fff;
	font-family: var(--vex-mono);
	font-size: 9px;
	min-width: 16px;
	height: 16px;
	border-radius: 99px;
	display: grid;
	place-items: center;
	line-height: 1;
}

@media (min-width: 1060px) {
	.vex-burger { display: none; }
}

/* Menu */
.vex-menu {
	border-top: 1px solid var(--vex-line);
	display: none;
}
.vex-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px 30px;
}
.vex-menu-list a {
	display: block;
	padding: 15px 2px;
	font-size: 14.5px;
	color: var(--vex-ink-2);
	position: relative;
}
.vex-menu-list a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 9px;
	height: 1.5px;
	background: var(--vex-accent);
	transform: scaleX(0);
	transition: transform .26s ease;
}
.vex-menu-list a:hover,
.vex-menu-list .current-menu-item > a {
	color: var(--vex-ink);
}
.vex-menu-list a:hover::after,
.vex-menu-list .current-menu-item > a::after {
	transform: scaleX(1);
}

@media (min-width: 1060px) {
	.vex-menu { display: block; }
}

/* Menu na mobilu
   Menu je uvnitř .vex-head, která má backdrop-filter — ten dělá
   z hlavičky vztažný rámec i pro position: fixed. Dřívější
   „fixed, top: 122px, bottom: 0" se tak počítalo vůči hlavičce
   (vysoké ~90 px) a menu mělo nulovou výšku. Proto absolutně
   pod hlavičku; hlavička je sticky, takže menu drží u ní. */
@media (max-width: 1059px) {
	.vex-menu.vex-otevreno {
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		max-height: calc(100dvh - 100px);
		background: var(--vex-paper);
		overflow-y: auto;
		z-index: 99;
		border-top: 1px solid var(--vex-line);
		box-shadow: 0 24px 40px -24px rgba(18, 16, 15, .5);
	}
	.vex-menu.vex-otevreno .vex-menu-list {
		flex-direction: column;
		gap: 0;
		padding-block: 8px;
	}
	.vex-menu.vex-otevreno .vex-menu-list a {
		padding: 17px 0;
		font-size: 18px;
		border-bottom: 1px solid var(--vex-line);
	}
	.vex-menu.vex-otevreno .vex-menu-list a::after { display: none; }
	body.vex-menu-otevreno { overflow: hidden; }
}

/* =========================================================
   11. TRUST BAR
   ========================================================= */

.vex-trust {
	background: var(--vex-white);
	border-top: 1px solid var(--vex-line);
}
.vex-trust ul {
	list-style: none;
	margin: 0;
	padding: 30px 0;
	display: grid;
	gap: 16px;
}
.vex-trust li {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	font-size: 14px;
	color: var(--vex-ink-2);
}
.vex-trust strong { color: var(--vex-ink); font-weight: 600; }
.vex-trust svg {
	width: 18px;
	height: 18px;
	stroke: var(--vex-accent);
	fill: none;
	stroke-width: 1.8;
	flex: none;
	margin-top: 2px;
}

@media (min-width: 640px) { .vex-trust ul { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1040px) { .vex-trust ul { grid-template-columns: repeat(4, 1fr); gap: 30px; } }

/* =========================================================
   12. PATIČKA
   ========================================================= */

.vex-foot {
	background: var(--vex-night);
	color: rgba(255, 255, 255, .78);
	padding-block: clamp(56px, 7vw, 84px) 26px;
	font-size: 14px;
}
.vex-foot a { color: inherit; }
.vex-foot a:hover { color: var(--vex-accent); }

.vex-f-grid {
	display: grid;
	gap: 34px;
}
@media (min-width: 700px) { .vex-f-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1040px) { .vex-f-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; } }

.vex-f-logo {
	display: block;
	color: #fff;
	line-height: 0;
	margin-bottom: 18px;
}
.vex-f-logo svg { width: auto; height: 52px; display: block; }
.vex-f-brand p { max-width: 34ch; }
.vex-f-kontakt {
	font-family: var(--vex-mono);
	font-size: 12.5px;
	line-height: 1.9;
	margin-top: 14px;
}

.vex-foot h4 {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #fff;
	font-weight: 400;
	margin: 0 0 16px;
}
.vex-f-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.vex-f-bottom {
	margin-top: 46px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .18);
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	justify-content: space-between;
	font-family: var(--vex-mono);
	font-size: 10.5px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .65);
}
.vex-f-bottom nav {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
}

/* =========================================================
   13. ŠIRŠÍ OBSAH
   ========================================================= */

.grid-container,
.site-content .container {
	max-width: var(--vex-wrap) !important;
}

/* =========================================================
   14. GALERIE PRODUKTU
   ========================================================= */

.vex-galerie { position: relative; }

.vex-gal-hlavni {
	position: relative;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	overflow: hidden;
}

/* První snímek drží výšku, ostatní leží přes něj.
   Obrázek se tak nikdy neořízne. */
.vex-gal-snimek:first-child {
	position: relative;
}
.vex-gal-snimek {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transform: scale(1.03);
	transition: opacity .55s cubic-bezier(.2, .7, .3, 1), transform .7s cubic-bezier(.2, .7, .3, 1);
	pointer-events: none;
}
.vex-gal-snimek.je-aktivni {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.vex-gal-snimek img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.vex-gal-snimek:first-child img {
	height: auto;
}
.vex-gal-snimek figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 34px 18px 14px;
	background: linear-gradient(to top, rgba(10, 9, 8, .72), transparent);
	color: #fff;
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .06em;
}

/* Šipky */
.vex-gal-sip {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border-radius: 99px;
	background: rgba(255, 255, 255, .9);
	border: 1px solid var(--vex-line);
	color: var(--vex-ink);
	display: grid;
	place-items: center;
	opacity: 0;
	transition: opacity .26s ease, background .2s ease;
	z-index: 2;
}
.vex-gal-hlavni:hover .vex-gal-sip,
.vex-gal-sip:focus-visible { opacity: 1; }
.vex-gal-sip:hover {
	background: #fff;
	color: var(--vex-accent);
	transform: translateY(-50%);
}
.vex-gal-zpet { left: 14px; }
.vex-gal-vpred { right: 14px; }
.vex-gal-sip svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

@media (hover: none) {
	.vex-gal-sip { opacity: 1; }
}

/* Počítadlo a lupa */
.vex-gal-pocet {
	position: absolute;
	left: 14px;
	top: 14px;
	background: rgba(10, 9, 8, .62);
	color: #fff;
	font-family: var(--vex-mono);
	font-size: 10.5px;
	letter-spacing: .08em;
	padding: 6px 12px;
	border-radius: 99px;
	z-index: 2;
	backdrop-filter: blur(4px);
}
.vex-gal-lupa {
	position: absolute;
	right: 14px;
	top: 14px;
	width: 38px;
	height: 38px;
	min-height: 0;
	padding: 0;
	border-radius: 99px;
	background: rgba(255, 255, 255, .9);
	border: 1px solid var(--vex-line);
	color: var(--vex-ink);
	display: grid;
	place-items: center;
	z-index: 2;
}
.vex-gal-lupa:hover {
	background: #fff;
	color: var(--vex-accent);
	transform: none;
}
.vex-gal-lupa svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

/* Náhledy */
.vex-gal-nahledy {
	display: flex;
	gap: 8px;
	margin-top: 8px;
	overflow-x: auto;
	scrollbar-width: thin;
	padding-bottom: 4px;
}
.vex-gal-nahled {
	flex: 0 0 auto;
	width: 84px;
	min-height: 0;
	padding: 0;
	border-radius: 0;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	cursor: pointer;
	position: relative;
	overflow: hidden;
	transition: border-color .2s ease;
}
.vex-gal-nahled img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--vex-white);
	display: block;
	opacity: .72;
	transition: opacity .24s ease;
}
.vex-gal-nahled:hover {
	border-color: var(--vex-ink);
	background: var(--vex-white);
	transform: none;
}
.vex-gal-nahled:hover img { opacity: 1; }
.vex-gal-nahled.je-aktivni {
	border-color: var(--vex-accent);
	border-width: 1.5px;
}
.vex-gal-nahled.je-aktivni img { opacity: 1; }
.vex-gal-stitek {
	display: block;
	font-family: var(--vex-mono);
	font-size: 8.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	padding: 5px 4px;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Zvětšení na celou obrazovku */
.vex-gal-vrstva {
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: rgba(10, 9, 8, .93);
	display: grid;
	place-items: center;
	padding: 5vmin;
	cursor: zoom-out;
	animation: vex-nabehnout .3s ease;
}
.vex-gal-vrstva img {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
}
.vex-gal-zavrit {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 46px;
	height: 46px;
	min-height: 0;
	padding: 0;
	border-radius: 99px;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .3);
	color: #fff;
	display: grid;
	place-items: center;
}
.vex-gal-zavrit svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}
body.vex-vrstva-otevrena { overflow: hidden; }

@keyframes vex-nabehnout {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* =========================================================
   15. VÝPIS PRODUKTŮ (související, upsell, kategorie)
   ========================================================= */

.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 760px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1040px) {
	.woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.woocommerce ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
	display: flex;
	flex-direction: column;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	padding: 0 0 18px;
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-5px);
	border-color: var(--vex-ink);
	box-shadow: 0 24px 46px -30px rgba(18, 16, 15, .55);
}

.woocommerce ul.products li.product a img {
	width: 100%;
	height: auto;
	display: block;
	margin: 0 0 14px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 16px;
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.18;
}

.woocommerce ul.products li.product .price {
	padding: 0 16px;
	margin: 0 0 14px;
	font-size: 19px;
	display: block;
}

/* Tlačítko dole, stejně široké u všech karet */
.woocommerce ul.products li.product .button {
	margin: auto 16px 0;
	width: calc(100% - 32px);
	min-height: 46px;
	padding: 0 14px;
	font-size: 14px;
	text-align: center;
}

.woocommerce ul.products li.product .star-rating {
	margin: 0 16px 10px;
	font-size: 13px;
	color: var(--vex-gold);
}

.related > h2,
.upsells > h2 {
	font-size: clamp(26px, 3.2vw, 40px);
	margin: 0 0 28px;
}

/* =========================================================
   16. ZÁLOŽKY POPISU PRODUKTU
   ========================================================= */

.woocommerce-tabs {
	margin-top: clamp(48px, 6vw, 76px);
	padding-top: clamp(34px, 4vw, 50px);
	border-top: 1px solid var(--vex-line);
}
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 30px;
	padding: 0;
}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: none;
	border: 1px solid var(--vex-line);
	border-radius: 99px;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 11px 22px;
	font-family: var(--vex-sans);
	font-size: 14.5px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--vex-ink-2);
}
.woocommerce-tabs ul.tabs li.active {
	background: var(--vex-ink);
	border-color: var(--vex-ink);
}
.woocommerce-tabs ul.tabs li.active a { color: #fff; }

.woocommerce-tabs .panel {
	max-width: 74ch;
	font-size: 16.5px;
	line-height: 1.68;
	color: var(--vex-ink-2);
}
.woocommerce-tabs .panel > h2:first-child { display: none; }

/* =========================================================
   17. KARTA PRODUKTU — podle návrhu v4
   ========================================================= */

.vex-produkt { display: block; }

/* Baner nad galerií */
.vex-baner {
	margin: 0 0 clamp(24px, 3vw, 40px);
	overflow: hidden;
	background: var(--vex-paper-2);
}
.vex-baner img {
	width: 100%;
	height: auto;
	display: block;
}
@media (max-width: 700px) {
	.vex-baner {
		aspect-ratio: 16 / 9;
	}
	.vex-baner img {
		height: 100%;
		object-fit: cover;
	}
}

/* Horní část: galerie + shrnutí */
.vex-top {
	display: grid;
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}
@media (min-width: 900px) {
	.vex-top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (min-width: 1200px) {
	.vex-top { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
}

/* Badge */
.vex-badge {
	display: inline-block;
	background: var(--vex-ink);
	color: #fff;
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 8px 14px;
	border-radius: 99px;
	margin-bottom: 16px;
}

.vex-nazev {
	font-size: clamp(30px, 3.8vw, 46px);
	margin: 0 0 14px;
}

.vex-claim {
	font-size: 17px;
	line-height: 1.6;
	color: var(--vex-ink-2);
	max-width: 46ch;
	margin: 0 0 20px;
}
.vex-claim p { margin: 0; }

/* Chipy atmosféry */
.vex-chipy {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 24px;
}
.vex-chip {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--vex-ink-2);
	border: 1px solid var(--vex-line);
	border-radius: 99px;
	padding: 8px 15px;
	background: var(--vex-white);
	text-transform: lowercase;
}

/* Popisek sekce */
.vex-k {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	margin: 0 0 14px;
}

/* Pyramida a rychlý přehled */
.vex-pyramida,
.vex-prehled,
.vex-prostor {
	border: 1px solid var(--vex-line);
	background: var(--vex-white);
	padding: 22px 24px;
	margin-bottom: 14px;
}
.vex-pyramida h2 {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	font-weight: 400;
	margin: 0 0 16px;
}
.vex-pyramida dl,
.vex-prehled dl {
	margin: 0;
	display: grid;
	gap: 10px;
}
.vex-pyramida dl > div,
.vex-prehled dl > div {
	display: grid;
	gap: 4px 18px;
	align-items: baseline;
}
@media (min-width: 520px) {
	.vex-pyramida dl > div,
	.vex-prehled dl > div { grid-template-columns: 116px 1fr; }
}
.vex-pyramida dt {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--vex-accent);
	margin: 0;
}
.vex-prehled dt {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	margin: 0;
}
.vex-pyramida dd,
.vex-prehled dd {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--vex-ink-2);
}

/* Prostor a intenzita */
.vex-m3 {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(28px, 3.2vw, 38px);
	letter-spacing: -0.02em;
	color: var(--vex-ink);
	margin: 0 0 14px;
	line-height: 1.05;
}
.vex-m3 small {
	display: block;
	font-family: var(--vex-sans);
	font-size: 14px;
	color: var(--vex-ink-2);
	letter-spacing: 0;
	margin-top: 6px;
}
.vex-intenzita {
	display: flex;
	align-items: center;
	gap: 7px;
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--vex-ink-3);
	margin: 0;
}
.vex-intenzita i {
	width: 26px;
	height: 3px;
	background: var(--vex-line);
	border-radius: 99px;
	display: block;
}
.vex-intenzita i.je-zap { background: var(--vex-accent); }
.vex-intenzita span { margin-left: 4px; color: var(--vex-ink-2); }

/* Cena a nákup */
.vex-koupit {
	margin-top: 26px;
	padding-top: 24px;
	border-top: 1px solid var(--vex-line);
}
.vex-cena .price,
.vex-cena {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(30px, 3.6vw, 42px);
	letter-spacing: -0.02em;
	color: var(--vex-ink);
	line-height: 1.1;
	margin: 0 0 10px;
	display: block;
}
.vex-cena small,
.vex-cena .woocommerce-price-suffix {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--vex-ink-3);
}

/* Jednotková cena z Wpify Woo */
.vex-jednotkova {
	margin: -4px 0 14px;
}
.vex-jednotkova p,
.vex-jednotkova div,
.vex-jednotkova span {
	font-family: var(--vex-mono);
	font-size: 12.5px;
	line-height: 1.4;
	letter-spacing: .02em;
	color: var(--vex-ink-3);
	margin: 0;
}

.vex-skladem {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--vex-ink-2);
	margin: 0 0 20px;
}
.vex-tecka {
	width: 7px;
	height: 7px;
	border-radius: 99px;
	background: #1FA463;
	flex: none;
}
.vex-neskladem {
	font-size: 14px;
	color: var(--vex-ink-3);
	margin: 0 0 20px;
}

/* Vzorky — poznámka pod tlačítkem Do košíku */
.vex-vzorky-cta {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 15px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--vex-ink-2);
}
.vex-vzorky-cta svg {
	width: 17px;
	height: 17px;
	flex: none;
	margin-top: 3px;
	fill: none;
	stroke: var(--vex-accent);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.vex-vzorky-cta strong {
	color: var(--vex-ink);
	font-weight: 600;
}
.vex-vzorky-cta a {
	color: var(--vex-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Dárek — vzorky */
.vex-darek {
	display: flex;
	gap: 13px;
	align-items: flex-start;
	background: #F0F8F3;
	border: 1px solid #CDE7D9;
	padding: 17px 19px;
	margin-top: 18px;
}
.vex-darek svg {
	width: 20px;
	height: 20px;
	stroke: #1FA463;
	fill: none;
	stroke-width: 1.5;
	flex: none;
	margin-top: 2px;
}
.vex-darek b {
	display: block;
	font-size: 15px;
	color: var(--vex-ink);
	margin-bottom: 3px;
}
.vex-darek small {
	font-size: 14px;
	color: var(--vex-ink-2);
	line-height: 1.45;
}

/* Cena na poptávku */
.vex-poptavka {
	border: 1.5px solid var(--vex-accent);
	padding: 24px 26px;
	background: var(--vex-white);
}
.vex-poptavka .vex-k {
	color: var(--vex-accent);
	margin-bottom: 12px;
}
.vex-poptavka-text {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--vex-ink-2);
	margin: 0 0 20px;
}
.vex-poptavka .vex-btn {
	width: 100%;
}
.vex-poptavka-kontakt {
	font-size: 14px;
	color: var(--vex-ink-3);
	margin: 16px 0 0;
	text-align: center;
}
.vex-poptavka-kontakt a {
	color: var(--vex-ink-2);
	border-bottom: 1px solid var(--vex-line);
	white-space: nowrap;
}

/* Kompatibilita */
.vex-kompat {
	border: 1.5px solid var(--vex-accent);
	padding: 19px 21px;
	margin-top: 14px;
	background: var(--vex-white);
}
.vex-kompat .vex-k { color: var(--vex-accent); margin-bottom: 10px; }
.vex-kompat strong {
	display: block;
	font-size: 16px;
	color: var(--vex-ink);
	margin-bottom: 7px;
}
.vex-kompat p {
	font-size: 14.5px;
	color: var(--vex-ink-2);
	line-height: 1.5;
	margin: 0;
}

/* Jistoty */
.vex-jistoty {
	display: grid;
	gap: 11px;
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--vex-line);
}
.vex-jistoty div {
	display: flex;
	gap: 11px;
	align-items: center;
	font-size: 14px;
	color: var(--vex-ink-2);
}
.vex-jistoty svg {
	width: 17px;
	height: 17px;
	stroke: var(--vex-ink-3);
	fill: none;
	stroke-width: 1.5;
	flex: none;
}

/* =========================================================
   18. POPIS A TIPY
   ========================================================= */

.vex-popis {
	display: grid;
	gap: clamp(28px, 4vw, 52px);
	align-items: start;
	margin-top: clamp(52px, 7vw, 84px);
	padding-top: clamp(40px, 5vw, 60px);
	border-top: 1px solid var(--vex-line);
}
@media (min-width: 1000px) {
	.vex-popis { grid-template-columns: minmax(0, 1fr) 320px; }
}

.vex-text {
	max-width: 72ch;
	font-size: 16.5px;
	line-height: 1.68;
	color: var(--vex-ink-2);
}
.vex-text h2 {
	font-size: clamp(25px, 3vw, 34px);
	margin: 1.8em 0 .5em;
}
.vex-text h2:first-child { margin-top: 0; }
.vex-text h3 {
	font-size: 21px;
	margin: 1.6em 0 .4em;
}
.vex-text ul { padding-left: 1.2em; }
.vex-text li { margin-top: .45em; }
.vex-text li::marker { color: var(--vex-accent); }
.vex-text a {
	border-bottom: 1.5px solid var(--vex-accent);
	font-weight: 500;
}

/* Časté dotazy — rozbalovací */
.vex-faq {
	margin: 1.2em 0 0;
	border-top: 1px solid var(--vex-line);
}
.vex-faq-polozka {
	border-bottom: 1px solid var(--vex-line);
}
.vex-faq-polozka > summary {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 17px 2px;
	cursor: pointer;
	list-style: none;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--vex-ink);
	transition: color .18s ease;
}
.vex-faq-polozka > summary::-webkit-details-marker { display: none; }
.vex-faq-polozka > summary:hover { color: var(--vex-accent); }
.vex-faq-polozka > summary:focus-visible {
	outline: 2px solid var(--vex-accent);
	outline-offset: 3px;
}
.vex-faq-polozka > summary span { flex: 1 1 auto; }

/* Znaménko plus, které se po otevření otočí na minus */
.vex-faq-polozka > summary::after {
	content: "";
	flex: none;
	width: 13px;
	height: 13px;
	margin-top: 6px;
	background:
		linear-gradient(var(--vex-accent), var(--vex-accent)) center/13px 1.5px no-repeat,
		linear-gradient(var(--vex-accent), var(--vex-accent)) center/1.5px 13px no-repeat;
	transition: transform .22s ease;
}
.vex-faq-polozka[open] > summary::after {
	background:
		linear-gradient(var(--vex-accent), var(--vex-accent)) center/13px 1.5px no-repeat;
	transform: rotate(180deg);
}

.vex-faq-odpoved {
	padding: 0 2px 20px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--vex-ink-2);
}
.vex-faq-odpoved > *:first-child { margin-top: 0; }
.vex-faq-odpoved > *:last-child { margin-bottom: 0; }

@media (prefers-reduced-motion: no-preference) {
	.vex-faq-polozka[open] > .vex-faq-odpoved {
		animation: vex-faq-rozbal .22s ease;
	}
}
@keyframes vex-faq-rozbal {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: none; }
}

.vex-tipy {
	background: var(--vex-paper-2);
	border: 1px solid var(--vex-line);
	padding: 24px 26px;
}
@media (min-width: 1000px) {
	.vex-tipy { position: sticky; top: 160px; }
}
.vex-tipy h3 {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	font-weight: 400;
	margin: 0 0 18px;
}
.vex-tipy ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 15px;
}
.vex-tipy li {
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--vex-ink-2);
	padding-left: 16px;
	position: relative;
}
.vex-tipy li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 5px;
	height: 5px;
	border-radius: 99px;
	background: var(--vex-accent);
}
.vex-tipy b { color: var(--vex-ink); }
.vex-tipy a { border-bottom: 1.5px solid var(--vex-accent); }

/* =========================================================
   19. HODNOCENÍ
   ========================================================= */

.vex-hodnoceni {
	margin-top: clamp(52px, 7vw, 84px);
	padding-top: clamp(40px, 5vw, 60px);
	border-top: 1px solid var(--vex-line);
	max-width: 74ch;
}
.vex-hodnoceni #reviews h2 {
	font-size: clamp(26px, 3.2vw, 38px);
	margin: 0 0 24px;
}
.vex-overeno {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .04em;
	line-height: 1.7;
	color: var(--vex-ink-3);
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--vex-line);
}
.vex-hodnoceni .star-rating,
.vex-hodnoceni .stars a { color: var(--vex-gold); }

/* Související */
.vex-produkt .related,
.vex-produkt .upsells {
	margin-top: clamp(52px, 7vw, 84px);
	padding-top: clamp(40px, 5vw, 60px);
	border-top: 1px solid var(--vex-line);
}

/* Odkazy na štítky v rychlém přehledu */
.vex-prehled dd a {
	color: var(--vex-ink-2);
	border-bottom: 1px solid var(--vex-line);
}
.vex-prehled dd a:hover {
	color: var(--vex-accent);
	border-color: var(--vex-accent);
}

/* =========================================================
   20. OPRAVY — pozadí a písmo v shrnutí produktu
   ========================================================= */

/* Shrnutí nesmí dědit tmavé pozadí z Elementoru ani jinud */
.vex-produkt,
.vex-produkt .vex-top,
.vex-produkt .vex-shrnuti,
.vex-produkt .vex-sloupec-gal {
	background: transparent !important;
	color: var(--vex-ink) !important;
}

/* Mono patří jen na popisky a technické údaje, ne na text */
.vex-produkt,
.vex-produkt p,
.vex-produkt li,
.vex-produkt dd,
.vex-produkt span,
.vex-produkt div,
.vex-shrnuti,
.vex-claim,
.vex-claim p,
.vex-claim strong,
.vex-claim b {
	font-family: var(--vex-sans) !important;
}

.vex-nazev,
.vex-pyramida h2,
.vex-m3,
.vex-cena,
.vex-cena .price,
.vex-produkt h1,
.vex-produkt h2,
.vex-produkt h3 {
	font-family: var(--vex-display) !important;
}

/* Mono zůstává jen tam, kde ho chceme */
.vex-badge,
.vex-chip,
.vex-k,
.vex-pyramida h2,
.vex-pyramida dt,
.vex-prehled dt,
.vex-intenzita,
.vex-overeno,
.vex-tipy h3,
.vex-cena small,
.vex-cena .woocommerce-price-suffix,
.vex-m3 small {
	font-family: var(--vex-mono) !important;
}
.vex-m3 small { font-family: var(--vex-sans) !important; }
.vex-pyramida h2 { font-family: var(--vex-mono) !important; }

.vex-claim,
.vex-claim p {
	font-size: 17px;
	line-height: 1.6;
	color: var(--vex-ink-2) !important;
}


/* =========================================================
   22. VÝPIS KATEGORIE
   ========================================================= */

.vex-wrap {
	max-width: var(--vex-wrap);
	margin-inline: auto;
	padding-inline: var(--vex-gut);
}

/* --- tmavé záhlaví --- */
.vex-chead {
	position: relative;
	background: var(--vex-night);
	color: #fff;
	overflow: hidden;
}
.vex-chead::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, #241A16 0%, #0A0908 46%, #1C1512 100%);
	opacity: .96;
}
.vex-chead::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(120% 90% at 78% 12%, rgba(240,185,60,.20), transparent 62%),
		radial-gradient(90% 80% at 8% 96%, rgba(255,0,102,.16), transparent 60%);
}
#vex-jiskry {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}
.vex-chead .vex-wrap {
	position: relative;
	z-index: 2;
	padding-block: clamp(38px, 5vw, 64px) clamp(34px, 4.4vw, 54px);
}

.vex-crumbs,
.vex-crumbs a {
	font-size: 13px;
	color: rgba(255,255,255,.66);
	text-decoration: none;
}
.vex-crumbs { margin-bottom: 22px; }
.vex-crumbs a:hover { color: var(--vex-gold-2); }

.vex-o {
	font-family: var(--vex-mono);
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,.66);
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
}
.vex-o::before {
	content: "";
	width: 20px;
	height: 1px;
	background: var(--vex-gold);
	flex: none;
}

.vex-chead-nadpis {
	font-family: var(--vex-display);
	font-weight: 300;
	letter-spacing: -.028em;
	line-height: 1.08;
	font-size: clamp(34px, 5vw, 60px);
	color: #fff;
	margin: 0;
}
.vex-chead-lede {
	margin: 18px 0 0;
	font-size: 17px;
	line-height: 1.6;
	color: rgba(255,255,255,.9);
	max-width: 62ch;
}
.vex-chead-pocet {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255,255,255,.66);
	margin: 20px 0 0;
}

.vex-subs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 24px;
}
.vex-sub {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid rgba(255,255,255,.28);
	background: rgba(255,255,255,.06);
	color: #fff;
	border-radius: 99px;
	text-decoration: none;
	font-size: 14px;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.vex-sub:hover {
	background: #fff;
	color: var(--vex-night);
	border-color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px -9px rgba(0,0,0,.7);
}
/* Kategorie, ve které zákazník právě stojí. */
.vex-sub.on {
	background: #fff;
	color: var(--vex-night);
	border-color: #fff;
	font-weight: 500;
	cursor: default;
}
.vex-sub.on:hover { transform: none; box-shadow: none; }
.vex-sub.on i { opacity: .5; }
.vex-sub b { font-weight: 500; }
.vex-sub i { font-style: normal; font-family: var(--vex-mono); font-size: 11px; opacity: .62; }

/* --- lišta filtrů --- */
.vex-fbar {
	background: var(--vex-paper);
	border-bottom: 1px solid var(--vex-line);
}
.vex-fbar .vex-wrap { padding-block: 16px; }
.vex-frow {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}
.vex-frow + .vex-frow { margin-top: 10px; }
.vex-flab {
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	width: 86px;
	flex: none;
}

.vex-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	border: 1px solid var(--vex-line);
	background: var(--vex-white);
	border-radius: 99px;
	font-size: 13.5px;
	font-family: inherit;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.vex-chip:hover {
	border-color: var(--vex-ink-3);
	transform: translateY(-2px);
	box-shadow: 0 7px 15px -8px rgba(18,16,15,.5);
}
.vex-chip:active { transform: translateY(0); box-shadow: none; }
.vex-chip.on {
	background: var(--vex-ink);
	color: #fff;
	border-color: var(--vex-ink);
}
.vex-chip.on:hover { box-shadow: 0 7px 16px -8px rgba(18,16,15,.75); }
.vex-chip i { font-style: normal; font-family: var(--vex-mono); font-size: 10.5px; opacity: .6; }

select.vex-chip,
.vex-fmeta select {
	padding-right: 30px;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5 6 8.5 10 4.5' fill='none' stroke='%236B625B' stroke-width='1.4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 11px center;
	background-size: 11px;
}

.vex-fmeta {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-left: auto;
}
.vex-freset {
	color: var(--vex-accent);
	font-size: 13.5px;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.vex-fmeta .woocommerce-ordering { margin: 0; }
.vex-fmeta select {
	border: 1px solid var(--vex-line);
	background-color: var(--vex-white);
	border-radius: 99px;
	padding: 7px 30px 7px 14px;
	font-family: inherit;
	font-size: 13.5px;
	color: inherit;
}

/* --- mřížka --- */
.vex-vypis { padding-bottom: 10px; }
.vex-grid {
	display: grid;
	gap: clamp(16px, 2.2vw, 30px);
	margin-block: 38px 44px;
	grid-template-columns: 1fr 1fr;
}
@media (min-width: 760px)  { .vex-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1080px) { .vex-grid { grid-template-columns: repeat(4, 1fr); } }

.vex-karta {
	background: var(--vex-white);
	display: flex;
	flex-direction: column;
	position: relative;
	border: 1px solid var(--vex-line);
	margin: 0;
	transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.vex-karta:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 48px -26px rgba(18,16,15,.42);
	border-color: #D6CAB8;
}

/* Obrázky produktů jsou na výšku 4:5 a mají v sobě název vůně.
   Výřez proto musí sedět, jinak se název ořízne. */
.vex-karta-obr {
	aspect-ratio: 4 / 5;
	position: relative;
	overflow: hidden;
	background: var(--vex-paper-2);
}
.vex-karta-obr img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
	transition: transform .5s ease;
}
.vex-karta:hover .vex-karta-obr img { transform: scale(1.04); }

.vex-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	font-family: var(--vex-mono);
	font-size: 9.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 99px;
	background: var(--vex-ink);
	color: #fff;
}
.vex-badge.dev { background: var(--vex-gold); color: var(--vex-night); }
.vex-badge.svc { background: var(--vex-accent); color: #fff; }

.vex-karta-telo {
	padding: 18px 18px 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 9px;
}
.vex-karta-atm {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.vex-karta-atm em {
	font-style: normal;
	font-family: var(--vex-mono);
	font-size: 9.5px;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	border: 1px solid var(--vex-line);
	padding: 3px 8px;
	border-radius: 99px;
}
.vex-karta-nazev {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 18.5px;
	line-height: 1.15;
	letter-spacing: -.01em;
	margin: 0;
}
.vex-karta-nazev a { text-decoration: none; color: inherit; }
.vex-karta-nazev a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.vex-karta-cena {
	margin-top: auto;
	padding-top: 10px;
	display: block;
}
.vex-karta-cena .v {
	font-family: var(--vex-display);
	font-size: 23px;
	font-weight: 300;
	color: var(--vex-ink);
	display: flex;
	align-items: baseline;
	gap: 7px;
	flex-wrap: wrap;
}
.vex-karta-cena .v .price,
.vex-karta-cena .v bdi { font-family: inherit; font-size: inherit; }
.vex-karta-cena .v del { font-size: 15px; opacity: .5; }
.vex-karta-cena .v small,
.vex-karta-cena .u {
	font-family: var(--vex-mono);
	font-size: 10.5px;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	font-weight: 400;
}
.vex-karta-cena .u {
	display: block;
	margin-top: 4px;
	text-transform: none;
	letter-spacing: .02em;
	font-size: 11px;
}
.vex-karta-cena .ask {
	font-family: var(--vex-display);
	font-size: 21px;
	font-weight: 300;
	color: var(--vex-accent);
	display: block;
}
.vex-karta-cena .askn {
	display: block;
	font-size: 12.5px;
	color: var(--vex-ink-3);
	margin-top: 4px;
	line-height: 1.45;
}

.vex-karta-btn {
	margin-top: 13px;
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 44px;
	border-radius: 99px;
	border: 1.5px solid var(--vex-ink);
	background: none;
	color: var(--vex-ink);
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.vex-karta-btn:hover { background: var(--vex-ink); color: #fff; }
.vex-karta-btn.p {
	background: var(--vex-accent);
	border-color: var(--vex-accent);
	color: #fff;
}
.vex-karta-btn.p:hover { background: var(--vex-accent-tmav); border-color: var(--vex-accent-tmav); }
.vex-karta-btn svg {
	width: 16px;
	height: 16px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* --- stránkování: puntík a pod ním číslo ---
   Selektory jsou schválně dlouhé. WooCommerce kreslí kolem
   stránkování mřížku pravidly typu .woocommerce nav.woocommerce-pagination
   ul, která přebijí kratší zápis. Tohle je přebije zpátky
   bez potřeby !important. --- */
body.vex-plna-sirka nav.woocommerce-pagination {
	text-align: center;
	padding-bottom: 34px;
}
body.vex-plna-sirka nav.woocommerce-pagination ul.page-numbers,
body.vex-plna-sirka nav.woocommerce-pagination ul {
	display: inline-flex;
	align-items: flex-start;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	white-space: normal;
}
body.vex-plna-sirka nav.woocommerce-pagination ul.page-numbers li,
body.vex-plna-sirka nav.woocommerce-pagination ul li {
	display: block;
	border: 0;
	margin: 0;
	padding: 0;
	background: none;
	float: none;
	overflow: visible;
}
body.vex-plna-sirka nav.woocommerce-pagination ul li a.page-numbers,
body.vex-plna-sirka nav.woocommerce-pagination ul li span.page-numbers {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	min-width: 30px;
	padding: 6px 2px;
	border: 0;
	background: none;
	border-radius: 0;
	text-decoration: none;
	font-family: var(--vex-mono);
	font-size: 12px;
	letter-spacing: .04em;
	line-height: 1;
	color: var(--vex-ink-3);
	transition: color .2s ease;
}
body.vex-plna-sirka nav.woocommerce-pagination ul li a.page-numbers::before,
body.vex-plna-sirka nav.woocommerce-pagination ul li span.page-numbers::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 99px;
	background: #CFC3B2;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
body.vex-plna-sirka nav.woocommerce-pagination ul li a.page-numbers:hover {
	color: var(--vex-ink);
	background: none;
}
body.vex-plna-sirka nav.woocommerce-pagination ul li a.page-numbers:hover::before {
	background: var(--vex-ink-3);
	transform: scale(1.25);
}
body.vex-plna-sirka nav.woocommerce-pagination ul li .page-numbers.current {
	color: var(--vex-ink);
	font-weight: 500;
	background: none;
}
body.vex-plna-sirka nav.woocommerce-pagination ul li .page-numbers.current::before {
	background: var(--vex-accent);
	transform: scale(1.35);
	box-shadow: 0 0 0 5px rgba(255,0,102,.14);
}

/* Šipky vpřed a zpět puntík nemají. */
body.vex-plna-sirka nav.woocommerce-pagination ul li .prev,
body.vex-plna-sirka nav.woocommerce-pagination ul li .next {
	justify-content: center;
	font-size: 17px;
	padding-top: 13px;
	color: var(--vex-ink);
}
body.vex-plna-sirka nav.woocommerce-pagination ul li .prev::before,
body.vex-plna-sirka nav.woocommerce-pagination ul li .next::before {
	display: none;
}
body.vex-plna-sirka nav.woocommerce-pagination ul li .prev:hover,
body.vex-plna-sirka nav.woocommerce-pagination ul li .next:hover {
	color: var(--vex-accent);
}

/* --- prázdný výsledek --- */
.vex-prazdno {
	text-align: center;
	padding: clamp(50px, 8vw, 90px) 20px;
	border: 1px solid var(--vex-line);
	background: var(--vex-white);
	margin-block: 38px 44px;
}
.vex-prazdno-nadpis {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(24px, 3vw, 32px);
	margin: 0 0 10px;
}
.vex-prazdno p { color: var(--vex-ink-2); margin: 0 0 20px; }

/* --- pás s textem pod výpisem --- */
.vex-seoband {
	background: var(--vex-paper-2);
	border-top: 1px solid var(--vex-line);
	border-bottom: 1px solid var(--vex-line);
}
.vex-seo {
	padding-block: clamp(44px, 5vw, 64px);
	display: grid;
	gap: 30px;
}
@media (min-width: 900px) {
	.vex-seo { grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: start; }
}
.vex-seo .vex-o { color: var(--vex-ink-3); }
.vex-seo .vex-o::before { background: var(--vex-accent); }
.vex-seo h2 {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(26px, 3vw, 34px);
	letter-spacing: -.028em;
	margin: 0;
}
.vex-seo p { color: var(--vex-ink-2); font-size: 15.5px; max-width: 66ch; }
.vex-seo p + p { margin-top: 13px; }
.vex-vzorky {
	margin-top: 22px;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	padding: 20px 22px;
	display: flex;
	gap: 14px;
	align-items: flex-start;
}
.vex-vzorky svg {
	width: 22px;
	height: 22px;
	flex: none;
	fill: none;
	stroke: #1FA463;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	margin-top: 2px;
}
.vex-vzorky b { display: block; font-weight: 600; margin-bottom: 3px; }
.vex-vzorky span { font-size: 14.5px; color: var(--vex-ink-2); }

/* --- výpis na celou šířku ---
   GeneratePress obaluje obsah kontejnery s pevnou šířkou a dává
   .site-content vlastnost display:flex kvůli postrannímu panelu.
   Na výpisu produktů si šířku řídíme sami. Selektory s ID přebijí
   třídy GeneratePressu bez potřeby !important. --- */
body.vex-plna-sirka #page,
body.vex-plna-sirka #primary,
body.vex-plna-sirka #main,
body.vex-plna-sirka .site-content,
body.vex-plna-sirka .content-area,
body.vex-plna-sirka .inside-article {
	display: block;
	float: none;
	width: 100%;
	max-width: none;
	padding: 0;
	margin-inline: auto;
}
body.vex-plna-sirka .site-main { margin: 0; }

/* Přípona s DPH, kterou k ceně přidává WooCommerce. */
.vex-karta-cena .woocommerce-price-suffix {
	font-family: var(--vex-mono);
	font-size: 10.5px;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	font-weight: 400;
	white-space: nowrap;
}

/* --- zapnuté filtry s křížkem --- */
.vex-fzapnute {
	padding-top: 12px;
	margin-top: 4px;
	border-top: 1px dashed var(--vex-line);
}
.vex-fzrus {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 12px 7px 14px;
	border: 1px solid var(--vex-ink);
	background: var(--vex-ink);
	color: #fff;
	border-radius: 99px;
	font-size: 13.5px;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.vex-fzrus:hover {
	background: var(--vex-accent);
	border-color: var(--vex-accent);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 7px 16px -8px rgba(255,0,102,.9);
}
.vex-fzrus svg {
	width: 13px;
	height: 13px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	opacity: .75;
}
.vex-fzrus:hover svg { opacity: 1; }

/* Zapnutý chip nese křížek, aby bylo vidět, že jde vypnout. */
.vex-chip.on::after {
	content: "×";
	font-size: 15px;
	line-height: 1;
	opacity: .7;
	margin-left: 1px;
}
.vex-chip.on:hover::after { opacity: 1; }

.vex-fzapnute .vex-freset { margin-left: 6px; }

/* Tlačítka uvnitř titulky si vzhled řídí sama. Bez tohohle
   by je přebil obecný styl pro <button> ze sekce 6. */
.vex-titulka .pill,
.vex-titulka .nav-btn,
.vex-titulka .dot {
	min-height: 0;
	background: none;
	border-radius: 0;
	padding: 0;
	font-size: inherit;
	font-weight: inherit;
	white-space: normal;
}

/* =========================================================
   23. TITULKA
   Prototyp používá vlastní názvy proměnných. Napojujeme je
   na designový systém šablony, aby existoval jeden zdroj barev.
   Celá titulka je obalená třídou .vex-titulka, takže se obecné
   názvy tříd jako .hero nebo .prod nemohou plést s WooCommerce.
   ========================================================= */
.vex-titulka {
	--white:      var(--vex-white);
	--paper:      var(--vex-paper);
	--paper-2:    var(--vex-paper-2);
	--ink:        var(--vex-ink);
	--ink-2:      var(--vex-ink-2);
	--ink-3:      var(--vex-ink-3);
	--line:       var(--vex-line);
	--night:      var(--vex-night);
	--night-2:    var(--vex-night-2);
	--accent:     var(--vex-accent);
	--gold:       var(--vex-gold);
	--gold-2:     var(--vex-gold-2);
	--green:      var(--vex-green);
	--display:    var(--vex-display);
	--sans:       var(--vex-sans);
	--mono:       var(--vex-mono);
	--wrap:       var(--vex-wrap);
	--gut:        var(--vex-gut);
	--sect:       var(--vex-sekce);
	--on-night:   rgba(255,255,255,.9);
	--on-night-2: rgba(255,255,255,.7);
	--carpex:     #1B4B8F;
}
.vex-titulka h1, .vex-titulka h2, .vex-titulka h3{margin:0;font-family:var(--display);font-weight:300;line-height:1.04;letter-spacing:-0.03em;font-variation-settings:"SOFT" 0,"WONK" 1}
.vex-titulka p{margin:0}
.vex-titulka a{color:inherit}
.vex-titulka .wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.vex-titulka .sect{padding-block:var(--sect)}
.vex-titulka :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.vex-titulka .skip{position:absolute;left:-9999px}
.vex-titulka .skip:focus{left:16px;top:16px;z-index:99;background:#fff;color:#000;padding:12px 18px}
.vex-titulka .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);display:flex;align-items:center;gap:10px;margin:0 0 20px}
.vex-titulka .eyebrow::before{content:"";width:20px;height:1px;background:var(--accent)}
.vex-titulka .on-dark .eyebrow{color:var(--on-night-2)}
.vex-titulka .h2{font-size:clamp(34px,5.4vw,64px)}
.vex-titulka .lede{font-size:17px;color:var(--ink-2);max-width:48ch}
.vex-titulka .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 30px;border-radius:99px;
  text-decoration:none;font-size:15px;font-weight:500;border:1.5px solid transparent;transition:.24s ease;white-space:nowrap}
.vex-titulka .btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 26px -10px rgba(255,0,102,.85)}
.vex-titulka .btn-primary:hover{background:#E80059;transform:translateY(-2px);box-shadow:0 14px 36px -12px rgba(255,0,102,.95)}
.vex-titulka .btn-outline{border-color:var(--ink);color:var(--ink)}
.vex-titulka .btn-outline:hover{background:var(--ink);color:#fff}
.vex-titulka .btn-onwhite{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(6px)}
.vex-titulka .btn-onwhite:hover{background:#fff;color:var(--night)}
.vex-titulka .btn-sm{min-height:46px;padding:0 22px;font-size:14px}
.vex-titulka .link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:500;font-size:15px;color:var(--ink);border-bottom:1.5px solid var(--accent);padding-bottom:3px}
.vex-titulka .link:hover{color:var(--accent)}
.vex-titulka /* ---------- HEADER ---------- */
header{position:fixed;inset:0 0 auto;z-index:60;transition:.35s ease;border-bottom:1px solid transparent}
.vex-titulka header .logo, .vex-titulka header nav.main a, .vex-titulka header .icon{color:#fff}
.vex-titulka header nav.main a{color:rgba(255,255,255,.82)}
.vex-titulka header.stuck{background:rgba(251,248,243,.92);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.vex-titulka header.stuck .logo, .vex-titulka header.stuck .icon{color:var(--ink)}
.vex-titulka header.stuck nav.main a{color:var(--ink-2)}
.vex-titulka header.stuck .icon:hover{background:rgba(18,16,15,.07)}
.vex-titulka .bar{display:flex;align-items:center;gap:20px;min-height:70px}
.vex-titulka .logo{font-family:var(--display);font-size:19px;letter-spacing:.08em;text-decoration:none}
.vex-titulka .logo b{font-weight:300;color:var(--accent)}
.vex-titulka nav.main{display:none;margin-left:auto;gap:26px;align-items:center}
.vex-titulka nav.main a{text-decoration:none;font-size:14.5px}
.vex-titulka nav.main a:hover{color:var(--accent)}
.vex-titulka .tools{display:flex;align-items:center;gap:2px;margin-left:auto}
.vex-titulka nav.main+.tools{margin-left:20px}
.vex-titulka .icon{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;cursor:pointer;position:relative;border-radius:99px}
.vex-titulka .icon:hover{background:rgba(255,255,255,.14)}
.vex-titulka .icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}
.vex-titulka .count{position:absolute;top:7px;right:6px;background:var(--accent);color:#fff;font-family:var(--mono);font-size:9px;min-width:15px;height:15px;border-radius:99px;display:grid;place-items:center}
@media(min-width:1060px){
.vex-titulka nav.main{display:flex}
.vex-titulka .burger{display:none}
}
.vex-titulka /* ---------- HERO ---------- */
.hero{position:relative;min-height:clamp(460px,62svh,640px);display:flex;align-items:center;overflow:hidden;background:var(--night);color:#fff}
.vex-titulka .hero-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.vex-titulka .hero-media img, .vex-titulka .hero-media video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:78% center;
  animation:drift 46s ease-in-out infinite}
@keyframes drift{0%,100%{transform:scale(1.01)}50%{transform:scale(1.05)}}
.vex-titulka .hero-media::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,var(--night) 0%,rgba(10,9,8,.82) 20%,rgba(10,9,8,.3) 40%,rgba(10,9,8,0) 58%),
    linear-gradient(180deg,rgba(10,9,8,.45) 0%,rgba(10,9,8,0) 24%,rgba(10,9,8,0) 78%,rgba(10,9,8,.35) 100%)}
.vex-titulka #spark{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}
.vex-titulka .hero-in{position:relative;z-index:2;width:100%;padding-block:130px 96px}
.vex-titulka .hero h1{font-size:clamp(42px,7.4vw,94px);max-width:12ch;font-weight:200;color:#fff;text-shadow:0 2px 40px rgba(0,0,0,.6)}
.vex-titulka .hero h1 em{font-style:normal;
  background:linear-gradient(100deg,var(--gold-2) 0%,var(--gold) 42%,var(--green) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.vex-titulka .hero .sub{margin-top:26px;font-size:clamp(16px,1.7vw,19px);color:var(--on-night);max-width:38ch}
.vex-titulka .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.vex-titulka .hero-note{margin-top:26px;font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--on-night);display:flex;align-items:center;gap:10px}
.vex-titulka .pulse{width:7px;height:7px;border-radius:99px;background:var(--accent);animation:pulse 2.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,0,102,.6)}70%{box-shadow:0 0 0 12px rgba(255,0,102,0)}100%{box-shadow:0 0 0 0 rgba(255,0,102,0)}}
@media(max-width:780px){
.vex-titulka .hero-media img, .vex-titulka .hero-media video{object-position:80% center;animation:none}
.vex-titulka .hero-media::after{background:linear-gradient(180deg,rgba(10,9,8,.92) 0%,rgba(10,9,8,.7) 34%,rgba(10,9,8,.15) 62%,rgba(10,9,8,.45) 100%)}
.vex-titulka .hero-in{padding-block:104px 30svh}
}
.vex-titulka .scroll-hint{position:absolute;bottom:24px;left:var(--gut);z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-night-2);display:flex;align-items:center;gap:12px}
.vex-titulka .scroll-hint i{width:34px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);animation:slidein 2.4s infinite}
@keyframes slidein{0%{opacity:0;transform:translateX(-8px)}40%{opacity:1}100%{opacity:0;transform:translateX(10px)}}
.vex-titulka /* ---------- MARQUEE ---------- */
.marq{border-block:1px solid rgba(255,255,255,.12);overflow:hidden;padding-block:15px;background:var(--night-2)}
.vex-titulka .marq-track{display:flex;gap:40px;width:max-content;animation:slide 48s linear infinite}
.vex-titulka .marq span{font-family:var(--display);font-size:clamp(17px,2.2vw,27px);font-weight:300;color:rgba(255,255,255,.55);white-space:nowrap;display:flex;align-items:center;gap:40px}
.vex-titulka .marq span::after{content:"";width:5px;height:5px;border-radius:99px;background:var(--gold)}
@keyframes slide{to{transform:translateX(-50%)}}
.vex-titulka .marq:hover .marq-track{animation-play-state:paused}
.vex-titulka /* ---------- MOOD ---------- */
.mood{position:relative;overflow:hidden;background:var(--night);color:var(--on-night)}
.vex-titulka #dust{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.vex-titulka .aura{position:absolute;z-index:0;width:min(90vw,860px);aspect-ratio:1;left:50%;top:44%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(var(--tint),.24) 0%,rgba(var(--tint),.07) 40%,transparent 68%);
  filter:blur(26px);transition:background 1.1s ease;animation:breathe 10s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.12)}}
.vex-titulka .mood .wrap{position:relative;z-index:1}
.vex-titulka .mood h2{color:#fff}
.vex-titulka .mood-head{text-align:center;margin-inline:auto}
.vex-titulka .mood-head .lede{color:var(--on-night);margin:20px auto 0;text-align:center}
.vex-titulka .pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:42px 0 50px}
.vex-titulka .pill{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.3);color:#fff;
  padding:13px 24px;border-radius:99px;cursor:pointer;transition:.26s ease}
.vex-titulka .pill:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.65)}
.vex-titulka .pill[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 30px -6px rgba(255,0,102,.8)}
.vex-titulka .result{display:grid;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);backdrop-filter:blur(8px);overflow:hidden}
@media(min-width:900px){
.vex-titulka .result{grid-template-columns:.82fr 1.18fr}
}
/* Obrázky produktů jsou na výšku 4:5. Bez pevného poměru
   řídí výšku sekce sám obrázek a ta pak při přepnutí vůně
   poskakuje. Contain navíc zaručí, že se nic nedeformuje. */
.vex-titulka .result-vis{position:relative;margin:0;aspect-ratio:4/5;background:#0d0b0a;overflow:hidden}
.vex-titulka .result-vis img{width:100%;height:100%;object-fit:contain;display:block;transition:opacity .35s ease}
.vex-titulka .result-vis::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 60% at 50% 45%,rgba(var(--tint),.16),transparent 70%);transition:background 1s ease}
@media(min-width:900px){
.vex-titulka .result-vis{aspect-ratio:4/5}
}
.vex-titulka .result-txt{padding:clamp(28px,3.6vw,46px);display:flex;flex-direction:column}
.vex-titulka .result-txt .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);margin-bottom:14px}
.vex-titulka .result-txt h3{font-size:clamp(30px,3.6vw,46px);color:#fff}
.vex-titulka .result-txt .desc{margin-top:14px;color:var(--on-night);max-width:44ch}
.vex-titulka .notes{margin:22px 0 0;padding:18px 0 0;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:10px}
.vex-titulka .notes>div{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:baseline}
.vex-titulka .notes dt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.vex-titulka .notes dd{margin:0;font-size:14px;color:var(--on-night);line-height:1.45}
.vex-titulka .result-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.vex-titulka .chip{font-family:var(--mono);font-size:11px;letter-spacing:.04em;border:1px solid rgba(255,255,255,.32);padding:7px 12px;border-radius:99px;color:#fff}
.vex-titulka .pricerow{margin-top:22px;display:flex;align-items:baseline;gap:12px}
.vex-titulka .price-lg{font-family:var(--display);font-size:26px;font-weight:300;color:#fff}
.vex-titulka .result-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.vex-titulka .slider-nav{margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);display:flex;align-items:center;gap:16px}
.vex-titulka .nav-btn{width:44px;height:44px;border-radius:99px;border:1px solid rgba(255,255,255,.35);background:none;color:#fff;
  font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.22s}
.vex-titulka .nav-btn:hover{background:#fff;color:var(--night);border-color:#fff}
.vex-titulka .dots{display:flex;gap:8px;flex:1}
/* Puntíky jsou <button>, a ty mají v šabloně min-height 54px
   a kulaté rohy. Tady je potřeba úzká čárka, ne pilulka. */
.vex-titulka .dot{display:block;width:32px;height:3px;min-height:0;padding:0;border:0;border-radius:0;
  background:rgba(255,255,255,.28);color:inherit;cursor:pointer;transition:.25s}
.vex-titulka .dot:hover{background:rgba(255,255,255,.55)}
.vex-titulka .dot[aria-current="true"]{background:var(--accent);box-shadow:0 0 14px -2px rgba(255,0,102,.9)}
.vex-titulka .fade-swap{animation:swapIn .45s ease}
@keyframes swapIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.vex-titulka /* ---------- PRODUKTY ---------- */
.sect-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.vex-titulka .prods{display:grid;gap:18px;grid-template-columns:1fr}
@media(min-width:640px){
.vex-titulka .prods{grid-template-columns:1fr 1fr}
}
@media(min-width:1040px){
.vex-titulka .prods{grid-template-columns:repeat(4,1fr)}
}
.vex-titulka .prod{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;transition:.3s ease}
.vex-titulka .prod:hover{transform:translateY(-6px);box-shadow:0 26px 50px -32px rgba(18,16,15,.55);border-color:var(--ink)}
.vex-titulka .pimg{aspect-ratio:1;position:relative;overflow:hidden;background:linear-gradient(160deg,#F6F0E6,#E4D9C7)}
.vex-titulka .pimg::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .45s;
  background:radial-gradient(58% 58% at 50% 55%,rgba(240,185,60,.35),rgba(123,240,168,.2) 55%,transparent 72%)}
.vex-titulka .prod:hover .pimg::before{opacity:1}
.vex-titulka .pimg .note{position:absolute;left:12px;bottom:10px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.vex-titulka .pbody{padding:20px;display:flex;flex-direction:column;flex:1;gap:10px}
.vex-titulka .badge{align-self:flex-start;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border:1px solid var(--ink);color:var(--ink)}
.vex-titulka .badge.fill{background:var(--ink);color:#fff}
.vex-titulka .badge.dev{border-color:var(--accent);color:var(--accent)}
.vex-titulka .prod h3{font-size:22px}
.vex-titulka .prod .char{font-size:14px;color:var(--ink-2);line-height:1.45}
.vex-titulka .scale{display:flex;gap:3px;align-items:center;font-family:var(--mono);font-size:10.5px;color:var(--ink-2);letter-spacing:.08em;text-transform:uppercase}
.vex-titulka .scale i{width:14px;height:3px;background:var(--line)}
.vex-titulka .scale i.on{background:var(--accent)}
.vex-titulka .pfoot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.vex-titulka .price{font-family:var(--display);font-size:20px;color:var(--ink)}
.vex-titulka .price small{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-2);letter-spacing:.04em;margin-top:2px}
.vex-titulka .plus{width:42px;height:42px;border-radius:99px;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none;transition:.25s}
.vex-titulka .prod:hover .plus{transform:scale(1.08)}
.vex-titulka .plus svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.vex-titulka /* ---------- NEFÉL ---------- */
.nefel{background:var(--paper-2);overflow:hidden}
.vex-titulka .nefel-grid{display:grid}
@media(min-width:900px){
.vex-titulka .nefel-grid{grid-template-columns:1fr 1fr;align-items:center}
}
.vex-titulka .nefel-txt{padding:clamp(52px,7vw,110px) var(--gut)}
.vex-titulka .wordmark{font-family:var(--display);font-size:12px;letter-spacing:.46em;text-transform:uppercase;color:var(--ink-2);margin-bottom:22px}
.vex-titulka .nefel h2{font-size:clamp(30px,4.2vw,52px);max-width:14ch}
.vex-titulka .nefel p{margin-top:20px;color:var(--ink-2);max-width:40ch}
.vex-titulka .nefel-vis{min-height:320px;background:linear-gradient(150deg,#F7F1E7,#DCCDB8);position:relative}
.vex-titulka .nefel-vis .note{position:absolute;left:16px;bottom:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
@media(min-width:900px){
.vex-titulka .nefel-vis{min-height:580px}
.vex-titulka .nefel-txt{padding-inline:clamp(30px,6vw,90px) clamp(24px,3vw,50px)}
}
.vex-titulka /* ---------- B2B ---------- */
.b2b{position:relative;background:var(--night-2);color:var(--on-night);overflow:hidden}
.vex-titulka .b2b .aura{top:16%;left:84%;width:min(70vw,600px)}
.vex-titulka .b2b .wrap{position:relative;z-index:1}
.vex-titulka .b2b h2{color:#fff}
.vex-titulka .b2b-top{display:grid;gap:26px;margin-bottom:48px}
@media(min-width:900px){
.vex-titulka .b2b-top{grid-template-columns:1.1fr .9fr;gap:60px;align-items:end}
}
.vex-titulka .b2b-top p{color:var(--on-night)}
.vex-titulka .segs{display:grid;gap:1px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.2);grid-template-columns:1fr 1fr}
@media(min-width:760px){
.vex-titulka .segs{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:1100px){
.vex-titulka .segs{grid-template-columns:repeat(6,1fr)}
}
.vex-titulka .seg{background:var(--night-2);padding:26px 20px;display:flex;flex-direction:column;gap:8px;min-height:148px;transition:background .3s}
.vex-titulka .seg:hover{background:rgba(255,0,102,.16)}
.vex-titulka .seg .k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--gold-2)}
.vex-titulka .seg strong{font-family:var(--display);font-size:21px;font-weight:300;color:#fff}
.vex-titulka .seg span{font-size:13px;color:var(--on-night-2);line-height:1.45}
.vex-titulka .b2b-foot{margin-top:44px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.vex-titulka .fine{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--on-night-2)}
.vex-titulka /* ---------- TRUST ---------- */
.trust{background:var(--white);border-top:1px solid var(--line)}
.vex-titulka .trust ul{list-style:none;margin:0;padding:28px 0;display:grid;gap:16px}
@media(min-width:640px){
.vex-titulka .trust ul{grid-template-columns:1fr 1fr}
}
@media(min-width:1040px){
.vex-titulka .trust ul{grid-template-columns:repeat(4,1fr);gap:30px}
}
.vex-titulka .trust li{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--ink-2)}
.vex-titulka .trust li strong{color:var(--ink);font-weight:600}
.vex-titulka .trust svg{width:17px;height:17px;stroke:var(--accent);fill:none;stroke-width:1.8;flex:none;margin-top:2px}
.vex-titulka /* ---------- FOOTER ---------- */
footer{background:var(--night);color:var(--on-night);padding-block:clamp(56px,7vw,84px) 28px;font-size:14px}
.vex-titulka .f-grid{display:grid;gap:34px}
@media(min-width:700px){
.vex-titulka .f-grid{grid-template-columns:1fr 1fr}
}
@media(min-width:1040px){
.vex-titulka .f-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
}
.vex-titulka footer h4{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0 0 16px;font-weight:400}
.vex-titulka footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.vex-titulka footer a{text-decoration:none}
.vex-titulka footer a:hover{color:var(--accent)}
.vex-titulka .f-logo{font-family:var(--display);font-size:21px;letter-spacing:.08em;color:#fff;margin-bottom:14px}
.vex-titulka .f-logo b{font-weight:300;color:var(--accent)}
.vex-titulka .f-bottom{margin-top:46px;padding-top:22px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--on-night-2)}
.vex-titulka .f-bottom nav{display:flex;flex-wrap:wrap;gap:12px 20px}
.vex-titulka .rv{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.vex-titulka .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){

.vex-titulka .rv{opacity:1;transform:none}
}
.vex-titulka /* ================= VONNÁ CESTA ================= */
.vc{position:relative;background:var(--night);color:#fff;overflow:hidden}
.vex-titulka .vc::before{content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,#241A16 0%,#0A0908 46%,#1C1512 100%);opacity:.96}
.vex-titulka .vc::after{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 90% at 78% 8%,rgba(240,185,60,.18),transparent 62%),
             radial-gradient(90% 80% at 6% 98%,rgba(255,0,102,.14),transparent 60%)}
.vex-titulka #vc-jiskry{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.vex-titulka .vc .wrap{position:relative;z-index:2}
.vex-titulka .vc-head{max-width:46ch}
.vex-titulka .vc-head .h2{color:#fff}
.vex-titulka .vc-head .lede{margin-top:20px;font-size:17px;line-height:1.62;color:var(--on-night)}
.vex-titulka .vc-stops{display:grid;gap:clamp(14px,1.8vw,22px);margin-top:clamp(38px,4vw,56px);grid-template-columns:1fr}
@media(min-width:640px){
.vex-titulka .vc-stops{grid-template-columns:1fr 1fr}
}
@media(min-width:1040px){
.vex-titulka .vc-stops{grid-template-columns:repeat(4,1fr)}
}
.vex-titulka .vc-stop{position:relative;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);
  overflow:hidden;transition:transform .24s ease,border-color .24s ease,background .24s ease}
.vex-titulka .vc-stop:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.07)}
.vex-titulka .vc-stop figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:#1A1614}
.vex-titulka .vc-stop img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.vex-titulka .vc-stop:hover img{transform:scale(1.05)}
.vex-titulka .vc-txt{padding:20px 20px 24px}
.vex-titulka .vc-krok{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--gold-2);display:block;margin-bottom:9px}
.vex-titulka .vc-stop h3{margin:0;font-family:var(--display);font-weight:300;font-size:20px;line-height:1.18;letter-spacing:-.02em;color:#fff}
.vex-titulka .vc-stop p{margin:9px 0 0;font-size:14.5px;line-height:1.55;color:var(--on-night-2)}
.vex-titulka .vc-znacka{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;padding:5px 11px;border-radius:99px}
.vex-titulka .vc-znacka.c{background:var(--carpex);color:#fff}
.vex-titulka .vc-znacka.n{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.28)}
.vex-titulka .vc-skala{margin-top:clamp(40px,4.6vw,64px);border-top:1px solid rgba(255,255,255,.16);padding-top:30px}
.vex-titulka .vc-lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-night-2);margin:0 0 18px}
.vex-titulka .vc-rada{display:flex;flex-wrap:wrap;gap:10px}
.vex-titulka .vc-st{flex:1 1 132px;border:1px solid rgba(255,255,255,.16);padding:14px 14px 16px;
  background:rgba(255,255,255,.03);text-decoration:none;color:inherit;display:block;position:relative;
  transition:transform .2s ease,border-color .2s ease,background .2s ease}
.vex-titulka .vc-st:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08)}
.vex-titulka .vc-st::after{content:"→";position:absolute;top:12px;right:13px;font-size:14px;color:var(--gold-2);
  opacity:0;transform:translateX(-4px);transition:opacity .2s ease,transform .2s ease}
.vex-titulka .vc-st:hover::after{opacity:1;transform:translateX(0)}
.vex-titulka .vc-st:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.vex-titulka .vc-st b{display:block;font-family:var(--display);font-weight:300;font-size:23px;color:#fff}
.vex-titulka .vc-st span{display:block;margin-top:5px;font-size:12.5px;line-height:1.45;color:var(--on-night-2)}
.vex-titulka .vc-st.n{border-color:rgba(255,255,255,.34)}
.vex-titulka .vc-cta{margin-top:clamp(36px,4vw,52px);display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.vex-titulka .vc-cta .fine{font-size:13.5px;color:var(--on-night-2)}
.vex-titulka .vc-dukazy{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.vex-titulka .vc-dukazy .wrap{padding-block:clamp(48px,5.4vw,76px);display:grid;gap:34px}
@media(min-width:900px){
.vex-titulka .vc-dukazy .wrap{grid-template-columns:1fr 1fr;gap:56px;align-items:center}
}
.vex-titulka .vc-h2{margin:0;font-family:var(--display);font-weight:300;font-size:clamp(28px,3.4vw,40px);
  line-height:1.1;letter-spacing:-.028em}
.vex-titulka .vc-lede2{margin-top:16px;color:var(--ink-2);font-size:16px;max-width:56ch}
.vex-titulka .vc-body{margin-top:26px;display:grid;gap:2px;background:var(--line);border:1px solid var(--line)}
.vex-titulka .vc-bod{background:var(--white);padding:16px 18px;display:flex;gap:14px;align-items:baseline}
.vex-titulka .vc-bod b{font-family:var(--mono);font-size:12px;color:var(--accent);flex:none;letter-spacing:.06em;min-width:44px}
.vex-titulka .vc-bod span{font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.vex-titulka .vc-bod i{font-style:normal;font-weight:600;color:var(--ink)}
.vex-titulka .vc-foto{margin:0;border:1px solid var(--line);overflow:hidden;background:var(--white)}
.vex-titulka .vc-foto img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.vex-titulka .vc-foto figcaption{padding:16px 20px;font-size:13.5px;line-height:1.5;color:var(--ink-3)}

/* =========================================================
   24. KOŠÍK
   ========================================================= */

/* Vlastní ovládací prvky košíku si vzhled řídí samy.
   Bez tohohle by je přebil obecný styl pro <button> ze sekce 6,
   který dává každému tlačítku výšku 54 px a kulaté rohy.
   Ve výpisu kategorie jsou chipy odkazy, tady tlačítka —
   proto se to projeví až v košíku. */
.vex-dlazdice-btn,
.vex-odkaz-btn {
	min-height: 0;
	background: none;
	border-radius: 0;
	padding: 0;
	font-size: inherit;
	font-weight: inherit;
	white-space: normal;
	line-height: inherit;
	display: block;
	gap: 0;
}

/* Pilulkám v seznamu potlačíme jen výšku, zbytek vzhledu si drží. */
.vex-vzorky-blok button.vex-chip {
	min-height: 0;
	line-height: 1.35;
	font-weight: 400;
}

/* --- ukazatel do dopravy zdarma --- */
.vex-doprava {
	background: var(--vex-paper);
	border: 1px solid var(--vex-line);
	padding: 20px 22px;
	margin-block: 24px;
}
.vex-doprava.hotovo {
	background: #EDF7F1;
	border-color: #CBE7D8;
}
.vex-doprava-top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 11px;
	flex-wrap: wrap;
}
.vex-doprava-top b { font-weight: 600; font-size: 15.5px; }
.vex-doprava.hotovo .vex-doprava-top b { color: #1FA463; }
.vex-doprava-zbyva {
	font-family: var(--vex-mono);
	font-size: 12px;
	color: var(--vex-ink-3);
	white-space: nowrap;
}
.vex-doprava-zbyva .amount,
.vex-doprava-top b .amount { font-family: inherit; }

.vex-bar {
	height: 7px;
	border-radius: 99px;
	background: var(--vex-line);
	overflow: hidden;
}
.vex-bar i {
	display: block;
	height: 100%;
	border-radius: 99px;
	background: linear-gradient(90deg, var(--vex-gold), var(--vex-accent));
	transition: width .45s ease;
}
.vex-doprava.hotovo .vex-bar i { background: #1FA463; }

/* --- čím doplnit --- */
.vex-doplnek {
	margin-top: 15px;
	padding-top: 14px;
	border-top: 1px dashed var(--vex-line);
}
.vex-doplnek-k {
	display: block;
	font-family: var(--vex-mono);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	margin-bottom: 9px;
}
.vex-doplnek-radek {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.vex-doplnek-radek > div { flex: 1 1 200px; }
.vex-doplnek-radek b { display: block; font-weight: 600; font-size: 14.5px; }
.vex-doplnek-radek b a { text-decoration: none; }
.vex-doplnek-radek b a:hover { color: var(--vex-accent); }
.vex-doplnek-radek small { display: block; color: var(--vex-ink-3); font-size: 12.5px; }
.vex-doplnek-obr {
	width: 58px;
	flex: none;
	border: 1px solid var(--vex-line);
	border-radius: 8px;
	overflow: hidden;
	background: var(--vex-paper-2);
	display: block;
}
.vex-doplnek-obr img { width: 100%; aspect-ratio: 4/5; object-fit: contain; display: block; }
.vex-doplnek-btn {
	min-height: 40px;
	padding: 0 20px;
	border-radius: 99px;
	border: 1.5px solid var(--vex-ink);
	background: none;
	color: var(--vex-ink);
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	transition: .18s;
}
.vex-doplnek-btn:hover { background: var(--vex-ink); color: #fff; }

/* --- vzorky --- */
.vex-vzorky-blok {
	background: #EDF7F1;
	border: 1px solid #CBE7D8;
	padding: 20px 22px;
	margin-block: 24px;
}
.vex-vzorky-hlava { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.vex-vzorky-hlava svg {
	width: 22px; height: 22px; flex: none;
	fill: none; stroke: #1FA463; stroke-width: 1.5;
	stroke-linecap: round; stroke-linejoin: round; margin-top: 2px;
}
.vex-vzorky-hlava > span { flex: 1 1 220px; font-size: 14.5px; color: var(--vex-ink-2); }
.vex-vzorky-hlava b { display: block; font-weight: 600; color: var(--vex-ink); }
.vex-vzorky-pocet {
	font-family: var(--vex-mono);
	font-size: 11.5px;
	color: var(--vex-ink-3);
	white-space: nowrap;
	flex: none;
}
.vex-vzorky-seznam { margin-top: 16px; }

/* Mřížka se roztáhne přes celou šířku a poslední řádek
   se vycentruje, aby vpravo nezbývalo prázdné místo. */
.vex-dlazdice {
	display: grid;
	gap: 10px;
	margin-top: 10px;
	grid-template-columns: repeat(auto-fit, minmax(94px, 1fr));
	justify-content: center;
}
.vex-dlazdice-btn {
	display: flex;
	flex-direction: column;
	position: relative;
	border: 1px solid var(--vex-line);
	background: var(--vex-white);
	border-radius: 12px;
	padding: 0 0 9px;
	min-height: 0;
	font-family: inherit;
	cursor: pointer;
	overflow: hidden;
	text-align: center;
	color: inherit;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.vex-dlazdice-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 22px -12px rgba(18,16,15,.5); }
.vex-dlazdice-btn.on { border-color: var(--vex-accent); box-shadow: inset 0 0 0 1px var(--vex-accent); }
.vex-dlazdice-btn:disabled { opacity: .42; cursor: not-allowed; transform: none; box-shadow: none; }
.vex-dlazdice-obr {
	display: grid;
	place-items: center;
	aspect-ratio: 4/5;
	background: var(--vex-paper-2);
	overflow: hidden;
	flex: none;
}
.vex-dlazdice-obr img { width: 100%; height: 100%; object-fit: contain; display: block; }
/* Místo pro dva řádky drží i u krátkých názvů.
   Bez toho by si každá dlaždice počítala výšku podle svého
   textu a obrázky by mezi sebou skákaly. */
.vex-dlazdice-nazev {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: calc(2 * 1.3em);
	font-size: 12px;
	line-height: 1.3;
	padding: 8px 7px 0;
	color: var(--vex-ink-2);
	overflow: hidden;
}
.vex-dlazdice-btn.on .vex-dlazdice-nazev { color: var(--vex-ink); font-weight: 600; }
.vex-dlazdice-fajfka {
	position: absolute;
	top: 7px;
	right: 7px;
	width: 22px;
	height: 22px;
	border-radius: 99px;
	background: var(--vex-accent);
	display: grid;
	place-items: center;
	opacity: 0;
	transform: scale(.6);
	transition: .2s;
}
.vex-dlazdice-fajfka svg {
	width: 12px; height: 12px;
	fill: none; stroke: #fff; stroke-width: 2.6;
	stroke-linecap: round; stroke-linejoin: round;
}
.vex-dlazdice-btn.on .vex-dlazdice-fajfka { opacity: 1; transform: scale(1); }

.vex-chipy { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; max-height: 300px; overflow-y: auto; padding-right: 6px; }
.vex-chipy .vex-chip.on::after { content: " ×"; opacity: .65; }
.vex-chipy .vex-chip:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }

.vex-vzorky-prepnout { margin: 14px 0 0; }
.vex-odkaz-btn {
	background: none;
	border: 0;
	padding: 0;
	min-height: 0;
	font-family: inherit;
	font-size: 13.5px;
	color: var(--vex-ink-2);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.vex-odkaz-btn:hover { color: var(--vex-accent); background: none; }

.vex-vzorky-objednavka { margin-top: 10px; }

/* --- návrat z pokladny do košíku --- */
.vex-zpet {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin: 0 0 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--vex-line);
}
.vex-zpet a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14.5px;
	font-weight: 500;
	text-decoration: none;
	color: var(--vex-ink);
	transition: color .18s ease, transform .18s ease;
}
.vex-zpet a:hover { color: var(--vex-accent); }
.vex-zpet a:hover svg { transform: translateX(-3px); }
.vex-zpet svg {
	width: 17px;
	height: 17px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform .18s ease;
}
.vex-zpet-pocet {
	margin-left: auto;
	font-family: var(--vex-mono);
	font-size: 12px;
	color: var(--vex-ink-3);
}
.vex-zpet-pocet .amount { font-family: inherit; }

/* U rekapitulace je odkaz drobnější, nadpis má zůstat hlavní. */
.woocommerce-checkout-review-order .vex-zpet,
#order_review + .vex-zpet {
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 12px;
}

/* --- vzorky v rekapitulaci pokladny --- */
.vex-radek-vzorky th { font-weight: 600; }
.vex-vzorky-vypis {
	display: block;
	font-size: 14px;
	line-height: 1.45;
	color: var(--vex-ink-2);
}
.vex-vzorky-prazdne { color: var(--vex-ink-3); font-style: italic; }
.vex-vzorky-uprav {
	display: inline-block;
	margin-top: 5px;
	font-size: 12.5px;
	color: var(--vex-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* =========================================================
   25. POKLADNA
   ========================================================= */

/* --- souhlas s novinkami --- */
.vex-novinky {
	margin-top: 18px;
	padding: 15px 16px;
	background: var(--vex-paper);
	border: 1px solid var(--vex-line);
	border-radius: 12px;
}
.vex-novinky label {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.5;
	color: var(--vex-ink-2);
	cursor: pointer;
	margin: 0;
}
.vex-novinky input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex: none;
	margin-top: 2px;
	accent-color: var(--vex-accent);
}
.vex-novinky .required { display: none; }

/* --- popisky pod poli --- */
.woocommerce-checkout .form-row .description {
	display: block;
	margin-top: 5px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--vex-ink-3);
}

.vex-novinky-objednavka { margin-top: 8px; }
.vex-novinky-kdy { color: var(--vex-ink-3); font-weight: 400; }

/* =========================================================
   26. POKLADNA — rozvržení podle prototypu v6
   Levý sloupec: údaje zákazníka ve dvou kartách (1 Kontakt +
   2 Fakturační adresa; 3 Doručení a poznámka). Pravý sloupec:
   přilepená rekapitulace s dopravou, kuponem, platbou (4)
   a tlačítkem objednávky.
   ========================================================= */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
	gap: 20px clamp(24px, 3.5vw, 48px);
	align-items: start;
}
@media (max-width: 900px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
}
.woocommerce-checkout form.checkout .col2-set {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	display: block;
}
.woocommerce-checkout form.checkout .col2-set::before,
.woocommerce-checkout form.checkout .col2-set::after { display: none; }
.woocommerce-checkout form.checkout .col2-set .col-1,
.woocommerce-checkout form.checkout .col2-set .col-2 {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0 0 18px;
	padding: 22px clamp(18px, 2.6vw, 28px) 24px;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	border-radius: 14px;
}
.woocommerce-checkout form.checkout #order_review_heading { display: none; }
.vex-rekap-nadpis {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 24px;
	letter-spacing: -.02em;
	margin: 0 0 12px;
}
@media (max-width: 900px) {
	.woocommerce-checkout form.checkout .col2-set,
	.woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}
.woocommerce-checkout form.checkout #order_review {
	grid-column: 2;
	grid-row: 1;
	position: sticky;
	top: 110px;
	padding: 22px clamp(18px, 2.6vw, 28px) 24px;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	border-radius: 14px;
}

/* --- kroky --- */
.woocommerce-checkout .woocommerce-billing-fields > h3 { display: none; }
.vex-krok {
	display: flex;
	align-items: center;
	gap: 12px;
	clear: both;
	margin: 0 0 14px;
}
.woocommerce-checkout .vex-krok[data-krok="2"] { margin-top: 8px; padding-top: 22px; border-top: 1px solid var(--vex-line); }
.vex-krok-cislo,
.woocommerce-checkout .col-2 > h3::before,
.woocommerce-checkout .woocommerce-shipping-fields > h3::before,
.woocommerce-checkout .woocommerce-additional-fields > h3::before,
.woocommerce-checkout #payment > h3::before {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: none;
	border-radius: 50%;
	background: var(--vex-accent);
	color: #fff;
	font-family: var(--vex-mono);
	font-size: 12.5px;
}
.vex-krok-nazev,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout #payment > h3 {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 22px;
	letter-spacing: -.02em;
	line-height: 1.15;
	margin: 0;
	color: var(--vex-ink);
}
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}
.woocommerce-checkout .woocommerce-shipping-fields > h3::before { content: "3"; }
.woocommerce-checkout .woocommerce-shipping-fields > h3 { font-family: var(--vex-sans); font-size: 15px; font-weight: 500; }
.woocommerce-checkout .woocommerce-shipping-fields > h3 label { display: inline-flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; }
.woocommerce-checkout .woocommerce-shipping-fields > h3 input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--vex-accent); margin: 0; }
.woocommerce-checkout .woocommerce-additional-fields > h3::before { content: "\2713"; }
.woocommerce-checkout .woocommerce-shipping-fields + .woocommerce-additional-fields { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--vex-line); }
.woocommerce-checkout .woocommerce-shipping-fields + .woocommerce-additional-fields > h3::before { display: none; }
.woocommerce-checkout .woocommerce-additional-fields > h3 { font-size: 18px; }

/* --- pole --- */
.woocommerce-checkout .form-row { margin-bottom: 14px; }
.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 500;
	color: var(--vex-ink-2);
}
.woocommerce-checkout .form-row label .required { color: var(--vex-accent); text-decoration: none; }
.woocommerce-checkout .form-row label .optional { color: var(--vex-ink-3); font-weight: 400; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row .select2-container .select2-selection--single {
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: 1px solid var(--vex-line);
	border-radius: 10px;
	background: var(--vex-white);
	font: 15.5px/1.4 var(--vex-sans);
	color: var(--vex-ink);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
	outline: none;
	border-color: var(--vex-ink);
	box-shadow: 0 0 0 3px rgba(18, 16, 15, .08);
}
.woocommerce-checkout .form-row.woocommerce-invalid .input-text { border-color: var(--vex-accent); }
.woocommerce-checkout .form-row .select2-container .select2-selection--single { display: flex; align-items: center; }
.woocommerce-checkout .form-row .select2-container .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 8px; }
.woocommerce-checkout .form-row textarea { min-height: 92px; resize: vertical; }
/* Mřížka místo plovoucích polí: co je v DOMu za sebou, je i na stránce. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::before,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper::before,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper::after { display: none; }
.woocommerce-checkout form .form-row,
.woocommerce-checkout form .form-row-first,
.woocommerce-checkout form .form-row-last,
.woocommerce-checkout form .form-row-wide { float: none !important; width: 100% !important; max-width: none; margin: 0 0 14px; grid-column: 1 / -1; }
.woocommerce-checkout form .form-row-first,
.woocommerce-checkout form .form-row-last { grid-column: auto; }
.woocommerce-checkout form .form-row .input-text,
.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row select,
.woocommerce-checkout form .form-row textarea { width: 100% !important; max-width: 100%; box-sizing: border-box; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .vex-krok { grid-column: 1 / -1; }
@media (max-width: 560px) {
	.woocommerce-checkout form .form-row-first,
	.woocommerce-checkout form .form-row-last { grid-column: 1 / -1; }
}

/* --- rekapitulace --- */
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table {
	width: 100%;
	max-width: 100%;
	margin: 0 0 18px;
	border: 0;
	border-collapse: collapse;
	font-size: 14.5px;
}
/* Tabulka vykreslena jako bloky: řádek dopravy s display:flex by se jinak
   zabalil do anonymní buňky prvního sloupce (~70 % šířky). */
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tbody,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot { display: block; width: 100%; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tr { display: flex; align-items: flex-start; gap: 0; width: 100%; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tr > th + td { padding-left: 12px; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tr > th,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tr > td { flex: 1 1 auto; min-width: 0; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tr > td:last-child,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot tr > th + td { flex: 0 0 auto; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table td {
	padding: 11px 0;
	border: 0;
	border-bottom: 1px solid var(--vex-line);
	vertical-align: top;
	text-align: left;
	background: none;
}
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table tfoot th + td { text-align: right; white-space: nowrap; }
.woocommerce-checkout .shop_table .cart_item .product-name { color: var(--vex-ink-2); }
.woocommerce-checkout .shop_table .cart_item .product-quantity { color: var(--vex-ink-3); font-family: var(--vex-mono); font-size: 12.5px; }
.woocommerce-checkout .shop_table tfoot th { font-weight: 500; color: var(--vex-ink-2); }
.woocommerce-checkout .shop_table tfoot .order-total th,
.woocommerce-checkout .shop_table tfoot .order-total td { border-bottom: 0; padding-top: 14px; }
.woocommerce-checkout .shop_table tfoot .order-total td > strong .amount { font-family: var(--vex-display); font-weight: 400; font-size: 24px; letter-spacing: -.02em; }
.woocommerce-checkout .shop_table tfoot .order-total td .tax_label,
.woocommerce-checkout .shop_table tfoot .order-total td .includes_tax { display: block; font-size: 12px; color: var(--vex-ink-3); font-family: var(--vex-sans); white-space: normal; }
.woocommerce-checkout .shop_table tfoot .cart-discount .woocommerce-remove-coupon { margin-left: 6px; font-size: 12px; color: var(--vex-ink-3); }

/* doprava jako volby — rámeček je celá položka (plugin PPL dává
   přepínač mimo popisek), popisek zabírá zbytek šířky */
.woocommerce-checkout .shop_table tfoot tr.woocommerce-shipping-totals { display: flex; flex-direction: column; width: 100%; }
.woocommerce-checkout ul#shipping_method { width: 100% !important; max-width: none !important; }
.woocommerce-checkout ul#shipping_method li { width: 100% !important; max-width: none !important; min-width: 100%; }
.woocommerce-checkout ul#shipping_method li > label,
.woocommerce-checkout ul#shipping_method li label[for] { width: auto !important; max-width: none !important; flex: 1 1 0 !important; display: flex !important; }
.woocommerce-checkout ul#shipping_method li label * { overflow-wrap: normal; word-break: normal; }
.woocommerce-checkout ul#shipping_method li label .amount,
.woocommerce-checkout ul#shipping_method li label .amount * ,
.woocommerce-checkout ul#shipping_method li label bdi { white-space: nowrap !important; }
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals th,
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals td { display: block; width: 100% !important; max-width: none; text-align: left; white-space: normal; }
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals td { border-bottom: 1px solid var(--vex-line); }
.woocommerce-checkout ul#shipping_method .amount,
.woocommerce-checkout ul#shipping_method .woocommerce-Price-amount { white-space: nowrap; }
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals th { border-bottom: 0; padding-bottom: 6px; }
.woocommerce-checkout ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.woocommerce-checkout ul#shipping_method li {
	margin: 0;
	padding: 11px 13px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	border: 1px solid var(--vex-line);
	border-radius: 11px;
	font-size: 14px;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease;
}
.woocommerce-checkout ul#shipping_method li:has(input:checked) { border-color: var(--vex-ink); background: var(--vex-paper); }
.woocommerce-checkout ul#shipping_method li > input[type="radio"],
.woocommerce-checkout ul#shipping_method li > input[type="hidden"] + label { margin: 0; }
.woocommerce-checkout ul#shipping_method input[type="radio"] { width: 17px; height: 17px; margin: 0; accent-color: var(--vex-accent); flex: none; }
.woocommerce-checkout ul#shipping_method label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 8px;
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-size: 14px;
	cursor: pointer;
}
.woocommerce-checkout ul#shipping_method label img { max-height: 18px; width: auto; }
.woocommerce-checkout ul#shipping_method label .amount { font-weight: 600; }
.woocommerce-checkout ul#shipping_method label > * { max-width: 100%; }
.woocommerce-checkout ul#shipping_method label span,
.woocommerce-checkout ul#shipping_method label small { white-space: normal; }
.woocommerce-checkout ul#shipping_method li > *:not(input):not(label) { flex: 1 1 100%; margin-top: 8px; }
.woocommerce-checkout .woocommerce-shipping-destination { margin: 8px 0 0; font-size: 12.5px; color: var(--vex-ink-3); }
/* PPL (label-method.css): obal .pplcz-method-container je inline-block →
   smrští se na obsah (~70 % šířky). Zde ho roztahujeme na celou šířku. */
.woocommerce-checkout ul#shipping_method .pplcz-method-container {
	display: block !important;
	width: 100% !important;
	flex: 1 1 0 !important;
	min-width: 0;
}
.woocommerce-checkout ul#shipping_method .pplcz-method-label {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	width: 100%;
	margin: 0 !important;
	text-align: left;
}
.woocommerce-checkout ul#shipping_method .pplcz-method-label ul { margin: 0; padding: 0; list-style: none; }
/* PPL: řádek s ikonou výběru místa / vybrané výdejní místo */
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner {
	flex: 1 1 100%;
	width: 100%;
	margin: 8px 0 0 !important;
	gap: 10px;
	font-size: 13px;
	color: var(--vex-ink-2);
}
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner a.pplcz-select-parcelshop {
	flex: none;
	width: 40px; height: 40px;
	background: var(--vex-paper);
	border: 1px solid var(--vex-line);
}
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-selected-parcelshop {
	flex: 1 1 0; margin-left: 0; min-width: 0; line-height: 1.45;
	white-space: normal !important; overflow-wrap: break-word; color: var(--vex-ink-2);
}
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-selected-parcelshop b,
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-selected-parcelshop strong { color: var(--vex-ink); }
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-clear-map,
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-show-map {
	font-size: 12px; top: 0; margin: 0 4px; white-space: nowrap;
	color: var(--vex-accent); text-decoration: underline; text-underline-offset: 2px;
}
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-clear-map:hover,
.woocommerce-checkout ul#shipping_method .pplcz-parcelshop-inner .pplcz-show-map:hover { color: var(--vex-ink); }
/* PPL: tlačítko / info o vybraném výdejním místě pod volbami */
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals td .button,
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals td button {
	margin-top: 10px; min-height: 44px; padding: 0 18px; border-radius: 99px;
	background: var(--vex-ink); color: #fff; border: 0; font-size: 14px; font-weight: 500;
}
.woocommerce-checkout .shop_table tfoot .woocommerce-shipping-totals td .button:hover { background: var(--vex-accent); }

/* vlastní kupon */
.vex-kupon { margin: 0 0 16px; }
.vex-kupon-prepnout {
	min-height: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	font: 500 13.5px/1.4 var(--vex-sans);
	color: var(--vex-ink-3);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.vex-kupon-prepnout:hover { color: var(--vex-accent); background: none; }
.vex-kupon-pole { display: flex; gap: 8px; margin-top: 10px; }
.vex-kupon-pole[hidden] { display: none; }
.vex-kupon-pole .input-text { flex: 1; min-height: 44px; padding: 9px 13px; border: 1px solid var(--vex-line); border-radius: 10px; font: 15px var(--vex-sans); }
.vex-kupon-pouzit { min-height: 44px; padding: 0 18px; border-radius: 99px; background: var(--vex-ink); color: #fff; border: 0; font-size: 14px; font-weight: 500; }
.vex-kupon-pouzit:hover { background: var(--vex-accent); }
.vex-kupon-zprava .woocommerce-error,
.vex-kupon-zprava .woocommerce-message { margin: 0 0 12px; padding: 10px 14px; border: 1px solid var(--vex-line); border-radius: 10px; background: var(--vex-paper); font-size: 13.5px; }

/* --- platba --- */
.woocommerce-checkout #payment { background: none; border-radius: 0; }
.vex-krok-platba { margin: 4px 0 0; padding-top: 18px; border-top: 1px solid var(--vex-line); }
.woocommerce-checkout #payment ul.wc_payment_methods {
	list-style: none;
	margin: 12px 0 18px;
	padding: 0;
	border: 0;
	display: grid;
	gap: 8px;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	margin: 0;
	padding: 0;
	border: 1px solid var(--vex-line);
	border-radius: 11px;
	overflow: hidden;
	transition: border-color .18s ease;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(input:checked) { border-color: var(--vex-ink); }
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 12px 13px;
	font-size: 14.5px;
	font-weight: 500;
	cursor: pointer;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label::before {
	content: "";
	width: 17px; height: 17px; flex: none;
	border: 1.5px solid var(--vex-ink-3); border-radius: 50%;
	box-sizing: border-box;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(input:checked) > label::before {
	border: 5px solid var(--vex-accent);
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label img { max-height: 22px; width: auto; margin: 0 0 0 4px; }
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label img:first-of-type { margin-left: auto; }
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label a { margin-left: 8px; font-size: 12.5px; color: var(--vex-ink-3); }
.woocommerce-checkout #payment div.payment_box {
	margin: 0;
	padding: 12px 13px 14px;
	background: var(--vex-paper);
	border-top: 1px solid var(--vex-line);
	border-radius: 0;
	font-size: 13.5px;
	color: var(--vex-ink-2);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }

/* tlačítko, podmínky, ujištění */
.woocommerce-checkout #payment .place-order { padding: 0; margin: 0; display: flex; flex-direction: column; }
.woocommerce-checkout #payment .place-order > * { float: none !important; width: 100%; max-width: 100%; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; }
.woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 12.5px; line-height: 1.5; color: var(--vex-ink-3); margin: 0 0 12px; }
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: flex !important;
	gap: 11px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.5;
	color: var(--vex-ink-2);
	cursor: pointer;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] { width: 18px; height: 18px; flex: none; margin: 2px 0 0; accent-color: var(--vex-accent); }
.woocommerce-checkout .woocommerce-form__label-for-checkbox .required { color: var(--vex-accent); text-decoration: none; }
.woocommerce-checkout .woocommerce-terms-and-conditions { display: none !important; }
.woocommerce-checkout #payment .place-order .button,
.woocommerce-checkout #payment .place-order #place_order {
	width: 100%;
	min-height: 56px;
	padding: 0 22px;
	border-radius: 99px;
	background: var(--vex-accent);
	border: 0;
	color: #fff;
	font: 600 15.5px var(--vex-sans);
	letter-spacing: 0;
	text-transform: none;
	transition: background .18s ease, transform .18s ease;
}
.woocommerce-checkout #payment .place-order #place_order:hover { background: var(--vex-accent-tmav); transform: translateY(-1px); }
.vex-ujisteni { margin-top: 16px; display: grid; gap: 8px; clear: both; width: 100%; }
.vex-ujisteni div { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; line-height: 1.45; color: var(--vex-ink-3); }
.vex-ujisteni svg { width: 16px; height: 16px; flex: none; margin-top: 1px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* --- novinky: přesun do karty 3 už dělá WooCommerce, jen vzhled --- */
.woocommerce-checkout .vex-novinky { margin-top: 14px; }

/* --- hlášky WooCommerce v pokladně --- */
.woocommerce-checkout .woocommerce-NoticeGroup,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message {
	border: 1px solid var(--vex-line);
	border-left-width: 3px;
	border-left-color: var(--vex-accent);
	border-radius: 10px;
	background: var(--vex-white);
	color: var(--vex-ink-2);
	font-size: 14px;
	padding: 12px 16px;
	margin-bottom: 18px;
}
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-checkout .woocommerce-error::before,
.woocommerce-checkout .woocommerce-message::before { display: none; }

/* --- expresní tlačítka v košíku --- */
.woocommerce-cart .wc-proceed-to-checkout { display: flex; flex-direction: column; gap: 10px; }
.woocommerce-cart .wc-proceed-to-checkout > *:not(.checkout-button) { margin: 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { margin-top: 4px; }

/* --- pozadí košíku a pokladny: náznak hero fotky pod béžovou ---
   Sílu překryvu řídí --vex-pozadi-kryti (0.92 = 92 % béžové).
   Fotka je stejná jako na titulce, takže se bere z mezipaměti. */
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-order-received { --vex-pozadi-kryti: .92; position: relative; }
body.woocommerce-cart::before,
body.woocommerce-checkout::before,
body.woocommerce-order-received::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: url("img/hero.jpg") center 30% / cover no-repeat;
	pointer-events: none;
}
body.woocommerce-cart::after,
body.woocommerce-checkout::after,
body.woocommerce-order-received::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: rgba(251, 248, 243, var(--vex-pozadi-kryti));
	pointer-events: none;
}
body.woocommerce-cart .site,
body.woocommerce-checkout .site,
body.woocommerce-order-received .site,
body.woocommerce-cart #page,
body.woocommerce-checkout #page,
body.woocommerce-order-received #page { background: transparent; }
.woocommerce-checkout form.checkout .col2-set .col-1,
.woocommerce-checkout form.checkout .col2-set .col-2,
.woocommerce-checkout form.checkout #order_review {
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
@media (max-width: 900px) {
	body.woocommerce-cart,
	body.woocommerce-checkout,
	body.woocommerce-order-received { --vex-pozadi-kryti: .97; }
}

/* =========================================================
   27. DĚKOVNÁ STRÁNKA — jeden list, jako dopis
   ========================================================= */
.woocommerce-order-received .woocommerce-order {
	max-width: 900px;
	margin: 0 auto;
	padding: clamp(28px, 4vw, 48px) clamp(22px, 4vw, 52px) clamp(30px, 4vw, 48px);
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border: 1px solid var(--vex-line);
	border-radius: 14px;
}
.woocommerce-order-received .woocommerce-order-overview { display: none; }
.vex-dekujeme-o {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	margin: 0 0 16px;
	display: flex; align-items: center; gap: 10px;
}
.vex-dekujeme-o::before { content: ""; width: 20px; height: 1px; background: var(--vex-accent); }
.vex-dekujeme-h {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(32px, 4vw, 46px);
	letter-spacing: -.025em;
	line-height: 1.08;
	margin: 0 0 18px;
	color: var(--vex-ink);
}
.vex-dekujeme-p { font-size: 16.5px; line-height: 1.65; color: var(--vex-ink-2); margin: 0 0 12px; }
.vex-dekujeme-s { margin: 24px 0 0; font-size: 15.5px; line-height: 1.5; color: var(--vex-ink-2); }
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
	margin-top: 30px;
	padding-top: 26px;
	border-top: 1px solid var(--vex-line);
}
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title,
.woocommerce-order-received .woocommerce-customer-details h2.woocommerce-column__title {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 22px;
	letter-spacing: -.02em;
	margin: 0 0 12px;
}
.woocommerce-order-received .woocommerce-table--order-details {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	font-size: 14.5px;
	margin: 0;
}
.woocommerce-order-received .woocommerce-table--order-details th,
.woocommerce-order-received .woocommerce-table--order-details td {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--vex-line);
	text-align: left;
	background: none;
	vertical-align: top;
}
.woocommerce-order-received .woocommerce-table--order-details thead th { font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--vex-ink-3); font-weight: 500; }
.woocommerce-order-received .woocommerce-table--order-details th:last-child,
.woocommerce-order-received .woocommerce-table--order-details td:last-child { text-align: right; white-space: nowrap; }
.woocommerce-order-received .woocommerce-table--order-details tfoot th { font-weight: 500; color: var(--vex-ink-2); }
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child td { border-bottom: 0; }
.woocommerce-order-received .woocommerce-table--order-details .includes_tax { display: block; font-size: 12px; color: var(--vex-ink-3); }
.vex-vzorky-podrobnosti { margin-top: 12px; font-size: 14px; color: var(--vex-ink-2); }
.vex-vzorky-podrobnosti p { margin: 0; }
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns,
.woocommerce-order-received .woocommerce-customer-details .col2-set {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	width: 100%;
}
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--1,
.woocommerce-order-received .woocommerce-customer-details .col2-set:not(.woocommerce-columns--2) { grid-template-columns: 1fr; }
@media (max-width: 560px) {
	.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns,
	.woocommerce-order-received .woocommerce-customer-details .col2-set { grid-template-columns: 1fr; }
}
.woocommerce-order-received .woocommerce-customer-details .col2-set::before,
.woocommerce-order-received .woocommerce-customer-details .col2-set::after { display: none; }
.woocommerce-order-received .woocommerce-customer-details .woocommerce-column,
.woocommerce-order-received .woocommerce-customer-details .col-1,
.woocommerce-order-received .woocommerce-customer-details .col-2 {
	width: auto !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce-order-received .woocommerce-customer-details address {
	border: 0;
	padding: 0;
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--vex-ink-2);
}
.woocommerce-order-received .woocommerce-customer-details--phone,
.woocommerce-order-received .woocommerce-customer-details--email { margin-top: 8px; padding-left: 0; }
.woocommerce-order-received .woocommerce-customer-details--phone::before,
.woocommerce-order-received .woocommerce-customer-details--email::before { display: none; }

/* =========================================================
   28. ČLÁNEK PORADNY (single.php)
   ========================================================= */
.vex-clanek { padding-block: clamp(40px, 5vw, 72px) 0; }
.vex-clanek-hlava { max-width: 960px; text-align: left; }
.vex-clanek-o {
	font-family: var(--vex-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	margin: 0 0 16px;
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.vex-clanek-o::before { content: ""; width: 20px; height: 1px; background: var(--vex-accent); flex: none; }
.vex-clanek-o a { color: var(--vex-ink-2); text-decoration: none; }
.vex-clanek-o a:hover { color: var(--vex-accent); }
.vex-clanek-h {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(34px, 5vw, 58px);
	letter-spacing: -.028em;
	line-height: 1.06;
	text-transform: none;
	margin: 0 0 18px;
	color: var(--vex-ink);
}
.vex-clanek-lede { font-size: 19px; line-height: 1.55; color: var(--vex-ink-2); margin: 0 0 16px; max-width: 60ch; }
.vex-clanek-meta { font-size: 13.5px; color: var(--vex-ink-3); display: flex; gap: 10px; margin: 0; }
.vex-clanek-foto { margin: clamp(22px, 3vw, 36px) auto 0; max-width: 1120px; }
.vex-clanek-foto img {
	width: 100%;
	height: auto;
	max-height: 560px;
	object-fit: cover;
	border-radius: 14px;
	display: block;
}

/* --- obsah: čtecí šířka a jednotná typografie (platí i pro Elementor) --- */
.vex-clanek-obsah {
	max-width: 960px;
	margin: clamp(28px, 4vw, 48px) auto 0;
	padding-inline: var(--vex-gut);
	font-size: 17px;
	line-height: 1.68;
	color: var(--vex-ink-2);
}
.vex-clanek-obsah .elementor-section.elementor-section-boxed > .elementor-container,
.vex-clanek-obsah .e-con-boxed > .e-con-inner { max-width: 100%; }
.vex-clanek-obsah .elementor-section { padding-inline: 0; }
.vex-clanek-obsah p { margin: 0 0 1.15em; }
.vex-clanek-obsah p:last-child { margin-bottom: 0; }
.vex-clanek-obsah h1,
.vex-clanek-obsah h2,
.vex-clanek-obsah h3,
.vex-clanek-obsah h4,
.vex-clanek-obsah .elementor-heading-title {
	font-family: var(--vex-display) !important;
	font-weight: 300 !important;
	font-style: normal !important;
	letter-spacing: -.024em;
	line-height: 1.12;
	color: var(--vex-ink) !important;
	text-transform: none !important;
	margin: 0 0 .5em;
}
.vex-clanek-obsah h1, .vex-clanek-obsah h2, .vex-clanek-obsah h2.elementor-heading-title { font-size: clamp(28px, 3.4vw, 38px) !important; margin-top: 1.4em; }
.vex-clanek-obsah h3, .vex-clanek-obsah h3.elementor-heading-title { font-size: clamp(22px, 2.4vw, 27px) !important; margin-top: 1.3em; }
.vex-clanek-obsah h4, .vex-clanek-obsah h4.elementor-heading-title { font-size: 19px !important; font-family: var(--vex-sans) !important; font-weight: 600 !important; margin-top: 1.2em; }
.vex-clanek-obsah .elementor-widget-text-editor,
.vex-clanek-obsah .elementor-text-editor,
.vex-clanek-obsah .elementor-widget-text-editor p,
.vex-clanek-obsah .elementor-widget-text-editor li {
	font-family: var(--vex-sans) !important;
	font-size: 17px !important;
	line-height: 1.68 !important;
	color: var(--vex-ink-2) !important;
	font-style: normal !important;
}
.vex-clanek-obsah ul, .vex-clanek-obsah ol { padding-left: 1.3em; margin: 0 0 1.15em; }
.vex-clanek-obsah li { margin-bottom: .35em; }
.vex-clanek-obsah li::marker { color: var(--vex-accent); }
.vex-clanek-obsah a { color: var(--vex-ink); text-decoration: underline; text-decoration-color: var(--vex-accent); text-underline-offset: 3px; }
.vex-clanek-obsah a:hover { color: var(--vex-accent); }
.vex-clanek-obsah strong, .vex-clanek-obsah b { font-weight: 600; color: var(--vex-ink); }
.vex-clanek-obsah em { font-style: italic; }
.vex-clanek-obsah blockquote,
.vex-clanek-obsah .elementor-blockquote {
	margin: 1.4em 0;
	padding: 4px 0 4px 22px;
	border-left: 2px solid var(--vex-accent);
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 21px;
	line-height: 1.4;
	color: var(--vex-ink);
	font-style: normal;
	background: none;
}
.vex-clanek-obsah blockquote p { margin: 0; font: inherit; color: inherit; }
.vex-clanek-obsah img { max-width: 100%; height: auto; border-radius: 12px; }
.vex-clanek-obsah figure { margin: 1.4em 0; }
.vex-clanek-obsah figcaption { font-size: 13px; color: var(--vex-ink-3); margin-top: 8px; }
.vex-clanek-obsah hr,
.vex-clanek-obsah .elementor-divider-separator { border: 0; border-top: 1px solid var(--vex-line); margin: 2em 0; }
.vex-clanek-obsah .elementor-widget-image img { border-radius: 12px; }
.vex-clanek-obsah .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 12px; }
.vex-clanek-obsah table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0 0 1.3em; }
.vex-clanek-obsah th, .vex-clanek-obsah td { padding: 10px 12px; border-bottom: 1px solid var(--vex-line); text-align: left; }
.vex-clanek-obsah .elementor-toggle .elementor-tab-title,
.vex-clanek-obsah .elementor-accordion .elementor-tab-title { font-family: var(--vex-sans); font-weight: 600; }
@media (max-width: 767px) {
	.vex-clanek-obsah .elementor-column { width: 100% !important; }
}

/* --- další čtení --- */
.vex-clanek-dalsi {
	margin-top: clamp(48px, 6vw, 84px);
	padding-block: clamp(40px, 5vw, 64px);
	border-top: 1px solid var(--vex-line);
	background: var(--vex-paper-2, var(--vex-paper));
}
.vex-clanek-dalsi-hlava { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 26px; }
.vex-clanek-dalsi-hlava .vex-clanek-o { margin: 0 0 8px; width: 100%; }
.vex-clanek-dalsi-hlava h2 {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(26px, 3vw, 34px);
	letter-spacing: -.024em;
	margin: 0;
}
.vex-clanek-vse { font-size: 14px; color: var(--vex-ink-2); text-decoration: none; border-bottom: 1px solid var(--vex-accent); padding-bottom: 2px; }
.vex-clanek-vse:hover { color: var(--vex-accent); }
.vex-clanek-dalsi-mriz { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 24px); }
@media (max-width: 900px) { .vex-clanek-dalsi-mriz { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .vex-clanek-dalsi-mriz { grid-template-columns: 1fr; } }
.vex-clanek-karta {
	display: flex;
	flex-direction: column;
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform .22s ease, border-color .22s ease;
}
.vex-clanek-karta:hover { transform: translateY(-3px); border-color: var(--vex-ink-3); }
.vex-clanek-karta-foto { display: block; aspect-ratio: 16 / 10; background: var(--vex-paper-2, var(--vex-paper)); overflow: hidden; }
.vex-clanek-karta-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.vex-clanek-karta:hover .vex-clanek-karta-foto img { transform: scale(1.04); }
.vex-clanek-karta-txt { display: block; padding: 16px 18px 20px; }
.vex-clanek-karta-rubrika { display: block; font-family: var(--vex-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--vex-ink-3); margin-bottom: 8px; }
.vex-clanek-karta-h { display: block; font-family: var(--vex-display); font-weight: 300; font-size: 20px; letter-spacing: -.02em; line-height: 1.2; color: var(--vex-ink); }

/* --- produkt vložený do článku (blok WooCommerce „Jeden produkt") jako karta --- */
.vex-clanek-obsah .wp-block-woocommerce-single-product {
	margin: 2em 0;
	padding: clamp(18px, 2.4vw, 28px);
	background: var(--vex-white);
	border: 1px solid var(--vex-line);
	border-radius: 16px;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-columns { gap: clamp(18px, 3vw, 36px); margin: 0; align-items: flex-start; }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-column { margin: 0; }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-image img { border-radius: 12px; }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-image + *::before,
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-column:last-child::before {
	content: "Z naší nabídky";
	display: block;
	font-family: var(--vex-mono);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--vex-ink-3);
	margin-bottom: 10px;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-post-title {
	font-family: var(--vex-display) !important;
	font-weight: 300 !important;
	font-size: clamp(22px, 2.6vw, 28px) !important;
	letter-spacing: -.024em;
	line-height: 1.15;
	margin: 0 0 10px !important;
	text-transform: none;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-post-title a {
	color: var(--vex-ink);
	text-decoration: none;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-post-title a:hover { color: var(--vex-accent); }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-price,
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-price .amount {
	font-family: var(--vex-display);
	font-weight: 400;
	font-size: 22px;
	letter-spacing: -.02em;
	color: var(--vex-ink);
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-price { display: block; margin: 0 0 12px; }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-price .woocommerce-price-suffix { font-family: var(--vex-sans); font-size: 12px; color: var(--vex-ink-3); }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-summary {
	font-size: 14.5px !important;
	line-height: 1.6 !important;
	color: var(--vex-ink-2);
	display: -webkit-box;
	-webkit-line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0 0 16px;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-summary p { font-size: inherit !important; margin: 0 0 .6em; }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-summary a { color: var(--vex-ink-2); text-decoration-color: var(--vex-line); }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-woocommerce-add-to-cart-form {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 12px;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart .quantity { margin: 0; }
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart .quantity .qty,
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart .quantity input[type="number"] {
	width: 64px; min-height: 52px;
	border: 1px solid var(--vex-line); border-radius: 10px;
	text-align: center; font: 15px var(--vex-sans);
}
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart .button,
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart .single_add_to_cart_button {
	min-height: 52px; padding: 0 26px; border-radius: 99px;
	background: var(--vex-accent); color: #fff; border: 0; font-weight: 600;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product form.cart .button:hover { background: var(--vex-accent-tmav); }
.vex-clanek-obsah .wp-block-woocommerce-single-product .vex-vzorky-cta {
	display: flex;
	gap: 9px;
	align-items: flex-start;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--vex-ink-2);
	margin: 0;
}
.vex-clanek-obsah .wp-block-woocommerce-single-product .vex-vzorky-cta svg { width: 16px; height: 16px; flex: none; margin-top: 2px; fill: none; stroke: var(--vex-accent); stroke-width: 2; }
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-sku,
.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-woocommerce-product-meta,
.vex-clanek-obsah .wp-block-woocommerce-single-product .wc-block-components-product-rating,
.vex-clanek-obsah .wp-block-woocommerce-single-product .product_meta { display: none !important; }
@media (max-width: 640px) {
	.vex-clanek-obsah .wp-block-woocommerce-single-product .wp-block-columns { flex-direction: column; }
}

/* =========================================================
   29. O NÁS A KONTAKT (page-o-nas.php)
   ========================================================= */
.vex-onas h1, .vex-onas h2, .vex-onas h3 { margin: 0; font-family: var(--vex-display); font-weight: 300; letter-spacing: -.028em; line-height: 1.08; }
.vex-onas p { margin: 0; }
.vex-onas img { max-width: 100%; display: block; }
.vex-onas-o {
	font-family: var(--vex-mono); font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase;
	display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--vex-ink-3);
}
.vex-onas-o::before { content: ""; width: 20px; height: 1px; background: var(--vex-accent); flex: none; }
.vex-onas-hero .vex-onas-o, .vex-onas-proc .vex-onas-o { color: rgba(255,255,255,.62); }
.vex-onas-hero .vex-onas-o::before, .vex-onas-proc .vex-onas-o::before { background: var(--vex-gold, #F0B93C); }
.vex-onas-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 30px;
	border-radius: 99px; font-size: 15px; font-weight: 500; text-decoration: none; border: 1.5px solid; transition: .18s;
}
.vex-onas-btn-p { background: var(--vex-accent); border-color: var(--vex-accent); color: #fff; }
.vex-onas-btn-p:hover { background: var(--vex-accent-tmav); border-color: var(--vex-accent-tmav); color: #fff; }
.vex-onas-btn-g { background: none; border-color: rgba(255,255,255,.4); color: #fff; }
.vex-onas-btn-g:hover { background: #fff; color: var(--vex-ink); border-color: #fff; }

/* hero */
.vex-onas-hero { position: relative; background: #0A0908; color: #fff; overflow: hidden; min-height: min(78vh, 720px); display: grid; align-items: end; }
.vex-onas-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; opacity: .55; }
.vex-onas-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,9,8,.15) 0%, rgba(10,9,8,.55) 55%, rgba(10,9,8,.92) 100%); }
.vex-onas-hero #vex-jiskry { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.vex-onas-hero .vex-wrap { position: relative; z-index: 2; padding-block: clamp(56px, 7vw, 96px) clamp(44px, 6vw, 72px); width: 100%; }
.vex-onas-hero h1 { font-size: clamp(34px, 5.4vw, 66px); max-width: 20ch; color: #fff; }
.vex-onas-hero h1 em { font-style: italic; color: var(--vex-gold-2, #FFDE9B); }
.vex-onas-lede { margin-top: 16px; max-width: 60ch; color: var(--vex-ink-2); }
.vex-onas-hero .vex-onas-lede { margin-top: 22px; max-width: 56ch; font-size: clamp(16px, 1.6vw, 19px); color: rgba(255,255,255,.9); }
.vex-onas-cta { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }

/* příběh */
.vex-onas-pribeh .vex-wrap { padding-block: clamp(56px, 7vw, 96px); display: grid; gap: 36px; }
@media (min-width: 900px) { .vex-onas-pribeh .vex-wrap { grid-template-columns: 5fr 6fr; gap: 64px; align-items: center; } }
.vex-onas-pribeh h2 { font-size: clamp(28px, 3.4vw, 42px); }
.vex-onas-text p:not(.vex-onas-o) { margin-top: 16px; color: var(--vex-ink-2); font-size: 17px; }
.vex-onas-text h2 + p { margin-top: 22px; font-size: 19px; color: var(--vex-ink); }
.vex-onas-pribeh figure { margin: 0; position: relative; }
.vex-onas-pribeh figure img { border-radius: 16px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.vex-onas-pribeh figcaption { position: absolute; left: 18px; bottom: 18px; background: rgba(18,16,15,.78); color: #fff; padding: 10px 14px; border-radius: 10px; font-size: 13px; backdrop-filter: blur(6px); }
.vex-onas-fakta { margin-top: 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.vex-onas-fakta b { display: block; font-family: var(--vex-display); font-weight: 300; font-size: 32px; letter-spacing: -.03em; }
.vex-onas-fakta span { font-size: 13px; color: var(--vex-ink-3); }
@media (max-width: 560px) { .vex-onas-fakta { grid-template-columns: 1fr 1fr; } }

/* tým */
.vex-onas-tym { background: var(--vex-paper-2); border-block: 1px solid var(--vex-line); }
.vex-onas-tym .vex-wrap { padding-block: clamp(56px, 7vw, 96px); }
.vex-onas-tym h2 { font-size: clamp(28px, 3.4vw, 42px); max-width: 22ch; }
.vex-onas-lide { margin-top: 40px; display: grid; gap: 22px; }
@media (min-width: 760px) { .vex-onas-lide { grid-template-columns: 1fr 1fr; } }
.vex-onas-clovek { background: var(--vex-white); border: 1px solid var(--vex-line); border-radius: 16px; overflow: hidden; display: grid; grid-template-columns: 200px 1fr; }
@media (max-width: 560px) { .vex-onas-clovek { grid-template-columns: 1fr; } }
.vex-onas-clovek > img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.vex-onas-clovek-txt { padding: 22px 24px 24px; }
.vex-onas-clovek h3 { font-size: 24px; }
.vex-onas-role { margin-top: 4px !important; font-family: var(--vex-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--vex-ink-3); }
.vex-onas-clovek-txt p:not(.vex-onas-role) { margin-top: 12px; font-size: 14.5px; color: var(--vex-ink-2); }
.vex-onas-kont { margin-top: 16px; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.vex-onas-kont a { text-decoration: none; color: var(--vex-ink); }
.vex-onas-kont a:hover { color: var(--vex-accent); }

/* co děláme */
.vex-onas-delame .vex-wrap { padding-block: clamp(56px, 7vw, 96px); }
.vex-onas-delame h2 { font-size: clamp(28px, 3.4vw, 42px); max-width: 22ch; }
.vex-onas-trojice { margin-top: 36px; display: grid; gap: 2px; background: var(--vex-line); border: 1px solid var(--vex-line); border-radius: 16px; overflow: hidden; }
@media (min-width: 760px) { .vex-onas-trojice { grid-template-columns: repeat(3, 1fr); } }
.vex-onas-komu { background: var(--vex-white); padding: 26px 24px 28px; text-decoration: none; color: inherit; display: block; transition: background .2s; }
.vex-onas-komu:hover { background: var(--vex-paper); }
.vex-onas-n { font-family: var(--vex-mono); font-size: 11px; color: var(--vex-accent); letter-spacing: .14em; }
.vex-onas-komu h3 { margin-top: 10px; font-size: 22px; }
.vex-onas-komu p { margin-top: 10px; font-size: 14.5px; color: var(--vex-ink-2); }
.vex-onas-dal { display: inline-block; margin-top: 14px; font-size: 13.5px; color: var(--vex-accent); font-weight: 500; }
.vex-onas-sluzby { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 10px; }
.vex-onas-sluzby span { border: 1px solid var(--vex-line); background: var(--vex-white); border-radius: 99px; padding: 9px 16px; font-size: 14px; }

/* proč značky */
.vex-onas-proc { background: #0A0908; color: #fff; position: relative; overflow: hidden; }
.vex-onas-proc::after { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 90% at 80% 10%, rgba(240,185,60,.16), transparent 60%), radial-gradient(90% 80% at 6% 98%, rgba(255,0,102,.14), transparent 60%); }
.vex-onas-proc .vex-wrap { position: relative; z-index: 2; padding-block: clamp(56px, 7vw, 96px); display: grid; gap: 36px; }
@media (min-width: 900px) { .vex-onas-proc .vex-wrap { grid-template-columns: 5fr 7fr; gap: 64px; } }
.vex-onas-proc h2 { font-size: clamp(28px, 3.4vw, 42px); color: #fff; }
.vex-onas-proc .vex-onas-lede { color: rgba(255,255,255,.62); font-size: 16px; }
.vex-onas-duvody { display: grid; gap: 1px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; overflow: hidden; }
@media (min-width: 640px) { .vex-onas-duvody { grid-template-columns: 1fr 1fr; } }
.vex-onas-duvody > div { background: rgba(10,9,8,.85); padding: 20px 22px; }
.vex-onas-duvody b { display: block; font-family: var(--vex-display); font-weight: 300; font-size: 20px; color: #fff; }
.vex-onas-duvody span { display: block; margin-top: 6px; font-size: 14px; color: rgba(255,255,255,.62); }
.vex-onas-video { grid-column: 1 / -1; margin-top: 8px; position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.16); background: #1A1614; }
.vex-onas-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vex-onas-video-pozn { position: absolute; left: 18px; top: 16px; font-family: var(--vex-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--vex-gold-2, #FFDE9B); pointer-events: none; }

/* kontakt */
.vex-onas-kontakt .vex-wrap { padding-block: clamp(56px, 7vw, 96px); }
.vex-onas-kontakt h2 { font-size: clamp(28px, 3.4vw, 42px); }
.vex-onas-kgrid { margin-top: 36px; display: grid; gap: 24px; }
@media (min-width: 960px) { .vex-onas-kgrid { grid-template-columns: 7fr 5fr; gap: 40px; align-items: start; } }
.vex-onas-karta { background: var(--vex-white); border: 1px solid var(--vex-line); border-radius: 16px; padding: 24px 26px; }
.vex-onas-karta h3 { font-size: 20px; }
.vex-onas-karta + .vex-onas-karta { margin-top: 18px; }
.vex-onas-kont-lide { margin-top: 16px; display: grid; gap: 18px; }
@media (min-width: 560px) { .vex-onas-kont-lide { grid-template-columns: 1fr 1fr; } }
.vex-onas-osoba b { display: block; font-size: 16px; }
.vex-onas-osoba span { display: block; font-size: 12.5px; color: var(--vex-ink-3); margin: 2px 0 8px; }
.vex-onas-osoba a { display: block; text-decoration: none; font-size: 15px; color: var(--vex-ink); }
.vex-onas-osoba a:hover { color: var(--vex-accent); }
.vex-onas-doba { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--vex-line); display: flex; gap: 14px; align-items: baseline; font-size: 14.5px; flex-wrap: wrap; }
.vex-onas-doba b { font-family: var(--vex-mono); font-size: 12px; letter-spacing: .06em; color: var(--vex-accent); }
.vex-onas-adresy { display: grid; gap: 18px; margin-top: 16px; }
@media (min-width: 560px) { .vex-onas-adresy { grid-template-columns: 1fr 1fr; } }
.vex-onas-k { font-family: var(--vex-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--vex-ink-3); margin-bottom: 8px !important; }
.vex-onas-adresy address { font-style: normal; font-size: 15px; line-height: 1.6; color: var(--vex-ink-2); }
.vex-onas-mapa { margin-top: 18px; border-radius: 14px; overflow: hidden; border: 1px solid var(--vex-line); aspect-ratio: 16 / 8; background: var(--vex-paper-2); }
.vex-onas-mapa iframe { width: 100%; height: 100%; border: 0; display: block; }
.vex-onas-formular h3 { margin-bottom: 16px; }
.vex-onas-formular .wpforms-field-label { font-size: 13px; font-weight: 500; color: var(--vex-ink-2); margin-bottom: 6px; }
.vex-onas-formular .wpforms-field { padding: 0 0 14px; }
.vex-onas-formular input[type="text"], .vex-onas-formular input[type="email"], .vex-onas-formular input[type="tel"], .vex-onas-formular textarea, .vex-onas-formular select {
	width: 100%; max-width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid var(--vex-line); border-radius: 10px;
	background: var(--vex-white); font: 15.5px/1.4 var(--vex-sans); color: var(--vex-ink);
}
.vex-onas-formular textarea { min-height: 120px; }
.vex-onas-formular .wpforms-submit,
.vex-onas-formular button[type="submit"] {
	min-height: 54px; padding: 0 30px; border-radius: 99px; background: var(--vex-accent); color: #fff; border: 0;
	font: 500 15px var(--vex-sans); cursor: pointer;
}
.vex-onas-formular .wpforms-submit:hover { background: var(--vex-accent-tmav); }
.vex-onas-pozn { font-size: 12.5px; color: var(--vex-ink-3); margin-top: 12px !important; }
.vex-onas-site { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 10px; }
.vex-onas-site a { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--vex-line); background: var(--vex-white); border-radius: 99px; padding: 9px 16px; font-size: 14px; text-decoration: none; color: var(--vex-ink); }
.vex-onas-site a:hover { border-color: var(--vex-ink); }
.vex-onas-site svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* =========================================================
   30. KOŠÍK — drobnosti (kupon, hlášky, tlačítko aktualizace)
   ========================================================= */
.woocommerce-cart .woocommerce-cart-form .actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; }
.woocommerce-cart .woocommerce-cart-form .actions .coupon { display: flex; gap: 8px; align-items: center; float: none; }
.woocommerce-cart .woocommerce-cart-form .actions .coupon.vex-kupon-schovany { display: none; }
.woocommerce-cart .woocommerce-cart-form .actions .coupon .input-text {
	width: 180px; min-height: 44px; padding: 9px 13px;
	border: 1px solid var(--vex-line); border-radius: 10px; font: 15px var(--vex-sans);
}
.woocommerce-cart .woocommerce-cart-form .actions .coupon .button {
	min-height: 44px; padding: 0 18px; border-radius: 99px;
	background: var(--vex-ink); color: #fff; border: 0; font-size: 14px; font-weight: 500;
}
.woocommerce-cart .woocommerce-cart-form .actions .coupon .button:hover { background: var(--vex-accent); }
.woocommerce-cart .woocommerce-cart-form .actions .vex-kupon-prepnout {
	min-height: 0; padding: 0; background: none; border: 0; border-radius: 0;
	font: 500 13.5px/1.4 var(--vex-sans); color: var(--vex-ink-3);
	text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.woocommerce-cart .woocommerce-cart-form .actions .vex-kupon-prepnout:hover { color: var(--vex-accent); background: none; }
.woocommerce-cart .woocommerce-cart-form .actions .vex-kupon-prepnout[aria-expanded="true"] { display: none; }
/* Aktualizovat košík: jen když je co aktualizovat */
.woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"] { margin-left: auto; }
.woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"]:disabled { display: none; }
/* hlášky (produkt přidán, kupon uplatněn…) */
.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	border: 1px solid var(--vex-line); border-left: 3px solid var(--vex-accent); border-radius: 10px;
	background: var(--vex-white); color: var(--vex-ink-2); font-size: 14.5px; padding: 12px 16px; margin: 0 0 18px;
}
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before,
.woocommerce-cart .woocommerce-error::before { display: none; }
.woocommerce-cart .woocommerce-message .button,
.woocommerce-cart .woocommerce-info .button {
	order: 2; margin: 0; min-height: 40px; padding: 0 16px; border-radius: 99px;
	background: none; border: 1px solid var(--vex-line); color: var(--vex-ink); font-size: 13.5px; font-weight: 500;
}
.woocommerce-cart .woocommerce-message .button:hover { border-color: var(--vex-ink); background: var(--vex-paper); }

/* =========================================================
   28. MŮJ ÚČET — přihlášení, přehled, objednávky, adresy
   ========================================================= */

/* stejné pozadí jako košík a pokladna */
body.woocommerce-account { --vex-pozadi-kryti: .92; position: relative; }
body.woocommerce-account::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: url("img/hero.jpg") center 30% / cover no-repeat;
	pointer-events: none;
}
body.woocommerce-account::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: rgba(251, 248, 243, var(--vex-pozadi-kryti));
	pointer-events: none;
}
body.woocommerce-account .site,
body.woocommerce-account #page { background: transparent; }
@media (max-width: 900px) {
	body.woocommerce-account { --vex-pozadi-kryti: .97; }
}

.vex-ucet { padding: 28px 0 clamp(56px, 8vw, 96px); }
.vex-ucet .vex-wrap { padding-inline: var(--vex-gut); }
.vex-ucet-hlava { max-width: 760px; margin: 0 0 26px; }
.vex-ucet-zpet { font-size: 13.5px; color: var(--vex-ink-3); text-decoration: none; }
.vex-ucet-zpet:hover { color: var(--vex-ink); }
.vex-ucet-hlava h1 {
	margin: 12px 0 0;
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(34px, 4.4vw, 52px);
	line-height: 1.05;
	letter-spacing: -.02em;
}
.vex-ucet-lede { margin: 14px 0 0; max-width: 62ch; color: var(--vex-ink-2); font-size: 16px; line-height: 1.6; }

/* karta – společný vzhled */
.vex-ucet-karta,
.vex-ucet .woocommerce-MyAccount-navigation,
.vex-ucet .woocommerce-MyAccount-content,
.vex-ucet form.woocommerce-form-login,
.vex-ucet form.woocommerce-form-register,
.vex-ucet form.woocommerce-ResetPassword {
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border: 1px solid var(--vex-line);
	border-radius: 14px;
}

/* --- přihlášený: navigace vlevo, obsah vpravo --- */
.vex-ucet-prihlasen .woocommerce {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 22px;
	align-items: start;
}
.vex-ucet-prihlasen .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; grid-row: 1; }
.vex-ucet-prihlasen .woocommerce > .woocommerce-notices-wrapper:empty,
.vex-ucet-prihlasen .woocommerce > .woocommerce-notices-wrapper:not(:has(*)) { display: none; }
/* výslovné umístění — obal hlášek s bílými znaky jinak zabere první buňku */
.vex-ucet-prihlasen .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 2; }
.vex-ucet-prihlasen .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 2; }
.vex-ucet-prihlasen .woocommerce > *:not(.woocommerce-notices-wrapper):not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content) { grid-column: 1 / -1; }
.vex-ucet .woocommerce-MyAccount-navigation { float: none; width: auto; padding: 10px; position: sticky; top: 24px; }
.vex-ucet .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.vex-ucet .woocommerce-MyAccount-navigation li { margin: 0; }
.vex-ucet .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 11px 14px;
	border-radius: 10px;
	color: var(--vex-ink-2);
	font-size: 15px;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.vex-ucet .woocommerce-MyAccount-navigation a:hover { background: var(--vex-paper-2); color: var(--vex-ink); }
.vex-ucet .woocommerce-MyAccount-navigation li.is-active a { background: var(--vex-ink); color: #fff; }
.vex-ucet .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--vex-line); }
.vex-ucet .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--vex-ink-3); font-size: 14px; }

.vex-ucet .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	padding: 26px clamp(18px, 3vw, 34px) 30px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--vex-ink-2);
}
.vex-ucet .woocommerce-MyAccount-content > *:first-child { margin-top: 0; }
.vex-ucet .woocommerce-MyAccount-content h2,
.vex-ucet .woocommerce-MyAccount-content h3,
.vex-ucet .woocommerce-MyAccount-content legend {
	font-family: var(--vex-display);
	font-weight: 300;
	letter-spacing: -.01em;
	color: var(--vex-ink);
	margin: 26px 0 12px;
}
.vex-ucet .woocommerce-MyAccount-content h2 { font-size: 26px; }
.vex-ucet .woocommerce-MyAccount-content h3,
.vex-ucet .woocommerce-MyAccount-content legend { font-size: 21px; }
.vex-ucet-pozdrav { font-family: var(--vex-display); font-size: 28px; font-weight: 300; color: var(--vex-ink); margin: 0 0 10px; }
.vex-ucet-pozdrav strong { font-weight: 500; }
.vex-ucet-odhlasit { font-size: 13.5px; color: var(--vex-ink-3); }
.vex-ucet-odhlasit a { color: var(--vex-ink-2); }

/* tabulka objednávek */
.vex-ucet table.woocommerce-orders-table,
.vex-ucet table.woocommerce-table--order-details,
.vex-ucet table.shop_table { width: 100%; border: 0; border-collapse: collapse; font-size: 14.5px; }
.vex-ucet table.shop_table th,
.vex-ucet table.shop_table td { padding: 12px 10px; border: 0; border-bottom: 1px solid var(--vex-line); text-align: left; vertical-align: middle; background: none; }
.vex-ucet table.shop_table thead th { font-size: 12.5px; font-weight: 500; color: var(--vex-ink-3); }
.vex-ucet table.shop_table th:first-child,
.vex-ucet table.shop_table td:first-child { padding-left: 0; }
.vex-ucet table.shop_table th:last-child,
.vex-ucet table.shop_table td:last-child { padding-right: 0; text-align: right; }
.vex-ucet table.shop_table .woocommerce-orders-table__cell-order-number a { color: var(--vex-ink); font-weight: 600; text-decoration: none; }
.vex-ucet .woocommerce-orders-table__cell-order-actions .button,
.vex-ucet .woocommerce-MyAccount-content .button:not(.alt) {
	min-height: 40px;
	padding: 0 16px;
	font-size: 13.5px;
	background: transparent;
	color: var(--vex-ink);
	border: 1px solid var(--vex-ink);
	margin: 0 0 0 6px;
}
.vex-ucet .woocommerce-MyAccount-content .button:not(.alt):hover { background: var(--vex-ink); color: #fff; }
.vex-ucet .woocommerce-MyAccount-content button[type="submit"],
.vex-ucet .woocommerce-MyAccount-content .button.alt { background: var(--vex-ink); color: #fff; border: 0; }
.vex-ucet .woocommerce-MyAccount-content button[type="submit"]:hover { background: var(--vex-accent); }
.vex-ucet .woocommerce-pagination { margin-top: 18px; display: flex; gap: 10px; }

/* adresy: dvě karty vedle sebe */
.vex-ucet .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.vex-ucet .woocommerce-Addresses::before,
.vex-ucet .woocommerce-Addresses::after { display: none; }
.vex-ucet .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; max-width: none; padding: 18px 20px; border: 1px solid var(--vex-line); border-radius: 12px; background: var(--vex-paper); }
.vex-ucet .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.vex-ucet .woocommerce-Address-title h2,
.vex-ucet .woocommerce-Address-title h3 { margin: 0 0 8px; font-size: 20px; }
.vex-ucet .woocommerce-Address-title .edit { font-size: 13px; color: var(--vex-ink-3); }
.vex-ucet .woocommerce-Address address { font-style: normal; line-height: 1.55; }
.vex-ucet address,
.vex-ucet .woocommerce-customer-details address { font-style: normal; line-height: 1.55; }
.vex-ucet .woocommerce-customer-details--email,
.vex-ucet .woocommerce-customer-details--phone { overflow-wrap: anywhere; }

/* formuláře v účtu */
.vex-ucet .form-row { margin: 0 0 14px; padding: 0; float: none; width: 100%; }
.vex-ucet .form-row label { display: block; margin-bottom: 6px; font-size: 13.5px; color: var(--vex-ink-2); }
.vex-ucet .form-row .required { color: var(--vex-accent); text-decoration: none; }
.vex-ucet .form-row .input-text,
.vex-ucet .form-row select { border-radius: 10px; padding: 13px 14px; font-size: 15px; }
.vex-ucet .form-row-first,
.vex-ucet .form-row-last { width: calc(50% - 8px); float: left; }
.vex-ucet .form-row-last { float: right; }
.vex-ucet .clear { clear: both; }
.vex-ucet fieldset { border: 0; padding: 0; margin: 20px 0 0; }
.vex-ucet .woocommerce-form-row--wide,
.vex-ucet .form-row-wide { width: 100%; }
.vex-ucet .show-password-input { top: 42px; right: 12px; }

/* --- host: přihlášení a registrace jako dvě karty --- */
.vex-ucet-host .woocommerce { max-width: 980px; }
.vex-ucet-host #customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
.vex-ucet-host #customer_login::before,
.vex-ucet-host #customer_login::after { display: none; }
.vex-ucet-host #customer_login .col-1,
.vex-ucet-host #customer_login .col-2 { float: none; width: auto; max-width: none; }
.vex-ucet-host #customer_login h2 {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 26px;
	letter-spacing: -.01em;
	margin: 0 0 16px;
}
.vex-ucet form.woocommerce-form-login,
.vex-ucet form.woocommerce-form-register,
.vex-ucet form.woocommerce-ResetPassword { padding: 26px clamp(18px, 3vw, 30px) 28px; margin: 0; max-width: 520px; }
.vex-ucet form.woocommerce-form-login .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 4px 0 14px; }
.vex-ucet form.woocommerce-form-login .woocommerce-form-login__rememberme input { width: 16px; height: 16px; accent-color: var(--vex-accent); }
.vex-ucet form.woocommerce-form-login button[type="submit"],
.vex-ucet form.woocommerce-form-register button[type="submit"],
.vex-ucet form.woocommerce-ResetPassword button[type="submit"] { width: 100%; background: var(--vex-ink); color: #fff; border: 0; }
.vex-ucet form button[type="submit"]:hover { background: var(--vex-accent); }
.vex-ucet .woocommerce-LostPassword { margin: 14px 0 0; font-size: 13.5px; text-align: center; }
.vex-ucet .woocommerce-LostPassword a { color: var(--vex-ink-3); }
.vex-ucet .woocommerce-privacy-policy-text { font-size: 13px; color: var(--vex-ink-3); line-height: 1.5; }
.vex-ucet .woocommerce-privacy-policy-text a { color: var(--vex-ink-2); }
.vex-ucet form.woocommerce-ResetPassword p:first-child { margin-top: 0; color: var(--vex-ink-2); }

/* hlášky */
.vex-ucet .woocommerce-info,
.vex-ucet .woocommerce-error,
.vex-ucet .woocommerce-message {
	margin: 0 0 18px;
	padding: 12px 16px;
	border: 1px solid var(--vex-line);
	border-left: 3px solid var(--vex-ink);
	border-radius: 10px;
	background: rgba(255, 255, 255, .92);
	font-size: 14px;
	list-style: none;
}
.vex-ucet .woocommerce-error { border-left-color: var(--vex-accent); }
.vex-ucet .woocommerce-error::before,
.vex-ucet .woocommerce-info::before,
.vex-ucet .woocommerce-message::before { display: none; }

@media (max-width: 860px) {
	.vex-ucet-prihlasen .woocommerce { grid-template-columns: 1fr; }
	.vex-ucet-prihlasen .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 2; }
	.vex-ucet-prihlasen .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; grid-row: 3; }
	.vex-ucet .woocommerce-MyAccount-navigation { position: static; padding: 8px; }
	.vex-ucet .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 4px; }
	.vex-ucet .woocommerce-MyAccount-navigation a { padding: 9px 13px; font-size: 14px; }
	.vex-ucet .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }
	.vex-ucet-host #customer_login { grid-template-columns: 1fr; }
	.vex-ucet .woocommerce-Addresses { grid-template-columns: 1fr; }
	.vex-ucet .form-row-first,
	.vex-ucet .form-row-last { width: 100%; float: none; }
	.vex-ucet table.shop_table thead { display: none; }
	.vex-ucet table.shop_table tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--vex-line); }
	.vex-ucet table.shop_table td { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border: 0; text-align: right; }
	.vex-ucet table.shop_table td::before { content: attr(data-title); color: var(--vex-ink-3); font-size: 13px; text-align: left; }
	.vex-ucet table.shop_table td.woocommerce-orders-table__cell-order-actions::before { content: none; }
	.vex-ucet table.shop_table td.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
}

/* =========================================================
   29. STRÁNKA 404
   ========================================================= */
.vex-404 { padding: clamp(48px, 8vw, 96px) 0 clamp(64px, 10vw, 128px); }
.vex-404 .vex-wrap { padding-inline: var(--vex-gut); max-width: 760px; }
.vex-404-kod { margin: 0 0 10px; font-family: var(--vex-mono); font-size: 13px; color: var(--vex-ink-3); }
.vex-404 h1 {
	margin: 0;
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(36px, 5vw, 60px);
	line-height: 1.05;
	letter-spacing: -.02em;
}
.vex-404-lede { margin: 18px 0 26px; max-width: 58ch; font-size: 16.5px; line-height: 1.6; color: var(--vex-ink-2); }
.vex-404-hledat { display: flex; gap: 10px; max-width: 560px; }
.vex-404-hledat input[type="search"] { flex: 1 1 auto; border-radius: 99px; padding: 14px 20px; }
.vex-404-hledat button { flex: none; background: var(--vex-ink); color: #fff; border: 0; border-radius: 99px; }
.vex-404-hledat button:hover { background: var(--vex-accent); }
.vex-404-odkazy { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 8px; }
.vex-404-odkazy a {
	display: inline-block;
	padding: 9px 16px;
	border: 1px solid var(--vex-line);
	border-radius: 99px;
	font-size: 14px;
	color: var(--vex-ink-2);
	text-decoration: none;
	background: #fff;
}
.vex-404-odkazy a:hover { border-color: var(--vex-ink); color: var(--vex-ink); }
@media (max-width: 600px) {
	.vex-404-hledat { flex-direction: column; }
}

/* =========================================================
   31. KOŠÍK — tabulka položek a souhrn jako karty
   ========================================================= */
.woocommerce-cart .woocommerce { display: block; }

/* --- položky --- */
.woocommerce-cart table.shop_table.cart,
.woocommerce-cart table.shop_table.cart tbody { display: block; width: 100%; }
.woocommerce-cart table.shop_table.cart thead { display: none; }
.woocommerce-cart table.shop_table.cart {
	margin: 0;
	border: 1px solid var(--vex-line);
	border-radius: 14px;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	overflow: hidden;
}
.woocommerce-cart table.shop_table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 28px 64px minmax(0, 1fr) auto 96px auto;
	grid-template-areas: "odebrat foto nazev cena mnozstvi soucet";
	align-items: center;
	gap: 0 16px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--vex-line);
}
.woocommerce-cart table.shop_table.cart tr.cart_item td { display: block; padding: 0; border: 0; background: none; font-size: 15px; color: var(--vex-ink); }
.woocommerce-cart table.shop_table.cart td.product-remove { grid-area: odebrat; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail { grid-area: foto; }
.woocommerce-cart table.shop_table.cart td.product-name { grid-area: nazev; font-weight: 500; }
.woocommerce-cart table.shop_table.cart td.product-price { grid-area: cena; color: var(--vex-ink-3); font-size: 14px; white-space: nowrap; }
.woocommerce-cart table.shop_table.cart td.product-quantity { grid-area: mnozstvi; }
.woocommerce-cart table.shop_table.cart td.product-subtotal { grid-area: soucet; text-align: right; font-weight: 600; white-space: nowrap; min-width: 92px; }
.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 99px;
	font-size: 18px; line-height: 1; font-weight: 400;
	color: var(--vex-ink-3) !important; background: var(--vex-paper);
	transition: background .15s ease, color .15s ease;
}
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover { background: var(--vex-accent); color: #fff !important; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	display: block; width: 64px; height: 64px; object-fit: cover; border-radius: 10px; border: 1px solid var(--vex-line);
}
.woocommerce-cart table.shop_table.cart td.product-name a { color: var(--vex-ink); text-decoration: none; }
.woocommerce-cart table.shop_table.cart td.product-name a:hover { color: var(--vex-accent); }
.woocommerce-cart table.shop_table.cart td.product-name .variation { margin: 4px 0 0; font-size: 12.5px; color: var(--vex-ink-3); }
.woocommerce-cart table.shop_table.cart td.product-name .variation dt,
.woocommerce-cart table.shop_table.cart td.product-name .variation dd { display: inline; margin: 0; font-weight: 400; }
.woocommerce-cart table.shop_table.cart .quantity { display: block; }
.woocommerce-cart table.shop_table.cart .quantity .qty {
	width: 72px; min-height: 44px; padding: 8px 10px; text-align: center;
	border: 1px solid var(--vex-line); border-radius: 10px; font: 15px var(--vex-sans);
}
.woocommerce-cart table.shop_table.cart .quantity .qty:focus { border-color: var(--vex-ink); }
/* řádek s kuponem — celá šířka */
.woocommerce-cart table.shop_table.cart tr:has(> td.actions) { display: block; }
.woocommerce-cart table.shop_table.cart td.actions { display: flex; border: 0; background: var(--vex-paper); }

/* --- souhrn --- */
.woocommerce-cart .cart-collaterals { margin-top: 28px; }
.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after { display: none; }
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	max-width: 580px;
	margin-left: auto;
	padding: 24px clamp(18px, 2.6vw, 28px) 26px;
	border: 1px solid var(--vex-line);
	border-radius: 14px;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.woocommerce-cart .cart_totals h2 {
	margin: 0 0 14px;
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: 26px;
	letter-spacing: -.01em;
}
.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-cart .cart_totals table.shop_table tbody { display: block; width: 100%; margin: 0; border: 0; }
.woocommerce-cart .cart_totals table.shop_table tr { display: flex; align-items: flex-start; width: 100%; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	padding: 12px 0; border: 0; border-bottom: 1px solid var(--vex-line);
	background: none; text-align: left; font-size: 14.5px; vertical-align: top;
}
.woocommerce-cart .cart_totals table.shop_table th { flex: 1 1 auto; font-weight: 500; color: var(--vex-ink-2); }
.woocommerce-cart .cart_totals table.shop_table th + td { flex: 0 0 auto; padding-left: 12px; text-align: right; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td { border-bottom: 0; padding-top: 14px; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total td > strong .amount,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td strong { font-family: var(--vex-display); font-weight: 400; font-size: 24px; letter-spacing: -.02em; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total td .tax_label,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td .includes_tax { display: block; font-size: 12px; color: var(--vex-ink-3); font-family: var(--vex-sans); }
/* doprava: přes celou šířku, volby jako v pokladně */
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals { flex-direction: column; }
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals th { border-bottom: 0; padding-bottom: 6px; }
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals td { padding-left: 0; text-align: left; flex: 1 1 auto; width: 100%; }
.woocommerce-cart ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.woocommerce-cart ul#shipping_method li {
	margin: 0; padding: 11px 13px;
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
	border: 1px solid var(--vex-line); border-radius: 11px; font-size: 14px; cursor: pointer;
	transition: border-color .18s ease, background .18s ease;
}
.woocommerce-cart ul#shipping_method li:has(input:checked) { border-color: var(--vex-ink); background: var(--vex-paper); }
.woocommerce-cart ul#shipping_method input[type="radio"] { width: 17px; height: 17px; margin: 0; accent-color: var(--vex-accent); flex: none; }
.woocommerce-cart ul#shipping_method label { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; flex: 1 1 0; min-width: 0; margin: 0; font-size: 14px; cursor: pointer; }
.woocommerce-cart ul#shipping_method label img { max-height: 18px; width: auto; }
.woocommerce-cart ul#shipping_method label .amount { font-weight: 600; white-space: nowrap; }
.woocommerce-cart ul#shipping_method .pplcz-method-container { display: block !important; width: 100% !important; flex: 1 1 0 !important; min-width: 0; }
.woocommerce-cart ul#shipping_method .pplcz-method-label { display: flex !important; flex-wrap: wrap; align-items: center; gap: 6px 8px; width: 100%; margin: 0 !important; }
.woocommerce-cart ul#shipping_method .pplcz-parcelshop-inner { flex: 1 1 100%; width: 100%; margin: 8px 0 0 !important; gap: 10px; font-size: 13px; color: var(--vex-ink-2); }
.woocommerce-cart ul#shipping_method .pplcz-parcelshop-inner a.pplcz-select-parcelshop { flex: none; width: 40px; height: 40px; background: var(--vex-paper); border: 1px solid var(--vex-line); }
.woocommerce-cart ul#shipping_method .pplcz-parcelshop-inner .pplcz-selected-parcelshop { flex: 1 1 0; margin-left: 0; min-width: 0; line-height: 1.45; white-space: normal !important; overflow-wrap: break-word; }
.woocommerce-cart ul#shipping_method .pplcz-parcelshop-inner .pplcz-clear-map,
.woocommerce-cart ul#shipping_method .pplcz-parcelshop-inner .pplcz-show-map { font-size: 12px; top: 0; margin: 0 4px; white-space: nowrap; color: var(--vex-accent); text-decoration: underline; }
.woocommerce-cart .woocommerce-shipping-destination { margin: 10px 0 0; font-size: 13px; color: var(--vex-ink-3); }
.woocommerce-cart .woocommerce-shipping-calculator { margin: 6px 0 0; font-size: 13px; }
.woocommerce-cart .shipping-calculator-button { color: var(--vex-ink-3); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-cart .wc-proceed-to-checkout { margin-top: 18px; padding: 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { width: 100%; }

/* Do 768 px zasahuje responzivní CSS WooCommerce/GeneratePress
   (řádky jako bloky, popisky přes ::before, skrytý náhled) —
   proto zde !important. */
@media (max-width: 768px) {
	.woocommerce-cart table.shop_table.cart tr.cart_item {
		display: grid !important;
		grid-template-columns: 56px minmax(0, 1fr) auto;
		grid-template-areas:
			"foto nazev odebrat"
			"foto cena odebrat"
			"foto mnozstvi soucet";
		gap: 4px 12px;
		padding: 14px 14px;
	}
	.woocommerce-cart table.shop_table.cart tr.cart_item td { display: block !important; padding: 0 !important; text-align: left !important; border: 0 !important; }
	.woocommerce-cart table.shop_table.cart tr.cart_item td::before { display: none !important; content: none !important; }
	.woocommerce-cart table.shop_table.cart td.product-thumbnail { display: block !important; }
	.woocommerce-cart table.shop_table.cart td.product-thumbnail img { width: 56px; height: 56px; }
	.woocommerce-cart table.shop_table.cart td.product-subtotal { text-align: right !important; min-width: 0; justify-self: end; white-space: nowrap; }
	.woocommerce-cart table.shop_table.cart tr:has(> td.actions) { display: block !important; }
	.woocommerce-cart table.shop_table.cart td.actions { display: flex !important; text-align: left !important; }
	.woocommerce-cart table.shop_table.cart td.actions::before { display: none !important; }
	.woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"]:disabled { display: none !important; }
	.woocommerce-cart .woocommerce-cart-form .actions .coupon { width: 100%; }
	.woocommerce-cart .woocommerce-cart-form .actions .coupon .input-text { flex: 1 1 auto; width: auto; }
	.woocommerce-cart .cart_totals table.shop_table tr { display: flex !important; }
	.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals { flex-direction: column; }
	.woocommerce-cart .cart_totals table.shop_table th,
	.woocommerce-cart .cart_totals table.shop_table td { display: block !important; text-align: left !important; }
	.woocommerce-cart .cart_totals table.shop_table th + td { text-align: right !important; }
	.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals td { text-align: left !important; }
	.woocommerce-cart .cart_totals table.shop_table td::before { display: none !important; content: none !important; }
	.woocommerce-cart table.shop_table.cart td.product-remove { justify-self: end; align-self: start; }
	.woocommerce-cart table.shop_table.cart td.product-subtotal { align-self: center; }
	.woocommerce-cart table.shop_table.cart td.product-quantity { margin-top: 4px; }
	.woocommerce-cart .cart-collaterals .cart_totals { max-width: none; }
}

/* =========================================================
   TEXT POD PRODUKTY — vlastní pole kategorie
   (inc/kategorie-text.php). Čtecí šířka, typografie webu.
   ========================================================= */
.vi-ex-category-bottom {
	background: var(--vex-paper);
	border-bottom: 1px solid var(--vex-line);
}
.vi-ex-category-bottom .vex-wrap {
	padding-block: clamp(48px, 6vw, 80px);
}
.vi-ex-category-bottom__text {
	max-width: 760px;
	font-size: 16.5px;
	line-height: 1.68;
	color: var(--vex-ink-2);
}
.vi-ex-category-bottom__text > :first-child { margin-top: 0; }
.vi-ex-category-bottom__text h2 {
	font-family: var(--vex-display);
	font-weight: 300;
	font-size: clamp(26px, 3vw, 34px);
	letter-spacing: -.026em;
	line-height: 1.12;
	color: var(--vex-ink);
	margin: 1.9em 0 .55em;
}
.vi-ex-category-bottom__text h3 {
	font-family: var(--vex-sans);
	font-weight: 600;
	font-size: 17.5px;
	line-height: 1.35;
	color: var(--vex-ink);
	margin: 1.5em 0 .4em;
}
.vi-ex-category-bottom__text h2 + h3 { margin-top: .9em; }
.vi-ex-category-bottom__text p { margin: 0 0 1.05em; }
.vi-ex-category-bottom__text ul,
.vi-ex-category-bottom__text ol { margin: 0 0 1.1em; padding-left: 1.25em; }
.vi-ex-category-bottom__text li { margin-bottom: .4em; }
.vi-ex-category-bottom__text li::marker { color: var(--vex-accent); }
.vi-ex-category-bottom__text strong { font-weight: 600; color: var(--vex-ink); }
.vi-ex-category-bottom__text a {
	color: var(--vex-ink);
	text-decoration: underline;
	text-decoration-color: var(--vex-accent);
	text-underline-offset: 3px;
}
.vi-ex-category-bottom__text a:hover { color: var(--vex-accent); }

/* --- chyby pokladny (blokace zahraničí bez IČ DPH) --- */
.woocommerce-checkout .woocommerce-error li strong { color: var(--vex-accent); }
