/* BEST OF MIAZGA - globalne tokeny marki (motyw potomny). */
:root{
	--bom-pink:#FF2E9F;--bom-pink-2:#E5147A;--bom-magenta:#C81D8C;--bom-violet:#6F1FB6;--bom-violet-2:#4A1485;
	--bom-ink:#15082A;--bom-muted:#6B5778;--bom-cream:#FBF7F4;--bom-line:rgba(21,8,42,.1);
	--bom-grad:linear-gradient(96deg,#FF2E9F 0%,#C81D8C 45%,#6F1FB6 100%);
	--bom-font-display:'Mulish',sans-serif;--bom-font-body:'Manrope',sans-serif;--bom-font-script:'Caveat',cursive;
}
/* Gradientowy tekst - globalnie, bez wstrzykiwania <style> w szablonach.
   Uzycie w Elementorze: <span class="grad-text">slowo.</span> w tytule widzetu. */
.grad-text{background:var(--bom-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
/* Domyslne linki i zaznaczenie w kolorach marki (kit Elementora nadpisuje tam, gdzie ustawiono inaczej). */
a{color:var(--bom-magenta)}
a:hover,a:focus{color:var(--bom-pink-2)}
::selection{background:var(--bom-pink);color:#fff}

/* ── Odsłanianie przy przewijaniu (wyłączone przy prefers-reduced-motion) ── */
.bom-rv{opacity:0;transform:translateY(14px);transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1)}
.bom-rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.bom-rv{opacity:1!important;transform:none!important;transition:none!important}}
/* ── Separator sekcji: cienka linia z gradientowym środkiem ── */
.bom-sep-grad{height:1px;border:0;margin:44px 0;background:linear-gradient(90deg,transparent,rgba(21,8,42,.12) 18%,rgba(200,29,140,.45) 50%,rgba(21,8,42,.12) 82%,transparent)}

/* ── 2.0.4: strony wtyczek (Programy, Postepy, Dieta) w linii 1320 px jak karta produktu ── */
body:has(.bom-strona) :is(.site-main,main,article,.page-content,.entry-content,.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget-container){max-width:none!important;width:auto!important;padding-left:0!important;padding-right:0!important}
body .bom-strona{max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;padding-left:24px!important;padding-right:24px!important;box-sizing:border-box}
@media(max-width:900px){body .bom-strona{padding-left:16px!important;padding-right:16px!important}}

/* ── 2.0.6: JEDEN naglowek strony w widokach wtyczek (Diety, Programy, Pomiary) ── */
:is(.bom-hd2,.bod3-hd,.bod-hd){margin:0 0 28px!important;padding:0!important;max-width:none!important}
:is(.bom-eyebrow2,.bod3-eyebrow,.bod-eyebrow){display:inline-flex!important;align-items:center;gap:10px;font-family:var(--bom-font-body)!important;font-size:11px!important;font-weight:800!important;letter-spacing:.18em!important;line-height:1.2!important;text-transform:uppercase!important;color:var(--bom-magenta)!important;-webkit-text-fill-color:var(--bom-magenta)!important}
:is(.bom-hd2,.bod3-hd,.bod-hd) h1{font-family:var(--bom-font-display)!important;font-style:italic!important;font-weight:900!important;font-size:46px!important;line-height:1.04!important;letter-spacing:-.01em!important;margin:12px 0 10px!important;max-width:900px;color:var(--bom-ink)}
:is(.bom-hd2,.bod3-hd,.bod-hd) h1 :is(span,em,b){font-family:inherit!important;font-style:inherit!important;font-weight:inherit!important;font-size:inherit!important;line-height:inherit!important}
:is(.bom-hd2,.bod3-hd,.bod-hd) p{font-family:var(--bom-font-body)!important;font-size:16px!important;line-height:1.6!important;font-weight:500!important;color:var(--bom-muted)!important;-webkit-text-fill-color:var(--bom-muted)!important;max-width:720px!important;margin:0!important}
/* jednakowy oddech nad naglowkiem i pod nim */
body .bom-strona{padding-top:34px!important;padding-bottom:44px!important}
html body .bod3-wrap{padding-top:34px!important}
@media(max-width:900px){
	:is(.bom-hd2,.bod3-hd,.bod-hd) h1{font-size:32px!important;margin:10px 0 8px!important}
	:is(.bom-hd2,.bod3-hd,.bod-hd) p{font-size:15px!important}
	:is(.bom-hd2,.bod3-hd,.bod-hd){margin-bottom:22px!important}
	body .bom-strona{padding-top:24px!important}
	html body .bod3-wrap{padding-top:24px!important}
}
/* gdy widok wtyczki ma wlasny naglowek, pasek tytulu motywu jest zbedny */
body:has(:is(.bom-hd2,.bod3-hd,.bod-hd)) .bom-page-header{display:none!important}

/* ── 2.1.0: stopka w trzech kolumnach (logo | informacje | social) ── */
.bom-footer .bom-footer-in-3{grid-template-columns:1.5fr 1fr 1fr!important;gap:44px!important;align-items:start}
.bom-footer .bom-footer-brand p{max-width:320px}
.bom-footer .bom-footer-social{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bom-footer .bom-footer-social a{display:inline-flex;align-items:center;gap:11px;min-height:44px;font-size:13.5px;font-weight:700;color:rgba(255,255,255,.72)!important;text-decoration:none;transition:color .16s}
.bom-footer .bom-footer-social a:hover{color:#fff!important}
.bom-footer .bom-soc-ic{width:36px;height:36px;min-width:36px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;transition:border-color .16s,background .16s}
.bom-footer .bom-soc-ic svg{width:17px;height:17px}
.bom-footer .bom-footer-social a:hover .bom-soc-ic{border-color:transparent;background:var(--bom-grad)}
@media(max-width:900px){
	.bom-footer .bom-footer-in-3{grid-template-columns:1fr!important;gap:28px!important}
	.bom-footer .bom-footer-brand p{max-width:none}
}

/* ── 2.1.1: strony wtyczek naprawde na pelnej szerokosci (kontenery Elementora v3) ── */
body:has(.bom-strona) :is(.site-main,main,#content,.content-area,article,.page,.page-content,.entry-content,.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget,.elementor-widget-container,.e-con,.e-con-inner,.e-child,.e-parent){max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
body:has(.bom-strona) :is(.e-con,.e-con-inner,.e-parent,.e-child){--width:100%!important;--content-width:100%!important;--container-max-width:100%!important}
body:has(.bom-strona) .elementor-column{flex-basis:100%!important}
/* sam widok trzyma linie 1320 px, a jego sekcje nie maja wlasnych ograniczen */
body .bom-strona{width:100%!important;max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}
body .bom-strona :is(.bom-hd2,.bom-tiles,.bom-cards,.bom-lista,.bom-pt-kafle,.bom-pt-grid,.bom-sekcja,.bom-panel){max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important}
body .bom-strona .bom-tiles{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;gap:14px!important}
body .bom-strona .bom-hd2 h1{max-width:900px!important}
body .bom-strona .bom-hd2 p{max-width:760px!important}
@media(max-width:760px){body .bom-strona .bom-tiles{grid-template-columns:1fr!important}}

/* ── 2.1.2: Moje konto tez omija kontenery Elementora v3 (to one wracaly z waska szerokoscia) ── */
body.woocommerce-account :is(.site-main,main,#content,.content-area,article,.page,.page-content,.entry-content,.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget,.elementor-widget-container,.elementor-widget-woocommerce-my-account,.e-con,.e-con-inner,.e-parent,.e-child){max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
body.woocommerce-account :is(.e-con,.e-con-inner,.e-parent,.e-child){--width:100%!important;--content-width:100%!important;--container-max-width:100%!important}
body.woocommerce-account .elementor-column{flex-basis:100%!important}
body.woocommerce-account :is(.woocommerce,.bom-acc-layout,.woocommerce-MyAccount-content){width:100%!important;max-width:none!important;float:none!important}

/* ═══ 2.2.0 - JEDNA LINIA UKŁADU DLA CAŁEJ WITRYNY ═══
   Wzorcem jest karta produktu: 1320 px szerokości, 24 px marginesu (16 px na telefonie).
   Wszystkie kontenery widoków dostają tę samą regułę, więc nic nie zwęża się z powrotem. */
:root{--bom-linia:1320px;--bom-oddech:24px}
@media(max-width:900px){:root{--bom-oddech:16px}}
html body :is(
	.bom-shop-wrap,
	.bom-acc-layout,
	.bomk,.bomk-auth,
	.bom-strona,.bod-strona,.bod3-wrap,
	.bom-wrap-n,
	.bom-page-header-in,
	.woocommerce-notices-wrapper,
	.bom-header-in,.bom-footer-in,.bom-footer-bottom,
	.bom-platforma-in,
	.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout
){width:100%!important;max-width:var(--bom-linia)!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--bom-oddech)!important;padding-right:var(--bom-oddech)!important;box-sizing:border-box}
/* strony sklepu, konta, koszyka i zamowienia: kontenery motywu i Elementora nie moga niczego zwezac */
body:is(.woocommerce-account,.woocommerce-cart,.woocommerce-checkout,.woocommerce-order-received,.search,.error404,.blog,.archive,.single-post) :is(.site-main,main,#content,.content-area,article,.page,.page-content,.entry-content,.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget,.elementor-widget-container,.e-con,.e-con-inner,.e-parent,.e-child),
body:has(:is(.bom-strona,.bod3,.bod-strona)) :is(.site-main,main,#content,.content-area,article,.page,.page-content,.entry-content,.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget,.elementor-widget-container,.e-con,.e-con-inner,.e-parent,.e-child){max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
body:is(.woocommerce-account,.woocommerce-cart,.woocommerce-checkout,.woocommerce-order-received) :is(.e-con,.e-con-inner,.e-parent,.e-child),
body:has(:is(.bom-strona,.bod3,.bod-strona)) :is(.e-con,.e-con-inner,.e-parent,.e-child){--width:100%!important;--content-width:100%!important;--container-max-width:100%!important}
/* wewnetrzne bloki nie moga miec wlasnych, wezszych limitow */
html body :is(.bom-strona,.bomk,.bomk-auth,.bod3-wrap) :is(.bom-hd2,.bom-tiles,.bom-cards,.bom-lista,.bom-pt-kafle,.bom-pt-grid){max-width:none!important;width:auto!important}
html body .woocommerce-account :is(.woocommerce,.woocommerce-MyAccount-content){max-width:none!important;width:100%!important;padding-left:0!important;padding-right:0!important}
html body .bomk>*{max-width:none!important;padding-left:0!important;padding-right:0!important}

/* ═══ 2.2.2 - KONIEC WASKICH WIDOKOW: odblokowujemy kazdego przodka ═══
   Powod: strony z shortcode'ami wtyczek (Programy, Pomiary, Dieta) i Moje konto
   po wylogowaniu trafialy do kolumny prozy 760 px (.bom-prose) albo do kontenera
   Elementora o innej klasie niz te wymienione wyzej. Zamiast dopisywac kolejne
   klasy - zdejmujemy limit z CALEJ sciezki przodkow widoku. */
html body :has(:is(.bomk,.bomk-auth,.bom-strona,.bod-strona,.bod3-wrap,.bom-shop-wrap,.bom-acc-layout,.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout)):not(:is(.bomk,.bomk-auth,.bom-strona,.bod-strona,.bod3-wrap,.bom-shop-wrap,.bom-acc-layout,.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout,.bom-header,.bom-footer)){max-width:none!important;width:auto!important;padding-left:0!important;padding-right:0!important;float:none!important}
html body :has(:is(.bomk,.bomk-auth,.bom-strona,.bod-strona,.bod3-wrap,.bom-shop-wrap,.bom-acc-layout,.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout)):is(.e-con,.e-con-inner,.e-parent,.e-child){--width:100%!important;--content-width:100%!important;--container-max-width:100%!important}
/* wrapper w wrapperze nie dodaje drugiego marginesu */
html body :is(.bomk,.bomk-auth,.bom-strona,.bod-strona,.bod3-wrap,.bom-shop-wrap,.bom-acc-layout,.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) :is(.bomk,.bomk-auth,.bom-strona,.bod-strona,.bod3-wrap,.bom-shop-wrap,.bom-acc-layout,.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout){max-width:none!important;padding-left:0!important;padding-right:0!important}
/* kolumna prozy obowiazuje tylko tam, gdzie naprawde jest proza */
html body .bom-prose:has(:is(.bomk,.bomk-auth,.bom-strona,.bod-strona,.bod3-wrap,.bom-shop-wrap,.bom-acc-layout,.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout)){max-width:none!important;padding-left:0!important;padding-right:0!important}

/* ── 2.2.6 ── */
/* ── czytelnosc guzikow: twarde wymuszenie koloru tekstu (odporne na -webkit-text-fill-color z motywu/Elementora) ── */
.btn{-webkit-background-clip:border-box;background-clip:border-box}
.btn,.btn *{-webkit-text-fill-color:currentColor}
.btn-primary,.btn-primary:hover,.btn-primary:focus,.btn-primary:visited,.btn-primary *{color:#fff!important;-webkit-text-fill-color:#fff!important}
.btn-outline,.btn-outline:hover,.btn-outline:focus,.btn-outline:visited,.btn-outline *{color:#fff!important;-webkit-text-fill-color:#fff!important}
.btn-ghost,.btn-ghost:visited,.btn-ghost *{color:#15082A!important;-webkit-text-fill-color:#15082A!important}
.btn-ghost:hover,.btn-ghost:hover *{color:#fff!important;-webkit-text-fill-color:#fff!important}
.btn-light,.btn-light:hover,.btn-light:focus,.btn-light:visited,.btn-light *{color:#15082A!important;-webkit-text-fill-color:#15082A!important}

/* === 2.4.3 - BRANDING IKON ELEMENTORA (globalnie): kwadracik z gradientem marki + biala ikona.
   Naprawia "niebieskie" ikony ze starych szablonow (siatka produktow potrafi wskazywac
   stara kopie Loop Item po reimporcie) - motyw wymusza wyglad niezaleznie od ustawien widzetu. === */
.elementor-widget-icon .elementor-icon,.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon{background:linear-gradient(96deg,#FF2E9F 0%,#C81D8C 45%,#6F1FB6 100%)!important;color:#fff!important;fill:#fff!important;width:44px!important;height:44px!important;min-width:44px;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:12px!important;padding:0!important;box-shadow:0 10px 22px -10px rgba(255,46,159,.5)}
.elementor-widget-icon .elementor-icon i,.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon i{font-size:17px!important;color:#fff!important}
.elementor-widget-icon .elementor-icon svg,.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon svg{width:17px!important;height:17px!important;fill:#fff!important}
.elementor-widget-icon .elementor-icon:hover,.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon:hover{color:#fff!important;fill:#fff!important}

/* === 2.4.5 - KOLORY NAGLOWKOW NA PRODUKCIE Z MOTYWU (bez reimportu opisow):
   naglowki bez ustawionego koloru dziedziczyly blekit z ustawien globalnych Elementora.
   Liczby statystyk (naglowki renderowane jako DIV) = magenta marki; zwykle naglowki bez
   koloru = atrament. Naglowki z JAWNIE ustawionym kolorem (np. biale na gradiencie)
   wygrywaja wyzsza specyficznoscia CSS Elementora - te reguly ich nie ruszaja. === */
.single-product .elementor div.elementor-heading-title{color:#C81D8C!important}
.single-product .elementor :is(h1,h2,h3,h4,h5,h6).elementor-heading-title{color:#15082A}
