/*======================================
Theme Name: Divi child
Theme URI: 
Description:
Version: 1.3
Author: Divi CZ / SK
Author URI: https://www.facebook.com/groups/diviczsk
Template: Divi
License: GNU General Public License v2 or later
======================================*/


/*------------------------------------
    Základní styly
------------------------------------*/

/* Zkrášlení podtržení odkazů - barvu si můžete libovolně nastavit podle potřeb */

.et_pb_posts a.more-link, a:link {
    -webkit-text-underline-position: under;
    -ms-text-underline-position: below;
    text-underline-position: under;
}

/* Sdílení na sociálních sítích pod příspěvkem - Monarch - platí, pokud používáte plugin Monarch */

.et_monarch .et_pb_section .et_social_inline_bottom {
    margin-top: 10px;
    margin-bottom: 0;
}
/*------------------------------------
    NewHair – migrace Divi 4 → Divi 5 (repozitář nh-migrace, CHANGELOG-migration.md)
------------------------------------*/

/* CHANGELOG 013 – Tlačítko kontaktního formuláře na plnou šířku.
   Additional CSS nastavuje `.et_pb_module .et_pb_contact_submit { width: 100% !important }`.
   V Divi 4 bylo tlačítko přímo v .et_contact_bottom_container (→ plná šířka formuláře).
   Divi 5 ho obaluje do .et_pb_button_wrapper (flex položka zúžená na obsah), takže 100 % = šířka textu.
   Dotčeno: všechny kontaktní formuláře (např. e-book na homepage), všechny jazyky. */
.et_pb_contact_form_container .et_contact_bottom_container > .et_pb_button_wrapper {
	flex: 1 1 auto;
	width: 100%;
}

/* CHANGELOG 013 – Výplň polí kontaktního formuláře.
   Additional CSS má `.et_pb_contact p input, .et_pb_contact p textarea { padding: 11px … 15px }`.
   Divi 5 vykresluje pole jako <div class="et_pb_contact_field"> místo <p>, selektor se neuplatní
   a platí výchozí výplň Divi 5 (16px). Stejná pravidla pro nové značkování:
   pole 52 → 42/47px jako na produkci (homepage e-book, /kontakt/ 42px = produkce). */
.et_pb_contact .et_pb_contact_field input,
.et_pb_contact .et_pb_contact_field textarea {
	padding-top: 11px;
	padding-bottom: 11px;
	padding-left: 15px;
}

/* CHANGELOG 016 – Svislé mezery kontaktních formulářů jako v Divi 4.
   D4: pole <p class="et_pb_contact_field"> s okrajem 2 % (Additional CSS) a tlačítko s margin-top -1.5 %.
   D5: flex formulář s pevným `gap: 15px` a nulovými okraji modulů.
   Ověřeno: /kontakt/, /last-call/, /last-call-lp/, homepage (1440 i 390 px) – pozice polí i tlačítka ±3 px. */
.et_pb_contact_form_container .et_pb_contact_form.et_flex_module {
	row-gap: 0;
}
.et_pb_contact_form_container .et_pb_contact_form .et_pb_contact_field.et_pb_module {
	margin-bottom: 2%;
}
.et_pb_contact_form_container .et_pb_contact_form .et_contact_bottom_container {
	margin-top: -1.5%;
}

/* CHANGELOG 016 – Poloviční pole formuláře na mobilu přes celou šířku.
   D4 nastavoval `.et_pb_contact_field_half` pod 767 px vždy na 100 % (polovinu na mobilu nešlo zvolit).
   Konverze zapsala šířku 12/24 i pro telefon (`et_flex_column_12_24_phone`), pole tak zůstávala vedle sebe. */
@media (max-width: 767px) {
	.et_pb_contact_form .et_pb_contact_field.et_flex_column_12_24_phone {
		width: 100%;
	}
}

/* CHANGELOG 019 – Skrytý nadpis skupiny u zaškrtávacích polí (Divi Contact Form Helper).
   DCFH pro D4 skrýval `.et_pb_contact_field_options_title`, pokud `use_field_label_cr` není „on“
   (výchozí off) – měla tak všechna pole webu (30 checkboxů, radio se nepoužívá). DCFH pro D5 tento
   atribut nepřevádí ani neuplatňuje → zobrazí se „New Field“ (+31 px). Dotčeno: formuláře se
   souhlasem (Last call, Sleva, Pro ženy, kontakt…), všechny jazyky. */
.et_pb_contact_form .et_pb_contact_field .et_pb_contact_field_options_title {
	display: none;
}

/* ------------------------------------------------------------------------------------------
 * CHANGELOG 021 – Šablony WooCommerce (body.et-db): spodní okraj modulů v řádcích s vlastní
 * mezerou (gutters 1/2/4).
 * Divi 5 vygeneroval pravidlo pro řádky s mezerou v režimu et-db s chybným selektorem
 * (`.et_pb_gutters1 .et-db #et-boc .et-l > .et_pb_column…` – nic nezasáhne), takže vyhraje
 * globální mezera z body (`.et_pb_gutters3.et-db … margin-bottom: 7.493 %`). Následek např.
 * na detailu produktu a v kategoriích: horní lišta hlavičky se zalomí do dvou řádků (+41 px),
 * řádek patičky (gutters2) má větší mezery. Hodnoty = pravidla Divi 4 (CSS produkce),
 * `body` kvůli specificitě (D5 pravidlo z body má 1,5,0).
 * Dotčeno: šablony WooCommerce, kde Divi 5 načte globální pravidlo gutters3 pro et-db (detail
 * produktu, kategorie a štítky produktů); všechny jazyky. Jinde (homepage, košík) se to pravidlo
 * nenačítá a řádky už sedí – proto omezení na třídy šablon. Jen desktop – tablet/mobil je OK.
 * ------------------------------------------------------------------------------------------ */
@media (min-width: 981px) {
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters1.et_pb_row .et_pb_column .et_pb_module { margin-bottom: 0; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_4_4 .et_pb_module { margin-bottom: 1.5%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_3_4 .et_pb_module { margin-bottom: 2.02%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_2_3 .et_pb_module { margin-bottom: 2.284%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_3_5 .et_pb_module { margin-bottom: 2.551%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_1_2 .et_pb_module { margin-bottom: 3.093%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_2_5 .et_pb_module { margin-bottom: 3.927%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_1_3 .et_pb_module { margin-bottom: 4.787%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_1_4 .et_pb_module { margin-bottom: 6.593%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_1_5 .et_pb_module { margin-bottom: 8.523%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters2.et_pb_row .et_pb_column_1_6 .et_pb_module { margin-bottom: 10.588%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_4_4 .et_pb_module { margin-bottom: 4%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_3_4 .et_pb_module { margin-bottom: 5.479%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_2_3 .et_pb_module { margin-bottom: 6.25%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_3_5 .et_pb_module { margin-bottom: 7.042%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_1_2 .et_pb_module { margin-bottom: 8.696%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_2_5 .et_pb_module { margin-bottom: 11.364%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_1_3 .et_pb_module { margin-bottom: 14.286%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_1_4 .et_pb_module { margin-bottom: 21.053%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_1_5 .et_pb_module { margin-bottom: 29.412%; }
	body:is(.single-product, .tax-product_cat, .tax-product_tag, .post-type-archive-product).et-db #et-boc .et-l .et_pb_gutters4.et_pb_row .et_pb_column_1_6 .et_pb_module { margin-bottom: 40%; }
}

/* ------------------------------------------------------------------------------------------
 * CHANGELOG 022 – Blurb: obrázek / ikona nad textem na střed.
 * Divi 4 měl `.et_pb_main_blurb_image { display: inline-block }` v obalu s `text-align: center`,
 * takže obrázek s nastavenou šířkou (např. 80 px) byl vždy na středu. Divi 5 ho vykreslí jako
 * blok o šířce obrázku bez automatických okrajů → obrázek vlevo (blok „Nejlepší cena / Špičková
 * klinika / Doživotní záruka…“ na homepage, /zakroky/, /landing/, /transplantace-vlasu-pro-muze/…).
 * Okraje auto mají nízkou specificitu: výslovné zarovnání z nastavení modulu (selektor modulu)
 * má přednost; u polohy vlevo/vpravo (table-cell) se auto okraje neuplatní.
 * Dotčeno: všechny blurby s obrázkem nahoře bez vlastního zarovnání, všechny jazyky.
 * ------------------------------------------------------------------------------------------ */
.et_pb_blurb_content > .et_pb_main_blurb_image {
	margin-left: auto;
	margin-right: auto;
}

/* ------------------------------------------------------------------------------------------
 * CHANGELOG 032 – Blurb: mezera pod obrázkem/ikonou nahoře (regrese Divi 5.14).
 * Divi 5.14 (BlurbModule::image_alignment_style_declaration) generuje u zarovnání na střed
 * `margin: auto` v CSS stránky (.et_pb_blurb_N > .et_pb_blurb_content > .et_pb_main_blurb_image).
 * Zkratka přepíše i spodní okraj 30 px z Divi → ikona přilepená k nadpisu, blurb o ~30 px nižší
 * (sekce „Proč chtít nové vlasy…“ na homepage a /transplantace-vlasu-pro-muze/: −240 px na 390 px).
 * Divi 4 má u polohy nahoře vždy 30 px. Specificita 0,4,0 > pravidlo modulu (0,3,0). Žádný blurb
 * nemá vlastní okraj obrázku (kontrola 1 523 blurbů 2026-10-09), takže se nic nastaveného nepřebije.
 * Dotčeno: blurby s obrázkem/ikonou nahoře, všechny jazyky.
 * ------------------------------------------------------------------------------------------ */
.et_pb_blurb.et_pb_blurb_position_top > .et_pb_blurb_content > .et_pb_main_blurb_image {
	margin-bottom: 30px;
}

/* ------------------------------------------------------------------------------------------
 * CHANGELOG 037 – Karusel Divi Pixel před spuštěním JS (probliknutí snímků v hero sekci).
 * LiteSpeed spouští JS až po první interakci (Delay JS). Do té doby nemá Swiper nastavené šířky
 * snímků a Divi Pixel pro Divi 5 je nechá v řadě s vlastní šířkou obsahu: v hero slideru na
 * homepage byly vidět 3 snímky namačkané vedle sebe, po spuštění JS přeskočily na jeden přes
 * celou šířku. (Divi 4 na produkci karusel do spuštění JS skrývá úplně a stránka pak poskočí.)
 * Dokud karusel není inicializovaný (.swiper-initialized), rozložíme snímky podle počtu sloupců
 * z atributů data-columns* a mezery 30 px – stejně, jako je potom rozloží Swiper.
 * Dotčeno: všechny karusely Divi Pixel, všechny jazyky. Po inicializaci se pravidla neuplatní.
 * ------------------------------------------------------------------------------------------ */
.dipi-carousel-main .swiper-container:not(.swiper-initialized) > .dipi-carousel-wrapper > .dipi_carousel_child {
	flex: 0 0 auto;
	box-sizing: border-box;
	width: calc((100% - (var(--nh-dipi-cols, 1) - 1) * 30px) / var(--nh-dipi-cols, 1));
	margin-right: 30px;
}
@media (min-width: 981px) {
	.dipi-carousel-main[data-columnsdesktop="1"] { --nh-dipi-cols: 1; }
	.dipi-carousel-main[data-columnsdesktop="2"] { --nh-dipi-cols: 2; }
	.dipi-carousel-main[data-columnsdesktop="3"] { --nh-dipi-cols: 3; }
	.dipi-carousel-main[data-columnsdesktop="4"] { --nh-dipi-cols: 4; }
	.dipi-carousel-main[data-columnsdesktop="5"] { --nh-dipi-cols: 5; }
	.dipi-carousel-main[data-columnsdesktop="6"] { --nh-dipi-cols: 6; }
}
@media (min-width: 768px) and (max-width: 980px) {
	.dipi-carousel-main[data-columnstablet="1"] { --nh-dipi-cols: 1; }
	.dipi-carousel-main[data-columnstablet="2"] { --nh-dipi-cols: 2; }
	.dipi-carousel-main[data-columnstablet="3"] { --nh-dipi-cols: 3; }
	.dipi-carousel-main[data-columnstablet="4"] { --nh-dipi-cols: 4; }
	.dipi-carousel-main[data-columnstablet="5"] { --nh-dipi-cols: 5; }
	.dipi-carousel-main[data-columnstablet="6"] { --nh-dipi-cols: 6; }
}
@media (max-width: 767px) {
	.dipi-carousel-main[data-columnsphone="1"] { --nh-dipi-cols: 1; }
	.dipi-carousel-main[data-columnsphone="2"] { --nh-dipi-cols: 2; }
	.dipi-carousel-main[data-columnsphone="3"] { --nh-dipi-cols: 3; }
	.dipi-carousel-main[data-columnsphone="4"] { --nh-dipi-cols: 4; }
	.dipi-carousel-main[data-columnsphone="5"] { --nh-dipi-cols: 5; }
	.dipi-carousel-main[data-columnsphone="6"] { --nh-dipi-cols: 6; }
}

/* CHANGELOG 038 – detail produktu, tlačítko „Přidat do košíku“ (všechny produkty, všechny šířky).
   Modul má nastavené okraje 15px 35px a ikonu vypnutou. Divi 5.14 za ně vypíše ještě výchozí
   `padding: .3em 1em !important` pro tlačítko bez ikony (stejná specificita, později v souboru),
   takže tlačítko bylo vysoké 37 px místo 57 px jako na produkci (Divi 4). */
.et-db #et-boc .et-l .et_pb_wc_add_to_cart.et_pb_module .single_add_to_cart_button.button,
.et-db #et-boc .et-l .et_pb_wc_add_to_cart.et_pb_module .single_add_to_cart_button.button:hover {
	padding: 15px 35px !important;
}

/* CHANGELOG 044 – písmo Montserrat přímo z webu (místo čtyř požadavků na Google Fonts, které
   na mobilu blokovaly první vykreslení asi 2,7 s). Proměnné písmo 100–900, latinka + rozšířená
   latinka, normální řez a kurzíva (soubory z Google Fonts v31, licence OFL). Kurzíva se stáhne
   jen tam, kde se použije. Odkazy na Google Fonts odstraňuje inc/nh-migrace-divi5.php. */
/* CHANGELOG 047 – pravidla @font-face pro Montserrat se tisknou přímo do <head>
   (inc/nh-migrace-divi5.php, nh_vykon_pisma_v_hlavicce). Tady být nesmí: LiteSpeed servíruje
   sloučené CSS všech jazyků z newhair.cz, adresa písma by se tak na newhair.sk a dalších doménách
   vztahovala k cizí doméně a prohlížeč by písmo zablokoval (CORS). */

/* CHANGELOG 044 – horní lišta hlavičky (všechny stránky, čeština; desktop 981–1400 px).
   Pravý sloupec (košík, kontakt, vlajka) má 40 % šířky a pod asi 1400 px se do něj obsah nevejde.
   Po načtení písma se zalomil na druhý řádek, lišta narostla ze 45 na 69 px a stránka poskočila
   (CLS 0,29 v PageSpeed). Pravý sloupec se teď roztáhne podle obsahu, nejméně na původních 40 %,
   takže od 1440 px výš se nic nemění. !important kvůli šablonám WooCommerce (body.et-db). */
@media (min-width: 981px) {
	.et-l--header .et_pb_row.two-columns {
		display: flex !important;
	}
	.et-l--header .et_pb_row.two-columns > .et_pb_column:first-child {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0;
	}
	.et-l--header .et_pb_row.two-columns > .et_pb_column:last-child {
		flex: 0 0 auto !important;
		width: auto !important;
		min-width: 40%;
		margin-right: 0 !important;
		white-space: nowrap;
	}
}

/* CHANGELOG 048 – záložky Divi Pixel (/klienti/, desktop). Po vypuštění balíku stylů Divi Pixel
   pro Divi 4 přebilo obecné pravidlo Divi (spodní okraj modulu 2,75 %) nulový okraj panelů
   záložek, protože styly pro Divi 5 se načítají dřív než styly Divi. Vyšší specificita vrací
   původní stav bez závislosti na pořadí souborů. */
@media (min-width: 981px) {
	.et_pb_column .et_pb_module.dipi_advanced_tabs_item.dipi_advanced_tabs_item { margin-bottom: 0; }
}
