/* ============================================================
   Cenesti Elementor — karuzela produktów
   Tokeny i karta odwzorowane 1:1 z motywu Cenesti (style.css).
   Fallbacki = dokładne wartości motywu, na wypadek braku motywu.
============================================================ */
.cn-elcar{
  --_bg: var(--cn-bg, #FDFDFD);
  --_surface: var(--cn-surface, #F4F4F4);
  --_text: var(--cn-text, #444444);
  --_soft: var(--cn-text-soft, #8E8E8E);
  --_line: var(--cn-line, rgba(68,68,68,.12));
  --_accent: var(--cn-accent, #6E6862);
  --_btn: var(--cn-btn-bg, #4A4A4A);
  --_btn-hover: var(--cn-btn-bg-hover, #333333);
  --_btn-text: var(--cn-btn-text, #FFFFFF);
  --_radius: var(--cn-radius, 12px);
  --_glass-bg: var(--cn-glass-bg, rgba(253,253,253,.72));
  --_glass-blur: var(--cn-glass-blur, 18px);
  --_ease: var(--cn-ease, cubic-bezier(.25,.6,.3,1));
  --_font: var(--cn-font, -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);
  color: var(--_text);
  font-family: var(--_font);
}

.cn-elcar-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin:0 0 1.2rem;
}
.cn-elcar-title{
  margin:0;font-size:clamp(1.25rem,2.4vw,1.7rem);font-weight:650;letter-spacing:-.01em;line-height:1.15;
}
.cn-elcar-nav{display:flex;gap:.5rem}
.cn-elcar-prev,.cn-elcar-next{
  width:44px;height:44px;display:grid;place-items:center;
  border:1px solid var(--_line);border-radius:999px;background:var(--_bg);
  cursor:pointer;transition:border-color .2s,opacity .2s;
}
.cn-elcar-prev:hover,.cn-elcar-next:hover{border-color:var(--_text)}
.cn-elcar-prev svg,.cn-elcar-next svg{width:18px;height:18px;fill:none;stroke:var(--_text);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cn-elcar-prev.swiper-button-disabled,.cn-elcar-next.swiper-button-disabled{opacity:.35;cursor:default}

/* Swiper: zanim się zainicjuje, pokaż siatkę zgodną z perView (bez skoku layoutu) */
.cn-elcar-swiper{width:100%;overflow:hidden}
.cn-elcar-swiper:not(.swiper-initialized) .swiper-wrapper{display:flex;gap:22px}
.cn-elcar-swiper:not(.swiper-initialized) .swiper-slide{flex:0 0 auto;width:calc(25% - 17px)}
@media(max-width:1023px){.cn-elcar-swiper:not(.swiper-initialized) .swiper-slide{width:calc(33.333% - 12px)}}
@media(max-width:767px){.cn-elcar-swiper:not(.swiper-initialized) .swiper-slide{width:82%}}
.cn-elcar-swiper.swiper{cursor:grab}
.cn-elcar-swiper.swiper:active{cursor:grabbing}

/* ---------- Karta produktu — 1:1 z .cn-card motywu ---------- */
.cn-elcard{position:relative;margin:0;display:flex;flex-direction:column;height:100%}
.cn-elcard-media{
  position:relative;display:block;overflow:hidden;
  border-radius:var(--_radius);aspect-ratio:1/1;background:var(--_surface);
}
.cn-elcard-img,.cn-elcard-media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;image-rendering:auto;backface-visibility:hidden;display:block;
  transition:transform .55s var(--_ease);
}
.cn-elcard-media:hover .cn-elcard-img,.cn-elcard-media:hover img{transform:scale(1.04)}

/* Badge promocji — jak .cn-badge motywu: jasny, glass, tekst grafitowy */
.cn-elcard-badge{
  position:absolute;top:.7rem;left:.7rem;z-index:2;
  font-size:.68rem;font-weight:620;letter-spacing:.01em;
  padding:.32rem .62rem;border-radius:999px;
  background:var(--_glass-bg);color:var(--_text);
  -webkit-backdrop-filter:blur(var(--_glass-blur));backdrop-filter:blur(var(--_glass-blur));
}

/* Link na zdjęcie — pod elementami interaktywnymi */
.cn-elcard-link{position:absolute;inset:0;z-index:1;display:block}

.cn-elcard-info{padding:.7rem .1rem 0}
.cn-elcard-name{font-size:.88rem;font-weight:560;line-height:1.3;margin:0;color:var(--_text);text-decoration:none;display:block}
.cn-elcard-name:hover{text-decoration:underline;text-underline-offset:3px}
.cn-elcard-type{font-size:.74rem;color:var(--_soft);margin:.1rem 0 0}
.cn-elcard-price{font-size:.86rem;margin:.3rem 0 0}
.cn-elcard-price ins,.cn-elcard-price .amount{font-weight:640;color:var(--_accent);text-decoration:none}
.cn-elcard-price del{margin-right:.4rem;font-size:.78rem}
.cn-elcard-price del .amount{color:var(--_soft);font-weight:400}

/* ---------- Kropki ---------- */
.cn-elcar-dots{position:static;margin-top:1.1rem;display:flex;justify-content:center;gap:.4rem}
.cn-elcar-dots .swiper-pagination-bullet{width:7px;height:7px;background:var(--_soft);opacity:.4;border-radius:999px;transition:opacity .2s,width .2s}
.cn-elcar-dots .swiper-pagination-bullet-active{opacity:1;width:22px;background:var(--_text)}

@media(prefers-reduced-motion:reduce){
  .cn-elcard-img,.cn-elcard-media img,.cn-elcard-quick{transition:none}
}

/* ===== Karta: serce, oceny i przycisk akcji ===== */
.cn-elcard-wish{
  position:absolute;top:.6rem;right:.6rem;z-index:3;
  width:38px;height:38px;padding:0;display:grid;place-items:center;line-height:1;
  border:0;border-radius:50%;cursor:pointer;-webkit-appearance:none;appearance:none;color:var(--_text);
  background:var(--_glass-bg);
  -webkit-backdrop-filter:blur(var(--_glass-blur));backdrop-filter:blur(var(--_glass-blur));
  transition:transform .2s var(--_ease);
}
.cn-elcard-wish:hover{transform:scale(1.06)}
.cn-elcard-wish svg{display:block;width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cn-elcard-wish.is-on svg{fill:var(--_accent);stroke:var(--_accent)}

.cn-elcard-rating{margin:.15rem 0 0}
.cn-elcard-rating .star-rating{font-size:.8rem;color:var(--_accent)}

/* Przycisk akcji produktu */
.cn-elcard-quickwrap{position:absolute;left:.6rem;right:.6rem;bottom:.6rem;z-index:4}
.cn-elcard-quickwrap .cn-elcard-quick{pointer-events:auto}
.cn-elcard-quick{
  display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:0 1rem;box-sizing:border-box;
  border:0;border-radius:999px;cursor:pointer;
  background:var(--_glass-bg);color:var(--_text);text-decoration:none;
  font:inherit;font-size:.84rem;font-weight:560;
  -webkit-backdrop-filter:blur(var(--_glass-blur));backdrop-filter:blur(var(--_glass-blur));
  opacity:0;transform:translateY(8px);transition:opacity .25s var(--_ease),transform .25s var(--_ease);
}
@media(hover:hover){
  .cn-elcard:hover .cn-elcard-quick,.cn-elcard-quick:focus-visible{opacity:1;transform:none}
}
@media(hover:none){ .cn-elcard-quick{opacity:1;transform:none} }
.cn-elcard-quick.is-loading{opacity:.65!important;pointer-events:none}


/* ============================================================
   Banner-Hero (karuzela banerów pełnej szerokości)
============================================================ */
.cn-hero{position:relative;width:100%;overflow:hidden;border-radius:var(--_radius-lg,20px)}
.cn-hero .swiper-wrapper{align-items:stretch}
.cn-hero-slide{
  position:relative;display:flex;width:100%;
  background-image:var(--cn-hero-bg);background-size:cover;background-position:center;
}
.cn-hero-slide::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:rgba(20,18,16,var(--cn-hero-ov,.28));
}
.cn-hero-inner{
  position:relative;z-index:2;display:flex;flex-direction:column;
  max-width:min(620px,90%);padding:clamp(1.4rem,4vw,3.2rem);gap:.5rem;
}

/* Położenie tekstu */
.cn-hero-pos-bottom-left{align-items:flex-start;justify-content:flex-end}
.cn-hero-pos-bottom-center{align-items:center;justify-content:flex-end;text-align:center;margin-inline:auto}
.cn-hero-pos-center{align-items:center;justify-content:center;text-align:center;margin-inline:auto}
.cn-hero-pos-center-left{align-items:flex-start;justify-content:center}

/* Kolor tekstu */
.cn-hero-light .cn-hero-eyebrow,
.cn-hero-light .cn-hero-title,
.cn-hero-light .cn-hero-sub{color:#fff}
.cn-hero-dark .cn-hero-eyebrow,
.cn-hero-dark .cn-hero-title,
.cn-hero-dark .cn-hero-sub{color:var(--_text)}

.cn-hero-eyebrow{margin:0;font-size:.8rem;font-weight:560;letter-spacing:.08em;text-transform:uppercase;opacity:.92}
.cn-hero-title{margin:0;font-size:clamp(2rem,5.2vw,3.6rem);font-weight:600;line-height:1.04;letter-spacing:-.02em}
.cn-hero-sub{margin:.2rem 0 0;font-size:clamp(.95rem,1.6vw,1.1rem);font-weight:400;line-height:1.5;max-width:46ch;opacity:.95}

.cn-hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.1rem}
.cn-hero-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.85rem 1.6rem;border-radius:999px;font-size:.9rem;font-weight:560;
  text-decoration:none;transition:transform .2s var(--_ease),opacity .2s var(--_ease);
}
.cn-hero-btn-1{background:var(--_text);color:#fff}
.cn-hero-btn-2{background:rgba(255,255,255,.16);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5)}
.cn-hero-dark .cn-hero-btn-2{background:transparent;color:var(--_text);border-color:var(--_line)}
.cn-hero-btn:hover{transform:translateY(-1px);opacity:.94}

/* Strzałki */
.cn-hero-prev,.cn-hero-next{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:44px;height:44px;display:grid;place-items:center;cursor:pointer;
  border:0;border-radius:50%;background:var(--_glass-bg);
  -webkit-backdrop-filter:blur(var(--_glass-blur));backdrop-filter:blur(var(--_glass-blur));
}
.cn-hero-prev{left:1rem}.cn-hero-next{right:1rem}
.cn-hero-prev svg,.cn-hero-next svg{width:20px;height:20px;fill:none;stroke:var(--_text);stroke-width:1.8}
.cn-hero-prev:hover,.cn-hero-next:hover{background:#fff}

/* Kropki */
.cn-hero .cn-hero-dots{position:absolute;bottom:1rem;left:0;right:0;z-index:5}
.cn-hero .swiper-pagination-bullet{background:#fff;opacity:.55;width:8px;height:8px}
.cn-hero .swiper-pagination-bullet-active{opacity:1;width:22px;border-radius:4px}

/* Tło mobilne */
@media(max-width:767px){
  .cn-hero-slide{background-image:var(--cn-hero-bg-m)}
  .cn-hero-prev,.cn-hero-next{display:none}
}
@media(prefers-reduced-motion:reduce){
  .cn-hero-btn{transition:none}
}
