/* The carriers' own trigger, inside the card. Their logo is dropped — the card
   already carries the carrier's mark on the right. */
.lk-ship-option .packetery-widget-button-wrapper,
.lk-ship-option .pplcz-parcelshop-inner { margin: 0; padding: 0 18px 14px 52px; }
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button { display: flex; align-items: center; gap: 10px; }
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button img,
.lk-ship-option .packetery-widget-button-logo { display: none !important; }
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button button,
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button a.button {
	width: auto; height: 40px; padding: 0 18px; font-size: 13px; border-radius: var(--r-pill);
}

/* What the customer picked */
.lk-ship-option .packeta-widget-info,
.lk-ship-option .packeta-widget-selected-address,
.lk-ship-option .packeta-widget-place,
.lk-ship-option .pplcz-selected-parcelshop {
	display: block; margin-top: 6px;
	font-size: 13px; font-weight: 600; color: var(--black);
}
.lk-ship-option .packeta-widget-info:empty,
.lk-ship-option .packeta-widget-selected-address:empty,
.lk-ship-option .packeta-widget-place:empty,
.lk-ship-option .pplcz-selected-parcelshop:empty { display: none; }
.lk-ship-option .packeta-widget-info-success,
.lk-ship-option .packeta-widget-info-error { display: none !important; }

/* LukoM Shop! — WooCommerce skin.
   Geometry, colour and type are ported from the original Verxee theme; the
   selectors target WooCommerce markup instead of the core's vs-* classes. */

/* ── Base ──────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--black);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; letter-spacing: -.02em; line-height: 1.15; text-wrap: balance; margin: 0; }
/* Page titles, the hero, the yellow titles and the footer wordmark keep Poleno; every heading under them runs in Manrope. */
h2, h3, h4 { font-family: var(--font); font-weight: 800; letter-spacing: -.01em; }
p { text-wrap: pretty; }
button { font-family: var(--font); cursor: pointer; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 2px; }

.lk-skip { position: absolute; left: -9999px; }
.lk-skip:focus { left: 16px; top: 16px; z-index: 1000; background: var(--yellow); color: var(--navy); padding: 10px 16px; border-radius: var(--r-sm); }

.lk-wrap {
	width: min(var(--max-w), calc(100% - var(--gutter) * 2));
	margin-inline: auto;
}
.lk-shop { padding: clamp(24px, 4vw, 48px) 0; }
.lk-main { display: block; min-height: 50vh; }
.lk-page { padding: clamp(32px, 5vw, 60px) 0; }
.lk-page-title { font-size: clamp(28px, 4vw, 42px); margin-bottom: 24px; }

/* ── Header ────────────────────────────────────────────────────────────── */
.lk-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(255, 255, 255, .97);
	backdrop-filter: saturate(180%) blur(8px);
	border-bottom: 1px solid var(--gray-200);
}
.lk-header.is-scrolled { box-shadow: 0 1px 6px rgba(0, 0, 0, .04); }
/* Scrolling down slides the header away, the first nudge up brings it back (nav.js). */
.lk-header { transition: transform .25s ease, box-shadow .2s; }
.lk-header.is-hidden { transform: translateY(-100%); box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
	.lk-header { transition: none; }
}
.lk-navbar {
	width: min(var(--max-w), calc(100% - var(--gutter) * 2));
	margin-inline: auto;
	height: 64px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.lk-nav-links { display: none; align-items: center; gap: 4px; }
.lk-nav-links a {
	padding: 8px 16px; border-radius: var(--r-pill);
	font-size: 14px; font-weight: 500; color: var(--black);
	transition: background .25s ease, color .25s ease;
}
.lk-nav-links a:hover, .lk-nav-links .current-menu-item > a { background: var(--yellow); color: var(--navy); }
.lk-nav-links ul { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; }
.lk-brand img { height: 36px; width: auto; }
.lk-nav-actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.lk-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: var(--r-sm);
	color: var(--gray-500); position: relative;
	transition: background .15s, color .15s;
}
.lk-icon-btn:hover { background: var(--gray-100); color: var(--gray-900); }
.lk-icon-btn svg { width: 20px; height: 20px; }
.lk-cart-count {
	position: absolute; top: 2px; right: 2px;
	min-width: 16px; height: 16px; padding: 0 4px;
	display: none; align-items: center; justify-content: center;
	background: var(--yellow); color: var(--navy);
	font-size: 10px; font-weight: 700; border-radius: 99px;
}
.lk-cart-count:not([data-count="0"]) { display: flex; }
.lk-hamburger {
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; background: none; border: none;
	color: var(--gray-600); border-radius: var(--r-sm);
}
.lk-hamburger svg { width: 22px; height: 22px; }

@media (min-width: 768px) {
	.lk-navbar { display: grid; grid-template-columns: 1fr auto 1fr; }
	.lk-nav-links { display: flex; justify-content: flex-start; }
	.lk-brand { display: flex; justify-content: center; }
	.lk-hamburger { display: none; }
}

/* ── Mobile menu ───────────────────────────────────────────────────────── */
/* Fills everything below the header — full width, items centred both ways —
   and slides in from the right. The header itself stays usable. */
.lk-menu-overlay { display: none; }

.lk-mobile-menu {
	position: fixed;
	top: var(--lk-header-bottom, 96px); right: 0; bottom: 0; left: 0;
	z-index: 991;
	/* the same white as the header, not the page's off-white */
	background: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 24px 20px;
	overflow-y: auto;
	transform: translateX(100%);
	/* long enough to read as sliding in, not as appearing */
	transition: transform .34s cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}
.lk-mobile-menu[hidden] { display: none; }
.lk-mobile-menu.is-open { transform: translateX(0); }
body.lk-menu-lock { overflow: hidden; }

.lk-mobile-nav {
	list-style: none; margin: 0; padding: 0;
	width: 100%; max-width: 360px;
	display: flex; flex-direction: column; gap: 6px;
}
.lk-mobile-nav li { border: 0; }
.lk-mobile-nav a {
	display: flex; align-items: center; justify-content: center;
	font-size: 22px; font-weight: 700;
	padding: 16px 20px; border-radius: var(--r);
	color: var(--black); text-align: center;
	transition: background .15s, color .15s;
}
.lk-mobile-nav a:hover,
.lk-mobile-nav .current-menu-item > a { background: var(--yellow); color: var(--navy); }

/* the button shows a cross while the menu is open */
.lk-hamburger .lk-ico-cross { display: none; }
.lk-hamburger.is-open .lk-ico-bars { display: none; }
.lk-hamburger.is-open .lk-ico-cross { display: block; }
.lk-hamburger.is-open { color: var(--black); }

@media (prefers-reduced-motion: reduce) {
	.lk-mobile-menu { transition: none; }
}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.wc-block-components-button, .lk-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 48px; padding: 0 28px;
	background: var(--yellow); color: var(--navy);
	font-family: var(--font); font-size: 15px; font-weight: 600; line-height: 1;
	border: none; border-radius: var(--r-pill);
	transition: transform .15s ease, background .15s ease;
	text-transform: none;
	box-shadow: none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.wc-block-components-button:hover, .lk-btn:hover {
	background: var(--yellow-dark); color: var(--navy);
	transform: translateY(-2px);
}
.woocommerce .single_add_to_cart_button { width: 100%; height: 56px; font-size: 16px; }
.woocommerce a.button.wc-forward, .woocommerce .cart .button, .woocommerce .checkout-button { font-weight: 600; }

/* ── Product grid ──────────────────────────────────────────────────────── */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
	margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }
.woocommerce ul.products li.product {
	display: flex; flex-direction: column;
	width: auto !important; margin: 0 !important; float: none !important;
	background: var(--white);
	border: 1px solid var(--gray-100);
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.woocommerce ul.products li.product a img {
	width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
	margin: 0; border-radius: 0; background: var(--gray-100);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font); font-size: 18px; font-weight: 700;
	color: var(--black); padding: 18px 20px 0; margin: 0;
}
.woocommerce ul.products li.product .price {
	display: block; padding: 6px 20px 0;
	font-size: 15px; font-weight: 500; color: var(--black);
}
.woocommerce ul.products li.product .price del { color: var(--gray-400); font-weight: 400; }
.woocommerce ul.products li.product .price ins { color: var(--black); text-decoration: none; font-weight: 700; }
/* Woo's own stylesheet turns loop buttons into plain blocks, which drops the
   centring and lets a wrapped label ("Vybrat variantu") spill out of the pill.
   Grow with the text instead of pinning a height. */
.woocommerce ul.products li.product .button {
	display: inline-flex; align-items: center; justify-content: center;
	margin: 14px 20px 20px; align-self: flex-start;
	height: auto; min-height: 40px; padding: 10px 18px;
	font-size: 14px; line-height: 1.25; text-align: center;
	white-space: normal; box-shadow: none;
}
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	position: absolute; top: 12px; left: 12px; right: auto;
	min-height: 0; min-width: 0; padding: 4px 10px; margin: 0;
	background: var(--yellow); color: var(--navy);
	font-size: 10px; font-weight: 700; line-height: 1.3;
	text-transform: uppercase; letter-spacing: .03em;
	border-radius: var(--r-sm);
}
.woocommerce ul.products li.product { position: relative; }

@media (min-width: 1200px) { .woocommerce ul.products { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 479px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 8px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 13px; padding: 12px 10px 0; }
	.woocommerce ul.products li.product .price { font-size: 13px; padding: 4px 10px 0; }
	.woocommerce ul.products li.product .button { margin: 10px; padding: 9px 14px; font-size: 13px; }
}

/* ── Shop / archive header ─────────────────────────────────────────────── */
.woocommerce-products-header { margin-bottom: 32px; }
.woocommerce-products-header__title, .woocommerce-page h1.entry-title {
	font-size: clamp(28px, 4vw, 42px); margin: 0 0 8px;
}
.woocommerce .woocommerce-result-count { color: var(--gray-500); font-size: 14px; }
.woocommerce .woocommerce-ordering select {
	height: 44px; padding: 0 14px; border: 1px solid var(--gray-200);
	border-radius: var(--r-sm); font-family: var(--font); font-size: 14px; background: var(--white);
}
.lk-breadcrumb { display: flex; align-items: center; gap: 8px; padding: 0 0 16px; font-size: 13px; color: var(--gray-400); }
.lk-breadcrumb a { color: var(--gray-500); }
.lk-breadcrumb a:hover { color: var(--black); }
.lk-crumb-sep { color: var(--gray-300); }

/* ── Cart, checkout, account ───────────────────────────────────────────── */
.woocommerce table.shop_table {
	border: 1px solid var(--gray-200); border-radius: var(--r);
	border-collapse: separate; border-spacing: 0; overflow: hidden;
}
.woocommerce table.shop_table th { background: var(--gray-50); font-weight: 700; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top-color: var(--gray-200); }
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce-account h2 { font-size: 22px; margin-bottom: 16px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text {
	height: 48px; padding: 0 14px;
	border: 1px solid var(--gray-200); border-radius: var(--r-sm);
	font-family: var(--font); font-size: 15px; background: var(--white);
}
.woocommerce form .form-row textarea { height: auto; padding: 12px 14px; min-height: 90px; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row select:focus { border-color: var(--yellow); outline: none; }
.woocommerce-checkout #payment { background: var(--gray-50); border-radius: var(--r); }
.woocommerce-checkout #payment div.payment_box { background: var(--white); border: 1px solid var(--gray-200); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--white); }


/* ── Footer ────────────────────────────────────────────────────────────── */
.lk-footer {
	background: var(--gray-50);
	border-top: 1px solid var(--gray-200);
	padding: 56px 0 0;
	margin-top: clamp(48px, 8vw, 80px);
}
.lk-footer-inner { width: min(var(--max-w), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.lk-footer-grid {
	display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 48px;
	padding-bottom: 48px; border-bottom: 1px solid var(--gray-200);
}
.lk-footer-name { font-family: var(--font-display); font-size: 20px; font-weight: 700; display: block; margin-bottom: 8px; }
.lk-footer-tagline { font-size: 14px; line-height: 1.6; color: var(--gray-600); margin: 0; }
.lk-footer-col h4 {
	font-family: var(--font); font-size: 12px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .1em; margin-bottom: 16px;
}
.lk-footer-nav { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; }
.lk-footer-nav a { font-size: 14px; color: var(--gray-700); transition: color .15s; }
.lk-footer-nav a:hover { color: var(--black); }
.lk-footer-bottom {
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px;
	padding: 20px 0; font-size: 13px; color: var(--gray-500);
}
@media (max-width: 767px) {
	.lk-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	.lk-footer-bottom { flex-direction: column; gap: 6px; }
}
@media (max-width: 479px) { .lk-footer-grid { grid-template-columns: 1fr; gap: 24px; } }

@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; }
}


/* ── Announcement bar ──────────────────────────────────────────────────── */
.lk-announce {
	background: var(--yellow); color: var(--navy);
	font-size: 12px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
	overflow: hidden; display: flex; align-items: center; height: 32px;
}
.lk-announce-track {
	display: flex; white-space: nowrap; width: max-content;
	animation: lk-marquee 28s linear infinite;
	will-change: transform;
}
.lk-announce:hover .lk-announce-track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .lk-announce-track { animation: none; } }
.lk-announce-track span { flex-shrink: 0; padding: 0 32px; }
@keyframes lk-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── Hero ──────────────────────────────────────────────────────────────── */
/* Type and button measured off the original at a 1280px viewport: 76px Poleno,
   1px dark stroke plus a hard 3/4px shadow; the button is 26px/900 on white. */
.lk-hero { position: relative; background: var(--navy); overflow: hidden; }
.lk-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; pointer-events: none; }
.lk-slide.is-active { opacity: 1; pointer-events: auto; position: relative; }
.lk-hero-img { width: 100%; height: auto; display: block; }
.lk-hero-overlay { position: absolute; inset: 0; display: flex; align-items: center; }
.lk-hero-overlay > .lk-hero-inner {
	width: min(var(--max-w), calc(100% - var(--gutter) * 2));
	margin-inline: auto;
}
.lk-hero-inner > * { max-width: 620px; }
.lk-hero-title {
	font-family: var(--font-display);
	font-size: clamp(30px, 5.9vw, 76px);
	line-height: .95;
	font-weight: 700;
	letter-spacing: -.04em;
	color: #fff;
	-webkit-text-stroke: 1px #000;
	paint-order: stroke fill;
	text-shadow: 3px 4px 0 #000;
	margin: 0 0 20px;
}
.lk-hero-btn, .lk-hero .lk-btn {
	height: 48px; padding: 0 30px;
	font-size: clamp(15px, 2vw, 26px); font-weight: 900;
	background: #fff; color: #000; box-shadow: none;
}
.lk-hero-btn:hover, .lk-hero .lk-btn:hover { background: #fff; color: #000; }

.lk-hero-dots {
	position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
	display: flex; gap: 10px; z-index: 3;
}
.lk-hero-dot {
	width: 12px; height: 12px; padding: 0; border: none; border-radius: 50%;
	background: rgba(255, 255, 255, .55); cursor: pointer; transition: background .2s;
}
.lk-hero-dot.is-active { background: var(--yellow); }

/* Phones get the portrait artwork with the copy laid over its top, centred —
   the same composition the original uses. */
@media (max-width: 767px) {
	.lk-hero-overlay { align-items: flex-start; padding-top: 8%; }
	.lk-hero-inner { text-align: center; }
	.lk-hero-inner > * { max-width: none; }
	.lk-hero-title { font-size: clamp(38px, 14vw, 56px); margin-bottom: 18px; }
	.lk-hero-btn, .lk-hero .lk-btn { font-size: clamp(18px, 6vw, 26px); height: 54px; padding: 0 26px; }
	.lk-hero-dots { bottom: 12px; }
}

/* ── Section headings with the outlined display type ───────────────────── */
.lk-products-section { padding: clamp(40px, 6vw, 72px) 0; }
.lk-section-header { margin-bottom: clamp(24px, 4vw, 36px); text-align: center; }

.lk-section-header p { color: var(--black); font-size: 14px; font-weight: 600; margin: 0; }
.lk-section-more { margin-top: 32px; text-align: center; }

/* ── Card extras: new badge, delivery promise ─────────────────────────── */
.lk-badge-new {
	position: absolute; top: 12px; left: 12px; z-index: 2;
	padding: 4px 10px; border-radius: var(--r-sm);
	background: var(--green); color: #fff;
	font-size: 10px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
}
.lk-delivery {
	display: block; padding: 4px 20px 0;
	font-size: 12px; font-weight: 600; color: #16a34a;
}
@media (max-width: 479px) { .lk-delivery { padding: 4px 10px 0; font-size: 11px; } }

/* The pre-order note, as on the original: dark bubble above the green promise,
   arrow pointing at it; flipped under the text when there is no room above. */
.lk-delivery[data-tooltip] { cursor: help; }
.lk-exped-bubble {
	position: absolute; width: 240px; max-width: 85vw; z-index: 9999;
	padding: 10px 14px; border-radius: 10px;
	background: #1f2937; color: #fff;
	font-size: 12px; font-weight: 400; line-height: 1.4; text-align: left;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
	animation: lk-exped-in .15s ease;
}
.lk-exped-bubble::after {
	content: ''; position: absolute; top: 100%; left: var(--lk-arrow, 20px);
	border: 6px solid transparent; border-top-color: #1f2937;
}
.lk-exped-bubble.is-below::after {
	top: auto; bottom: 100%;
	border-top-color: transparent; border-bottom-color: #1f2937;
}
@keyframes lk-exped-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .lk-exped-bubble { animation: none; } }

/* ── Footer socials ────────────────────────────────────────────────────── */
.lk-footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; }
.lk-footer-socials { display: flex; gap: 10px; margin-top: 16px; }
.lk-social {
	width: 36px; height: 36px; border-radius: var(--r-sm);
	background: var(--gray-100); border: 1px solid var(--gray-200);
	display: flex; align-items: center; justify-content: center;
	color: var(--gray-500); transition: background .15s, color .15s, border-color .15s;
}
.lk-social:hover { background: var(--yellow); color: var(--navy); border-color: var(--yellow); }
.lk-social svg { width: 16px; height: 16px; }
@media (max-width: 767px) { .lk-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 479px) { .lk-footer-grid { grid-template-columns: 1fr; } }

/* ── Menu markup: the nav prints bare <li>, so kill the bullets ────────── */
.lk-nav-links li, .lk-mobile-nav li { list-style: none; }
.lk-nav-links { padding: 0; margin: 0; }

/* The hero art is yellow, so the button switches to white to stay visible on it. */
.lk-hero-btn, .lk-hero .lk-btn {
	background: var(--white); color: var(--navy);
	box-shadow: none;
}
.lk-hero-btn:hover, .lk-hero .lk-btn:hover {
	background: #fff; color: var(--navy);
}

/* ── WooCommerce colour variables ──────────────────────────────────────── */
/* Woo ships its own palette (purple by default) and uses it for buttons, badges
   and the block cart/checkout. Point those variables at the brand instead. */
:root {
	--wc-green: var(--green);
	--wc-red: var(--red);
	--wc-orange: #f59e0b;
	--wc-blue: var(--blue);
	--wc-primary: var(--yellow);
	--wc-primary-text: var(--navy);
	--wc-secondary: var(--gray-100);
	--wc-secondary-text: var(--navy);
	--wc-highlight: var(--yellow);
	--wc-highligh-text: var(--navy);
	--wc-content-bg: #fff;
	--wc-subtext: var(--gray-500);
	--wc-form-color-background: #fff;
	--wc-form-border-color: var(--gray-200);
}

/* A variable product disables the button until a variant is picked — keep it
   readable instead of Woo's washed-out default. */
.woocommerce div.product form.cart .button.disabled,
.woocommerce div.product form.cart .button:disabled,
.woocommerce .single_add_to_cart_button.disabled {
	background: var(--gray-200); color: var(--gray-600);
	box-shadow: none; opacity: 1; cursor: not-allowed;
}
.woocommerce div.product form.cart .button.disabled:hover { transform: none; background: var(--gray-200); }

/* ── Cart (classic template) ───────────────────────────────────────────── */
.woocommerce-cart .lk-shop, .woocommerce-checkout .lk-shop { padding-bottom: 48px; }
.woocommerce-cart h1.entry-title, .woocommerce-checkout h1.entry-title,
.woocommerce-account h1.entry-title { font-size: clamp(28px, 4vw, 42px); margin-bottom: 24px; }

.woocommerce table.shop_table.cart { background: var(--white); }
.woocommerce table.shop_table.cart th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-600); }
.woocommerce table.shop_table.cart td { padding: 16px 12px; vertical-align: middle; }
.woocommerce table.shop_table.cart .product-thumbnail img { width: 72px; border-radius: var(--r-sm); }
.woocommerce table.shop_table.cart .product-name a { font-weight: 700; }
.woocommerce table.shop_table.cart .product-name .variation {
	margin: 4px 0 0; font-size: 12px; color: var(--gray-500);
}
.woocommerce table.shop_table.cart .product-name .variation dt,
.woocommerce table.shop_table.cart .product-name .variation dd { display: inline; margin: 0; }
.woocommerce table.shop_table.cart .product-name .variation dd { margin-right: 8px; }
.woocommerce a.remove {
	color: var(--gray-400) !important; font-weight: 400;
	width: 24px; height: 24px; line-height: 22px;
}
.woocommerce a.remove:hover { background: var(--red); color: #fff !important; }
.woocommerce .cart .quantity .qty { width: 68px; }

.woocommerce .cart-collaterals .cart_totals {
	background: var(--white); border: 1px solid var(--gray-200);
	border-radius: var(--r); padding: 20px 22px;
}
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 20px; margin-bottom: 12px; }
.woocommerce .cart-collaterals .cart_totals table.shop_table { border: 0; }
.woocommerce .cart-collaterals .cart_totals .order-total .amount { font-size: 20px; font-weight: 800; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; height: 56px; font-size: 16px; }
.woocommerce .cart .coupon .input-text {
	height: 44px; padding: 0 14px; border: 1px solid var(--gray-200);
	border-radius: var(--r-sm); font-family: var(--font); min-width: 180px;
}
.woocommerce .cart-empty { font-size: 18px; font-weight: 700; }
.woocommerce .return-to-shop { margin-top: 16px; }

/* ── Checkout (classic template) ───────────────────────────────────────── */
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }
.woocommerce-checkout #customer_details { margin-bottom: 32px; }
.woocommerce-checkout #order_review_heading { margin-top: 8px; }
.woocommerce-checkout table.shop_table { background: var(--white); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--gray-200); }
.woocommerce-checkout #payment ul.payment_methods li { padding: 10px 0; }
.woocommerce-checkout #place_order { width: 100%; height: 56px; font-size: 16px; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
	border: 1px solid var(--gray-200); border-radius: var(--r); background: var(--white);
}

/* Woo floats the billing column; with shipping hidden the grid left a blank
   half, so the fields simply run full width in a readable measure. */
.woocommerce-checkout .col2-set { display: block; }
.woocommerce-checkout .col2-set .col-1 { max-width: 640px; }

/* Cart in two columns: items on the left, totals beside them — as the original has it. */
@media (min-width: 1000px) {
	.woocommerce-cart .lk-shop > .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 360px;
		gap: 32px;
		align-items: start;
	}
	.woocommerce-cart .lk-shop > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-cart .cart-collaterals { width: 100%; float: none; }
	.woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; }
	.woocommerce-cart .woocommerce-cart-form { margin: 0; }
}
.woocommerce-cart .cart-collaterals .cross-sells { display: none; }

/* ── Notices ───────────────────────────────────────────────────────────── */
/* Woo's default notice is a grey slab with a top border and an icon glued to the
   left padding. Rebuilt as a card: status stripe, own icon, action on the right. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce div.product form.cart .woocommerce-variation-availability p {
	font-family: var(--font);
}

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-error {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin: 0 0 20px;
	padding: 14px 18px;
	background: var(--white);
	border: 1px solid var(--gray-200);
	border-left: 4px solid var(--status, var(--green));
	border-top: 1px solid var(--gray-200);
	border-radius: var(--r);
	box-shadow: var(--shadow-card);
	color: var(--black);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
	list-style: none;
}

.woocommerce .woocommerce-message { --status: var(--green); }
.woocommerce .woocommerce-info    { --status: var(--yellow); }
.woocommerce .woocommerce-error   { --status: var(--red); }
.woocommerce-page .woocommerce-message { --status: var(--green); }
.woocommerce-page .woocommerce-info    { --status: var(--yellow); }
.woocommerce-page .woocommerce-error   { --status: var(--red); }

/* Replace Woo's icon font with a mark that matches the status colour. */
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before,
.woocommerce-page .woocommerce-message::before,
.woocommerce-page .woocommerce-info::before,
.woocommerce-page .woocommerce-error::before {
	content: '';
	position: static;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	background-color: var(--status, var(--green));
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 20px 20px;
	mask-size: 20px 20px;
	-webkit-mask-image: var(--icon);
	mask-image: var(--icon);
}
.woocommerce .woocommerce-message::before, .woocommerce-page .woocommerce-message::before {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.woocommerce .woocommerce-info::before, .woocommerce-page .woocommerce-info::before {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");
	background-color: #b8860b;
}
.woocommerce .woocommerce-error::before, .woocommerce-page .woocommerce-error::before {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6M12 16h.01'/%3E%3C/svg%3E");
}

/* The action ("Zobrazit košík") sits at the far end instead of floating. */
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce-page .woocommerce-message .button,
.woocommerce-page .woocommerce-info .button {
	float: none;
	margin: 0 0 0 auto;
	height: 40px;
	padding: 0 20px;
	font-size: 14px;
	box-shadow: none;
	white-space: nowrap;
}

/* An error notice is a <ul>; its items must not indent or show bullets. */
.woocommerce .woocommerce-error li, .woocommerce-page .woocommerce-error li { list-style: none; margin: 0; }

@media (max-width: 600px) {
	.woocommerce .woocommerce-message,
	.woocommerce .woocommerce-info,
	.woocommerce .woocommerce-error,
	.woocommerce-page .woocommerce-message,
	.woocommerce-page .woocommerce-info,
	.woocommerce-page .woocommerce-error {
		flex-wrap: wrap;
		font-size: 14px;
	}
	.woocommerce .woocommerce-message .button, .woocommerce-page .woocommerce-message .button {
		margin: 4px 0 0 32px;
	}
}

/* WooCommerce moves focus onto a notice so screen readers announce it. That is
   not a keyboard focus, so it must not draw the focus ring — which is what put
   the stray yellow outline around every message. */
.woocommerce-notices-wrapper [tabindex="-1"]:focus,
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus,
.woocommerce-message:focus-visible,
.woocommerce-info:focus-visible,
.woocommerce-error:focus-visible {
	outline: none;
	box-shadow: var(--shadow-card);
}

/* ── Display type ──────────────────────────────────────────────────────── */
/* Poleno is used in two places only: the hero and these collection headings on
   the home page. Everything else runs in Manrope. The signature look stays —
   yellow fill, thin dark outline and a hard offset shadow. */
.lk-outline-title {
	font-family: var(--font-display);
	font-size: clamp(28px, 4.6vw, 46px);
	line-height: 1.05;
	font-weight: 900;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--yellow);
	-webkit-text-stroke: 1px var(--navy);
	paint-order: stroke fill;
	text-shadow: 3px 4px 0 rgba(0, 0, 0, 1);
	margin-bottom: 10px;
}
@media (max-width: 600px) {
	.lk-outline-title { letter-spacing: 2px; text-shadow: 2px 3px 0 rgba(0, 0, 0, 1); }
}

/* ── Collections ───────────────────────────────────────────────────────── */
.lk-collection { padding: clamp(40px, 6vw, 80px) 0; }
.lk-collection + .lk-collection { padding-top: 0; }

/* ── Cards (one per colour) ────────────────────────────────────────────── */
.lk-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}
@media (min-width: 1200px) { .lk-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 767px) { .lk-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
@media (max-width: 479px) { .lk-grid { gap: 8px; } }

.lk-card {
	display: flex; flex-direction: column;
	background: var(--white);
	border: 1px solid var(--gray-100);
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	color: inherit; text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}
.lk-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.lk-card-media { position: relative; aspect-ratio: 4 / 5; background: var(--gray-100); overflow: hidden; }
/* height:100% does not resolve against a parent sized by aspect-ratio, so the
   photos are positioned instead — otherwise they keep their own height and leave
   a grey strip under the card. */
.lk-card-img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.lk-card-img--hover { opacity: 0; transition: opacity .2s ease; }
.lk-card:hover .lk-card-img--hover { opacity: 1; }

.lk-card-body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.lk-card-title {
	font-family: var(--font);
	font-size: 20px; font-weight: 900; line-height: 1.25;
	letter-spacing: 0; color: var(--black); margin: 0;
}
.lk-card-colour {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12px; font-weight: 600; color: var(--gray-500);
}
.lk-card-colour i {
	width: 11px; height: 11px; border-radius: 50%;
	border: 1.5px solid var(--gray-300); flex-shrink: 0;
}
/* White (or any light) swatch would be invisible on the white card. */
.lk-card-colour i.is-light { border-color: var(--navy); }
.lk-card-price { font-size: 16px; font-weight: 500; color: var(--black); margin: 0; }
.lk-card-price del { color: var(--gray-400); font-weight: 400; margin-right: 6px; }
.lk-card-price ins { text-decoration: none; font-weight: 800; }
.lk-card-btn { height: auto; min-height: 40px; padding: 10px 18px; font-size: 14px; line-height: 1.25; text-align: center; box-shadow: none; margin-top: 2px; }
.lk-card:hover .lk-card-btn { background: var(--yellow-dark); }

@media (max-width: 479px) {
	.lk-card-body { padding: 12px 10px 14px; gap: 6px; }
	.lk-card-title { font-size: 15px; }
	.lk-card-price { font-size: 14px; }
	.lk-card-btn { min-height: 36px; padding: 9px 14px; font-size: 13px; }
}

/* Archive header */
.lk-archive-header { margin-bottom: 24px; }

/* ── Side cart ─────────────────────────────────────────────────────────── */
.lk-drawer-overlay {
	position: fixed; inset: 0; z-index: 998;
	background: rgba(10, 10, 26, .55);
	opacity: 0; transition: opacity .25s ease;
}
.lk-drawer-overlay.is-open { opacity: 1; }
.lk-drawer-overlay[hidden], .lk-drawer[hidden] { display: none; }
body.lk-drawer-lock { overflow: hidden; }

.lk-drawer {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 999;
	/* WordPress pushes the page down by the admin bar and takes fixed elements
	   with it, so the drawer would hang below the viewport. */
	width: min(420px, 100%);
	display: flex; flex-direction: column;
	background: var(--white);
	box-shadow: -12px 0 40px rgba(0, 0, 0, .18);
	transform: translateX(100%);
	transition: transform .25s ease;
}
.lk-drawer.is-open { transform: translateX(0); }
.lk-drawer.is-busy { opacity: .6; pointer-events: none; }

/* "Přidávám do košíku…" over the cart while the server adds the item; the top bar
   with the close button stays above it. */
.lk-drawer-top { position: relative; z-index: 6; background: var(--white); }
.lk-drawer-loading {
	position: absolute; inset: 0; z-index: 5;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
	background: rgba(255, 255, 255, .9);
	backdrop-filter: blur(3px);
	opacity: 0; transition: opacity .2s ease;
}
.lk-drawer-loading[hidden] { display: none; }
.lk-drawer-loading.is-on { opacity: 1; }
.lk-drawer-loading-text { font-size: 16px; color: var(--black); }
.lk-drawer-loading-ico {
	width: 38px; height: 38px; border-radius: 50%;
	border: 3px solid var(--gray-200); border-top-color: var(--yellow);
	animation: lk-spin .8s linear infinite;
}
/* done: the spinner turns into a tick for a moment */
.lk-drawer-loading.is-done .lk-drawer-loading-ico {
	animation: none; border: 0; background: var(--yellow) no-repeat center / 20px
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
@media (prefers-reduced-motion: reduce) {
	.lk-drawer-loading { transition: none; }
	.lk-drawer-loading-ico { animation-duration: 2s; }
}

.lk-drawer-top {
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 20px; border-bottom: 1px solid var(--gray-200); flex: 0 0 auto;
}
.lk-drawer-top h2 { font-family: var(--font-display); font-size: 22px; margin: 0; }
.lk-drawer-close {
	width: 36px; height: 36px; border-radius: var(--r-sm);
	background: var(--gray-100); border: 1px solid var(--gray-200);
	display: flex; align-items: center; justify-content: center; color: var(--gray-600);
}
.lk-drawer-close:hover { background: var(--gray-200); }
.lk-drawer-close svg { width: 18px; height: 18px; }

/* Only the item list scrolls. The shipping bar, the table head and the totals
   stay where they are, so the checkout button is always within reach. */
.lk-drawer-body { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; padding: 0; }
.lk-drawer-scroll {
	flex: 1 1 auto; overflow-y: auto; min-height: 0;
	padding: 0 20px; scrollbar-width: thin;
}
.lk-drawer-foot { flex: 0 0 auto; border-top: 1px solid var(--gray-200); background: var(--white); }

/* free shipping progress */
.lk-drawer-shipping {
	flex: 0 0 auto;
	border: 2px solid var(--yellow); border-radius: var(--r-sm);
	background: #fffdf0; padding: 8px 12px; margin: 12px 20px 10px;
}
.lk-drawer-shipping p { margin: 0 0 6px; font-size: 13px; line-height: 1.35; }
.lk-drawer-shipping.is-done { border-color: var(--green); background: #f0fdf4; }
.lk-drawer-truck { margin-right: 6px; }
.lk-drawer-bar { height: 4px; border-radius: 99px; background: var(--gray-200); overflow: hidden; }
.lk-drawer-bar span { display: block; height: 100%; background: var(--yellow); transition: width .3s ease; }
.lk-drawer-shipping.is-done .lk-drawer-bar span { background: var(--green); }

.lk-drawer-head {
	flex: 0 0 auto;
	display: flex; justify-content: space-between;
	font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
	color: var(--gray-500);
	padding: 0 20px 8px; margin: 0 0 2px;
	border-bottom: 1px solid var(--gray-200);
}

.lk-drawer-items { list-style: none; margin: 0; padding: 0; }
.lk-drawer-item {
	display: grid; grid-template-columns: 72px 1fr auto; gap: 12px;
	padding: 16px 0; border-bottom: 1px solid var(--gray-100);
}
.lk-drawer-thumb img { width: 72px; height: 90px; object-fit: cover; border-radius: var(--r-sm); background: var(--gray-100); }
.lk-drawer-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lk-drawer-name { font-size: 15px; font-weight: 700; line-height: 1.3; }
.lk-drawer-price { font-size: 13px; color: var(--gray-600); }
.lk-drawer-meta, .lk-drawer-meta p { font-size: 12px; color: var(--gray-500); margin: 0; text-transform: uppercase; }
/* Woo prints the variation as a <dl>; one attribute per line reads better here. */
.lk-drawer-meta dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 0 5px; margin: 2px 0 0; }
.lk-drawer-meta dl.variation dt { font-weight: 400; margin: 0; }
.lk-drawer-meta dl.variation dd { margin: 0; }
.lk-drawer-meta dl.variation dd p { margin: 0; }
.lk-drawer-line { font-weight: 700; white-space: nowrap; }

.lk-stepper { display: flex; align-items: center; gap: 4px; margin-top: 8px; }
.lk-step {
	width: 30px; height: 30px; border-radius: var(--r-sm);
	border: 1px solid var(--gray-200); background: var(--white);
	font-size: 16px; line-height: 1; color: var(--black);
	display: flex; align-items: center; justify-content: center;
}
.lk-step:hover { border-color: var(--yellow); background: var(--yellow-muted); }
.lk-step-qty {
	width: 40px; height: 30px; text-align: center;
	border: 1px solid var(--gray-200); border-radius: var(--r-sm);
	font-family: var(--font); font-size: 14px; padding: 0;
}
.lk-drawer-remove {
	width: 30px; height: 30px; margin-left: 6px;
	background: none; border: none; color: var(--gray-400);
	display: flex; align-items: center; justify-content: center;
}
.lk-drawer-remove:hover { color: var(--red); }
.lk-drawer-remove svg { width: 16px; height: 16px; }

/* Suggestions scroll sideways so more than two fit without stealing height. */
.lk-drawer-suggest { padding: 12px 0 0; }
.lk-suggest-header {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; padding: 0; margin-bottom: 8px;
}
.lk-drawer-suggest h3 { font-family: var(--font); font-size: 13px; font-weight: 700; margin: 0; }
.lk-suggest-navs { display: flex; gap: 6px; }
.lk-suggest-track {
	display: flex; gap: 10px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	/* keep a sideways swipe inside the strip instead of scrolling the page */
	overscroll-behavior-x: contain;
	touch-action: pan-x;
	/* pull out to the panel edge so cards can scroll flush, but start in line
	   with the cart items above */
	margin: 0 -20px;
	padding: 2px 20px 10px;
	scrollbar-width: none;
}
.lk-suggest-track::-webkit-scrollbar { display: none; }
.lk-suggest {
	flex: 0 0 132px;
	display: flex; flex-direction: column; gap: 4px;
	background: var(--white); border: 1px solid var(--gray-200);
	border-radius: var(--r-sm); padding: 8px;
}
.lk-suggest-media { display: block; line-height: 0; }
.lk-suggest img { width: 100%; height: 92px; object-fit: cover; border-radius: 8px; background: var(--gray-100); }
.lk-suggest-name { font-size: 12px; font-weight: 600; line-height: 1.25; display: block; margin-top: 4px; }
.lk-suggest-price { font-size: 12px; font-weight: 700; }
.lk-suggest-add {
	height: 28px; padding: 0 10px; font-size: 11px;
	white-space: nowrap; align-self: stretch; margin-top: 2px;
}
/* Arrows sit beside the heading, so they never cover a product name. */
.lk-suggest-nav {
	width: 26px; height: 26px; border-radius: 50%;
	background: var(--white); border: 1px solid var(--gray-200);
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; color: var(--black); padding: 0;
}
.lk-suggest-nav:hover { border-color: var(--yellow); background: var(--yellow-muted); }
.lk-suggest-nav[hidden] { visibility: visible; display: flex; }
.lk-suggest-nav svg { width: 13px; height: 13px; }
@media (max-height: 640px) { .lk-drawer-suggest { display: none; } }

.lk-drawer-total { padding: 14px 20px 18px; }
.lk-drawer-total-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 18px; }
.lk-drawer-total-row strong { font-size: 22px; font-weight: 800; }
.lk-drawer-note { margin: 4px 0 14px; font-size: 12px; color: var(--gray-500); }
.lk-drawer-checkout { width: 100%; height: 52px; font-size: 16px; }
.lk-drawer-continue {
	display: block; width: 100%; margin-top: 10px; padding: 6px;
	background: none; border: none; color: var(--gray-600);
	font-family: var(--font); font-size: 14px;
}
.lk-drawer-continue:hover { color: var(--black); }

.lk-drawer-empty { text-align: center; padding: 40px 20px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.lk-drawer-empty p { color: var(--gray-600); margin: 0; }

@media (prefers-reduced-motion: reduce) {
	.lk-drawer, .lk-drawer-overlay { transition: none; }
}

/* ── Product page ──────────────────────────────────────────────────────── */
.lk-product-grid {
	display: grid; grid-template-columns: 1fr; gap: 28px;
	padding: clamp(16px, 3vw, 32px) 0 clamp(32px, 5vw, 56px);
}
@media (min-width: 900px) { .lk-product-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; } }

/* gallery */
.lk-product-gallery { position: relative; }
.lk-badge-on-photo { position: absolute; top: 16px; left: 16px; z-index: 2; }
.lk-gallery-main { border-radius: var(--r-lg); overflow: hidden; background: var(--gray-100); }
.lk-gallery-img { width: 100%; height: auto; display: block; }
.lk-gallery-thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding-bottom: 4px; }
.lk-thumb {
	flex: 0 0 auto; width: 78px; padding: 0;
	background: none; border: 2px solid transparent; border-radius: var(--r-sm);
	overflow: hidden; cursor: pointer; line-height: 0;
}
.lk-thumb img { width: 100%; height: 96px; object-fit: cover; display: block; }
.lk-thumb.is-active { border-color: var(--navy); }
.lk-thumb:hover { border-color: var(--gray-300); }

/* summary */
.lk-product-summary { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.lk-product-title { font-size: clamp(26px, 3.6vw, 40px); margin: 0; }
.lk-product-price { font-size: 28px; font-weight: 700; color: var(--black); }
.lk-product-price del { font-size: 20px; color: var(--gray-400); font-weight: 400; margin-right: 8px; }
.lk-product-price ins { text-decoration: none; }
.lk-delivery--pdp { padding: 0; font-size: 14px; }
.lk-product-desc { color: var(--gray-700); font-size: 15px; line-height: 1.6; margin: 0; }
.lk-product-desc p { margin: 0 0 8px; }

/* variations */
.lk-variations-form { width: 100%; display: flex; flex-direction: column; gap: 16px; }
.lk-variations-form .variations { display: flex; flex-direction: column; gap: 16px; position: relative; }
.lk-variation { display: flex; flex-direction: column; gap: 8px; }
.lk-variation label { font-size: 13px; font-weight: 600; color: var(--black); margin: 0; }
.lk-variation-control { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* colour sits on one line: label, swatches, chosen name */
.lk-variation--colour { flex-direction: row; align-items: center; gap: 12px; }
.lk-colour-name { font-size: 14px; color: var(--black); }
/* Woo's reset link has no place in this design */
.lk-variations-form .reset_variations { display: none !important; }

.lk-sizes { display: flex; flex-wrap: wrap; gap: 8px; }
.lk-size-btn {
	min-height: 44px; padding: 8px 14px;
	background: var(--white); color: var(--black);
	border: 2px solid var(--gray-200); border-radius: var(--r-sm);
	font-family: var(--font); font-size: 14px; font-weight: 500;
	display: inline-flex; align-items: center; justify-content: center;
	white-space: nowrap; cursor: pointer;
	transition: border-color .15s, background .15s;
}
.lk-size-btn:hover:not(:disabled) { border-color: var(--yellow); background: var(--yellow-muted); }
.lk-size-btn.is-selected { border-color: var(--yellow); background: var(--yellow-muted); }
.lk-size-btn:disabled { opacity: .35; text-decoration: line-through; cursor: not-allowed; }

.lk-colours { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.lk-colour-btn {
	width: 40px; height: 40px; padding: 0;
	background: none; border: 3px solid transparent; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; cursor: pointer;
	transition: border-color .15s;
}
.lk-colour-btn:hover:not(:disabled) { border-color: var(--gray-300); }
.lk-colour-btn.is-selected { border-color: var(--yellow); }
.lk-colour-btn:disabled { opacity: .3; cursor: not-allowed; }
.lk-colour-dot { width: 28px; height: 28px; border-radius: 50%; display: block; border: 2px solid rgba(17, 24, 39, .18); }
.lk-colour-dot.is-light { border-color: var(--navy); }

select.lk-select-hidden,
.woocommerce div.product form.cart .variations select.lk-select-hidden {
	position: absolute !important; width: 1px !important; min-width: 0 !important; height: 1px !important;
	padding: 0 !important; margin: -1px !important; overflow: hidden; clip: rect(0 0 0 0); border: 0;
}

/* quantity + add to cart on one line */
.lk-qty { display: inline-flex; align-items: center; border: 2px solid var(--gray-200); border-radius: var(--r-pill); overflow: hidden; height: 52px; }
.lk-qty-btn {
	width: 42px; height: 100%; background: var(--white); border: none;
	font-size: 18px; line-height: 1; color: var(--black); cursor: pointer;
}
.lk-qty-btn:hover { background: var(--gray-100); }
.lk-qty-input {
	width: 46px; height: 100%; border: none; text-align: center;
	font-family: var(--font); font-size: 15px; background: var(--white);
	-moz-appearance: textfield; padding: 0;
}
.lk-qty-input::-webkit-outer-spin-button, .lk-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.woocommerce div.product form.cart,
.woocommerce div.product .lk-simple-form { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; width: 100%; }
.woocommerce div.product form.cart .single_add_to_cart_button,
.lk-simple-form .single_add_to_cart_button {
	flex: 1 1 220px; width: auto; height: 52px; font-size: 16px; margin: 0;
}
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; width: 100%; }
.woocommerce div.product .woocommerce-variation-price { display: none; }
.woocommerce div.product .woocommerce-variation-description { width: 100%; font-size: 14px; color: var(--gray-600); }

/* reassurance tiles */
.lk-trust {
	list-style: none; margin: 8px 0 0; padding: 0; width: 100%;
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
@media (max-width: 600px) {
	.lk-trust { grid-template-columns: repeat(3, 1fr); gap: 6px; }
	.lk-trust li { padding: 10px 4px; }
	.lk-trust strong { font-size: 11px; line-height: 1.2; }
	.lk-trust span { font-size: 10px; line-height: 1.2; }
	.lk-trust svg { width: 17px; height: 17px; }
}
.lk-trust li {
	background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r);
	padding: 14px 10px; text-align: center;
	display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.lk-trust svg { width: 20px; height: 20px; color: var(--gray-600); margin-bottom: 2px; }
.lk-trust strong { font-size: 13px; font-weight: 700; }
.lk-trust span { font-size: 12px; color: var(--gray-500); }

.lk-product .stock { font-size: 13px; color: var(--gray-500); }
.lk-product .stock.out-of-stock { color: var(--red); font-weight: 600; }

/* The variation wrapper must span the column, otherwise the stepper and the
   add-to-cart button wrap onto separate lines. */
.woocommerce div.product form.cart .single_variation_wrap { width: 100%; }
.woocommerce div.product .woocommerce-variation-add-to-cart { flex-wrap: nowrap; }
@media (max-width: 420px) {
	.woocommerce div.product form.cart .single_add_to_cart_button { padding: 0 14px; font-size: 15px; }
	.lk-qty { height: 48px; }
	.lk-qty-btn { width: 34px; }
	.lk-qty-input { width: 34px; }
}

/* ── Archive header: breadcrumbs, count and sorting ────────────────────── */
.lk-breadcrumb { display: flex; align-items: center; gap: 8px; padding: 4px 0 14px; font-size: 13px; color: var(--gray-400); flex-wrap: wrap; }
.lk-breadcrumb a { color: var(--gray-500); }
.lk-breadcrumb a:hover { color: var(--black); }
.lk-crumb-sep { color: var(--gray-300); }

.lk-archive-header { margin-bottom: 14px; }
.lk-archive-bar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; flex-wrap: wrap; margin-bottom: 22px;
}
.lk-count { font-size: 14px; color: var(--gray-600); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select, .lk-archive-bar select {
	height: 44px; padding: 0 38px 0 14px;
	border: 2px solid var(--gray-200); border-radius: var(--r-pill);
	font-family: var(--font); font-size: 14px; background-color: var(--white);
	cursor: pointer;
}
.woocommerce-ordering select:focus { border-color: var(--yellow); outline: none; }

.woocommerce-pagination { margin-top: 32px; }
.woocommerce-pagination ul.page-numbers { display: flex; gap: 6px; border: 0; padding: 0; justify-content: center; }
.woocommerce-pagination li { border: 0; margin: 0; }
.woocommerce-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 12px;
	border: 2px solid var(--gray-200); border-radius: var(--r-pill);
	font-size: 14px; font-weight: 600; background: var(--white);
}
.woocommerce-pagination .page-numbers.current,
.woocommerce-pagination .page-numbers:hover { border-color: var(--yellow); background: var(--yellow-muted); }

/* Admin bar offset: without it the drawer's head hides behind the bar and its
   footer falls off the bottom of the screen. */
body.admin-bar .lk-drawer,
body.admin-bar .lk-drawer-overlay { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .lk-drawer,
	body.admin-bar .lk-drawer-overlay { top: 46px; }
}

/* ── Quick view ────────────────────────────────────────────────────────── */
.lk-qv-overlay {
	position: fixed; inset: 0; z-index: 1000;
	background: rgba(10, 10, 26, .6);
	opacity: 0; transition: opacity .2s ease;
}
.lk-qv-overlay.is-open { opacity: 1; }
.lk-qv-overlay[hidden], .lk-qv[hidden] { display: none; }

.lk-qv {
	position: fixed; z-index: 1001;
	top: 50%; left: 50%;
	width: min(860px, calc(100% - 32px));
	max-height: min(88vh, 760px);
	transform: translate(-50%, -46%);
	background: var(--white); border-radius: var(--r-lg);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
	overflow: auto;
	opacity: 0; transition: opacity .2s ease, transform .2s ease;
}
.lk-qv.is-open { opacity: 1; transform: translate(-50%, -50%); }
.lk-qv-close {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	width: 36px; height: 36px; border-radius: var(--r-sm);
	background: var(--gray-100); border: 1px solid var(--gray-200);
	display: flex; align-items: center; justify-content: center; color: var(--gray-600);
}
.lk-qv-close:hover { background: var(--gray-200); }
.lk-qv-close svg { width: 18px; height: 18px; }

.lk-qv-grid { display: grid; grid-template-columns: 1fr; gap: 20px; padding: 20px; }
@media (min-width: 720px) { .lk-qv-grid { grid-template-columns: 300px 1fr; gap: 28px; padding: 28px; } }
.lk-qv-media img { width: 100%; height: auto; border-radius: var(--r); background: var(--gray-100); display: block; }
.lk-qv-info { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.lk-qv-title { font-size: clamp(22px, 3vw, 30px); margin: 0; }
.lk-qv-price { font-size: 24px; font-weight: 700; }
.lk-qv-full { font-size: 13px; color: var(--gray-500); text-decoration: underline; }
.lk-qv-full:hover { color: var(--black); }
.lk-qv-loading { padding: 40px; text-align: center; color: var(--gray-500); }
.lk-qv-error { width: 100%; margin: 8px 0 0; font-size: 13px; color: var(--red); }
.lk-qv .single_add_to_cart_button.is-loading { opacity: .6; }

@media (prefers-reduced-motion: reduce) { .lk-qv, .lk-qv-overlay { transition: none; } }

/* The disabled add-to-cart rule was scoped to .woocommerce div.product, which the
   quick view is not — hence Woo's purple showing through there. */
.lk-qv .single_add_to_cart_button.disabled,
.lk-qv .single_add_to_cart_button:disabled,
.lk-qv .button.disabled {
	background: var(--gray-200); color: var(--gray-600);
	box-shadow: none; opacity: 1; cursor: not-allowed; transform: none;
}
.lk-qv .single_add_to_cart_button { flex: 1 1 200px; height: 52px; font-size: 16px; }
.lk-qv form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; width: 100%; }
.lk-qv .variations { width: 100%; }

/* The banner as a whole is a link, so it takes the pointer. */
.lk-slide.is-clickable { cursor: pointer; }

/* ── Checkout steps ────────────────────────────────────────────────────── */
.lk-ck-steps {
	display: flex; align-items: center; gap: 8px;
	margin: 8px 0 26px; flex-wrap: wrap;
}
.lk-ckstep {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; border-radius: var(--r-pill);
	background: var(--white); border: 2px solid var(--gray-200);
	font-family: var(--font); font-size: 14px; font-weight: 600; color: var(--gray-500);
	cursor: pointer;
}
.lk-ckstep:disabled { cursor: default; opacity: .7; }
.lk-ckstep-num {
	width: 22px; height: 22px; border-radius: 50%;
	background: var(--gray-200); color: var(--gray-600);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 12px; font-weight: 800;
}
.lk-ckstep.is-active { border-color: var(--yellow); background: var(--yellow-muted); color: var(--black); }
.lk-ckstep.is-active .lk-ckstep-num { background: var(--yellow); color: var(--navy); }
.lk-ckstep.is-done { color: var(--black); border-color: var(--green); }
.lk-ckstep.is-done .lk-ckstep-num { background: var(--green); color: #fff; }
.lk-ckstep-line { flex: 1 1 20px; height: 2px; background: var(--gray-200); min-width: 12px; }
@media (max-width: 700px) {
	.lk-ck-steps { gap: 6px; }
	.lk-ckstep { padding: 6px 10px; font-size: 12px; }
	.lk-step-line { display: none; }
}

.lk-panel { display: none; }
.lk-panel.is-active { display: block; }
.lk-panel-title { font-size: clamp(22px, 3vw, 30px); margin-bottom: 18px; }
.lk-panel-actions {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; margin-top: 24px; flex-wrap: wrap;
}
.lk-back {
	background: none; border: none; padding: 8px 4px;
	font-family: var(--font); font-size: 14px; color: var(--gray-600); cursor: pointer;
}
.lk-back:hover { color: var(--black); }
.lk-next, .lk-place-order { height: 52px; padding: 0 32px; font-size: 16px; }
.lk-place-order { flex: 1 1 260px; }

/* Woo prints its own submit inside the payment box; ours lives in step 3. */
.lk-checkout #place_order { display: none; }

.lk-summary {
	display: flex; flex-direction: column; gap: 2px;
	background: var(--white); border: 1px solid var(--gray-200);
	border-radius: var(--r); padding: 6px 18px; margin-bottom: 20px;
}
.lk-summary-row {
	display: flex; justify-content: space-between; gap: 16px;
	padding: 10px 0; border-bottom: 1px solid var(--gray-100);
	font-size: 15px;
}
.lk-summary-row:last-child { border-bottom: 0; }
.lk-summary-row span { color: var(--gray-500); }
.lk-summary-row strong { text-align: right; }

/* ── Checkout typography ───────────────────────────────────────────────── */
/* Only the page title keeps the display face here; the headings inside the form
   are read as labels, so they run in Manrope. */
.woocommerce-checkout .lk-panel-title,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-cart .lk-panel-title {
	font-family: var(--font);
	font-weight: 800;
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--black);
	-webkit-text-stroke: 0;
	text-shadow: none;
}
.woocommerce-checkout .lk-panel-title { font-size: clamp(20px, 2.6vw, 26px); }
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading { font-size: 17px; margin-bottom: 12px; }

/* ── Field validation ──────────────────────────────────────────────────── */
/* Red border with a message when a required field is empty or wrong, green with
   a tick once it is filled — the way the original checkout behaves. */
.lk-checkout .form-row { position: relative; }
.lk-checkout .lk-invalid,
.lk-checkout input.input-text.lk-invalid,
.lk-checkout select.lk-invalid {
	border: 2px solid var(--red) !important;
}
.lk-checkout .lk-valid,
.lk-checkout input.input-text.lk-valid,
.lk-checkout select.lk-valid {
	border: 2px solid var(--green) !important;
	padding-right: 38px;
}
.lk-field-msg {
	display: block; margin-top: 4px;
	font-size: 12px; color: var(--red);
}
.lk-field-tick {
	position: absolute; right: 12px; bottom: 14px;
	width: 20px; height: 20px; border-radius: 50%;
	background: var(--green);
	display: flex; align-items: center; justify-content: center;
	pointer-events: none;
}
.lk-field-tick svg { width: 12px; height: 12px; }

/* Step 1 shows only the choices. WooCommerce keeps the whole review block in one
   element it re-renders itself, so the item and total rows are hidden here and
   repeated in the summary instead of being moved. */
.lk-panel[data-panel="1"] #order_review thead,
.lk-panel[data-panel="1"] #order_review .cart_item,
.lk-panel[data-panel="1"] #order_review .cart-subtotal,
.lk-panel[data-panel="1"] #order_review .cart-discount,
.lk-panel[data-panel="1"] #order_review .fee,
.lk-panel[data-panel="1"] #order_review .order-total,
.lk-panel[data-panel="1"] #order_review .woocommerce-shipping-destination {
	display: none;
}
.lk-panel[data-panel="1"] #order_review .woocommerce-shipping-totals th { font-size: 17px; }
.lk-panel[data-panel="1"] #order_review table.shop_table { border: 0; background: transparent; }
.lk-panel[data-panel="1"] #order_review .woocommerce-shipping-totals td { padding-left: 0; }

/* Summary: the order lines and amounts, shown only in step 3. */
.lk-summary-items {
	background: var(--white); border: 1px solid var(--gray-200);
	border-radius: var(--r); padding: 6px 18px; margin-bottom: 14px;
}
.lk-summary-item {
	display: flex; justify-content: space-between; gap: 16px;
	padding: 10px 0; border-bottom: 1px solid var(--gray-100); font-size: 15px;
}
.lk-summary-item:last-child { border-bottom: 0; }
.lk-summary-item .lk-sum-name { color: var(--black); }
.lk-summary-item .lk-sum-qty { color: var(--gray-500); }
.lk-summary-total {
	display: flex; justify-content: space-between; align-items: baseline;
	padding: 12px 0 0; margin-top: 4px; border-top: 2px solid var(--gray-200);
	font-size: 18px;
}
.lk-summary-total strong { font-size: 22px; font-weight: 800; }
.lk-summary-details {
	background: var(--white); border: 1px solid var(--gray-200);
	border-radius: var(--r); padding: 6px 18px; margin-top: 14px;
}
.lk-summary { border: 0; background: transparent; padding: 0; margin-bottom: 20px; }

/* Grid and flex children default to min-width:auto, so they refuse to shrink
   below their content — on a phone the product gallery then pushed the page
   58px wider than the screen. */
.lk-product-grid > *,
.lk-grid > *,
.lk-qv-grid > *,
.lk-drawer-item > *,
.lk-suggest > * {
	min-width: 0;
}
.lk-gallery-main, .lk-gallery-img { max-width: 100%; }
.lk-product-gallery { max-width: 100%; overflow: hidden; }
.lk-gallery-thumbs { max-width: 100%; }

/* Nothing on the page may scroll the document sideways. `clip`, unlike `hidden`, does
   not turn body into a scroll box of its own — with that, the sticky header measured
   itself against body instead of the window and never stuck. Browsers without
   `clip` keep `hidden`. */
html, body { max-width: 100%; overflow-x: hidden; overflow-x: clip; }

/* ── Drawer proportions on a phone ─────────────────────────────────────── */
/* The suggestions and totals were eating 55% of the panel, leaving a sliver for
   the cart itself. The cart gets the room; the footer is capped and scrolls. */
/* Panel layout: the header, the shipping strip and the totals stay put; the
   middle scrolls and holds the cart items followed by the suggestions — so the
   checkout button is always reachable and the suggestions can be seen in full
   by scrolling, instead of being squeezed into a fixed strip. */
.lk-drawer-scroll { flex: 1 1 auto; min-height: 120px; overflow-y: auto; }
.lk-drawer-suggest { overflow: visible; padding: 12px 0 4px; }
.lk-drawer-total {
	flex: 0 0 auto;
	border-top: 1px solid var(--gray-200);
	background: var(--white);
}

@media (max-width: 767px) {
	.lk-drawer-shipping { padding: 7px 10px; margin: 10px 20px 8px; }
	.lk-drawer-shipping p { font-size: 12px; margin-bottom: 5px; line-height: 1.3; }
	.lk-drawer-top { padding: 12px 20px; }
	.lk-drawer-top h2 { font-size: 19px; }
	.lk-drawer-suggest h3 { font-size: 12px; margin-bottom: 6px; }
	.lk-suggest { flex: 0 0 104px; }
	.lk-suggest img { height: 64px; }
	.lk-drawer-item { grid-template-columns: 60px 1fr auto; padding: 12px 0; }
	.lk-drawer-thumb img { width: 60px; height: 76px; }
	.lk-drawer-name { font-size: 14px; }

	.lk-drawer-suggest { padding: 10px 0 2px; }
	.lk-suggest { flex: 0 0 112px; padding: 6px; }
	.lk-suggest img { height: 72px; }
	.lk-suggest-name { font-size: 11px; }
	.lk-suggest-add { height: 26px; font-size: 10px; }

	.lk-drawer-total { padding: 10px 20px 14px; }
	.lk-drawer-total-row { font-size: 16px; }
	.lk-drawer-total-row strong { font-size: 20px; }
	.lk-drawer-note { margin: 2px 0 10px; }
	.lk-drawer-checkout { height: 48px; font-size: 15px; }
	.lk-drawer-continue { margin-top: 6px; padding: 4px; }
}

/* ── Doprava a platba v pokladně ───────────────────────────────────────── */
.lk-ship-head th { padding: 0 0 10px; border: 0; }
.lk-ship-from, .lk-ship-free { font-size: 14px; font-weight: 600; color: #16a34a; }

.lk-ship-list { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.woocommerce-shipping-totals.shipping th { padding: 0; border: 0; font-weight: 400; }

.lk-ship-option { position: relative; }
.lk-ship-option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.lk-ship-option label {
	display: flex; align-items: center; gap: 14px;
	padding: 16px 18px; margin: 0;
	background: #fff; border: 2px solid var(--gray-200); border-radius: var(--r);
	cursor: pointer; transition: border-color .15s, background .15s;
}
.lk-ship-option label:hover { border-color: var(--gray-300); }
.lk-ship-option input:checked + label { border-color: var(--yellow); background: var(--yellow-muted); }
.lk-ship-option input:focus-visible + label { outline: 2px solid var(--navy); outline-offset: 2px; }

.lk-ship-icon { font-size: 22px; line-height: 1; flex: none; }
.lk-ship-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.lk-ship-name { font-size: 15px; font-weight: 700; color: var(--black); }
.lk-ship-note { font-size: 12px; color: var(--gray-500); }
.lk-ship-price { font-size: 14px; font-weight: 700; color: #16a34a; white-space: nowrap; }
.lk-ship-price .amount { color: inherit; }
.lk-ship-logo { flex: none; width: 58px; height: 22px; object-fit: contain; }
.lk-ship-logo--packeta { background: #bb2027; border-radius: 4px; padding: 4px 6px; }

/* the carriers' own pickup-point button, kept inside the card */
.lk-ship-option .packeta-widget,
.lk-ship-option .packetery-widget-button-wrapper,
.lk-ship-option .pplcz-widget { margin: 8px 0 0 52px; }

.lk-pay-note { margin: 10px 0 0; font-size: 12px; color: var(--gray-500); text-align: center; }
.lk-pay-note a { text-decoration: underline; }

@media (max-width: 479px) {
	.lk-ship-option label { padding: 12px 14px; gap: 10px; }
	.lk-ship-name { font-size: 14px; }
	.lk-ship-logo { width: 44px; height: 18px; }
}

/* Woo's own list styles win on id specificity once the list carries
   id="shipping_method" (which the carriers' scripts require), so the cards are
   restated at the same weight. */
.woocommerce ul#shipping_method,
.woocommerce-checkout ul#shipping_method { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.woocommerce ul#shipping_method li,
.woocommerce-checkout ul#shipping_method li { margin: 0; padding: 0; text-indent: 0; }
/* The card is the whole item, so the pickup-point picker and the chosen place
   sit inside the same box as the carrier's name. */
.woocommerce ul#shipping_method li.lk-ship-option,
.woocommerce-checkout ul#shipping_method li.lk-ship-option {
	background: #fff; border: 2px solid var(--gray-200); border-radius: var(--r);
	overflow: hidden; transition: border-color .15s, background .15s;
}
.woocommerce ul#shipping_method li.lk-ship-option:has(input:checked),
.woocommerce-checkout ul#shipping_method li.lk-ship-option:has(input:checked) {
	border-color: var(--yellow); background: var(--yellow-muted);
}
.woocommerce ul#shipping_method li.lk-ship-option label,
.woocommerce-checkout ul#shipping_method li.lk-ship-option label {
	display: flex; align-items: center; gap: 14px;
	padding: 16px 18px; margin: 0;
	background: none; border: 0;
	cursor: pointer;
}

/* The carrier's pickup-point button lives inside the card, not as a 150px banner. */
.lk-ship-option .packetery-widget-button-wrapper { margin: -4px 0 0; padding: 0 18px 14px 52px; }
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button { display: flex; align-items: center; gap: 10px; }
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button img { width: 24px; height: 24px; margin: 0; }
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button button,
.lk-ship-option .packeta-widget.after-rate .packeta-widget-button a.button {
	width: auto; height: 40px; padding: 0 18px; font-size: 13px; border-radius: var(--r-pill);
}
.lk-ship-option .packeta-widget-info,
.lk-ship-option .packeta-widget-selected-address { font-size: 13px; color: var(--gray-600); }

/* PPL's pickup-point link sits in the card like Zásilkovna's button. The
   plugin's own stylesheet loads after the theme, so these win on !important. */
.lk-ship-option .pplcz-parcelshop-inner { padding: 0 18px 14px 52px; }
.lk-ship-option div.pplcz-select-parcelshop { display: block; }
.lk-ship-option a.pplcz-select-parcelshop {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: 40px !important;
	padding: 0 18px !important;
	margin: 0 !important;
	background: var(--yellow) !important;
	color: var(--navy) !important;
	border: 0 !important;
	border-radius: var(--r-pill) !important;
	font-size: 13px; font-weight: 600; line-height: 1;
	text-decoration: none; white-space: nowrap;
}
.lk-ship-option a.pplcz-select-parcelshop:hover { background: var(--yellow-dark) !important; }
/* the plugin positions its raster icon over the link, so the pill keeps the label alone */
.lk-ship-option a.pplcz-select-parcelshop img { display: none !important; }
.lk-ship-option .lk-ppl-label { line-height: 1; }
.lk-ship-option .pplcz-selected-parcelshop { font-size: 13px; color: var(--gray-600); margin-top: 6px; }

/* Free-shipping banner above the options */
.lk-ship-banner {
	display: flex; align-items: center; gap: 10px;
	padding: 12px 16px; margin: 0 0 4px;
	background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: var(--r);
	font-size: 14px; color: #15803d; line-height: 1.35;
}
.lk-ship-banner strong { color: #14532d; }
.lk-ship-banner-ico { font-size: 18px; line-height: 1; flex: none; }
.lk-ship-banner.is-free { background: #ecfdf5; border-color: #86efac; }

/* Collapsed list: only the chosen option, plus the way back */
.lk-ship-change {
	display: inline-flex; align-items: center; gap: 6px;
	margin: 10px 0 0; padding: 0;
	background: none; border: 0; cursor: pointer;
	font-family: var(--font); font-size: 13px; font-weight: 600; color: var(--gray-600);
	text-decoration: underline;
}
.lk-ship-change:hover { color: var(--black); }

/* Address suggestions */
.lk-suggest-box {
	position: absolute; z-index: 100;
	list-style: none; margin: 4px 0 0; padding: 4px;
	max-height: 280px; overflow-y: auto;
	background: #fff; border: 1px solid var(--gray-200); border-radius: var(--r);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
}
.lk-suggest-item {
	display: flex; flex-direction: column; gap: 1px;
	padding: 8px 10px; border-radius: var(--r-sm); cursor: pointer;
}
.lk-suggest-item strong { font-size: 14px; font-weight: 600; color: var(--black); }
.lk-suggest-item span { font-size: 12px; color: var(--gray-500); }
.lk-suggest-item.is-active { background: var(--yellow-muted); }

/* Only Czechia is served, so the locked country row is noise — the select stays
   in the form (hidden fields still submit), it just isn't shown. */
#billing_country_field,
#shipping_country_field { display: none !important; }

/* Dialling code and number read as one field, the way the original has it. */
.lk-phone-group { display: flex; align-items: stretch; }
.lk-phone-group #billing_phone_prefix {
	flex: none; width: 116px; padding-right: 8px;
	border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important;
	border-right-color: var(--gray-200);
}
.lk-phone-group #billing_phone {
	flex: 1 1 auto; min-width: 0; margin-left: -2px;
	border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important;
}
#billing_phone_prefix_field[hidden] { display: none !important; }

/* chosen pickup place: address first, "change" button under it */
.lk-ship-option .packetery-widget-button-wrapper,
.lk-ship-option .pplcz-parcelshop-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.lk-ship-option .packeta-widget-info,
.lk-ship-option .packeta-widget-selected-address,
.lk-ship-option .packeta-widget-place,
.lk-ship-option .pplcz-selected-parcelshop { margin: 0; }

/* PPL prints a "[zrušit]" link inside the chosen place; the button under it
   already changes the choice, so the link only clutters the address. */
.lk-ship-option .pplcz-clear-map { display: none !important; }

/* One step, two sections — and none of WooCommerce's grey panels behind them. */
/* Same face as the step's own heading — the display font stays for the shop
   itself, not for form sections. */
.lk-ck-section {
	margin: 0 0 14px;
	font-family: var(--font); font-size: clamp(18px, 2vw, 22px); font-weight: 700;
	letter-spacing: 0; color: var(--black);
}
.lk-ck-section--pay { margin-top: 30px; }

.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-checkout #order_review table.shop_table {
	background: none; border: 0; margin: 0;
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { border: 0; background: none; }

.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-checkout-payment {
	background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods {
	padding: 0; margin: 0 0 8px; border: 0; list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: 14px 18px; margin: 0;
	background: #fff; border: 2px solid var(--gray-200); border-radius: var(--r);
	list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li label { font-size: 15px; font-weight: 600; color: var(--black); margin: 0; }
.woocommerce-checkout #payment .payment_box {
	background: none; padding: 8px 0 0; margin: 0; font-size: 13px; color: var(--gray-600);
}
.woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
	padding: 12px 0 0; font-size: 12px; color: var(--gray-500);
}

/* ── Legal and other text pages ────────────────────────────────────────── */
.lk-content {
	max-width: 68ch;
	font-size: 16px; line-height: 1.7; color: var(--gray-700, #3f3f46);
}
/* The display face belongs to the page title; sections read in the body face. */
.lk-content h2 {
	margin: 34px 0 10px;
	font-family: var(--font); font-size: 20px; font-weight: 700;
	letter-spacing: 0; color: var(--black);
}
.lk-content h3 {
	margin: 24px 0 8px;
	font-family: var(--font); font-size: 17px; font-weight: 700;
	letter-spacing: 0; color: var(--black);
}
.lk-content h2:first-child, .lk-content h3:first-child { margin-top: 0; }
.lk-content p { margin: 0 0 12px; }
.lk-content ul, .lk-content ol { margin: 0 0 14px; padding-left: 22px; }
.lk-content li { margin: 0 0 6px; }
.lk-content a { text-decoration: underline; }
.lk-content a:hover { color: var(--black); }
.lk-legal-lead {
	padding: 14px 16px; margin: 0 0 22px;
	background: var(--gray-100); border-radius: var(--r);
	font-size: 14px; color: var(--gray-600);
}
.lk-content h2[id] { scroll-margin-top: 110px; }
.lk-content table { width: 100%; border-collapse: collapse; margin: 0 0 18px; font-size: 14px; line-height: 1.5; }
.lk-content th, .lk-content td { padding: 10px 12px; border-bottom: 1px solid var(--gray-200); text-align: left; vertical-align: top; }
.lk-content th { font-weight: 700; color: var(--black); background: var(--gray-100); }
/* On a phone a four-column table scrolls sideways instead of squeezing every word. */
@media (max-width: 640px) {
	.lk-content table { display: block; overflow-x: auto; }
	.lk-content th, .lk-content td { min-width: 140px; }
}

/* The drawer's title wears the shop's yellow, like every other heading —
   scaled down and with a lighter shadow so it sits in a 22px row. */
.lk-drawer-top h2 {
	color: var(--yellow);
	-webkit-text-stroke: 1px var(--navy);
	paint-order: stroke fill;
	text-shadow: 2px 2px 0 rgba(0, 0, 0, 1);
	letter-spacing: 2px;
	text-transform: uppercase;
	font-weight: 900;
}

.lk-add-error { width: 100%; margin: 8px 0 0; font-size: 13px; color: var(--red, #dc2626); }

/* While the cart request is in flight WooCommerce's own purple for a disabled
   .alt button outranks ours, so the loading state is pinned down here: the
   button keeps its colour and just dims. */
.woocommerce button.single_add_to_cart_button.button.alt.is-loading,
.woocommerce button.single_add_to_cart_button.button.alt.is-loading:disabled,
.woocommerce button.single_add_to_cart_button.button.alt.is-loading[disabled],
.lk-qv button.single_add_to_cart_button.button.alt.is-loading,
.lk-qv button.single_add_to_cart_button.button.alt.is-loading:disabled,
.lk-qv button.single_add_to_cart_button.button.alt.is-loading[disabled] {
	background: var(--yellow) !important;
	color: var(--navy) !important;
	opacity: .6;
	cursor: wait;
	transform: none;
}

/* The dialling code is half of one control, so it wears the number's state:
   the same border, and the same green or red once the number is judged. */
.lk-phone-group #billing_phone_prefix { border: 2px solid var(--gray-200); }
.lk-phone-group:has(#billing_phone.lk-valid) #billing_phone_prefix { border-color: var(--green); }
.lk-phone-group:has(#billing_phone.lk-invalid) #billing_phone_prefix { border-color: var(--red); }
.lk-phone-group #billing_phone.lk-valid,
.lk-phone-group #billing_phone.lk-invalid { border-left-color: transparent !important; }

/* Waiting for the payment gateway */
.lk-pay-veil {
	position: fixed; inset: 0; z-index: 2000;
	display: flex; align-items: center; justify-content: center;
	background: rgba(10, 10, 26, .55);
	animation: lk-veil-in .15s ease;
}
.lk-pay-veil-box {
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	padding: 28px 34px; border-radius: var(--r);
	background: #fff; text-align: center; max-width: 90vw;
}
.lk-pay-veil-box strong { font-size: 17px; color: var(--black); }
.lk-pay-veil-box span:last-child { font-size: 13px; color: var(--gray-600); }
.lk-pay-spinner {
	width: 34px; height: 34px; border-radius: 50%;
	border: 3px solid var(--gray-200); border-top-color: var(--yellow);
	animation: lk-spin .8s linear infinite;
}
@keyframes lk-spin { to { transform: rotate(360deg); } }
@keyframes lk-veil-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .lk-pay-spinner { animation-duration: 2s; } .lk-pay-veil { animation: none; } }

/* Pickup place still missing — said above the list, like Woo's own notices */
.lk-ship-option.is-missing { border-color: var(--red) !important; }
.lk-ship-alert {
	display: flex; align-items: center; gap: 10px;
	margin: 0 0 16px; padding: 14px 18px;
	background: #fef2f2; border: 1px solid #fecaca; border-left: 4px solid var(--red);
	border-radius: var(--r);
	font-size: 14px; font-weight: 600; color: #b91c1c;
}
.lk-ship-alert::before { content: '!'; flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--red); color: #fff; font-size: 13px; display: grid; place-items: center; }

/* Coupon in the summary step */
.lk-coupon { margin: 22px 0 0; max-width: 520px; }
.lk-coupon label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--black); }
.lk-coupon-row { display: flex; gap: 10px; }
.lk-coupon-row input {
	flex: 1 1 auto; min-width: 0; height: 48px; padding: 0 16px;
	border: 2px solid var(--gray-200); border-radius: var(--r-pill);
	font-family: var(--font); font-size: 15px; background: #fff;
}
.lk-coupon-row input:focus { outline: none; border-color: var(--yellow); }
.lk-coupon-apply { flex: none; height: 48px; }
.lk-coupon-msg { margin: 8px 0 0; font-size: 13px; color: var(--gray-600); }
.lk-coupon-msg.is-error { color: var(--red); }
.lk-coupon-msg.is-ok { color: #16a34a; }

/* Money lines above the total */
.lk-summary-lines { display: flex; flex-direction: column; gap: 6px; margin: 12px 0 0; }
.lk-summary-line { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; color: var(--gray-600); }
.lk-summary-line strong { color: var(--black); font-weight: 600; }
.lk-summary-line.is-discount, .lk-summary-line.is-discount strong { color: #16a34a; }

/* The line drawn before the server confirms it */

.lk-suggest-hint {
	padding: 6px 10px 8px; margin-bottom: 2px;
	border-bottom: 1px solid var(--gray-200);
	font-size: 12px; font-weight: 600; color: var(--gray-500);
	text-transform: uppercase; letter-spacing: .03em;
}

/* Applied coupons, listed under the field */
.lk-coupon-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.lk-coupon-chip {
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
	padding: 10px 14px;
	background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: var(--r);
}
.lk-coupon-tick {
	flex: none; width: 20px; height: 20px; border-radius: 50%;
	background: #16a34a; color: #fff; font-size: 12px;
	display: grid; place-items: center;
}
.lk-coupon-code { flex: 1 1 auto; min-width: 0; font-size: 14px; font-weight: 600; color: #14532d; }
.lk-coupon-value { font-size: 14px; font-weight: 700; color: #16a34a; white-space: nowrap; }
.lk-coupon-remove {
	flex: none; padding: 0; background: none; border: 0; cursor: pointer;
	font-family: var(--font); font-size: 12px; color: var(--gray-600); text-decoration: underline;
}
.lk-coupon-remove:hover { color: var(--black); }
@media (max-width: 479px) {
	.lk-coupon-row { flex-direction: column; }
	.lk-coupon-apply { width: 100%; }
	.lk-coupon-code { flex-basis: 100%; }
}

/* Summary: who and where first, then what and for how much */
.lk-summary-head {
	margin: 0 0 10px;
	font-family: var(--font); font-size: 15px; font-weight: 700;
	letter-spacing: 0; color: var(--gray-600); text-transform: uppercase;
}
.lk-summary-head + .lk-summary-details,
.lk-summary-head + .lk-summary-items { margin-bottom: 24px; }
.lk-summary-details + .lk-summary-head { margin-top: 4px; }
.lk-sum-meta { display: block; font-size: 12px; color: var(--gray-500); }

/* ── Order received ────────────────────────────────────────────────────── */
.lk-thanks { max-width: 720px; margin: 0 auto; }
.lk-thanks-badge {
	display: flex; align-items: center; gap: 14px;
	padding: 18px 20px; margin: 0 0 22px;
	border-radius: var(--r); border: 1px solid #bbf7d0; background: #f0fdf4;
}
.lk-thanks-badge.is-pending { border-color: #fde68a; background: #fffbeb; }
.lk-thanks-badge strong { display: block; font-size: 17px; color: #14532d; }
.lk-thanks-badge.is-pending strong { color: #92400e; }
.lk-thanks-badge span:last-child { font-size: 14px; color: var(--gray-600); }
.lk-thanks-tick {
	flex: none; width: 34px; height: 34px; border-radius: 50%;
	background: #16a34a; color: #fff; font-size: 17px;
	display: grid; place-items: center;
}
.lk-thanks-badge.is-pending .lk-thanks-tick { background: #f59e0b; }

/* The good news: a yellow tick, the order number and where the confirmation went */
.lk-thanks-hero {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	padding: 34px 24px 30px; margin: 0 0 18px; text-align: center;
	background: #fffbeb; border: 2px solid var(--navy); border-radius: var(--r);
	box-shadow: 4px 5px 0 var(--navy);
}
.lk-thanks-hero-ico {
	width: 64px; height: 64px; margin-bottom: 6px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--yellow); color: var(--navy); border: 2px solid var(--navy);
}
.lk-thanks-hero-ico svg { width: 30px; height: 30px; stroke-width: 3; }
.lk-thanks-hero.is-pending .lk-thanks-hero-ico { background: #fff; }
.lk-thanks-number {
	display: inline-block; padding: 4px 12px; border-radius: var(--r-pill);
	background: var(--navy); color: #fff;
	font-size: 13px; font-weight: 700; letter-spacing: .02em;
}
.lk-thanks .lk-thanks-heading {
	margin: 4px 0 0; font-family: var(--font); font-size: clamp(24px, 3.4vw, 30px);
	font-weight: 800; letter-spacing: -.02em; color: var(--black);
}
.lk-thanks-text { max-width: 460px; margin: 0; font-size: 15px; line-height: 1.55; color: var(--gray-600); overflow-wrap: anywhere; }
.lk-thanks-text strong { color: var(--black); }

/* What happens next */
.lk-thanks-steps {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
	margin: 0 0 18px; padding: 20px 16px; list-style: none;
	background: #fff; border: 1px solid var(--gray-200); border-radius: var(--r);
}
.lk-thanks-steps li {
	position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px;
	text-align: center; min-width: 0;
}
/* the line to the next step, drawn from the middle of this dot */
.lk-thanks-steps li:not(:last-child)::after {
	content: ''; position: absolute; top: 15px; left: calc(50% + 22px); right: calc(-50% + 18px);
	height: 2px; background: var(--gray-200);
}
.lk-thanks-steps li.is-done:not(:last-child)::after { background: var(--navy); }
.lk-thanks-dot {
	width: 32px; height: 32px; margin-bottom: 6px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--gray-100); color: var(--gray-500); border: 2px solid var(--gray-200);
	font-size: 13px; font-weight: 800;
}
.lk-thanks-dot svg { width: 15px; height: 15px; stroke-width: 3; }
.lk-thanks-steps .is-done .lk-thanks-dot { background: var(--yellow); color: var(--navy); border-color: var(--navy); }
.lk-thanks-steps .is-now .lk-thanks-dot { background: #fff; color: var(--navy); border-color: var(--yellow); box-shadow: 0 0 0 4px #fef3c7; }
.lk-thanks-steps strong { font-size: 14px; line-height: 1.3; color: var(--black); }
.lk-thanks-steps .is-next strong { color: var(--gray-500); }
.lk-thanks-steps small { font-size: 12px; line-height: 1.35; color: var(--gray-500); }

/* Cards: the items with the money, then delivery and billing side by side */
.lk-thanks-card {
	padding: 18px 20px; margin: 0 0 18px;
	background: #fff; border: 1px solid var(--gray-200); border-radius: var(--r);
}
.lk-thanks-card .lk-summary-head { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-bottom: 12px; }
.lk-thanks-card .lk-summary-head svg { width: 18px; height: 18px; color: var(--navy); }
.lk-thanks-card p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--gray-600); overflow-wrap: anywhere; }
.lk-thanks-card .lk-thanks-strong { font-size: 15px; font-weight: 700; color: var(--black); }
.lk-thanks-card .lk-thanks-label { margin-top: 10px; font-size: 12px; color: var(--gray-500); }
.lk-thanks-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.lk-thanks-cards .lk-thanks-card { margin: 0; }

.lk-thanks-items { margin: -4px 0 6px; }
.lk-thanks-item {
	display: flex; align-items: center; gap: 14px;
	padding: 12px 0; border-bottom: 1px solid var(--gray-100);
}
.lk-thanks-thumb {
	flex: none; width: 64px; height: 64px; overflow: hidden;
	border-radius: var(--r-sm); background: var(--gray-100);
}
.lk-thanks-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lk-thanks-item-text { display: flex; flex-direction: column; gap: 3px; flex: 1 1 auto; min-width: 0; }
.lk-thanks-item-name { font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--black); }
/* The page content underlines every link (.lk-content a); the buttons and product names here are not text links. */
.lk-content .lk-thanks-item-name,
.lk-content .lk-thanks-actions .lk-btn { text-decoration: none; }
.lk-content a.lk-thanks-item-name:hover { text-decoration: underline; }
.lk-thanks-item-price { flex: none; font-size: 15px; white-space: nowrap; }
.lk-thanks-card .lk-summary-total span { font-size: 16px; font-weight: 700; }

.lk-thanks-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.lk-thanks-actions .lk-btn--ghost { background: #fff; color: var(--navy); box-shadow: inset 0 0 0 2px var(--navy); }
.lk-thanks-actions .lk-btn--ghost:hover { background: #fffbeb; }
.lk-thanks-help { margin: 18px 0 0; text-align: center; font-size: 13px; color: var(--gray-500); }
.lk-thanks-help a { color: var(--black); }
.lk-thanks-back { font-size: 14px; text-decoration: underline; color: var(--gray-600); }
.lk-thanks-fail { font-size: 15px; color: var(--red); margin-bottom: 16px; }

/* the page's own heading sits above the column, centred with it */
.woocommerce-order .lk-page-title,
.woocommerce-checkout .lk-page-title { text-align: center; }

@media (max-width: 600px) {
	.lk-thanks-hero { padding: 26px 18px 24px; box-shadow: 3px 4px 0 var(--navy); }
	.lk-thanks-steps { grid-template-columns: 1fr; gap: 0; padding: 16px 18px; }
	.lk-thanks-steps li {
		display: grid; grid-template-columns: 32px 1fr; column-gap: 12px;
		align-items: center; text-align: left; padding-bottom: 14px;
	}
	.lk-thanks-steps li:last-child { padding-bottom: 0; }
	.lk-thanks-steps li:not(:last-child)::after { top: 34px; bottom: 0; left: 15px; right: auto; width: 2px; height: auto; }
	.lk-thanks-dot { grid-row: span 2; margin: 0; }
	.lk-thanks-cards { grid-template-columns: 1fr; }
	.lk-thanks-card { padding: 16px; }
	.lk-thanks-thumb { width: 56px; height: 56px; }
	.lk-thanks-actions { flex-direction: column; align-items: stretch; text-align: center; }
}

/* ── Checkout centred ──────────────────────────────────────────────────── */
.lk-checkout, .lk-ck-steps { max-width: 760px; margin-left: auto; margin-right: auto; }
.lk-ck-steps { justify-content: center; }
.lk-checkout .lk-panel-title { text-align: center; }
@media (min-width: 1000px) {
	.lk-checkout .col2-set { display: block; }
	.lk-checkout .col2-set .col-1, .lk-checkout .col2-set .col-2 { width: 100%; float: none; }
}


/* Centring the checkout: WooCommerce's own form rules outrank a plain class. */
.woocommerce-checkout form.checkout.lk-checkout,
.woocommerce-checkout .lk-ck-steps,
.woocommerce-checkout .lk-shop > .woocommerce-notices-wrapper {
	max-width: 760px; margin-left: auto !important; margin-right: auto !important;
}


/* ── Rozšířený popis produktu ─────────────────────────────────────────────── */
.lk-pdp-extended { max-width: 1200px; margin: 32px auto; padding: 0 20px; }
.lk-pdp-desc { font-size: 15px; line-height: 1.7; color: var(--gray-700, #374151); }
.lk-pdp-desc p { margin: 0 0 12px; }
.lk-pdp-desc strong { color: var(--black, #0A0A1A); }
.lk-pdp-desc img { width: 100%; height: auto; border-radius: 12px; margin-top: 12px; }
.lk-pdp-desc .for-mobile { display: none; }
@media (max-width: 700px) {
	.lk-pdp-desc .for-desktop { display: none; }
	.lk-pdp-desc .for-mobile { display: block; }
}


/* ── Kontakt ──────────────────────────────────────────────────────────────── */
.kontakt-wrap { max-width: 900px; margin: 0 auto; padding: clamp(32px, 6vw, 64px) 16px 64px; }
.kontakt-hero { text-align: center; margin-bottom: clamp(32px, 5vw, 48px); }
.kontakt-hero p { font-size: 15px; color: var(--gray-500, #6b7280); margin: 0; line-height: 1.6; }
.kontakt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 32px; }
.kontakt-card { border: 1px solid var(--gray-200, #e5e7eb); border-radius: 12px; padding: 24px; text-align: center; transition: border-color .2s; }
.kontakt-card:hover { border-color: var(--yellow, #ffe900); }
.kontakt-card-icon { color: var(--black, #0A0A1A); margin-bottom: 10px; }
.kontakt-card-title { font-size: 15px; font-weight: 700; color: var(--black, #0A0A1A); margin: 0 0 4px; }
.kontakt-card-text { font-size: 13px; color: var(--gray-500, #6b7280); margin: 0 0 12px; line-height: 1.5; }
.kontakt-card-link { font-size: 14px; font-weight: 600; color: var(--black, #0A0A1A); text-decoration: none; }
.kontakt-card-link:hover { color: var(--blue-600, #2563EB); }
.kontakt-form-card { border: 1px solid var(--gray-200, #e5e7eb); border-radius: 16px; padding: clamp(20px, 4vw, 32px); background: #fff; }
.kontakt-form-card h2 { font-size: 20px; font-weight: 800; color: var(--black, #0A0A1A); margin: 0 0 4px; letter-spacing: -.02em; }
.kontakt-form-card .sub { font-size: 13px; color: var(--gray-500, #6b7280); margin: 0 0 24px; }
.kf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.kf-field label { display: block; font-size: 12px; font-weight: 600; color: #374151; margin-bottom: 4px; }
.kf-field input, .kf-field textarea, .kf-field select {
	width: 100%; height: 44px; padding: 0 14px; border: 2px solid var(--gray-200, #e5e7eb); border-radius: 10px;
	font-size: 14px; font-family: inherit; outline: none; background: #f9fafb; color: var(--black, #0A0A1A);
	box-sizing: border-box; transition: border-color .2s; -webkit-appearance: none;
}
.kf-field textarea { height: 120px; padding: 12px 14px; resize: vertical; }
.kf-field input:focus, .kf-field textarea:focus, .kf-field select:focus { border-color: var(--yellow, #ffe900); background: #fff; }
.kf-phone { display: flex; gap: 8px; }
.kf-phone select { width: 90px; flex-shrink: 0; }
.kf-phone input { flex: 1; }
.kf-hint { font-size: 11px; color: var(--gray-400, #9ca3af); margin: 12px 0 16px; }
.kf-hint-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.kf-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.kf-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kf-feedback { padding: 12px 16px; border-radius: 10px; font-size: 13px; margin-bottom: 16px; font-weight: 500; }
.kf-feedback.success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.kf-feedback.error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
@media (max-width: 640px) { .kontakt-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .kf-row { grid-template-columns: 1fr; } }

/* the send button is the shop's own primary button */
.kf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 48px; padding: 0 28px;
	background: var(--yellow); color: var(--navy);
	font-family: var(--font); font-size: 15px; font-weight: 600; line-height: 1;
	border: none; border-radius: var(--r-pill); cursor: pointer;
	transition: transform .15s ease, background .15s ease;
}
.kf-btn:hover { background: var(--yellow-dark); transform: translateY(-2px); }

/* Read by search engines and screen readers, not drawn — the home page's one h1. */
.lk-sr-only {
	position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
