/**
 * ds_vip — sklep: strona VIP, akceptacja zaproszenia, konto klienta, plakietki.
 * Kolory przez zmienne --dsvip-* ustawiane na .dsvip z konfiguracji (zestaw kolorów + nadpisania).
 * Bez zależności od motywu; fallbacki = zestaw „granat".
 */
.dsvip {
  --dsvip-bg: #0f1b33;
  --dsvip-surface: #16264a;
  --dsvip-accent: #c9a45c;
  --dsvip-text: #f5f1e8;
  --dsvip-muted: #b9c2d6;
  --dsvip-on-accent: #0f1b33;
  background: var(--dsvip-bg);
  color: var(--dsvip-text);
  border-radius: 6px;
  overflow: hidden;
  margin: 0 0 2rem;
  max-width: 100%;
}
.dsvip *, .dsvip *::before, .dsvip *::after { box-sizing: border-box; }
.dsvip h1, .dsvip h2, .dsvip h3 { color: var(--dsvip-text); }
.dsvip a:not(.dsvip-btn):not(.product-thumbnail):not([class*="product"]) { color: var(--dsvip-accent); }

.dsvip-hero { padding: clamp(2rem, 6vw, 4.5rem) clamp(1rem, 4vw, 3rem); background: radial-gradient(120% 140% at 85% 0%, var(--dsvip-surface) 0%, var(--dsvip-bg) 60%); }
.dsvip-hero__inner { max-width: 760px; }
.dsvip-hero__inner--narrow { max-width: 560px; margin: 0 auto; text-align: center; }
.dsvip-hero__title { font-size: clamp(1.6rem, 4.2vw, 2.6rem); line-height: 1.15; margin: .75rem 0 1rem; font-weight: 600; letter-spacing: .01em; }
.dsvip-hero__lead { font-size: 1.05rem; line-height: 1.6; color: var(--dsvip-muted); margin: 0 0 1.25rem; }
.dsvip-hero__meta { color: var(--dsvip-accent); margin: 0; }

.dsvip-pill { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .8rem; border: 1px solid var(--dsvip-accent); border-radius: 999px; color: var(--dsvip-accent); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.dsvip-ico { flex: none; }

.dsvip-btn { display: inline-block; padding: .75rem 1.4rem; border-radius: 4px; border: 1px solid var(--dsvip-accent); background: var(--dsvip-accent); color: var(--dsvip-on-accent); font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.2; text-align: center; }
.dsvip-btn:hover, .dsvip-btn:focus { filter: brightness(1.08); color: var(--dsvip-on-accent); text-decoration: none; }
.dsvip-btn--ghost { background: transparent; color: var(--dsvip-accent); }
.dsvip-btn--ghost:hover, .dsvip-btn--ghost:focus { color: var(--dsvip-accent); background: rgba(255, 255, 255, .06); }
.dsvip-link { background: none; border: 0; padding: 0; color: var(--dsvip-accent); text-decoration: underline; cursor: pointer; font: inherit; }
.dsvip-cta { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: inherit; }
.dsvip-cta p { flex-basis: 100%; margin: 0; color: var(--dsvip-muted); }
.dsvip-hero__inner--narrow .dsvip-cta { justify-content: center; }
.dsvip-note { padding: 1rem 1.25rem; border-left: 3px solid var(--dsvip-accent); background: rgba(255, 255, 255, .05); border-radius: 0 4px 4px 0; }
.dsvip-note p { margin: 0 0 .75rem; }
.dsvip-muted { color: var(--dsvip-muted); }

.dsvip-progress { max-width: 520px; }
.dsvip-progress__head { font-size: .95rem; margin-bottom: .5rem; color: var(--dsvip-muted); }
.dsvip-progress__head strong { color: var(--dsvip-text); }
.dsvip-progress__track { height: 10px; border-radius: 999px; background: rgba(255, 255, 255, .14); overflow: hidden; }
.dsvip-progress__fill { display: block; height: 100%; background: var(--dsvip-accent); border-radius: 999px; }
.dsvip-progress__text { margin: .6rem 0 0; font-weight: 600; }

.dsvip-h2 { font-size: clamp(1.25rem, 3vw, 1.7rem); margin: 0 0 1.25rem; font-weight: 600; }
.dsvip-rules, .dsvip-steps, .dsvip-products, .dsvip-code, .dsvip-faq, .dsvip-join { padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 4vw, 3rem); }
.dsvip-steps { border-top: 1px solid rgba(255, 255, 255, .08); }
/* 1.1.1: zasady członkostwa (zawsze widoczne) i stan bieżącego miesiąca członka w nagłówku. */
.dsvip-rules { border-top: 1px solid rgba(255, 255, 255, .08); }
.dsvip-rules__list { max-width: 760px; margin: 0; padding: 0 0 0 1.2rem; color: var(--dsvip-muted); line-height: 1.6; }
.dsvip-rules__list li { margin: 0 0 .45rem; }
.dsvip-rules__list li::marker { color: var(--dsvip-accent); }
.dsvip-progress--month { margin-top: 1.25rem; }
.dsvip-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.dsvip-step { background: var(--dsvip-surface); border-radius: 6px; padding: 1.25rem; }
.dsvip-step__no { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--dsvip-accent); color: var(--dsvip-accent); font-weight: 600; margin-bottom: .75rem; }
.dsvip-step h3 { font-size: 1.05rem; margin: 0 0 .4rem; }
.dsvip-step p { margin: 0; color: var(--dsvip-muted); line-height: 1.55; }

.dsvip-products { background: var(--dsvip-surface); }
.dsvip-products__grid { background: transparent; }
.dsvip-products .products { margin-left: 0; margin-right: 0; }
.dsvip-products .product-miniature, .dsvip-products .product { color: initial; }
.dsvip-products .product-miniature a, .dsvip-products .product a { color: inherit; }
.dsvip-pager { display: flex; gap: 1rem; align-items: center; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; }

.dsvip-form label { display: block; margin-bottom: .4rem; color: var(--dsvip-muted); }
.dsvip-form__row { display: flex; flex-wrap: wrap; gap: .6rem; max-width: 520px; }
.dsvip-hero__inner--narrow .dsvip-form__row { margin: 0 auto; }
.dsvip-form input[type="text"], .dsvip-form input[type="tel"] { flex: 1 1 200px; min-width: 0; padding: .7rem .9rem; border-radius: 4px; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .06); color: var(--dsvip-text); font-size: 1rem; }
.dsvip-form input:focus { outline: 2px solid var(--dsvip-accent); outline-offset: 1px; }
.dsvip-form--inline { display: flex; gap: 1.25rem; justify-content: center; margin-top: 1rem; }

.dsvip-faq__body { max-width: 760px; color: var(--dsvip-muted); line-height: 1.65; }
.dsvip-faq__body h3, .dsvip-faq__body h4 { font-size: 1.05rem; margin: 1.25rem 0 .35rem; color: var(--dsvip-text); }
.dsvip-join { text-align: center; padding-top: 0; }

/* Plakietki przy cenie (poza stroną VIP — kolory stałe, dyskretne). */
.dsvip-badge { display: inline-block; margin: .25rem 0; padding: .15rem .55rem; border-radius: 3px; background: #0f1b33; color: #e6cf98; font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.dsvip-teaser { display: inline-block; margin: .25rem 0; font-size: .8rem; color: #8a6d3b; text-decoration: underline; text-underline-offset: 2px; }
.dsvip-badge--cart, .dsvip-teaser--cart { margin: .4rem 0 .2rem; }
.dsvip-badge--listing, .dsvip-teaser--listing { display: block; width: max-content; max-width: 100%; margin: .25rem auto; }

/* Konto klienta (sekcje .acc-section pochodzą z motywu; poniżej: elementy modułu, tokeny motywu z fallbackami). */
.dsvip-chip { display: inline-block; padding: .15rem .6rem; border-radius: 999px; background: #eceff4; color: #1d1d1f; font-size: .8rem; font-weight: 600; }
.dsvip-chip--on { background: #0f1b33; color: #e6cf98; }
.dsvip-account__status { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; margin: 0 0 1rem; }
.dsvip-account__box p { margin: 0 0 1rem; }
.dsvip-account__box p:last-child { margin-bottom: 0; }
.dsvip-account__box .btn { text-decoration: none; }
.dsvip-bar { height: 10px; border-radius: 999px; background: #eceff4; overflow: hidden; max-width: 520px; margin: 0 0 .75rem; }
.dsvip-bar span { display: block; height: 100%; background: #c9a45c; }
.dsvip-account__row { display: flex; gap: .6rem; flex-wrap: wrap; max-width: 520px; }
.dsvip-account__row .form-control { flex: 1 1 200px; min-width: 0; width: auto; height: 48px; padding: 0 14px; font: inherit; border: 1px solid var(--border, #d9d9d9); border-radius: 10px; background: #fff; }
.dsvip-account__row .btn { gap: 0; padding-top: 13px; padding-bottom: 13px; }
.dsvip-account__label { display: block; margin: 0 0 .4rem; font-weight: 600; }
.dsvip-account__code { margin: 0; }
.dsvip-account__note { margin: 0 0 1.25rem; padding: .9rem 1.1rem; background: #f6f3ea; border-left: 3px solid #c9a45c; border-radius: 0 10px 10px 0; }
.dsvip-account__leave summary { display: inline-flex; list-style: none; cursor: pointer; gap: 0; padding-top: 13px; padding-bottom: 13px; }
.dsvip-account__leave summary::-webkit-details-marker { display: none; }
.dsvip-account__leave[open] summary { margin-bottom: 1rem; }
.dsvip-tile-ico { display: block; margin: 0 auto .5rem; color: #c9a45c; }

/* Link w nagłówku. */
.dsvip-nav { display: inline-block; }
.dsvip-nav__link { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; color: #8a6d3b; }

@media (max-width: 575px) {
  .dsvip { border-radius: 0; }
  .dsvip-btn { width: 100%; }
  .dsvip-form__row .dsvip-btn { width: 100%; }
}
