/*
Theme Name: Pixeler Ellie
Theme URI: https://ellie.sk
Template: px-shop-theme
Author: Pixeler s. r. o.
Author URI: https://pixeler.sk
Description: Child téma e-shopu Ellie.sk nad parentom Pixeler Shop Theme. Nesie brand smeru A „Mäkký" (tokeny, písmo Nunito + Caveat), obsah hlavičky a pätičky, úvodku z blokov a štýl personalizácie kníh; funkčnú kostru dodáva parent, shop funkcie px-shop-core, doménové dáta site plugin ellie.
Version: 0.7.8
Requires at least: 6.3
Tested up to: 6.9
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ellie
Update URI: false
*/

/* =========================================================================
   TOKENY — smer A „Mäkký" (schválený 2026-10-20)
   Zdroj: reports/2026-10-20-dizajn-smery-px-shop-theme.md, canvas
   outputs/design/ellie-dizajn-smery.html (.dA).

   Prepisujú sa len hodnoty tokenov parenta (:root v base.css). Tokeny, ktoré
   parent nemá, nesú prefix `--ellie-*` a pri každom je poznámka „NÁVRH DO
   PARENTA" — do parenta sa v tejto fáze nič nepridáva (návrhy v reporte
   2026-10-20-implementacia-px-shop-theme.md).

   Kontrast: pomer pri každej farbe platí voči --pc-paper (#FFFCF8).
   Paleta 2026-10-21: teplé neutrálne (piesok, ľan, karamel) namiesto ružovej.
   ========================================================================= */

:root {
	/* farby — RGB trojice ako v parente */
	--pc-ink: 46 38 32;              /* #2E2620 espresso — 14,5:1 */
	--pc-paper: 255 252 248;         /* #FFFCF8 */
	--pc-card: 255 255 255;
	--pc-soft: 246 239 230;          /* #F6EFE6 piesková plocha */
	--pc-sunk: 239 230 218;          /* #EFE6DA ľanová */
	--pc-line: 230 218 203;          /* #E6DACB — len deliace čiary */
	--pc-muted: 107 93 80;           /* #6B5D50 — 6,2:1, na sunk 5,1:1 */
	--pc-sage: 107 93 80;            /* ikony hlavičky — na sunk 5,1:1 (≥ 3:1) */
	--pc-topbar-text: 107 93 80;     /* topbar na pieskovej — 5,6:1 */
	--pc-field-border: 140 123 107;  /* #8C7B6B — 3,98:1 (WCAG 1.4.11) */
	--pc-accent: 138 90 59;          /* #8A5A3B karamelová — 5,8:1 s bielou, na soft 5,1:1 */
	--pc-accent-deep: 110 68 41;     /* #6E4429 hover — 8,3:1 */
	--pc-accent-bright: 232 201 168; /* #E8C9A8 — len na tmavých plochách (9,4:1 s ink) */
	--pc-on-accent: 255 255 255;
	--pc-secondary: 168 69 43;       /* #A8452B terakota, akciová cena — 5,8:1 */
	--pc-secondary-deep: 138 53 32;  /* #8A3520 */
	--pc-focus: var(--pc-accent-deep);
	--pc-stock-in: 31 122 74;        /* #1F7A4A — 5,3:1 */
	--pc-stock-order: 163 83 10;     /* #A3530A — 5,5:1 */
	--pc-danger: 180 35 24;          /* #B42318 — 6,0:1 */
	--pc-danger-ink: 90 16 12;
	--pc-danger-tint: 254 243 242;
	--pc-danger-line: 250 205 200;

	/* polomery — mäkšie ako parent */
	--pc-radius-xs: 0.5rem;
	--pc-radius-sm: 0.75rem;
	--pc-radius: 1rem;
	--pc-radius-lg: 1.5rem;
	--pc-radius-xl: 2rem;
	--pc-radius-pill: 9999px;
	--pc-radius-control: var(--pc-radius-pill);
	--pc-radius-field: var(--pc-radius-sm);

	/* tiene — tónované akcentom */
	--pc-shadow-sm: 0 1px 2px rgb(var(--pc-ink) / 0.05), 0 4px 14px -6px rgb(var(--pc-accent) / 0.14);
	--pc-shadow-md: 0 10px 28px -14px rgb(var(--pc-accent) / 0.32);
	--pc-shadow-popover: 0 2px 8px rgb(var(--pc-ink) / 0.08), 0 24px 40px -12px rgb(var(--pc-accent) / 0.3);

	--pc-container: 80rem;

	/* NÁVRH DO PARENTA: `--pc-control-h` (výška ovládacieho prvku; libike má
	   rovnaký dlh ako `--libike-control-h`). */
	--ellie-control-h: 2.75rem;      /* 44 px — tlačidlá aj polia; dotykový cieľ */

	/* NÁVRH DO PARENTA: `--pc-font-body`, `--pc-font-display`, `--pc-font-script`
	   (parent má písmo natvrdo vo fonts.css). */
	--ellie-font-body: 'Nunito', ui-rounded, 'SF Pro Rounded', 'Segoe UI', system-ui, sans-serif;
	--ellie-font-display: var(--ellie-font-body);
	--ellie-font-script: 'Caveat', 'Segoe Print', 'Bradley Hand', cursive;

	/* NÁVRH DO PARENTA: `--pc-fs-5xl|6xl|7xl` (stupnica parenta končí na 4xl). */
	--ellie-fs-5xl: 2.25rem;
	--ellie-fs-6xl: 3rem;
	--ellie-fs-7xl: 3.75rem;

	/* lokálne tokeny child témy */
	--ellie-mint: 233 238 228;       /* #E9EEE4 šalviová plocha sekcie Kniha — ink 12,6:1 */
	--ellie-lav: 239 230 218;        /* #EFE6DA ovsená */
	--ellie-blush: 246 239 230;      /* #F6EFE6 piesková */
	--ellie-peach: 243 228 218;      /* #F3E4DA hlinená, štvrtá dlaždica kategórií */
	--ellie-studio: 246 239 230;     /* #F6EFE6 plocha pod transparentnými fotkami dek */
	--ellie-head-w: 800;
	--ellie-head-ls: -0.01em;
	--ellie-h2: var(--ellie-fs-5xl);
	--ellie-sec: 5rem;
	--ellie-sw: 44px;                /* swatch farby deky — dotykový cieľ 44 px */
}

@media (max-width: 699.98px) {
	:root {
		--ellie-h2: var(--pc-fs-3xl);
		--ellie-sec: 2.5rem;
	}
}

/* =========================================================================
   ZÁKLAD — písmo nadpisov, pozadie, ručne písaný akcent
   ========================================================================= */

body {
	background: rgb(var(--pc-paper));
	color: rgb(var(--pc-ink));
}

:where(h1, h2, h3, h4) {
	font-family: var(--ellie-font-display);
	font-weight: var(--ellie-head-w);
	letter-spacing: var(--ellie-head-ls);
	text-wrap: balance;
}

.ellie-script {
	font-family: var(--ellie-font-script);
	font-weight: 600;
	color: rgb(var(--pc-accent));
	line-height: 1;
}

.ellie-muted {
	color: rgb(var(--pc-muted));
}

.ellie-ic {
	width: 1.375rem;
	height: 1.375rem;
	flex: none;
}

.ellie-ic--sm {
	width: 1.125rem;
	height: 1.125rem;
}

/* Tlačidlo — výška 44 px, písmo 14 px / 600 (zjednotené 2026-10-21, predtým
   48 px / 700 podľa canvasu — pôsobilo ťažko). Tvar a farby kreslí parent
   z tokenov (`--pc-radius-control`, `--pc-accent`). */
.pc-btn {
	min-height: var(--ellie-control-h);
	font-weight: 600;
}

/* Tlačidlá blokov Gutenbergu (úvodka, obsahové stránky) — rovnaký vzhľad
   ako `.pc-btn`; outline variant = `.pc-btn--outline`. */
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pc-space-2);
	min-height: var(--ellie-control-h);
	padding: 0.5rem var(--pc-space-5);
	border: 1.5px solid rgb(var(--pc-accent));
	border-radius: var(--pc-radius-control);
	background: rgb(var(--pc-accent));
	color: rgb(var(--pc-on-accent));
	font-size: var(--pc-fs-sm);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.wp-block-button .wp-block-button__link:hover {
	background: rgb(var(--pc-accent-deep));
	border-color: rgb(var(--pc-accent-deep));
	color: rgb(var(--pc-on-accent));
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: rgb(var(--pc-ink));
	border-color: rgb(var(--pc-ink) / 0.35);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: transparent;
	color: rgb(var(--pc-accent-deep));
	border-color: rgb(var(--pc-accent-deep));
}

.wp-block-button .wp-block-button__link:focus-visible {
	outline: 2px solid rgb(var(--pc-focus));
	outline-offset: 3px;
}

/* =========================================================================
   HLAVIČKA — púdrový topbar namiesto tmavého, biely hlavný pruh
   ========================================================================= */

.px-header__topbar {
	--pc-focus: var(--pc-accent-deep);
	background: rgb(var(--pc-soft));
	color: rgb(var(--pc-topbar-text));
}

/* Parent kreslí v topbare aktívnu položku, hover a ikony v `--pc-accent-bright`
   (počíta s tmavým pásom). Na púdrovom páse má svetlá ružová 1,34:1 (axe,
   test frontu fáza 4) — v rámci topbaru sa token prepne na tmavý stupeň
   (8,4:1), pravidlá parenta ostávajú. Rovnako libike (`--pc-accent-bright`
   na `.px-header__topbar-inner`). */
.px-header__topbar-inner {
	--pc-accent-bright: var(--pc-accent-deep);
}

.px-header__topmenu .current-menu-item > a {
	font-weight: 700;
}

.px-header__tagline {
	color: rgb(var(--pc-ink));
	font-weight: 600;
}

.px-header__main {
	background: rgb(var(--pc-card));
	border-bottom: 1px solid rgb(var(--pc-line));
}

@media (min-width: 1024px) {
	.px-header {
		--px-header-main-h: 5.25rem;
	}

	.px-header__logo img {
		height: 3.5rem;
		width: auto;
	}

	.px-header__menu > li > a {
		font-weight: 700;
		font-size: var(--pc-fs-md);
	}
}

/* Wishlist v hlavičke je tlmený (canvas: malé srdiečko, nie výzva). */
.px-header__wishlist {
	color: rgb(var(--pc-sage));
}

/* Desktop podľa canvasu A: menu hneď za logom, vpravo holé ikony bez
   krúžkov a košík len s počtom (suma je v minikošíku). Mobil nechávame
   parentovi — tam sú krúžky súčasťou úpravy pretekania radu. */
@media (min-width: 1024px) {
	.px-header__nav {
		justify-content: flex-start;
		margin-left: var(--pc-space-4);
	}

	.px-header__actions {
		gap: var(--pc-space-1);
	}

	.px-header__iconbtn,
	.px-header__cart {
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		justify-content: center;
		background: transparent;
		color: rgb(var(--pc-ink));
		border-radius: 50%;
	}

	.px-header__wishlist {
		color: rgb(var(--pc-sage));
	}

	.px-header__iconbtn:hover,
	.px-header__cart:hover {
		background: rgb(var(--pc-soft));
		color: rgb(var(--pc-accent-deep));
	}

	.px-header-cart-total {
		display: none;
	}
}

/* Mobil: logo v strede (canvas). */
@media (max-width: 1023.98px) {
	.px-header__logo img {
		height: 2.75rem;
		width: auto;
	}
}

/* =========================================================================
   PÄTIČKA — ovsená plocha s tmavým textom (smer A), nie tmavá
   ========================================================================= */

.px-footer {
	--pxf-bg: var(--ellie-lav);      /* ovsená #EFE6DA */
	--pxf-text: var(--pc-ink);       /* 12,9:1 na ovsenej */
	--pxf-accent: var(--pc-accent);  /* 4,7:1 na ovsenej */
	--pxf-heading: var(--pc-ink);
	--pxf-line: var(--pc-ink);
	--pc-focus: var(--pc-accent-deep);

	border-top: 0;
	margin-top: 0;
}

.px-footer a:hover {
	color: rgb(var(--pc-accent-deep));
}

.px-footer__main {
	padding-top: var(--pc-space-16);
	padding-bottom: var(--pc-space-12);
}

.px-footer__brand img {
	width: auto;
	height: 4.5rem;
}

.px-footer__brand p {
	max-width: 22rem;
}

.ellie-footer__mail a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	font-weight: 700;
}

.ellie-footer .px-footer__social {
	gap: var(--pc-space-2);
}

/* Siete: obrysový krúžok 44 px, na hover plný akcent. */
.ellie-footer .px-footer__social a {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1.5px solid rgb(var(--pc-ink) / 0.35);
	border-radius: 50%;
	background: transparent;
	color: rgb(var(--pc-ink));
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.ellie-footer .px-footer__social a:hover {
	border-color: rgb(var(--pc-accent));
	background: rgb(var(--pc-accent));
	color: rgb(var(--pc-on-accent));
}

.ellie-footer .px-footer__social svg {
	width: 1.25rem;
	height: 1.25rem;
}

.ellie-footer .px-footer__heading {
	font-family: var(--ellie-font-body);
	font-size: var(--pc-fs-md);
	font-weight: 800;
	letter-spacing: 0;
	text-transform: none;
}

.ellie-footer__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-2);
	margin: var(--pc-space-4) 0 0;
	padding: 0;
	list-style: none;
}

.ellie-footer__chips li {
	padding: 0.25rem 0.75rem;
	border: 1px solid rgb(var(--pc-ink) / 0.35);
	border-radius: var(--pc-radius-pill);
	background: rgb(var(--pc-card) / 0.6);
	font-size: var(--pc-fs-xs);
	font-weight: 600;
}

.ellie-footer .px-footer__bottom {
	border-top: 1px solid rgb(var(--pc-ink) / 0.12);
}

.ellie-footer .px-footer__copy a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* =========================================================================
   PÁS VÝHOD — nad pätičkou (prefooter) aj na úvodke (blok Zoznam)
   ========================================================================= */

.ellie-prefooter {
	background: rgb(var(--pc-card));
	border-top: 1px solid rgb(var(--pc-line));
	padding: var(--pc-space-8) max(var(--pc-space-4), (100% - var(--pc-container)) / 2 + var(--pc-space-8));
	margin-top: var(--pc-space-16);
}

.ellie-trust {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--pc-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ellie-trust > li {
	position: relative;
	display: block;
	min-height: 1.75rem;
	padding-left: 2.5rem;
	font-size: var(--pc-fs-sm);
	line-height: 1.35;
	color: rgb(var(--pc-muted));
}

.ellie-trust > li strong {
	display: block;
	font-size: var(--pc-fs-md);
	color: rgb(var(--pc-ink));
}

.ellie-trust .ellie-ic,
.ellie-trust > li::before {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1.75rem;
	height: 1.75rem;
	color: rgb(var(--pc-accent));
	flex: none;
}

@media (max-width: 699.98px) {
	.ellie-trust {
		grid-template-columns: 1fr 1fr;
		gap: var(--pc-space-4);
	}

	.ellie-trust > li {
		font-size: var(--pc-fs-xs);
	}

	.ellie-trust > li strong {
		font-size: var(--pc-fs-sm);
	}
}

/* =========================================================================
   PRODUKTOVÁ KARTA — biela karta s mäkkým tieňom, farba deky pod názvom
   ========================================================================= */

.pc-scope .pc-product-card {
	background: rgb(var(--pc-card));
	border-radius: var(--pc-radius-lg);
	box-shadow: var(--pc-shadow-sm);
	/* Zdvih aj tieň spolu a plynulo. Pôvodne len `box-shadow` — prepísalo
	   parentov `transition: transform`, takže karta pri hoveri skočila. */
	transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.pc-scope .pc-product-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pc-shadow-md);
}

@media (prefers-reduced-motion: reduce) {
	.pc-scope .pc-product-card {
		transition: box-shadow 0.2s;
	}

	.pc-scope .pc-product-card:hover {
		transform: none;
	}
}

/* Štvorec drží výšku len s min-height 0 — inak automatické minimum
   aspect-ratio boxu pustí vysokú fotku (kniha, kalendár 2:3) a karta
   narastie (283 vs. 419 px v jednom riadku). */
.pc-scope .pc-product-card__media {
	height: auto;
	aspect-ratio: 1;
	min-height: 0;
	overflow: hidden;
	padding: var(--pc-space-2) var(--pc-space-2) 0;
	border-radius: var(--pc-radius-lg) var(--pc-radius-lg) 0 0;
}

/* Fotky dek a kníh sú fotografie, nie packshoty na bielom — orez do štvorca
   (canvas) namiesto parentovho `contain` s letterboxom. */
.pc-scope .pc-product-card__media img {
	object-fit: cover;
	border-radius: var(--pc-radius);
	background: rgb(var(--pc-sunk));
}

/* Hlavné fotky dek sú 3 : 2 s priehľadným pozadím a zapečeným tieňom (AI fotky 10/2026).
   Orez do štvorca by odrezal deke boky — celá fotka na pieskovej ploche. */
.pc-scope .pc-product-card.product_cat-rucne-pletene-detske-deky .pc-product-card__media img {
	object-fit: contain;
	background: rgb(var(--ellie-studio));
}
.pc-scope .pc-product-card__title {
	font-family: var(--ellie-font-body);
	font-weight: 600;
	letter-spacing: 0;
}

.ellie-card-tone {
	display: inline-flex;
	gap: 0.375rem;
	align-items: center;
	font-size: var(--pc-fs-xs);
	color: rgb(var(--pc-muted));
}

.ellie-card-tone .ellie-swatch__fill {
	width: 0.875rem;
	height: 0.875rem;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgb(var(--pc-ink) / 0.3);
	flex: none;
	overflow: hidden;
}

.ellie-card-tone .ellie-swatch__fill img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ellie-card-stock {
	display: inline-flex;
	gap: 0.3rem;
	align-items: center;
	font-size: var(--pc-fs-xs);
	font-weight: 700;
}

.ellie-card-stock--instock { color: rgb(var(--pc-stock-in)); }
.ellie-card-stock--onbackorder { color: rgb(var(--pc-stock-order)); }
.ellie-card-stock--outofstock { color: rgb(var(--pc-stock-out)); }

/* =========================================================================
   OBSAHOVÉ STRÁNKY (Gutenberg) — kontakt, Packeta, reklamácia, 404
   ========================================================================= */

/* Kontakt (inc/contact.php): karty kontaktov 2 × 2 vedľa formulára v karte,
   pod nimi údaje o predávajúcom. */
.ellie-lead {
	max-width: 44rem;
	margin: 0 0 var(--pc-space-8);
	font-size: var(--pc-fs-lg);
	color: rgb(var(--pc-muted));
}

.ellie-kontakt > .wp-block-group__inner-container,
.ellie-kontakt:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: var(--pc-space-8);
	align-items: start;
}

.ellie-contact-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--pc-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ellie-contact-card {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 0;
	padding: var(--pc-space-5);
	border-radius: var(--pc-radius-lg);
	background: rgb(var(--pc-soft));
}

.ellie-contact-card:nth-child(4n + 2) { background: rgb(var(--ellie-mint)); }
.ellie-contact-card:nth-child(4n + 3) { background: rgb(var(--ellie-lav)); }
.ellie-contact-card:nth-child(4n + 4) { background: rgb(var(--ellie-peach)); }

.ellie-contact-card__icon {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-bottom: var(--pc-space-2);
	border-radius: 50%;
	background: rgb(var(--pc-card));
	color: rgb(var(--pc-accent));
	box-shadow: var(--pc-shadow-sm);
}

.ellie-contact-card__label {
	font-size: var(--pc-fs-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(var(--pc-muted));
}

.ellie-contact-card__value {
	font-size: var(--pc-fs-lg);
	font-weight: 800;
	color: rgb(var(--pc-ink));
	overflow-wrap: anywhere;
}

a.ellie-contact-card__value {
	text-decoration: underline;
	text-decoration-color: rgb(var(--pc-accent) / 0.45);
	text-underline-offset: 4px;
}

a.ellie-contact-card__value:hover {
	color: rgb(var(--pc-accent-deep));
	text-decoration-color: currentColor;
}

.ellie-contact-card__note {
	font-size: var(--pc-fs-sm);
	color: rgb(var(--pc-muted));
}

.ellie-kontakt__form {
	padding: var(--pc-space-8);
	border-radius: var(--pc-radius-xl);
	background: rgb(var(--pc-card));
	box-shadow: var(--pc-shadow-md);
}

.ellie-kontakt__form h2 {
	margin-top: 0;
}

.ellie-seller {
	margin-top: var(--pc-space-12);
	padding: var(--pc-space-8);
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius-xl);
	scroll-margin-top: 7rem;
}

.ellie-seller__title {
	margin-top: 0;
	font-size: var(--pc-fs-xl);
}

.ellie-seller__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	gap: var(--pc-space-5) var(--pc-space-8);
	margin: 0;
}

.ellie-seller__row--wide {
	grid-column: span 2;
}

.ellie-seller__row dt {
	font-size: var(--pc-fs-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(var(--pc-muted));
}

.ellie-seller__row dd {
	margin: 0.25rem 0 0;
}

@media (max-width: 899.98px) {
	.ellie-kontakt > .wp-block-group__inner-container,
	.ellie-kontakt:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 559.98px) {
	.ellie-contact-cards {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--pc-space-3);
	}

	/* Mobil: kompaktná karta — ikona vľavo, text vpravo. */
	.ellie-contact-card {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		column-gap: var(--pc-space-4);
		align-items: center;
		padding: var(--pc-space-4);
	}

	.ellie-contact-card__icon {
		grid-row: span 3;
		margin: 0;
	}

	.ellie-contact-card__value {
		font-size: var(--pc-fs-md);
	}

	.ellie-footer__chips {
		margin-bottom: var(--pc-space-4);
	}

	.ellie-kontakt__form,
	.ellie-seller {
		padding: var(--pc-space-5);
	}

	.ellie-seller__row--wide {
		grid-column: auto;
	}
}

/* Parentova bodka za nadpismi sekcií (`.pc-title-dot`) — Ellie ju nemá;
   na úvodke ju nahrádza vlnovka (ellie-front.css). */
.pc-title-dot::after {
	content: none;
}

/* -------------------------------------------------------------------------
   Kontaktný formulár ([ellie_kontakt], site plugin ellie)
   ------------------------------------------------------------------------- */

.ellie-contact-form form {
	display: grid;
	gap: var(--pc-space-4);
	max-width: 40rem;
}

.ellie-contact-form__field {
	display: grid;
	gap: 0.375rem;
	margin: 0;
}

.ellie-contact-form__field label {
	font-size: var(--pc-fs-sm);
	font-weight: 700;
}

.ellie-contact-form__field input,
.ellie-contact-form__field textarea {
	width: 100%;
}

/* Pasca na robotov — mimo obrazovky aj čítačky (aria-hidden + tabindex -1). */
.ellie-contact-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ellie-contact-form__actions,
.ellie-contact-form__privacy {
	margin: 0;
}

.ellie-contact-form__privacy {
	font-size: var(--pc-fs-xs);
	color: rgb(var(--pc-muted));
}

.ellie-contact-form__notice {
	margin-bottom: var(--pc-space-4);
	padding: 0.75rem 1rem;
	border-radius: var(--pc-radius);
	font-weight: 600;
}

.ellie-contact-form__notice--success {
	background: rgb(var(--pc-success-tint));
	color: rgb(var(--pc-success-ink));
}

.ellie-contact-form__notice--error {
	background: rgb(var(--pc-danger-tint));
	color: rgb(var(--pc-danger-ink));
}

.ellie-contact-form__notice p {
	margin: 0;
}

.ellie-contact-form__notice ul {
	margin: 0.375rem 0 0;
	padding-left: 1.25rem;
	font-weight: 400;
}

.ellie-contact-form__notice a {
	color: inherit;
	text-decoration: underline;
}

.ellie-contact-form__notice:focus-visible {
	outline: 2px solid rgb(var(--pc-focus));
	outline-offset: 2px;
}

.ellie-contact-form__field.is-error input,
.ellie-contact-form__field.is-error textarea {
	border-color: rgb(var(--pc-danger));
	box-shadow: inset 0 0 0 1px rgb(var(--pc-danger));
	background: rgb(var(--pc-danger-tint));
}

.ellie-contact-form__error {
	font-size: var(--pc-fs-sm);
	font-weight: 600;
	color: rgb(var(--pc-danger));
}

/* Turnstile v pokladni (plugin ellie) — pod údajmi zákazníka. */
.ellie-checkout-antispam {
	margin-block: var(--pc-space-4);
}

/* ------------------------------------------------- Hlásenia vo výpise
   „Produkt bol pridaný do košíka" po pridaní bez AJAXu (variant, obľúbené)
   — parent hlásenia štýluje len v košíku, pokladni, účte a na detaile,
   vo výpise ostal predvolený modrý rámik WooCommerce a sivé tlačidlo
   (UX audit 2026-10-20). Vzhľad = cart-checkout.css parentu. Tu, nie v ellie-archive.css — tá
   sa načíta len v kategórii, hlásenie príde aj v /obchod a vo vyhľadávaní. */

.px-archive :is(.woocommerce-message, .woocommerce-info, ul.woocommerce-error) {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--pc-space-2) var(--pc-space-3);
	margin: 0 0 var(--pc-space-6);
	padding: var(--pc-space-3) var(--pc-space-4) var(--pc-space-3) 2.75rem;
	border: 1px solid;
	border-radius: var(--pc-radius-sm);
	outline: 0;
	font-size: var(--pc-fs-sm);
	line-height: 1.6;
	list-style: none;
}

.px-archive :is(.woocommerce-message, .woocommerce-info, ul.woocommerce-error)::before {
	position: absolute;
	left: 0.75rem;
	top: 0.875rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: var(--pc-radius-pill);
	color: rgb(var(--pc-paper));
	font-size: var(--pc-fs-2xs);
	font-weight: 700;
	font-family: inherit;
}

.px-archive .woocommerce-message {
	background: rgb(var(--pc-success-tint));
	border-color: rgb(var(--pc-success-line));
	color: rgb(var(--pc-success-ink));
}

.px-archive .woocommerce-message::before {
	content: '\2713';
	background: rgb(var(--pc-success));
}

.px-archive .woocommerce-info {
	background: rgb(var(--pc-accent) / 0.05);
	border-color: rgb(var(--pc-accent) / 0.2);
	color: rgb(var(--pc-ink));
}

.px-archive .woocommerce-info::before {
	content: 'i';
	background: rgb(var(--pc-accent));
	font-style: italic;
}

.px-archive ul.woocommerce-error {
	background: rgb(var(--pc-danger-tint));
	border-color: rgb(var(--pc-danger-line));
	color: rgb(var(--pc-danger-ink));
}

.px-archive ul.woocommerce-error::before {
	content: '!';
	background: rgb(var(--pc-danger));
}

.px-archive :is(.woocommerce-message, .woocommerce-info) .button {
	order: 2;
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	margin: 0;
	padding: var(--pc-space-1) var(--pc-space-4);
	border: 1px solid currentColor;
	border-radius: var(--pc-radius-control);
	background: transparent;
	color: inherit;
	font-size: var(--pc-fs-xs);
	font-weight: 600;
	text-decoration: none;
}

/* Turnstile vo formulároch účtu: „Zapamätať si ma" sa lepilo na widget. */
.woocommerce-form .px-antispam {
	margin-bottom: var(--pc-space-4);
}

/* 404 / prázdne hľadanie: stránka nie je v .pc-scope, .pc-btn tam má
   content-box a min-height 48 px + padding dalo 69 px (ostatné tlačidlá 48). */
.pc-search-help .pc-btn {
	box-sizing: border-box;
}


/* ---------------------------------------------------- Tlačidlá jednotne
   Jedna výška, písmo a hrúbka pre všetky tlačidlá webu — téma, WooCommerce
   (košík, pokladňa, účet, detail) aj Gutenberg. Predtým 44 / 46 / 48 / 52 px,
   13–16 px, hrúbka 500–700 (UX 2026-10-21). Vodorovný padding kariet
   produktov ostáva parentov (úzke karty na mobile). */
/* Bez #place_order v :is() — ID by zdvihlo špecificitu celého pravidla na
   (1,0,1) a prebilo by každé spresnenie (karty); Objednať rieši ellie-checkout.css. */
body :is(.pc-btn, .wp-block-button__link, a.button, button.button, input.button, .single_add_to_cart_button, .checkout-button) {
	box-sizing: border-box;
	min-height: var(--ellie-control-h);
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	font-size: var(--pc-fs-sm);
	font-weight: 600;
	line-height: 1.25;
}

body :is(.single_add_to_cart_button, .checkout-button, .wp-block-button__link) {
	padding-left: var(--pc-space-5);
	padding-right: var(--pc-space-5);
}

/* Tlačidlá v kartách produktov — ľahšie a nižšie než v nákupnom bloku:
   v mriežke ich je 24 naraz a plné fialové 44 px pôsobili ťažko.
   40 px je stále pohodlný dotykový cieľ (WCAG 2.5.8 chce 24). */
body .pc-product-card .pc-btn {
	min-height: 2.5rem;
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.01em;
}
