/*
Theme Name: Maminka švadlenka
Theme URI: https://maminka-svadlenka.cz
Description: Child theme Hello Elementoru pro eshop Maminka švadlenka. Designový systém, animované menu a nastylovaný WooCommerce.
Author: UltimWeb
Author URI: https://ultimweb.cz
Template: hello-elementor
Version: 1.0.0
Text Domain: svadlenka-child
Tags: woocommerce, elementor, handmade
*/

/* ==========================================================================
   MAMINKA ŠVADLENKA — designový systém
   ==========================================================================
   Paleta není vymyšlená od stolu. Je odečtená z reálné fotky produktu:
   džínová látka s bílými kopretinami a korálovými středy, krémové plátno
   na pozadí, kožená etiketa s monogramem. Odtud krémová, korálová,
   džínová a kožená.

   Vizuální jazyk vychází z loga, kde jehlou prochází nitka. Proto se
   napříč webem opakují čárkované stehy jako oddělovače a rámečky.

   Řazení souboru:
      1. Tokeny
      2. Základ a typografie
      3. Stehy a nadpisy sekcí
      4. Tlačítka
      5. Hlavička a animovaný hamburger
      6. Patička
      7. Prvky pro Elementor (hero, kategorie, postup, řemeslo, ohlasy)
      8. WooCommerce — výpis produktů
      9. WooCommerce — detail produktu
     10. WooCommerce — košík
     11. WooCommerce — pokladna a účet
     12. WooCommerce — hlášky, drobenka, stránkování
     13. Chybová stránka 404
     14. Interakční stavy a responzivita
   ========================================================================== */

/* ============================================================ 1. TOKENY */
:root{
	--sv-krem:#FBF7F2;
	--sv-krem-2:#F4EDE4;
	--sv-blush:#F7E8E6;
	--sv-bila:#FFFFFF;

	--sv-inkoust:#2A2523;
	--sv-inkoust-70:#5C534D;
	--sv-inkoust-45:#79706A;   /* 4,53:1 na krémové — drobný text musí být čitelný */

	/* Korálová je ve třech odstínech záměrně.
	   Původní #D4707C je krásná, ale bílý text na ní má kontrast 3,28
	   a WCAG AA žádá 4,5. Ploché ztmavení celé palety by ale zabilo
	   ten jasný, ženský tón. Proto:
	     --sv-koral       dekorace: stehy, rámečky, ikony, hvězdy (3,07 — na
	                      grafický prvek stačí 3,0)
	     --sv-koral-text  text na krémové nebo bílé (5,36:1)
	     --sv-koral-btn   podklad tlačítka s bílým textem (4,85:1)
	     --sv-koral-tmavy hover tlačítka (7,17:1) */
	--sv-koral:#D4707C;
	--sv-koral-text:#A34A56;
	--sv-koral-btn:#B2545F;
	--sv-koral-tmavy:#8F3D48;

	--sv-dzin:#3A4A6B;
	--sv-dzin-2:#5A6B8C;
	--sv-kuze:#A9743F;
	--sv-zelena:#527B5F;       /* 4,53:1 — dostupnost skladu je informace, ne dekorace */

	--sv-linka:#E6DBCE;        /* rámečky karet — dekorace */
	--sv-ram-pole:#9B938A;     /* hranice formulářových polí, 3,03:1 dle WCAG 1.4.11 */
	--sv-steh:#CBBBA8;

	--sv-r:4px;
	--sv-r-l:14px;
	--sv-r-xl:26px;

	--sv-ease:cubic-bezier(.22,.61,.36,1);
	--sv-stin-s:0 2px 10px rgba(42,37,35,.05);
	--sv-stin-m:0 14px 40px -18px rgba(42,37,35,.18);
	--sv-stin-l:0 34px 70px -30px rgba(58,74,107,.28);

	--sv-font-d:"Cormorant Garamond",Georgia,"Times New Roman",serif;
	--sv-font-t:"Jost","Helvetica Neue",Arial,sans-serif;

	/* Čárkovaný steh jako opakovaný podklad. Používá se na 1px linky. */
	--sv-steh-vodorovne:linear-gradient(90deg,var(--sv-steh) 0 8px,transparent 8px 16px);
}

/* ====================================================== 2. ZÁKLAD A TYPOGRAFIE */
body{
	background:var(--sv-krem);
	color:var(--sv-inkoust);
	font-family:var(--sv-font-t);
	font-weight:400;
	font-size:16px;
	line-height:1.65;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
}
body,
.site-main,
.page-content{
	background:var(--sv-krem);
}

h1,h2,h3,h4,h5,
.elementor-heading-title,
.woocommerce div.product .product_title,
.woocommerce-loop-product__title{
	font-family:var(--sv-font-d);
	font-weight:600;
	line-height:1.14;
	letter-spacing:-.01em;
	color:var(--sv-inkoust);
}
h1{font-size:clamp(2.3rem,5.4vw,4.1rem);}
h2{font-size:clamp(1.9rem,4vw,3rem);}
h3{font-size:clamp(1.25rem,2.1vw,1.7rem);}
h4{font-size:1.15rem;}

a{color:var(--sv-inkoust);text-decoration:none;transition:color .25s var(--sv-ease);}
a:hover{color:var(--sv-koral-text);}

::selection{background:var(--sv-koral);color:#fff;}

/* Kurzivní zvýraznění v nadpisech — používá se v Elementoru jako <em>. */
h1 em,h2 em,h3 em,
.sv-kurz{
	font-family:var(--sv-font-d);
	font-style:italic;
	font-weight:400;
	color:var(--sv-koral-text);
}

/* Hello Elementor dává na obrázky max-width, ale ne height auto. */
img{height:auto;}

/* =========================================== 3. STEHY A NADPISY SEKCÍ */
.sv-steh{
	height:1px;
	background-image:var(--sv-steh-vodorovne);
	background-size:16px 1px;
	border:0;
	margin:0;
}
.sv-oci{
	display:inline-flex;
	align-items:center;
	gap:10px;
	font-family:var(--sv-font-t);
	font-size:.72rem;
	font-weight:500;
	letter-spacing:.22em;
	text-transform:uppercase;
	color:var(--sv-koral-text);
}
.sv-oci::before,
.sv-oci::after{
	content:"";
	width:26px;
	height:1px;
	background:var(--sv-koral);
	opacity:.5;
}

/* ============================================================ 4. TLAČÍTKA */
.sv-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.elementor-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:15px 30px;
	border-radius:100px;
	font-family:var(--sv-font-t);
	font-size:.83rem;
	font-weight:500;
	letter-spacing:.1em;
	text-transform:uppercase;
	line-height:1.2;
	border:1px solid transparent;
	background:var(--sv-inkoust);
	color:#fff;
	white-space:nowrap;
	transition:transform .35s var(--sv-ease),box-shadow .35s var(--sv-ease),
	           background-color .3s,color .3s,border-color .3s;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.sv-btn--koral{
	background:var(--sv-koral-btn);
	color:#fff;
}
.sv-btn--duchy,
.woocommerce a.button.wc-backward{
	background:transparent;
	color:var(--sv-inkoust);
	border-color:var(--sv-inkoust);
}

/* ================================= 5. HLAVIČKA A ANIMOVANÝ HAMBURGER */
.sv-hlava{
	position:sticky;
	top:0;
	z-index:600;
	background:rgba(251,247,242,.92);
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	border-bottom:1px solid transparent;
	transition:border-color .3s,box-shadow .3s;
}
.sv-hlava.je-scroll{
	border-bottom-color:var(--sv-linka);
	box-shadow:0 2px 20px -12px rgba(42,37,35,.3);
}
.sv-pas{
	background:var(--sv-dzin);
	color:#fff;
	text-align:center;
	font-size:.76rem;
	letter-spacing:.12em;
	text-transform:uppercase;
	padding:9px 16px;
}
.sv-pas b{font-weight:600;color:#FFD9DD;}
.sv-obal{
	width:100%;
	max-width:1240px;
	margin:0 auto;
	padding:0 26px;
}
.sv-hlava-radek{
	display:flex;
	align-items:center;
	gap:26px;
	min-height:82px;
}
.sv-logo{display:flex;align-items:center;gap:12px;flex:0 0 auto;}
.sv-logo img{height:44px;width:auto;}
.sv-logo-text{display:flex;flex-direction:column;line-height:1;}
.sv-logo-text b{
	font-family:var(--sv-font-d);
	font-size:1.22rem;
	font-weight:600;
}
.sv-logo-text span{
	font-size:.6rem;
	letter-spacing:.24em;
	text-transform:uppercase;
	color:var(--sv-inkoust-45);
	margin-top:4px;
}

.sv-menu{
	display:flex;
	gap:30px;
	margin:0 auto;
	padding:0;
	list-style:none;
}
.sv-menu li{list-style:none;margin:0;}
.sv-menu a{
	position:relative;
	display:block;
	font-size:.88rem;
	letter-spacing:.06em;
	padding:6px 0;
}
/* Podtržení jako běžící steh, ne plná linka. */
.sv-menu a::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:1px;
	background-image:linear-gradient(90deg,var(--sv-koral) 0 5px,transparent 5px 10px);
	background-size:10px 1px;
	transform:scaleX(0);
	transform-origin:left;
	transition:transform .4s var(--sv-ease);
}
.sv-menu li.current-menu-item > a,
.sv-menu li.current_page_item > a{color:var(--sv-koral-text);}
.sv-menu li.current-menu-item > a::after,
.sv-menu li.current_page_item > a::after{transform:scaleX(1);}

.sv-nastroje{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:auto;}
.sv-ikona{
	width:44px;
	height:44px;
	border-radius:50%;
	display:grid;
	place-items:center;
	position:relative;
	background:none;
	border:0;
	padding:0;
	cursor:pointer;
	color:var(--sv-inkoust);
	transition:background-color .25s,color .25s;
}
.sv-ikona svg{width:19px;height:19px;}
.sv-pocet{
	position:absolute;
	top:4px;
	right:2px;
	min-width:18px;
	height:18px;
	padding:0 5px;
	background:var(--sv-koral-btn);
	color:#fff;
	border-radius:100px;
	font-size:.66rem;
	font-weight:600;
	display:grid;
	place-items:center;
	line-height:1;
}
.sv-pocet:empty,
.sv-pocet.je-nula{display:none;}

/* --- animovaný hamburger ---------------------------------------------
   Tři čárky, které se při otevření složí do křížku. Stav drží
   aria-expanded, takže CSS nepotřebuje pomocnou třídu a čtečka
   obrazovky ví, co se děje. */
.sv-burger{
	display:none;
	width:44px;
	height:44px;
	border:0;
	background:none;
	padding:0;
	cursor:pointer;
	position:relative;
	border-radius:50%;
	transition:background-color .25s;
}
.sv-burger span{
	position:absolute;
	left:12px;
	width:20px;
	height:2px;
	background:var(--sv-inkoust);
	border-radius:2px;
	transition:transform .42s var(--sv-ease),opacity .22s var(--sv-ease),
	           top .42s var(--sv-ease),width .42s var(--sv-ease),
	           background-color .25s;
}
.sv-burger span:nth-child(1){top:14px;}
.sv-burger span:nth-child(2){top:21px;width:14px;}
.sv-burger span:nth-child(3){top:28px;}
.sv-burger[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(45deg);}
.sv-burger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:translateX(10px);}
.sv-burger[aria-expanded="true"] span:nth-child(3){top:21px;transform:rotate(-45deg);}
.sv-burger[aria-expanded="true"] span{background:var(--sv-koral);}

/* rozbalené menu na mobilu */
.sv-menu-mobil{
	position:absolute;
	top:100%;
	left:0;
	right:0;
	background:var(--sv-krem);
	border-bottom:1px solid var(--sv-linka);
	box-shadow:0 22px 40px -24px rgba(42,37,35,.35);
	overflow:hidden;
	max-height:0;
	transition:max-height .45s var(--sv-ease);
}
.sv-menu-mobil.je-otevrene{max-height:70vh;overflow-y:auto;}
.sv-menu-mobil ul{list-style:none;margin:0;padding:14px 26px 24px;}
.sv-menu-mobil li{margin:0;border-bottom:1px dashed var(--sv-steh);}
.sv-menu-mobil li:last-child{border-bottom:0;}
.sv-menu-mobil a{
	display:block;
	padding:15px 0;
	font-size:1.02rem;
	font-family:var(--sv-font-d);
	font-weight:600;
}
.sv-menu-mobil .sv-menu-mobil-akce{
	display:flex;
	gap:10px;
	padding:16px 26px 24px;
	border-top:1px dashed var(--sv-steh);
}

/* ============================================================ 6. PATIČKA */
.sv-pata{
	background:var(--sv-inkoust);
	color:rgba(255,255,255,.72);
	padding:clamp(46px,6vw,74px) 0 0;
	margin-top:clamp(50px,7vw,90px);
}
.sv-pata-mriz{
	display:grid;
	grid-template-columns:1.4fr .8fr .8fr 1fr;
	gap:34px;
	padding-bottom:44px;
}
.sv-pata h4{
	font-family:var(--sv-font-t);
	font-size:.74rem;
	font-weight:600;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:#fff;
	margin:0 0 18px;
}
.sv-pata ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.sv-pata li{margin:0;}
.sv-pata a{color:rgba(255,255,255,.72);font-size:.92rem;}
.sv-pata a:hover{color:#fff;padding-left:5px;}
.sv-pata p{font-size:.92rem;max-width:32ch;}
.sv-pata-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.sv-pata-logo img{height:40px;width:auto;filter:invert(1) brightness(2.2);}
.sv-pata-logo b{font-family:var(--sv-font-d);font-size:1.2rem;color:#fff;}
.sv-soc{display:flex;gap:9px;margin-top:18px;}
.sv-soc a{
	width:38px;
	height:38px;
	border-radius:50%;
	border:1px solid rgba(255,255,255,.2);
	display:grid;
	place-items:center;
	color:rgba(255,255,255,.8);
	transition:background-color .28s,border-color .28s,transform .28s,color .28s;
}
.sv-soc svg{width:16px;height:16px;}
.sv-pata-spodek{
	border-top:1px solid rgba(255,255,255,.12);
	padding:22px 0;
	display:flex;
	justify-content:space-between;
	gap:18px;
	flex-wrap:wrap;
	font-size:.84rem;
}

/* ================================= 7. PRVKY PRO ELEMENTOR */
/* Tyto třídy se přiřazují kontejnerům a widgetům v Elementoru, aby si
   majitel mohl měnit texty a přitom si nemusel hlídat vzhled. */

/* --- hero --- */
.sv-hero-foto{
	position:relative;
	border-radius:var(--sv-r-xl);
	overflow:hidden;
	background:linear-gradient(155deg,var(--sv-blush),var(--sv-krem-2));
	padding:8%;
}
.sv-hero-foto img{
	filter:drop-shadow(0 30px 40px rgba(58,74,107,.28));
	transform:rotate(-2deg);
}
.sv-duvery{
	display:flex;
	gap:26px;
	flex-wrap:wrap;
	padding-top:26px;
	border-top:1px dashed var(--sv-steh);
}
.sv-duvera{
	display:flex;
	align-items:center;
	gap:10px;
	font-size:.84rem;
	color:var(--sv-inkoust-70);
}
.sv-duvera svg{width:20px;height:20px;color:var(--sv-koral);flex:0 0 auto;}

/* --- karta (obecná, používá se i pro kategorie a boxy) --- */
.sv-karta{
	position:relative;
	background:var(--sv-bila);
	border:1px solid var(--sv-linka);
	border-radius:var(--sv-r-l);
	padding:26px;
	overflow:hidden;
	transition:transform .45s var(--sv-ease),box-shadow .45s var(--sv-ease),border-color .3s;
}
.sv-karta > *{position:relative;}

/* --- postup, jak vzniká --- */
.sv-postup{position:relative;}
.sv-postup::before{
	content:"";
	position:absolute;
	top:38px;
	left:12%;
	right:12%;
	height:1px;
	background-image:var(--sv-steh-vodorovne);
	background-size:14px 1px;
}
.sv-krok-cislo{
	width:76px;
	height:76px;
	margin:0 auto 20px;
	border-radius:50%;
	background:var(--sv-krem);
	border:1px dashed var(--sv-steh);
	display:grid;
	place-items:center;
	position:relative;
	z-index:2;
	font-family:var(--sv-font-d);
	font-size:1.7rem;
	font-weight:600;
	color:var(--sv-koral);
	transition:background-color .4s,border-color .4s,color .4s,transform .4s var(--sv-ease);
}

/* --- seznam s odrážkami ze stehů --- */
.sv-seznam{list-style:none;padding:0;margin:0;}
.sv-seznam li{
	display:flex;
	gap:15px;
	padding:17px 0;
	border-bottom:1px dashed var(--sv-steh);
	align-items:flex-start;
}
.sv-seznam li:first-child{border-top:1px dashed var(--sv-steh);}
.sv-seznam svg{width:21px;height:21px;color:var(--sv-koral);flex:0 0 auto;margin-top:2px;}
.sv-seznam b{display:block;font-weight:500;font-size:.98rem;}
.sv-seznam span{font-size:.89rem;color:var(--sv-inkoust-70);}

/* --- tmavý blok na míru --- */
.sv-tmavy{
	background:var(--sv-dzin);
	color:#fff;
	border-radius:var(--sv-r-xl);
	position:relative;
	overflow:hidden;
}
.sv-tmavy h1,.sv-tmavy h2,.sv-tmavy h3,.sv-tmavy h4,
.sv-tmavy .elementor-heading-title{color:#fff;}
.sv-tmavy p{color:rgba(255,255,255,.78);}
.sv-tmavy .sv-oci{color:#FFD9DD;}
.sv-tmavy .sv-oci::before,.sv-tmavy .sv-oci::after{background:#FFD9DD;}

/* --- ohlas --- */
.sv-ohlas{
	background:var(--sv-bila);
	border:1px dashed var(--sv-steh);
	border-radius:var(--sv-r-l);
	padding:28px;
}
.sv-ohlas p{
	font-family:var(--sv-font-d);
	font-size:1.12rem;
	font-style:italic;
	color:var(--sv-inkoust);
}
.sv-ohlas cite{
	font-style:normal;
	font-size:.84rem;
	color:var(--sv-inkoust-45);
	letter-spacing:.04em;
}
.sv-hvezdy{display:flex;gap:3px;color:var(--sv-koral);}
.sv-hvezdy svg{width:15px;height:15px;}

/* --- blush blok (newsletter) --- */
.sv-blush{
	background:var(--sv-blush);
	border-radius:var(--sv-r-xl);
}

/* ================================= 8. WOOCOMMERCE — VÝPIS PRODUKTŮ */
.woocommerce ul.products{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
	gap:24px;
	margin:0;
	padding:0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none;}
.woocommerce ul.products li.product{
	width:auto !important;
	margin:0 !important;
	float:none !important;
	clear:none !important;
	display:flex;
	flex-direction:column;
	background:var(--sv-bila);
	border:1px solid var(--sv-linka);
	border-radius:var(--sv-r-l);
	overflow:hidden;
	padding:0;
	text-align:left;
	transition:transform .45s var(--sv-ease),box-shadow .45s var(--sv-ease),border-color .3s;
}
.woocommerce ul.products li.product > a:first-of-type{
	display:block;
	position:relative;
	aspect-ratio:1/1.08;
	background:var(--sv-krem-2);
	overflow:hidden;
}
.woocommerce ul.products li.product img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:contain;
	padding:9%;
	margin:0;
	box-shadow:none;
	transition:transform .7s var(--sv-ease);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
	font-size:1.18rem !important;
	padding:18px 20px 0;
	margin:0;
}
.woocommerce ul.products li.product .price{
	display:block;
	font-family:var(--sv-font-d);
	font-size:1.42rem;
	font-weight:600;
	color:var(--sv-inkoust);
	padding:8px 20px 0;
	margin:0;
}
.woocommerce ul.products li.product .price del{
	color:var(--sv-inkoust-45);
	font-size:.7em;
	opacity:.8;
}
.woocommerce ul.products li.product .price ins{
	text-decoration:none;
	color:var(--sv-koral-text);
}
.woocommerce ul.products li.product .star-rating{
	margin:10px 20px 0;
	font-size:.78em;
	color:var(--sv-koral);
}
.woocommerce ul.products li.product .button{
	margin:16px 20px 22px;
	align-self:flex-start;
}
/* Štítek u zlevněných a novinek */
.woocommerce span.onsale{
	position:absolute;
	top:14px;
	left:14px;
	right:auto;
	min-height:0;
	min-width:0;
	line-height:1;
	padding:7px 13px;
	border-radius:100px;
	background:var(--sv-koral-btn);
	color:#fff;
	font-family:var(--sv-font-t);
	font-size:.64rem;
	font-weight:600;
	letter-spacing:.14em;
	text-transform:uppercase;
	margin:0;
	z-index:3;
}

/* panel nad výpisem */
.woocommerce .woocommerce-result-count{
	color:var(--sv-inkoust-45);
	font-size:.86rem;
	margin:0;
}
.woocommerce .woocommerce-ordering select,
.woocommerce-page select.orderby{
	padding:10px 34px 10px 16px;
	border:1px solid var(--sv-ram-pole);
	border-radius:100px;
	background-color:var(--sv-bila);
	font-family:var(--sv-font-t);
	font-size:.85rem;
	appearance:none;
	cursor:pointer;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C534D' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat;
	background-position:right 13px center;
	background-size:15px;
}
.woocommerce .products-panel{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	flex-wrap:wrap;
	padding:20px 0;
	border-top:1px dashed var(--sv-steh);
	border-bottom:1px dashed var(--sv-steh);
	margin:0 0 34px;
}

/* =========================== 9. WOOCOMMERCE — DETAIL PRODUKTU */
.woocommerce div.product{margin-top:34px;}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{margin-bottom:0;}
.woocommerce div.product div.images img{
	border-radius:var(--sv-r-l);
	background:var(--sv-krem-2);
}
.woocommerce div.product div.images .flex-control-thumbs{
	display:flex;
	gap:11px;
	margin:13px 0 0;
	padding:0;
}
.woocommerce div.product div.images .flex-control-thumbs li{
	width:78px;
	margin:0;
	float:none;
	list-style:none;
}
.woocommerce div.product div.images .flex-control-thumbs img{
	border-radius:8px;
	border:1px solid var(--sv-linka);
	opacity:1;
	transition:border-color .25s,transform .25s;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active{
	border-color:var(--sv-koral);
	border-width:2px;
}
.woocommerce div.product .product_title{
	font-size:clamp(1.9rem,3.4vw,2.9rem);
	margin:0 0 18px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
	font-family:var(--sv-font-d);
	font-size:2.1rem;
	font-weight:600;
	color:var(--sv-inkoust);
	margin:0 0 18px;
}
.woocommerce div.product p.price ins{text-decoration:none;color:var(--sv-koral-text);}
.woocommerce div.product .woocommerce-product-details__short-description{
	color:var(--sv-inkoust-70);
	font-weight:300;
	margin-bottom:26px;
}
.woocommerce div.product .stock{
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-size:.85rem;
	font-weight:500;
	color:var(--sv-zelena);
}
.woocommerce div.product .stock::before{
	content:"";
	width:8px;
	height:8px;
	border-radius:50%;
	background:currentColor;
}
.woocommerce div.product .stock.out-of-stock{color:var(--sv-koral-tmavy);}

/* množství */
.woocommerce .quantity{
	display:inline-flex;
	align-items:center;
	border:1px solid var(--sv-ram-pole);
	border-radius:100px;
	background:var(--sv-bila);
	overflow:hidden;
}
.woocommerce .quantity input.qty{
	width:56px;
	height:52px;
	text-align:center;
	border:0;
	background:transparent;
	font-family:var(--sv-font-t);
	font-size:1rem;
	font-weight:500;
	appearance:textfield;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button{appearance:none;margin:0;}
.woocommerce div.product form.cart{
	display:flex;
	gap:12px;
	align-items:stretch;
	flex-wrap:wrap;
	margin:0 0 24px;
}
.woocommerce div.product form.cart div.quantity{margin:0;}
.woocommerce div.product form.cart .button{height:52px;flex:1 1 220px;}

/* varianty a swatche */
.woocommerce div.product form.cart .variations{margin-bottom:18px;border:0;}
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{
	padding:8px 0;
	border:0;
	vertical-align:middle;
}
.woocommerce div.product form.cart .variations label{
	font-family:var(--sv-font-t);
	font-size:.74rem;
	font-weight:600;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:var(--sv-inkoust);
}
.woocommerce div.product form.cart .reset_variations{
	font-size:.8rem;
	color:var(--sv-inkoust-45);
}

/* jistoty pod tlačítkem — vkládá se do detailu přes hook */
.sv-jistoty{
	display:grid;
	gap:10px;
	margin:24px 0;
	padding:20px 0;
	border-top:1px dashed var(--sv-steh);
	border-bottom:1px dashed var(--sv-steh);
}
.sv-jistoty div{
	display:flex;
	gap:11px;
	align-items:center;
	font-size:.88rem;
	color:var(--sv-inkoust-70);
}
.sv-jistoty svg{width:18px;height:18px;color:var(--sv-koral);flex:0 0 auto;}

/* záložky jako harmonika */
.woocommerce div.product .woocommerce-tabs ul.tabs{
	padding:0;
	margin:0;
	border-bottom:1px dashed var(--sv-steh);
	display:flex;
	gap:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
	background:none;
	border:0;
	border-radius:0;
	margin:0;
	padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
	display:block;
	padding:16px 22px;
	font-family:var(--sv-font-t);
	font-size:.88rem;
	font-weight:500;
	color:var(--sv-inkoust-70);
	position:relative;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--sv-koral-text);}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:-1px;
	height:2px;
	background:var(--sv-koral);
}
.woocommerce div.product .woocommerce-tabs .panel{
	padding:24px 0 0;
	color:var(--sv-inkoust-70);
}
.woocommerce div.product .woocommerce-tabs .panel h2{display:none;}
.woocommerce table.shop_attributes{border:0;}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td{
	border:0;
	border-bottom:1px dashed var(--sv-steh);
	padding:13px 0;
	background:none;
	font-style:normal;
}
.woocommerce table.shop_attributes th{font-weight:500;color:var(--sv-inkoust);}

/* související produkty */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce div.product .woocommerce-tabs + .related h2{
	font-size:clamp(1.9rem,4vw,3rem);
	text-align:center;
	margin:0 0 34px;
}

/* hvězdy */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before{color:var(--sv-koral);}

/* ============================== 10. WOOCOMMERCE — KOŠÍK */
.woocommerce table.shop_table{
	border:0;
	border-radius:0;
	border-collapse:collapse;
}
.woocommerce table.shop_table th{
	font-family:var(--sv-font-t);
	font-size:.72rem;
	font-weight:600;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--sv-inkoust-45);
	padding:14px 12px;
	border-bottom:1px dashed var(--sv-steh);
}
.woocommerce table.shop_table td{
	padding:22px 12px;
	border-top:0;
	border-bottom:1px dashed var(--sv-steh);
	vertical-align:middle;
}
.woocommerce table.shop_table td.product-thumbnail img{
	width:104px;
	height:104px;
	object-fit:contain;
	background:var(--sv-krem-2);
	border-radius:10px;
	padding:8%;
}
.woocommerce table.shop_table td.product-name a{
	font-family:var(--sv-font-d);
	font-size:1.16rem;
	font-weight:600;
}
.woocommerce a.remove{
	color:var(--sv-inkoust-45) !important;
	font-weight:400;
	transition:color .25s,background-color .25s;
}
.woocommerce a.remove:hover{
	color:#fff !important;
	background:var(--sv-koral);
}
.woocommerce .cart_totals{
	background:var(--sv-bila);
	border:1px solid var(--sv-linka);
	border-radius:var(--sv-r-l);
	padding:28px;
}
.woocommerce .cart_totals h2{font-size:1.3rem;margin:0 0 20px;}
.woocommerce .cart_totals table.shop_table td,
.woocommerce .cart_totals table.shop_table th{
	padding:11px 0;
	border-bottom:1px dashed var(--sv-steh);
}
.woocommerce .cart_totals tr.order-total th,
.woocommerce .cart_totals tr.order-total td{
	font-family:var(--sv-font-d);
	font-size:1.4rem;
	font-weight:600;
	color:var(--sv-inkoust);
	border-bottom:0;
	padding-top:18px;
}
.woocommerce .cart_totals .checkout-button{width:100%;margin-top:18px;height:54px;}
.woocommerce form.woocommerce-cart-form .coupon{display:flex;gap:9px;}
.woocommerce form .coupon input.input-text{
	padding:12px 16px;
	border:1px solid var(--sv-ram-pole);
	border-radius:100px;
	background:var(--sv-krem);
	font-size:.88rem;
	width:auto;
	flex:1;
	margin:0;
}

/* pruh do dopravy zdarma — vkládá funkce v functions.php */
.sv-doprava-pruh{
	background:var(--sv-krem-2);
	border-radius:var(--sv-r-l);
	padding:18px 22px;
	margin:0 0 24px;
}
.sv-doprava-pruh p{margin:0 0 11px;font-size:.9rem;}
.sv-doprava-pruh b{color:var(--sv-koral-text);}
.sv-pruh{height:7px;background:var(--sv-linka);border-radius:100px;overflow:hidden;}
.sv-pruh div{
	height:100%;
	background:linear-gradient(90deg,var(--sv-koral),var(--sv-koral-tmavy));
	border-radius:100px;
	transition:width .6s var(--sv-ease);
}

/* prázdný košík */
.woocommerce .cart-empty,
.woocommerce .wc-empty-cart-message{
	text-align:center;
	font-family:var(--sv-font-d);
	font-size:1.8rem;
	color:var(--sv-inkoust);
	padding:50px 20px 10px;
}
.woocommerce .return-to-shop{text-align:center;padding-bottom:50px;}

/* ==================== 11. WOOCOMMERCE — POKLADNA A ÚČET */
.woocommerce form .form-row{margin:0 0 16px;padding:0;}
.woocommerce form .form-row label{
	display:block;
	font-family:var(--sv-font-t);
	font-size:.78rem;
	font-weight:500;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--sv-inkoust-70);
	margin-bottom:7px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single{
	width:100%;
	padding:14px 17px;
	height:auto;
	min-height:52px;
	border:1px solid var(--sv-ram-pole);
	border-radius:10px;
	background:var(--sv-bila);
	font-family:var(--sv-font-t);
	font-size:.96rem;
	color:var(--sv-inkoust);
	transition:border-color .25s,box-shadow .25s;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered{
	line-height:24px;
	padding:0;
	color:var(--sv-inkoust);
}
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow{top:14px;right:12px;}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
	outline:none;
	border-color:var(--sv-koral);
	box-shadow:0 0 0 4px rgba(212,112,124,.12);
}
.woocommerce-checkout h3,
.woocommerce-account h2,
.woocommerce-checkout #order_review_heading{
	font-size:1.35rem;
	margin:34px 0 20px;
	padding-top:0;
}
.woocommerce-checkout #order_review,
.woocommerce-checkout-review-order{
	background:var(--sv-bila);
	border:1px solid var(--sv-linka);
	border-radius:var(--sv-r-l);
	padding:26px;
}
.woocommerce-checkout #payment{
	background:none;
	border-radius:0;
}
.woocommerce-checkout #payment ul.payment_methods{
	border:0;
	padding:0;
	margin:0 0 18px;
	list-style:none;
}
.woocommerce-checkout #payment ul.payment_methods li{
	display:flex;
	align-items:flex-start;
	gap:14px;
	padding:16px 18px;
	border:1px solid var(--sv-linka);
	border-radius:12px;
	background:var(--sv-bila);
	margin:0 0 10px;
	transition:border-color .28s,background-color .28s,box-shadow .28s;
	flex-wrap:wrap;
}
.woocommerce-checkout #payment ul.payment_methods li label{
	font-family:var(--sv-font-t);
	font-size:.96rem;
	font-weight:500;
	text-transform:none;
	letter-spacing:0;
	margin:0;
	color:var(--sv-inkoust);
}
.woocommerce-checkout #payment div.payment_box{
	background:var(--sv-krem-2);
	border-radius:10px;
	font-size:.88rem;
	color:var(--sv-inkoust-70);
	margin:12px 0 0;
	flex:1 1 100%;
}
.woocommerce-checkout #payment div.payment_box::before{display:none;}
.woocommerce-checkout #payment #place_order{
	width:100%;
	height:56px;
	background:var(--sv-koral-btn);
	margin-top:14px;
}
.woocommerce ul#shipping_method{margin:0;padding:0;list-style:none;}
.woocommerce ul#shipping_method li{
	display:flex;
	align-items:center;
	gap:12px;
	padding:14px 16px;
	border:1px solid var(--sv-linka);
	border-radius:12px;
	background:var(--sv-bila);
	margin:0 0 9px;
}

/* můj účet */
.woocommerce-account .woocommerce-MyAccount-navigation ul{
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	gap:2px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
	display:block;
	padding:13px 18px;
	border-radius:10px;
	font-size:.94rem;
	transition:background-color .25s,color .25s;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
	background:var(--sv-blush);
	color:var(--sv-koral-tmavy);
	font-weight:500;
}
.woocommerce-account form.login,
.woocommerce-account form.register{
	border:1px dashed var(--sv-steh);
	border-radius:var(--sv-r-l);
	padding:28px;
	margin:0;
}

/* ================ 12. HLÁŠKY, DROBENKA, STRÁNKOVÁNÍ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments{
	background:var(--sv-blush);
	border-top:0;
	border-left:3px solid var(--sv-koral);
	border-radius:0 10px 10px 0;
	color:var(--sv-inkoust);
	font-size:.94rem;
	padding:17px 22px;
	display:flex;
	align-items:center;
	gap:14px;
	flex-wrap:wrap;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{
	position:static;
	color:var(--sv-koral);
	margin:0;
}
.woocommerce-error{border-left-color:#B3453F;background:#FBEBEA;}
.woocommerce-message .button,
.woocommerce-info .button{margin-left:auto;padding:10px 20px;font-size:.75rem;}

.woocommerce .woocommerce-breadcrumb{
	font-size:.8rem;
	color:var(--sv-inkoust-45);
	margin:0 0 18px;
	padding:26px 0 0;
}
.woocommerce .woocommerce-breadcrumb a{color:var(--sv-inkoust-45);}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--sv-koral);}

.woocommerce nav.woocommerce-pagination{margin-top:48px;}
.woocommerce nav.woocommerce-pagination ul{
	border:0;
	display:flex;
	justify-content:center;
	gap:8px;
	margin:0;
}
.woocommerce nav.woocommerce-pagination ul li{
	border:0;
	margin:0;
	overflow:visible;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
	width:42px;
	height:42px;
	border-radius:50%;
	border:1px solid var(--sv-linka);
	background:var(--sv-bila);
	display:grid;
	place-items:center;
	padding:0;
	font-size:.88rem;
	transition:border-color .25s,background-color .25s,color .25s;
}
.woocommerce nav.woocommerce-pagination ul li span.current{
	background:var(--sv-inkoust);
	color:#fff;
	border-color:var(--sv-inkoust);
}

/* ================================ 13. CHYBOVÁ STRÁNKA 404 */
.sv-404{text-align:center;padding:clamp(50px,9vw,110px) 0;}
.sv-404-cislo{
	font-family:var(--sv-font-d);
	font-size:clamp(7rem,20vw,15rem);
	font-weight:700;
	line-height:.85;
	color:var(--sv-krem-2);
}
.sv-404-obsah{margin-top:-6vw;position:relative;z-index:2;}
.sv-404-odkazy{
	display:flex;
	gap:12px;
	justify-content:center;
	flex-wrap:wrap;
	margin-top:34px;
}
.sv-404-nit{max-width:300px;margin:22px auto 0;}

/* ==================== 14. INTERAKČNÍ STAVY A RESPONZIVITA */
/* Hover jen tam, kde je skutečný kurzor. Na dotyku by zůstával
   zaseknutý po kliknutí, což vypadá jako chyba. */
@media (hover:hover) and (pointer:fine){
	.sv-menu a:hover::after{transform:scaleX(1);}
	.sv-ikona:hover{background:var(--sv-blush);color:var(--sv-koral-tmavy);}
	.sv-burger:hover{background:var(--sv-blush);}
	.sv-soc a:hover{background:var(--sv-koral);border-color:var(--sv-koral);color:#fff;transform:translateY(-3px);}
	.sv-karta:hover{transform:translateY(-7px);box-shadow:var(--sv-stin-l);border-color:transparent;}
	.sv-krok-cislo:hover{background:var(--sv-koral);color:#fff;border-color:var(--sv-koral);border-style:solid;transform:scale(1.06);}

	.woocommerce ul.products li.product:hover{
		transform:translateY(-7px);
		box-shadow:var(--sv-stin-l);
		border-color:transparent;
	}
	.woocommerce ul.products li.product:hover img{transform:scale(1.05) rotate(-1.5deg);}

	.sv-btn:hover,
	.woocommerce a.button:hover,
	.woocommerce button.button:hover,
	.woocommerce input.button:hover,
	.woocommerce #respond input#submit:hover,
	.elementor-button:hover{
		background:var(--sv-dzin);
		color:#fff;
		transform:translateY(-2px);
		box-shadow:var(--sv-stin-m);
	}
	.woocommerce a.button.alt:hover,
	.woocommerce button.button.alt:hover,
	.woocommerce input.button.alt:hover,
	.sv-btn--koral:hover{
		background:var(--sv-koral-tmavy);
		box-shadow:0 14px 34px -16px rgba(212,112,124,.6);
	}
	.sv-btn--duchy:hover{background:var(--sv-inkoust);color:#fff;}
	.woocommerce-checkout #payment ul.payment_methods li:hover{border-color:var(--sv-koral);}
	.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--sv-koral);color:var(--sv-koral);}
	.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--sv-krem-2);}
}
/* Na dotykových zařízeních zrušíme dojezdy hoveru úplně. */
@media (hover:none){
	.sv-karta,.woocommerce ul.products li.product{transform:none !important;box-shadow:var(--sv-stin-s) !important;}
	.woocommerce ul.products li.product img{transform:none !important;}
}
*{-webkit-tap-highlight-color:transparent;}

/* Focus musí být vidět, jinak se web nedá projít klávesnicí. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.woocommerce .button:focus-visible{
	outline:2px solid var(--sv-dzin);
	outline-offset:3px;
}

@media (max-width:1080px){
	.sv-pata-mriz{grid-template-columns:1fr 1fr;}
	.woocommerce ul.products{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));}
}
@media (max-width:900px){
	.sv-menu{display:none;}
	.sv-burger{display:grid;}
	.sv-hlava-radek{min-height:70px;}
	.sv-postup::before{display:none;}
	.woocommerce div.product form.cart{flex-direction:column;}
	.woocommerce div.product form.cart .button{width:100%;flex:0 0 auto;}
}
@media (max-width:640px){
	.sv-obal{padding:0 18px;}
	.sv-pata-mriz{grid-template-columns:1fr;}
	.woocommerce ul.products{grid-template-columns:1fr;}
	.sv-duvery{gap:14px;}
	.sv-logo img{height:36px;}
	.sv-logo-text b{font-size:1.05rem;}
	/* Tabulka košíku se na mobilu láme, Woo na to má vlastní režim.
	   Jen mu srovnáme okraje, ať to nevypadá rozsypaně. */
	.woocommerce table.shop_table_responsive tr td{
		padding:12px 0;
		border-bottom:1px dashed var(--sv-steh);
	}
	.woocommerce table.shop_table_responsive tr td::before{
		font-family:var(--sv-font-t);
		font-size:.72rem;
		font-weight:600;
		letter-spacing:.12em;
		text-transform:uppercase;
		color:var(--sv-inkoust-45);
	}
	.woocommerce table.shop_table td.product-thumbnail img{width:72px;height:72px;}
}

@media (prefers-reduced-motion:reduce){
	*{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* Odhalování při scrollu je čistě v CSS a vázané na pozici scrollu.
   Záměrně NE JavaScriptem: kdyby callback nedojel, zůstal by obsah
   neviditelný. Kde prohlížeč animation-timeline neumí, je obsah
   normálně vidět — což je správné selhání. */
@keyframes sv-odhal{
	from{opacity:0;transform:translateY(26px);}
	to{opacity:1;transform:none;}
}
@supports (animation-timeline:view()){
	@media (prefers-reduced-motion:no-preference){
		.sv-odhal{
			animation:sv-odhal linear both;
			animation-timeline:view();
			animation-range:entry 2% cover 20%;
		}
	}
}

/* ==========================================================================
   10. ÚVODNÍ STRÁNKA POSTAVENÁ V ELEMENTORU

   Sekce skládá Elementor (kontejnery, mezery, mřížky), téma dodává vzhled.
   Třídy se zadávají v Elementoru: vyber prvek → Rozšířené → CSS třídy.

   Proč to není celé v jednom HTML widgetu: majitelka má upravovat texty
   v Elementoru, ne v kódu. Každý text je proto samostatný widget.
   ========================================================================== */

/* --- modifikátory tlačítek ------------------------------------------------
   Elementor dává vlastní CSS třídu na obal .elementor-element, ne na samotné
   <a class="elementor-button">. Barvu je proto nutné prostrčit dovnitř. */
.sv-btn--koral .elementor-button{
	background:var(--sv-koral-btn);
	color:#fff;
}
.sv-btn--duchy .elementor-button{
	background:transparent;
	color:var(--sv-inkoust);
	border-color:var(--sv-inkoust);
}
.sv-tmavy .sv-btn--svetly .elementor-button{
	background:#fff;
	color:var(--sv-koral-tmavy);
}
@media (hover:hover) and (pointer:fine){
	.sv-btn--koral .elementor-button:hover{background:var(--sv-koral-tmavy);}
	.sv-btn--duchy .elementor-button:hover{background:var(--sv-inkoust);color:#fff;}
	.sv-tmavy .sv-btn--svetly .elementor-button:hover{background:var(--sv-blush);}
}

/* --- nadpis sekce ---------------------------------------------------------
   Blok "oči + nadpis + úvodní odstavec". Widgety uvnitř nemají mít vlastní
   spodní mezeru, o rozestupy se stará gap kontejneru. */
.sv-nadpis-sekce .elementor-widget:not(:last-child){margin-bottom:0;}
.sv-nadpis-sekce p{
	color:var(--sv-inkoust-70);
	font-weight:300;
	max-width:56ch;
	margin-inline:auto;
}

/* --- hero ---------------------------------------------------------------- */
.sv-hero-podtitul p{
	font-size:1.06rem;
	font-weight:300;
	line-height:1.75;
	color:var(--sv-inkoust-70);
	max-width:46ch;
}

/* Cenová značka přes fotku. Obal widgetu je vůči .sv-hero-foto absolutní,
   takže rodič musí mít position:relative — .sv-hero-foto ho má. */
.sv-cena-znacka{
	position:absolute;
	right:-14px;
	bottom:26px;
	z-index:3;
	background:#fff;
	border-radius:100px;
	padding:14px 22px;
	box-shadow:var(--sv-stin-m);
	border:1px solid var(--sv-linka);
}
.sv-cena-znacka p{margin:0;line-height:1;}
.sv-cena-znacka b{
	font-family:var(--sv-font-d);
	font-size:1.7rem;
	font-weight:600;
	color:var(--sv-inkoust);
	display:block;
}
.sv-cena-znacka span{
	font-family:var(--sv-font-t);
	font-size:.66rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--sv-inkoust-45);
}
@media (max-width:767px){
	.sv-cena-znacka{right:8px;bottom:12px;padding:10px 16px;}
	.sv-cena-znacka b{font-size:1.3rem;}
}

/* --- karty kategorií ----------------------------------------------------- */
.sv-kat{
	position:relative;
	overflow:hidden;
	background:var(--sv-bila);
	border:1px solid var(--sv-linka);
	border-radius:var(--sv-r-l);
	transition:transform .5s var(--sv-ease),box-shadow .5s var(--sv-ease),
	           border-color .3s;
}
.sv-kat .elementor-widget-image{margin-bottom:0;}
.sv-kat .elementor-widget-image img{
	display:block;
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
	transition:transform .9s var(--sv-ease);
}
/* Textová část dosedá na obrázek, proto vlastní odsazení. */
.sv-kat-text{padding:22px 24px 26px;}
.sv-kat-text h3{margin:0 0 4px;}
.sv-kat-text p{
	margin:0;
	font-size:.86rem;
	color:var(--sv-inkoust-45);
}
@media (hover:hover) and (pointer:fine){
	.sv-kat:hover{
		transform:translateY(-6px);
		box-shadow:var(--sv-stin-m);
		border-color:var(--sv-steh);
	}
	.sv-kat:hover .elementor-widget-image img{transform:scale(1.06);}
}

/* Odznak v rohu karty. */
.sv-odznak{
	position:absolute;
	top:14px;
	left:14px;
	z-index:2;
}
.sv-odznak p{
	margin:0;
	display:inline-block;
	background:rgba(255,255,255,.94);
	backdrop-filter:blur(4px);
	border:1px solid var(--sv-linka);
	border-radius:100px;
	padding:6px 13px;
	font-family:var(--sv-font-t);
	font-size:.68rem;
	font-weight:500;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:var(--sv-inkoust-70);
}
/* Zelená u skladu je informace ovlivňující nákup, ne dekorace. */
.sv-odznak--sklad p{color:var(--sv-zelena);}

/* Kategorie, která se teprve chystá: bez fotky, tišší, nedá se do ní klikat. */
.sv-kat--pripravujeme{
	background:var(--sv-krem-2);
	border-style:dashed;
	border-color:var(--sv-steh);
}
.sv-kat--pripravujeme .sv-kat-ikona{
	display:grid;
	place-items:center;
	aspect-ratio:4/3;
	color:var(--sv-steh);
}
.sv-kat--pripravujeme .sv-kat-ikona svg{width:54px;height:54px;}
.sv-kat--pripravujeme .sv-kat-text h3{color:var(--sv-inkoust-70);}
@media (hover:hover) and (pointer:fine){
	.sv-kat--pripravujeme:hover{transform:none;box-shadow:none;}
}

/* --- postup, čtyři kroky -------------------------------------------------
   Krok je Elementor kontejner, číslo je textový widget. */
.sv-krok{text-align:center;}
.sv-krok .sv-krok-cislo{margin-bottom:0;}
.sv-krok .sv-krok-cislo p{margin:0;}
.sv-krok h3{margin:0;}
.sv-krok p{
	font-size:.92rem;
	color:var(--sv-inkoust-70);
	font-weight:300;
	margin:0;
}
/* Stehová linka spojující kroky se na mobilu nehodí — kroky jsou pod sebou. */
@media (max-width:1024px){
	.sv-postup::before{display:none;}
}

/* --- tmavý blok na míru --------------------------------------------------
   Stehová textura místo SVG nitě: stejný motiv, o jeden widget méně.  */
.sv-nit::before{
	content:"";
	position:absolute;
	inset:0;
	pointer-events:none;
	opacity:.14;
	background-image:repeating-linear-gradient(118deg,
		#fff 0 9px, transparent 9px 21px);
	-webkit-mask-image:radial-gradient(130% 90% at 82% 8%,#000 0%,transparent 68%);
	        mask-image:radial-gradient(130% 90% at 82% 8%,#000 0%,transparent 68%);
}
.sv-tmavy > *{position:relative;z-index:1;}

/* Seznam odrážek Elementoru uvnitř tmavého bloku. */
.sv-tmavy .elementor-icon-list-item,
.sv-tmavy .elementor-icon-list-text{color:rgba(255,255,255,.9);}
.sv-tmavy .elementor-icon-list-icon svg,
.sv-tmavy .elementor-icon-list-icon i{color:#FFD9DD;}
.sv-tmavy .elementor-icon-list-items{border:0;}
.sv-tmavy .elementor-icon-list-item:not(:last-child){
	border-bottom:1px dashed rgba(255,255,255,.22);
	padding-bottom:11px;
	margin-bottom:11px;
}

/* Malá vysvětlující karta v tmavém bloku. */
.sv-karta--v-tmavem{
	background:rgba(255,255,255,.1);
	border:1px solid rgba(255,255,255,.22);
	border-radius:var(--sv-r-l);
	padding:26px;
}
.sv-karta--v-tmavem h4{color:#fff;margin:0 0 8px;}
.sv-karta--v-tmavem p{
	margin:0;
	font-size:.93rem;
	color:rgba(255,255,255,.78);
	font-weight:300;
}

/* --- ohlasy -------------------------------------------------------------- */
.sv-ohlas .elementor-widget:not(:last-child){margin-bottom:0;}
.sv-ohlas cite{
	display:block;
	font-style:normal;
	font-family:var(--sv-font-t);
	font-size:.78rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--sv-inkoust-45);
}

/* --- newsletter ---------------------------------------------------------- */
.sv-news{text-align:center;}
.sv-news .elementor-widget:not(:last-child){margin-bottom:0;}
.sv-news p{color:var(--sv-inkoust-70);max-width:46ch;margin-inline:auto;}

/* Contact Form 7 v jednom řádku. Pole má bílé pozadí na krémovém podkladu,
   takže hranice musí splňovat WCAG 1.4.11 (3:1) — proto --sv-ram-pole. */
.sv-news-form form{margin:0;}
.sv-news-form .sv-news-radek{
	display:flex;
	gap:10px;
	justify-content:center;
	flex-wrap:wrap;
	margin:0;
}
.sv-news-form input[type="email"]{
	flex:1 1 260px;
	max-width:340px;
	background:var(--sv-bila);
	border:1px solid var(--sv-ram-pole);
	border-radius:100px;
	padding:15px 22px;
	font-family:var(--sv-font-t);
	font-size:.94rem;
	color:var(--sv-inkoust);
}
.sv-news-form input[type="email"]:focus-visible{
	outline:2px solid var(--sv-koral-btn);
	outline-offset:2px;
	border-color:var(--sv-koral-btn);
}
.sv-news-form input[type="submit"]{
	background:var(--sv-koral-btn);
	color:#fff;
	border:0;
	cursor:pointer;
}
.sv-news-form input[type="submit"]:hover{background:var(--sv-koral-tmavy);}
.sv-news-form .sv-news-souhlas{
	display:block;
	margin:16px auto 0;
	max-width:52ch;
	font-size:.8rem;
	color:var(--sv-inkoust-45);
}
.sv-news-form .sv-news-souhlas .wpcf7-list-item{margin:0;}
.sv-news-form .wpcf7-not-valid-tip{
	font-size:.8rem;
	color:var(--sv-koral-tmavy);
	margin-top:6px;
}
.sv-news-form .wpcf7-response-output{
	margin:16px 0 0;
	border-radius:var(--sv-r-l);
	border-width:1px;
	font-size:.88rem;
	padding:12px 16px;
}
.sv-news-drobne p{
	font-size:.78rem;
	color:var(--sv-inkoust-45);
	margin:0;
}

/* --- mřížka produktů z WooCommerce shortcodu ----------------------------
   Shortcode [products] vypisuje standardní ul.products, kterou už stylují
   pravidla v sekci WooCommerce. Tady se řeší jen mezera pod ním. */
.sv-produkty-mriz ul.products{margin-bottom:0;}

/* --- fotka v rámečku (sekce "Nejvíc práce je uvnitř") -------------------
   Bez pevného poměru by se do sloupce vešla fotka v původní výšce 923 px
   a rozhodila by řádek. */
.sv-foto-ram img{
	display:block;
	width:100%;
	aspect-ratio:4/5;
	object-fit:cover;
	border-radius:var(--sv-r-xl);
	box-shadow:var(--sv-stin-l);
}

/* --- odrážky s fajfkou v tmavém bloku ----------------------------------- */
.sv-body-check{list-style:none;padding:0;margin:0;}
.sv-body-check li{
	display:flex;
	align-items:flex-start;
	gap:11px;
	padding:9px 0;
	font-size:.95rem;
	color:rgba(255,255,255,.9);
}
.sv-body-check li:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.22);}
.sv-body-check svg{
	width:17px;
	height:17px;
	color:#FFD9DD;
	flex:0 0 auto;
	margin-top:3px;
}

/* --- cenová značka v hero ------------------------------------------------
   .sv-hero-foto má overflow:hidden, takže přesah za pravý okraj se ořízne.
   Značka proto musí zůstat uvnitř. */
.sv-cena-znacka{right:20px;}

/* --- odesílací tlačítko Contact Form 7 -----------------------------------
   Je to <input type="submit">, ne <button>, takže ho společný selektor
   tlačítek nezasáhne a zůstalo by mu výchozí zaoblení 3 px. */
.sv-news-form input[type="submit"]{
	padding:15px 30px;
	border-radius:100px;
	font-family:var(--sv-font-t);
	font-size:.83rem;
	font-weight:500;
	letter-spacing:.1em;
	text-transform:uppercase;
	line-height:1.2;
	transition:background-color .3s;
}
.sv-news-form input[type="submit"]:focus-visible{
	outline:2px solid var(--sv-inkoust);
	outline-offset:2px;
}

/* --- rozestupy uvnitř karet ---------------------------------------------
   O mezery se stará gap kontejnerů, výchozí spodní mezera widgetů
   Elementoru by se k nim přičítala. */
.sv-kat .elementor-widget:not(:last-child),
.sv-kat-text .elementor-widget:not(:last-child),
.sv-krok .elementor-widget:not(:last-child),
.sv-karta--v-tmavem .elementor-widget:not(:last-child){margin-bottom:0;}

/* Nadpis v malé kartě tmavého bloku je h3 (kvůli pořadí úrovní po h2),
   ale opticky patří velikost h4 — je to vysvětlivka, ne sekce. */
.sv-karta--v-tmavem h3{
	color:#fff;
	margin:0 0 8px;
	font-size:1.15rem;
}
