/* =========================================================================
   Endocare — Diagnostyka online
   Paleta i typografia zgodne z globalnym kitem Elementora strony.
   Wszystko zawężone do .ed / .ed-koszyk, żeby nie kolidowało z motywem.
   ========================================================================= */

.ed,
.ed-koszyk,
.ed-fab{
  --at:#330944;      /* atrament */
  --fi:#40005C;      /* fiolet */
  --la:#F2EFFE;      /* lawenda */
  --zl:#F0D06C;      /* złoto */
  --bi:#FFFFFF;
  --mg:#E4DAF3;
  --dym:rgba(51,9,68,.64);
  --kr:rgba(51,9,68,.11);
  --krj:rgba(255,255,255,.15);
  --maks:1220px;
  --rytm:clamp(64px,7.5vw,112px);
  --rd:24px;
  --rs:15px;
  --cien:0 28px 60px -32px rgba(51,9,68,.45);

  font-family:"Parkinsans",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--at);
}

.ed *,.ed *::before,.ed *::after,
.ed-koszyk *,.ed-koszyk *::before,.ed-koszyk *::after{box-sizing:border-box}

.ed{font-size:17px;line-height:1.65}
.ed img{max-width:100%;height:auto;display:block}
.ed p{margin:0 0 1.05em}
.ed p:last-child{margin-bottom:0}
.ed ul,.ed ol{margin:0;padding:0;list-style:none}
.ed a{color:inherit}
.ed svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.ed-wrap{width:min(100% - 40px,var(--maks));margin-inline:auto}

/* Motyw dokłada własny pasek z tytułem strony — powielałby nasz nagłówek H1. */
body.endo-sklep .meta-header{display:none}

/* Klasy z display (np. .ed-btn) wygrywają z regułą [hidden] z arkusza przeglądarki,
   więc ukrywanie elementów wymaga jawnego wymuszenia. */
.ed [hidden],
.ed-koszyk [hidden],
.ed-fab[hidden]{display:none !important}

.ed :focus-visible,
.ed-koszyk :focus-visible,
.ed-fab:focus-visible{outline:3px solid var(--fi);outline-offset:3px;border-radius:8px}

/* ---------- typografia ---------------------------------------------------- */
.ed-eyebrow{
  font-size:11px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;
  color:var(--fi);margin:0 0 16px
}
.ed-eyebrow--jasny{color:var(--zl)}
.ed-h2{font-size:clamp(28px,3.3vw,42px);font-weight:600;line-height:1.14;letter-spacing:-.016em;margin:0 0 20px}
.ed-h2--jasny{color:var(--bi)}
.ed-lead{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--dym);max-width:52ch}
.ed em{
  font-style:normal;text-decoration:underline;text-decoration-color:var(--zl);
  text-decoration-thickness:.075em;text-underline-offset:.18em;text-decoration-skip-ink:none
}

/* ---------- przyciski ----------------------------------------------------- */
.ed-btn{
  --bg:transparent;--fg:var(--at);--bd:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:15px 28px;border-radius:999px;border:1.5px solid var(--bd);
  background:var(--bg);color:var(--fg);
  font:600 15px/1 "Parkinsans",system-ui,sans-serif;
  text-decoration:none;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease
}
.ed-btn:hover{transform:translateY(-2px)}
.ed-btn--zloto{--bg:var(--zl);--fg:var(--at);box-shadow:0 10px 26px rgba(240,208,108,.44)}
.ed-btn--zloto:hover{box-shadow:0 16px 34px rgba(240,208,108,.56)}
.ed-btn--fiolet{--bg:var(--fi);--fg:#fff}
.ed-btn--linia{--bd:var(--kr)}
.ed-btn--maly{padding:11px 20px;font-size:14px}
.ed-btn--pelny{width:100%}
.ed-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.ed-btn.is-dodany{--bg:#0a7d33;--fg:#fff;box-shadow:none}

/* ---------- plakietki i drobiazgi ----------------------------------------- */
.ed-plakietka{
  display:inline-flex;align-items:center;
  padding:7px 14px;border-radius:999px;
  font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase
}
.ed-plakietka--zloto{background:var(--zl);color:var(--at)}
.ed-plakietka--rabat{background:var(--fi);color:#fff}
.ed-znacznik{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:600;color:var(--fi)
}
.ed-znacznik::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--zl);box-shadow:0 0 0 3px rgba(240,208,108,.28)}

.ed-zastepnik{
  display:grid;place-content:center;gap:2px;height:100%;
  background:linear-gradient(150deg,var(--fi),var(--at));color:#fff;text-align:center
}
.ed-zastepnik span{font-size:44px;font-weight:600;line-height:1}
.ed-zastepnik i{font-style:normal;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.72}
.ed-zastepnik--hit span{font-size:26px;letter-spacing:-.01em}

/* ---------- potwierdzenie ------------------------------------------------- */
.ed-potwierdzenie{padding:26px 0 0}
.ed-potwierdzenie__box{
  display:flex;gap:18px;align-items:flex-start;
  border-radius:var(--rd);padding:24px 28px;
  background:var(--la);border:1px solid var(--mg)
}
.ed-potwierdzenie.is-ok .ed-potwierdzenie__box{background:#EAF7EE;border-color:#BFE3CB}
.ed-potwierdzenie__ikona{flex:none;width:42px;height:42px;padding:9px;border-radius:50%;background:var(--bi);color:var(--fi)}
.ed-potwierdzenie.is-ok .ed-potwierdzenie__ikona{color:#0a7d33}
.ed-potwierdzenie h2{margin:0 0 6px;font-size:20px;font-weight:600;line-height:1.3}
.ed-potwierdzenie p{margin:0;font-size:15.5px;color:var(--dym)}

/* ---------- hero ---------------------------------------------------------- */
.ed-hero{padding:clamp(40px,4.6vw,68px) 0 clamp(34px,4vw,54px)}
.ed-hero__grid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(30px,4.5vw,64px);align-items:center}
.ed-hero__h1{font-size:clamp(34px,4.2vw,54px);font-weight:600;line-height:1.07;letter-spacing:-.026em;margin:0 0 22px}
.ed-hero__akcje{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* zdjęcie w nagłówku */
.ed-hero__foto{position:relative;margin:0}
.ed-hero__foto img{
  width:100%;aspect-ratio:5/4;object-fit:cover;
  border-radius:var(--rd);box-shadow:var(--cien)
}
.ed-hero__foto figcaption{
  position:absolute;left:-16px;bottom:22px;
  display:flex;flex-direction:column;gap:2px;
  background:var(--bi);border-radius:var(--rs);
  padding:14px 22px;
  box-shadow:0 20px 44px -18px rgba(51,9,68,.5)
}
.ed-hero__foto figcaption strong{font-size:16px;font-weight:600;line-height:1.25}
.ed-hero__foto figcaption span{font-size:13.5px;color:var(--dym)}

/* pasek faktów pod nagłówkiem */
.ed-fakty{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;
  margin-top:clamp(34px,4vw,54px);
  border-top:1px solid var(--kr);border-bottom:1px solid var(--kr)
}
.ed-fakty li{
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  padding:22px 24px;border-left:1px solid var(--kr)
}
.ed-fakty li:first-child{border-left:0;padding-left:0}
.ed-fakty strong{font-size:15px;font-weight:600;line-height:1.3}
.ed-fakty span{font-size:13px;color:var(--dym);line-height:1.4}

@media (max-width:960px){
  .ed-hero__grid{grid-template-columns:1fr;gap:30px}
  .ed-hero__foto figcaption{left:16px;bottom:16px}
  .ed-fakty{grid-template-columns:repeat(2,1fr)}
  .ed-fakty li{border-left:0;padding:18px 0}
  .ed-fakty li:nth-child(even){padding-left:22px;border-left:1px solid var(--kr)}
}
@media (max-width:520px){
  .ed-fakty{grid-template-columns:1fr}
  .ed-fakty li:nth-child(even){padding-left:0;border-left:0}
  .ed-fakty li + li{border-top:1px solid var(--kr)}
}

/* ---------- katalog ------------------------------------------------------- */
.ed-katalog{padding:0 0 var(--rytm)}
.ed-katalog__gora,.ed-sekcja__gora{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);
  align-items:end;margin-bottom:clamp(28px,3.4vw,44px)
}
.ed-katalog__lid,.ed-sekcja__lid{font-size:16.5px;color:var(--dym)}

.ed-filtry{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}
.ed-filtr{
  padding:10px 18px;border-radius:999px;border:1.5px solid var(--kr);
  background:transparent;color:var(--dym);cursor:pointer;
  font:600 13.5px/1 "Parkinsans",system-ui,sans-serif;
  transition:all .18s ease
}
.ed-filtr:hover{border-color:var(--mg);color:var(--at)}
.ed-filtr.is-akt{background:var(--at);border-color:var(--at);color:#fff}

/* styl kafla wyróżnionego definiujemy niżej, po regułach .ed-karta,
   żeby wygrał kolejnością w kaskadzie — patrz sekcja „kafel wyróżniony” */

/* siatka kart — równe wysokości */
.ed-siatka{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:18px}
.ed-karta{
  display:flex;flex-direction:column;
  background:var(--bi);border:1px solid var(--kr);border-radius:var(--rd);
  overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease
}
.ed-karta:hover{transform:translateY(-3px);box-shadow:var(--cien);border-color:transparent}
.ed-karta[hidden]{display:none}

.ed-karta__foto{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--la)}
.ed-karta__foto img{width:100%;height:100%;object-fit:cover}
.ed-karta__foto .ed-plakietka{position:absolute;left:14px;top:14px}
/* Kadrowanie zdjęć diagnostyki — stary turkusowy sygnet zostaje poza kadrem. */
.ed-karta__foto--tubes img{object-position:18% 92%}
.ed-karta__foto--rece img{object-position:82% 62%}

.ed-karta__tresc{display:flex;flex-direction:column;flex:1;gap:10px;padding:22px 24px 24px}
.ed-karta__t{margin:0;font-size:16px;font-weight:600;line-height:1.3}
.ed-karta__t a{text-decoration:none}
.ed-karta__t a:hover{text-decoration:underline;text-underline-offset:3px}
.ed-karta__opis{margin:0;font-size:14.5px;color:var(--dym);line-height:1.5}
.ed-karta__meta{margin:0}
.ed-karta__dol{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:auto;padding-top:16px;border-top:1px solid var(--kr)
}
.ed-cena{margin:0;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.ed-cena__teraz{font-size:21px;font-weight:600;letter-spacing:-.015em}
.ed-cena__stara{font-size:14px;color:var(--dym)}

/* ---------- kafel wyróżniony --------------------------------------------- */
/* Zajmuje jedną komórkę siatki jak każdy inny pakiet, ale ma własny charakter:
   fioletowy gradient, złota plakietka i przycisk zamiast ceny. */
.ed-siatka .ed-karta--wyrozniona{
  position:relative;overflow:hidden;border-color:transparent;color:#fff;
  background:linear-gradient(150deg,var(--at) 0%,var(--fi) 62%,#4d0a6e 100%)
}
.ed-siatka .ed-karta--wyrozniona::before{
  content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;
  border-radius:50%;background:rgba(240,208,108,.13);pointer-events:none
}
.ed-siatka .ed-karta--wyrozniona .ed-karta__tresc{
  position:relative;z-index:1;gap:14px;padding:clamp(26px,2.7vw,32px)
}
.ed-siatka .ed-karta--wyrozniona .ed-plakietka{align-self:flex-start}
.ed-siatka .ed-karta--wyrozniona .ed-karta__t{color:#fff;font-size:17.5px;line-height:1.28}
.ed-siatka .ed-karta--wyrozniona .ed-karta__opis{color:rgba(255,255,255,.8);font-size:15px}
.ed-siatka .ed-karta--wyrozniona .ed-karta__dol{
  border-top-color:var(--krj);justify-content:flex-start
}
.ed-siatka .ed-karta--wyrozniona:hover{box-shadow:0 30px 64px -30px rgba(51,9,68,.7)}

@media (max-width:1000px){.ed-siatka{grid-template-columns:repeat(2,1fr)}
  .ed-katalog__gora,.ed-sekcja__gora{grid-template-columns:1fr;align-items:start}}
@media (max-width:600px){.ed-siatka{grid-template-columns:1fr}}

/* ---------- kroki --------------------------------------------------------- */
.ed-kroki{background:var(--at);color:#fff;padding:var(--rytm) 0}
.ed-kroki__lista{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:clamp(18px,2.4vw,32px);margin-top:36px}
.ed-kroki__lista li{
  display:flex;flex-direction:column;gap:10px;
  padding:28px 28px 30px;border-radius:var(--rd);
  background:rgba(255,255,255,.05);border:1px solid var(--krj)
}
.ed-kroki__nr{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:var(--zl);color:var(--at);font-weight:600;font-size:15px
}
.ed-kroki__lista h3{margin:6px 0 0;font-size:18px;font-weight:600;line-height:1.3;color:#fff}
.ed-kroki__lista p{margin:0;font-size:14.5px;color:rgba(255,255,255,.72);line-height:1.55}
@media (max-width:860px){.ed-kroki__lista{grid-template-columns:1fr}}

/* ---------- info / przygotowanie ------------------------------------------ */
.ed-info{padding:var(--rytm) 0}
.ed-info__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,4.5vw,70px);align-items:start}
.ed-lista-znacznikow{display:grid;gap:12px;margin-top:8px}
.ed-lista-znacznikow li{position:relative;padding-left:26px;font-size:16px;color:var(--dym);line-height:1.55}
.ed-lista-znacznikow li::before{content:"";position:absolute;left:0;top:10px;width:12px;height:2px;border-radius:2px;background:var(--zl)}

.ed-adres{background:var(--la);border-radius:var(--rd);padding:clamp(24px,2.6vw,32px)}
.ed-adres__linia{font-size:17px;font-weight:600;margin:0 0 6px;line-height:1.4}
.ed-adres__godz{font-size:15px;color:var(--dym);margin:0 0 18px}
@media (max-width:900px){.ed-info__grid{grid-template-columns:1fr;gap:30px}}

/* ---------- karta pakietu ------------------------------------------------- */
.ed-okruchy{padding:20px 0 0;font-size:13.5px;color:var(--dym)}
.ed-okruchy a{text-decoration:none}
.ed-okruchy a:hover{text-decoration:underline;text-underline-offset:3px}
.ed-okruchy span[aria-hidden]{margin:0 8px;opacity:.5}

.ed-glowa{padding:clamp(28px,3.4vw,46px) 0 var(--rytm)}
.ed-glowa__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,4.5vw,64px);align-items:start}
.ed-glowa__h1{font-size:clamp(30px,3.7vw,46px);font-weight:600;line-height:1.1;letter-spacing:-.022em;margin:16px 0 20px}

.ed-cechy{display:grid;gap:13px;margin-top:28px}
.ed-cechy li{display:flex;align-items:center;gap:13px;font-size:15.5px}
.ed-cechy svg{flex:none;width:22px;height:22px;color:var(--fi)}
.ed-cechy strong{font-weight:600}

/* panele w pigułce pod leadem */
.ed-panele-skrot{display:flex;flex-wrap:wrap;gap:9px;margin:30px 0 0}
.ed-panele-skrot li{
  display:inline-flex;align-items:center;gap:9px;
  padding:9px 15px 9px 11px;border-radius:999px;
  background:var(--la);color:var(--at);font-size:13.5px;font-weight:600;line-height:1
}
.ed-panele-skrot .ed-ikona{width:17px;height:17px;color:var(--fi);flex:none}
.ed-panele-skrot b{
  display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;
  border-radius:999px;background:var(--bi);color:var(--fi);font-size:11.5px;font-weight:600
}

/* panel zakupu */
.ed-zakup{position:sticky;top:100px}
.ed-zakup__karta{
  background:var(--bi);border:1px solid var(--kr);border-radius:var(--rd);
  padding:14px;box-shadow:var(--cien);
  display:flex;flex-direction:column;gap:16px
}
.ed-zakup__foto{border-radius:var(--rs);overflow:hidden;aspect-ratio:16/10;background:var(--la)}
.ed-zakup__foto img{width:100%;height:100%;object-fit:cover}
.ed-zakup__foto--tubes img{object-position:18% 92%}
.ed-zakup__foto--rece img{object-position:82% 62%}
/* Odstępy trzyma flex, nie marginesy — motyw kasuje margin na p/ul i elementy się zbijały. */
.ed-zakup__srodek{display:flex;flex-direction:column;gap:14px;padding:0 8px 8px}
.ed-zakup__ceny{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin:0}
.ed-zakup__ceny .ed-cena__teraz{font-size:30px}
.ed-zakup__jednostka{margin:-8px 0 0;font-size:13px;color:var(--dym);line-height:1.4}
.ed-zakup__wycena{margin:0;font-size:16px;font-weight:600;color:var(--fi)}
.ed-zakup__pewniki{display:grid;gap:11px;margin:2px 0 0}
.ed-zakup__pewniki li{
  display:grid;grid-template-columns:18px 1fr;align-items:start;gap:11px;
  font-size:13.5px;color:var(--dym);line-height:1.45
}
.ed-zakup__pewniki svg{width:18px;height:18px;color:var(--fi);margin-top:1px}
.ed-zakup__sku{margin:0;padding-top:13px;border-top:1px solid var(--kr);font-size:12px;color:var(--dym)}
.ed-zakup__sku code{background:var(--la);padding:2px 7px;border-radius:5px}

@media (max-width:960px){
  .ed-glowa__grid{grid-template-columns:1fr}
  .ed-zakup{position:static}
}

/* zawartość pakietu — panele kliniczne */
.ed-zawartosc{background:var(--la);padding:var(--rytm) 0}
.ed-panele{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}
.ed-panel{
  display:flex;flex-direction:column;gap:16px;
  background:var(--bi);border-radius:var(--rd);padding:clamp(22px,2.2vw,28px)
}
.ed-panel__gora{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:14px}
.ed-panel__ikona{
  display:grid;place-items:center;flex:none;width:44px;height:44px;
  border-radius:13px;background:var(--la);color:var(--fi)
}
.ed-panel__ikona .ed-ikona{width:22px;height:22px}
.ed-panel__t{margin:0;font-size:16.5px;font-weight:600;line-height:1.3}
.ed-panel__opis{margin:5px 0 0;font-size:13.5px;color:var(--dym);line-height:1.5}
.ed-panel__licznik{
  display:grid;place-items:center;flex:none;min-width:28px;height:28px;padding:0 8px;
  border-radius:999px;background:var(--at);color:#fff;font-size:13px;font-weight:600
}
.ed-panel__lista{display:grid;gap:11px;padding-top:15px;border-top:1px solid var(--kr)}
.ed-panel__lista li{position:relative;padding-left:20px}
.ed-panel__lista li::before{
  content:"";position:absolute;left:0;top:9px;
  width:7px;height:7px;border-radius:50%;background:var(--zl)
}
.ed-panel__lista strong{display:block;font-size:14.5px;font-weight:600;line-height:1.35}
.ed-panel__lista span{display:block;margin-top:3px;font-size:13px;color:var(--dym);line-height:1.5}
.ed-zawartosc__nota{
  margin:26px 0 0;padding-left:16px;border-left:3px solid var(--zl);
  font-size:13.5px;color:var(--dym);line-height:1.6;max-width:74ch
}
@media (max-width:900px){.ed-panele{grid-template-columns:1fr}}

/* opis */
.ed-opis{padding:var(--rytm) 0}
.ed-opis__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4.5vw,72px);align-items:start}
.ed-opis__lewo{position:sticky;top:100px}
.ed-opis__tekst{font-size:16.5px;color:var(--dym)}
.ed-opis__tekst p{margin-bottom:1em}
.ed-opis__tekst h3{margin:1.6em 0 .5em;font-size:19px;font-weight:600;color:var(--at);line-height:1.3}
.ed-opis__tekst h3:first-child{margin-top:0}
.ed-opis__tekst ul{display:grid;gap:10px;margin:0 0 1.2em}
.ed-opis__tekst ul li{position:relative;padding-left:26px;line-height:1.55}
.ed-opis__tekst ul li::before{
  content:"";position:absolute;left:2px;top:10px;
  width:8px;height:8px;border-radius:50%;background:var(--zl)
}
.ed-opis__tekst strong{color:var(--at);font-weight:600}
@media (max-width:900px){
  .ed-opis__grid{grid-template-columns:1fr;gap:22px}
  .ed-opis__lewo{position:static}
}

/* przygotowanie */
.ed-przygotowanie{background:var(--at);color:#fff;padding:var(--rytm) 0}
.ed-przygotowanie__wlasne{color:rgba(255,255,255,.78);max-width:64ch;margin-bottom:8px}
.ed-przyg-siatka{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:16px;margin-top:34px}
.ed-przyg-siatka li{
  display:flex;flex-direction:column;gap:9px;
  padding:26px 24px 28px;border-radius:var(--rd);
  background:rgba(255,255,255,.05);border:1px solid var(--krj)
}
.ed-przyg-siatka svg{width:26px;height:26px;color:var(--zl)}
.ed-przyg-siatka h3{margin:6px 0 0;font-size:16.5px;font-weight:600;line-height:1.3;color:#fff}
.ed-przyg-siatka p{margin:0;font-size:14px;color:rgba(255,255,255,.72);line-height:1.55}
@media (max-width:1000px){.ed-przyg-siatka{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.ed-przyg-siatka{grid-template-columns:1fr}}

/* odbiór */
.ed-odbior{padding:var(--rytm) 0}
.ed-odbior__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,4.5vw,70px);align-items:start}
.ed-odbior__lista{counter-reset:krok;display:grid;gap:14px;margin-top:6px}
.ed-odbior__lista li{
  counter-increment:krok;position:relative;padding-left:44px;
  font-size:16px;color:var(--dym);line-height:1.55
}
.ed-odbior__lista li::before{
  content:counter(krok);position:absolute;left:0;top:-1px;
  width:29px;height:29px;border-radius:50%;display:grid;place-items:center;
  background:var(--la);color:var(--fi);font-size:13px;font-weight:600
}
.ed-odbior__lista strong{color:var(--at);font-weight:600}
@media (max-width:900px){.ed-odbior__grid{grid-template-columns:1fr;gap:30px}}

/* inne pakiety */
.ed-inne{background:var(--la);padding:var(--rytm) 0}
.ed-inne .ed-karta{border-color:transparent}

/* =========================================================================
   KOSZYK — boczny panel
   ========================================================================= */

.ed-koszyk{position:fixed;inset:0;z-index:99990;font-family:"Parkinsans",system-ui,sans-serif}
.ed-koszyk[hidden]{display:none}
.ed-koszyk__tlo{
  position:absolute;inset:0;background:rgba(21,4,29,.55);backdrop-filter:blur(3px);
  opacity:0;transition:opacity .28s ease
}
.ed-koszyk.is-otwarty .ed-koszyk__tlo{opacity:1}

.ed-koszyk__panel{
  position:absolute;right:0;top:0;bottom:0;
  width:min(100%,470px);display:flex;flex-direction:column;
  background:var(--bi);box-shadow:-24px 0 60px -30px rgba(51,9,68,.6);
  transform:translateX(100%);transition:transform .32s cubic-bezier(.22,.68,.35,1)
}
.ed-koszyk.is-otwarty .ed-koszyk__panel{transform:none}

.ed-koszyk__gora{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:22px 24px;border-bottom:1px solid var(--kr);flex:none
}
.ed-koszyk__gora h2{margin:0;font-size:20px;font-weight:600;color:var(--at)}

/* Motyw nadaje przyciskom własne tło, cienie i wersaliki — w obrębie koszyka
   zerujemy to, zanim nałożymy style panelu. */
.ed-koszyk button{
  appearance:none;-webkit-appearance:none;
  margin:0;min-height:0;min-width:0;
  text-transform:none;letter-spacing:normal;
  box-shadow:none;background:transparent;border:0;
  font-family:"Parkinsans",system-ui,sans-serif;
  line-height:1
}

.ed-koszyk .ed-koszyk__x{
  width:38px;height:38px;padding:9px;border:0;border-radius:50%;
  background:var(--la);color:var(--at);cursor:pointer;flex:none
}
.ed-koszyk .ed-koszyk__x:hover{background:var(--mg)}
.ed-koszyk .ed-koszyk__x svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

.ed-koszyk__tresc{flex:1;overflow-y:auto;padding:20px 24px}

.ed-pusty{text-align:center;padding:52px 10px;color:var(--dym)}
.ed-pusty__t{font-size:17px;font-weight:600;color:var(--at);margin-bottom:6px}

.ed-lista{display:grid;gap:12px}
.ed-lista li{
  display:grid;grid-template-columns:1fr auto;gap:6px 14px;
  padding:16px 18px;border-radius:var(--rs);background:var(--la)
}
.ed-lista__nazwa{font-size:15px;font-weight:600;line-height:1.35;color:var(--at)}
.ed-lista__cena{font-size:15px;font-weight:600;white-space:nowrap;color:var(--at)}
.ed-lista__narz{display:flex;align-items:center;gap:10px;grid-column:1/-1;margin-top:2px}
.ed-koszyk .ed-ilosc{
  display:inline-flex;align-items:center;background:var(--bi);
  border:1px solid var(--kr);border-radius:999px;overflow:hidden
}
.ed-koszyk .ed-ilosc button{
  width:32px;height:32px;padding:0;border-radius:0;cursor:pointer;
  font-size:17px;font-weight:600;color:var(--fi);background:transparent
}
.ed-koszyk .ed-ilosc button:hover{background:var(--la)}
.ed-koszyk .ed-ilosc span{
  min-width:28px;text-align:center;font-size:14px;font-weight:600;color:var(--at);
  font-variant-numeric:tabular-nums
}
.ed-koszyk .ed-usun{
  padding:0;cursor:pointer;background:transparent;
  font-size:13px;color:var(--dym);text-decoration:underline;text-underline-offset:3px
}
.ed-koszyk .ed-usun:hover{color:#a4271b}

/* formularz */
.ed-formularz{padding:4px 24px 20px;border-top:1px solid var(--kr)}
.ed-formularz[hidden]{display:none}
.ed-formularz h3{margin:20px 0 4px;font-size:17px;font-weight:600;color:var(--at)}
.ed-formularz__info{margin:0 0 16px;font-size:13.5px;color:var(--dym)}
.ed-pola{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ed-pole{display:flex;flex-direction:column;gap:5px}
.ed-pole--szer{grid-column:1/-1}
.ed-pole span{font-size:12.5px;font-weight:600;color:var(--at)}
.ed-pole span i{font-style:normal;font-weight:400;color:var(--dym)}
.ed-pole input,.ed-pole textarea{
  width:100%;padding:11px 13px;border:1.5px solid var(--kr);border-radius:10px;
  font:400 15px/1.4 "Parkinsans",system-ui,sans-serif;color:var(--at);background:var(--bi)
}
.ed-pole input:focus,.ed-pole textarea:focus{border-color:var(--fi);outline:none}
.ed-pole.is-blad input,.ed-pole.is-blad textarea{border-color:#c0392b}
.ed-pole em{font-style:normal;font-size:12px;color:#c0392b}

.ed-zgoda{display:flex;gap:11px;align-items:flex-start;margin:16px 0 0;font-size:13px;color:var(--dym);line-height:1.5}
.ed-zgoda input{margin-top:3px;flex:none;width:17px;height:17px;accent-color:var(--fi)}
.ed-zgoda a{color:var(--fi)}
.ed-blad-zgoda{display:block;font-style:normal;font-size:12px;color:#c0392b;margin-top:5px}

.ed-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.ed-komunikat{
  margin:16px 0 0;padding:12px 15px;border-radius:10px;
  background:#FDECEA;color:#a4271b;font-size:13.5px;line-height:1.45
}
.ed-komunikat[hidden]{display:none}

/* stopka koszyka */
.ed-koszyk__dol{flex:none;padding:18px 24px 22px;border-top:1px solid var(--kr);background:var(--bi)}
.ed-koszyk__dol[hidden]{display:none}
.ed-suma{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.ed-suma span{font-size:14px;color:var(--dym)}
.ed-suma strong{font-size:25px;font-weight:600;letter-spacing:-.015em;color:var(--at)}
.ed-koszyk__nota{margin:12px 0 0;font-size:12px;color:var(--dym);line-height:1.5}

.ed-spinner{
  display:none;width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(51,9,68,.3);border-top-color:var(--at);
  animation:ed-obrot .7s linear infinite
}
.is-wysylka .ed-spinner{display:inline-block}
.is-wysylka .ed-btn__tekst{opacity:.6}
@keyframes ed-obrot{to{transform:rotate(360deg)}}

/* przyciski akcji w koszyku — motyw dokleja własne tło, więc powtarzamy je mocniej */
.ed-koszyk .ed-btn{
  padding:15px 28px;border-radius:999px;
  font:600 15px/1 "Parkinsans",system-ui,sans-serif
}
.ed-koszyk .ed-btn--zloto{background:var(--zl);color:var(--at);box-shadow:0 10px 26px rgba(240,208,108,.44)}
.ed-koszyk .ed-btn--zloto:hover{background:#f4d87f}

/* przycisk pływający */
.ed-fab{
  position:fixed;right:20px;bottom:20px;z-index:99980;
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 22px;border:0;border-radius:999px;cursor:pointer;
  background:var(--at);color:#fff;
  font:600 15px/1 "Parkinsans",system-ui,sans-serif;
  box-shadow:0 16px 36px -14px rgba(51,9,68,.7);
  transition:transform .18s ease
}
.ed-fab[hidden]{display:none}
.ed-fab:hover{transform:translateY(-2px)}
.ed-fab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ed-fab b{
  min-width:23px;height:23px;padding:0 6px;border-radius:999px;
  display:grid;place-items:center;background:var(--zl);color:var(--at);font-size:12.5px
}

@media (prefers-reduced-motion:reduce){
  .ed-koszyk__panel,.ed-koszyk__tlo,.ed-btn,.ed-karta,.ed-fab{transition:none}
  .ed-spinner{animation:none}
}

/* =========================================================================
   Zabezpieczenie przed stylami motywu
   Motyw nadaje przyciskom i polom formularza własne zaokrąglenia, obramowania
   i wysokości o wyższej specyficzności niż nasze klasy. Poniżej powtarzamy
   docelowe wartości z prefiksem body, żeby wygrać kaskadę.
   ========================================================================= */

body.endo-sklep .ed-btn,
body.endo-sklep .ed-filtr,
body.endo-sklep .ed-fab,
body.endo-sklep .ed-plakietka,
body.endo-sklep .ed-ilosc{border-radius:999px}

/* wygodne pola dotyku — minimum 44 px w każdym kierunku */
body.endo-sklep .ed-btn{min-height:50px}
body.endo-sklep .ed-btn--maly{min-height:44px}
body.endo-sklep .ed-btn--linia{min-height:0}
body.endo-sklep .ed-filtr{min-height:44px}
body.endo-sklep .ed-koszyk .ed-ilosc button{min-width:40px;min-height:40px}
body.endo-sklep .ed-koszyk .ed-usun{
  display:inline-flex;align-items:center;
  min-height:40px;padding:0 6px
}
body.endo-sklep .ed-koszyk .ed-koszyk__x{width:44px;height:44px;padding:11px}
body.endo-sklep .ed-zgoda input{width:20px;height:20px}

/* Pola formularza.
   Globalny kit Elementora używa selektora
   .elementor-kit-9 input:not([type="button"]):not([type="submit"])
   o specyficzności wyższej niż nasze klasy, dlatego te kilka właściwości
   wymaga !important. Ograniczamy je wyłącznie do pól wewnątrz koszyka. */
body.endo-sklep .ed-koszyk .ed-pole input,
body.endo-sklep .ed-koszyk .ed-pole textarea{
  border-radius:12px !important;
  border:1.5px solid var(--kr) !important;
  background:var(--bi) !important;
  color:var(--at) !important;
  min-height:48px;
  padding:12px 14px !important;
  font-size:16px          /* 16 px zapobiega przybliżaniu widoku na iOS */
}
body.endo-sklep .ed-koszyk .ed-pole textarea{min-height:64px}
body.endo-sklep .ed-koszyk .ed-pole input:focus,
body.endo-sklep .ed-koszyk .ed-pole textarea:focus{
  border-color:var(--fi) !important;
  box-shadow:0 0 0 3px rgba(64,0,92,.10) !important;
  outline:none
}
body.endo-sklep .ed-koszyk .ed-pole.is-blad input,
body.endo-sklep .ed-koszyk .ed-pole.is-blad textarea{border-color:#c0392b !important}

/* Tytuły kart — motyw (h3) nadaje 32 px; tu schodzimy do skali sklepu. */
body.endo-sklep .ed-karta__t,
body.endo-sklep .ed-karta__t a{
  font-size:16px !important;
  font-weight:600 !important;
  line-height:1.3 !important;
  letter-spacing:-.01em
}
body.endo-sklep .ed-siatka .ed-karta--wyrozniona .ed-karta__t,
body.endo-sklep .ed-siatka .ed-karta--wyrozniona .ed-karta__t a{
  font-size:17.5px !important;
  color:#fff !important
}

/* Ciemne sekcje — kit Elementora maluje h2/h3 na atrament, zlewają się z tłem. */
body.endo-sklep .ed-kroki .ed-h2,
body.endo-sklep .ed-kroki h2,
body.endo-sklep .ed-kroki h3,
body.endo-sklep .ed-przygotowanie .ed-h2,
body.endo-sklep .ed-przygotowanie h2,
body.endo-sklep .ed-przygotowanie h3{
  color:#fff !important
}
body.endo-sklep .ed-kroki__lista h3{
  font-size:18px !important;
  font-weight:600 !important;
  line-height:1.3 !important
}
body.endo-sklep .ed-przyg-siatka h3{
  font-size:16.5px !important;
  font-weight:600 !important;
  line-height:1.3 !important
}

/* Motyw skaluje każde h3 do 32 px — sprowadzamy nagłówki paneli do skali sklepu. */
body.endo-sklep .ed-panel__t{
  font-size:16.5px !important;
  font-weight:600 !important;
  line-height:1.3 !important
}
body.endo-sklep .ed-opis__tekst h3{
  font-size:19px !important;
  font-weight:600 !important;
  line-height:1.3 !important
}

/* Motyw zeruje marginesy list i akapitów — w panelu zakupu odstępy trzyma flex,
   ale listy w treści opisu i tak trzeba przywrócić. */
body.endo-sklep .ed-zakup__karta > *,
body.endo-sklep .ed-zakup__srodek > *{margin-top:0 !important;margin-bottom:0 !important}
body.endo-sklep .ed-zakup__jednostka{margin-top:-8px !important}
body.endo-sklep .ed-opis__tekst ul{margin:0 0 1.2em !important;padding-left:0 !important;list-style:none !important}
body.endo-sklep .ed-opis__tekst ul li{margin:0 !important}

/* Belka tytułowa motywu dubluje H1 karty pakietu. */
body.endo-sklep .page-header,
body.endo-sklep .vamtam-page-header{display:none !important}
body.endo-sklep .ed-kroki .ed-eyebrow--jasny,
body.endo-sklep .ed-przygotowanie .ed-eyebrow--jasny{
  color:var(--zl) !important
}
