/* Pricing v2 — Fit Fat Fit (aligned with grzegorzzaremba.com) */

:root {
  --pv2-cream: #f3ede4;
  --pv2-ink: #0c0a09;
  --pv2-muted: #57534e;
  --pv2-soft: #78716c;
  --pv2-white: #ffffff;
  --pv2-orange: #ea580c;
  --pv2-komfort-accent: #32528c;
  --pv2-komfort-soft: #7698d8;
  --pv2-komfort-bg: #eef3fa;
  --pv2-premium-accent: #4a8a6a;
  --pv2-premium-soft: #80bfa5;
  --pv2-premium-bg: #eef8f4;
  --pv2-power-accent: #c96635;
  --pv2-power-soft: #ef9f6d;
  --pv2-power-bg: #fff4ec;
}

#offer,
.pv2-section {
  color: var(--pv2-ink);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.is-hidden {
  display: none !important;
}

#offer {
  background: transparent;
}

.pv2-section {
  padding: 3.5rem 1rem 4rem;
}

.pv2-shell {
  max-width: 80rem;
  margin: 0 auto;
  padding: 1px;
  border-radius: 2rem;
  background: linear-gradient(135deg, #ea580c, #f97316, #84cc16);
  box-shadow: 0 25px 50px -12px rgba(124, 45, 18, 0.15);
}

.pv2-inner {
  border-radius: 1.85rem;
  background: var(--pv2-cream);
  padding: 1rem;
}

.pv2-header {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.pv2-title {
  max-width: 48rem;
  margin: 0;
  font-size: clamp(1.875rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.04em;
  color: var(--pv2-ink) !important;
}

.pv2-lead {
  max-width: 32rem;
  margin: 0;
  font-size: 1rem;
  line-height: 1.75;
  color: #44403c;
}

.pv2-eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.pv2-eyebrow-dark {
  color: var(--pv2-orange);
}

.pv2-plans {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.pv2-plan-wrap {
  scroll-margin-top: 6rem;
}

.pv2-plan {
  position: relative;
  overflow: hidden;
  border-radius: 1.8rem;
  padding: 0.75rem;
}

.pv2-plan--komfort {
  background: rgba(238, 243, 250, 0.9);
  box-shadow: 0 24px 70px rgba(50, 82, 140, 0.16);
}

.pv2-plan--premium {
  background: rgba(238, 248, 244, 0.9);
  box-shadow: 0 24px 70px rgba(74, 138, 106, 0.16);
}

.pv2-plan--power {
  background: rgba(255, 244, 236, 0.9);
  box-shadow: 0 24px 70px rgba(201, 102, 53, 0.16);
}

.pv2-plan-accent {
  position: absolute;
  top: 0;
  left: 1.25rem;
  right: 1.25rem;
  height: 4px;
  border-radius: 999px;
}

.pv2-plan--komfort .pv2-plan-accent {
  background: linear-gradient(90deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent));
}

.pv2-plan--premium .pv2-plan-accent {
  background: linear-gradient(90deg, var(--pv2-premium-soft), var(--pv2-premium-accent));
}

.pv2-plan--power .pv2-plan-accent {
  background: linear-gradient(90deg, var(--pv2-power-soft), var(--pv2-power-accent));
}

.pv2-plan-panel {
  overflow: hidden;
  border-radius: 1.5rem;
}

.pv2-plan--komfort .pv2-plan-panel {
  background: rgba(118, 152, 216, 0.12);
}

.pv2-plan--premium .pv2-plan-panel {
  background: rgba(128, 191, 165, 0.12);
}

.pv2-plan--power .pv2-plan-panel {
  background: rgba(239, 159, 109, 0.12);
}

.pv2-slide {
  display: grid;
  transition: transform 0.7s ease;
}

.pv2-slide.is-checkout-open .pv2-details {
  display: none;
}

.pv2-slide.is-checkout-open .pv2-checkout {
  display: block;
}

.pv2-details,
.pv2-checkout {
  min-width: 0;
  padding: 1rem;
}

.pv2-checkout {
  display: none;
}

.pv2-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 1.5rem;
  padding: 1.25rem;
  border-radius: 1.4rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.85));
}

.pv2-plan--komfort .pv2-hero {
  background: linear-gradient(135deg, rgba(238, 243, 250, 0.95), rgba(255, 255, 255, 0.95), rgba(217, 230, 245, 0.8));
}

.pv2-plan--premium .pv2-hero {
  background: linear-gradient(135deg, rgba(238, 248, 244, 0.95), rgba(255, 255, 255, 0.95), rgba(220, 238, 230, 0.8));
}

.pv2-plan--power .pv2-hero {
  background: linear-gradient(135deg, rgba(255, 244, 236, 0.95), rgba(255, 255, 255, 0.95), rgba(253, 232, 216, 0.8));
}

.pv2-badge {
  display: inline-flex;
  margin-bottom: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(90deg, var(--pv2-premium-soft), var(--pv2-premium-accent));
}

.pv2-plan--komfort .pv2-eyebrow { color: var(--pv2-komfort-accent); }
.pv2-plan--premium .pv2-eyebrow { color: var(--pv2-premium-accent); }
.pv2-plan--power .pv2-eyebrow { color: var(--pv2-power-accent); }

.pv2-plan-title {
  margin: 0.5rem 0 0;
  font-size: clamp(1.875rem, 3vw, 2.6rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--pv2-ink) !important;
}

.pv2-tagline {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--pv2-soft);
}

.pv2-description {
  margin: 1rem 0 0;
  max-width: 36rem;
  font-size: 1rem;
  line-height: 1.75;
  color: #57534e;
}

.pv2-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

.pv2-features li {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #44403c;
}

.pv2-plan--komfort .pv2-features li { background: rgba(118, 152, 216, 0.15); }
.pv2-plan--premium .pv2-features li { background: rgba(128, 191, 165, 0.15); }
.pv2-plan--power .pv2-features li { background: rgba(239, 159, 109, 0.15); }

.pv2-features li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  flex-shrink: 0;
}

.pv2-plan--komfort .pv2-features li::before { background: linear-gradient(135deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent)); }
.pv2-plan--premium .pv2-features li::before { background: linear-gradient(135deg, var(--pv2-premium-soft), var(--pv2-premium-accent)); }
.pv2-plan--power .pv2-features li::before { background: linear-gradient(135deg, var(--pv2-power-soft), var(--pv2-power-accent)); }

.pv2-price-box {
  border-radius: 1.5rem;
  padding: 1rem 1.25rem;
  color: #fff;
  box-shadow: 0 10px 15px -3px rgba(12, 10, 9, 0.1);
}

.pv2-plan--komfort .pv2-price-box { background: linear-gradient(90deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent)); }
.pv2-plan--premium .pv2-price-box { background: linear-gradient(90deg, var(--pv2-premium-soft), var(--pv2-premium-accent)); }
.pv2-plan--power .pv2-price-box { background: linear-gradient(90deg, var(--pv2-power-soft), var(--pv2-power-accent)); }

.pv2-price-headline {
  display: block;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
}

.pv2-price-amount {
  display: block;
  margin-top: 0.25rem;
  font-size: 1.875rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: #fff;
}

.pv2-price-suffix {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
}

.pv2-price-footer,
.pv2-price-hint {
  margin: 0.5rem 0 0;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92) !important;
}

.pv2-journey-head {
  margin: 2rem 0 0.5rem;
}

.pv2-journey-head h4 {
  margin: 0.25rem 0 0;
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--pv2-ink) !important;
}

.pv2-timeline-wrap {
  overflow-x: auto;
  padding-bottom: 0.5rem;
}

.pv2-timeline {
  position: relative;
  display: grid;
  gap: 0.75rem;
  min-width: 0;
  padding: 0 0.25rem;
}

.pv2-timeline-line {
  position: absolute;
  left: 1.5rem;
  top: 0;
  bottom: 0;
  width: 4px;
  border-radius: 999px;
  opacity: 0.25;
}

.pv2-plan--komfort .pv2-timeline-line { background: linear-gradient(180deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent)); }
.pv2-plan--premium .pv2-timeline-line { background: linear-gradient(180deg, var(--pv2-premium-soft), var(--pv2-premium-accent)); }
.pv2-plan--power .pv2-timeline-line { background: linear-gradient(180deg, var(--pv2-power-soft), var(--pv2-power-accent)); }

.pv2-timeline-step {
  position: relative;
  display: grid;
  grid-template-columns: 3.5rem 1fr;
  gap: 0.75rem;
  align-items: start;
}

.pv2-timeline-marker {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  color: #fff;
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1;
  box-shadow: 0 10px 15px -3px rgba(12, 10, 9, 0.1);
}

.pv2-plan--komfort .pv2-timeline-marker { background: linear-gradient(135deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent)); }
.pv2-plan--premium .pv2-timeline-marker { background: linear-gradient(135deg, var(--pv2-premium-soft), var(--pv2-premium-accent)); }
.pv2-plan--power .pv2-timeline-marker { background: linear-gradient(135deg, var(--pv2-power-soft), var(--pv2-power-accent)); }

.pv2-icon-clock {
  width: 1.25rem;
  height: 1.25rem;
}

.pv2-timeline-card {
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.9);
  padding: 1rem;
  box-shadow: 0 1px 2px rgba(12, 10, 9, 0.05);
}

.pv2-timeline-card.is-start {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8);
}

.pv2-timeline-stage {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 900;
  color: var(--pv2-ink);
}

.pv2-timeline-price {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border-radius: 1rem;
}

.pv2-plan--komfort .pv2-timeline-price { background: rgba(118, 152, 216, 0.28); }
.pv2-plan--premium .pv2-timeline-price { background: rgba(128, 191, 165, 0.28); }
.pv2-plan--power .pv2-timeline-price { background: rgba(239, 159, 109, 0.28); }

.pv2-timeline-price.is-end {
  color: #fff;
}

.pv2-plan--komfort .pv2-timeline-price.is-end { background: linear-gradient(90deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent)); }
.pv2-plan--premium .pv2-timeline-price.is-end { background: linear-gradient(90deg, var(--pv2-premium-soft), var(--pv2-premium-accent)); }
.pv2-plan--power .pv2-timeline-price.is-end { background: linear-gradient(90deg, var(--pv2-power-soft), var(--pv2-power-accent)); }

.pv2-timeline-amount {
  display: block;
  font-size: 1.125rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  color: var(--pv2-ink) !important;
  line-height: 1.35;
}

#offer .pv2-plan--komfort .pv2-timeline-price:not(.is-end) .pv2-timeline-amount {
  color: #1e3a5f !important;
}

#offer .pv2-plan--premium .pv2-timeline-price:not(.is-end) .pv2-timeline-amount {
  color: #1a4d35 !important;
}

#offer .pv2-plan--power .pv2-timeline-price:not(.is-end) .pv2-timeline-amount {
  color: #6b3412 !important;
}

.pv2-timeline-price.is-end .pv2-timeline-amount {
  font-size: 1.25rem;
  color: #fff !important;
}

.pv2-timeline-amount s {
  opacity: 0.65;
  font-weight: 700;
}

.pv2-timeline-note {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#offer .pv2-plan--komfort .pv2-timeline-note { color: #254872 !important; }
#offer .pv2-plan--premium .pv2-timeline-note { color: #1a4d35 !important; }
#offer .pv2-plan--power .pv2-timeline-note { color: #6b3412 !important; }
.pv2-timeline-price.is-end .pv2-timeline-note { color: rgba(255, 255, 255, 0.9); }

.pv2-cta-block {
  margin-top: 1.5rem;
  text-align: center;
}

.pv2-flex-note {
  max-width: 42rem;
  margin: 0 auto 1rem;
  text-align: left;
}

.pv2-flex-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--pv2-ink);
}

.pv2-flex-copy {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--pv2-soft);
}

.pv2-cancel-note {
  max-width: 28rem;
  margin: 1rem auto 0;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: #57534e;
}

.pv2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 3.25rem;
  padding: 1rem 2.5rem;
  border: 0;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

.pv2-btn:hover {
  transform: translateY(-2px);
}

.pv2-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.pv2-btn-solid {
  color: #fff;
  box-shadow: 0 10px 15px -3px rgba(12, 10, 9, 0.1);
}

.pv2-plan--komfort .pv2-btn-solid { background: var(--pv2-komfort-accent); }
.pv2-plan--premium .pv2-btn-solid { background: var(--pv2-premium-accent); }
.pv2-plan--power .pv2-btn-solid { background: var(--pv2-power-accent); }

.pv2-btn-dark {
  background: var(--pv2-ink);
  color: #fff;
  box-shadow: 0 1px 2px rgba(12, 10, 9, 0.05);
}

.pv2-btn-dark:hover {
  background: var(--pv2-orange);
}

.pv2-btn-outline {
  background: #fff;
  color: var(--pv2-ink);
  border: 2px solid var(--pv2-ink);
  box-shadow: 0 4px 6px -1px rgba(12, 10, 9, 0.1);
}

.pv2-btn-outline:hover {
  background: var(--pv2-ink);
  color: #fff;
}

.pv2-plan--premium .pv2-btn-accent { background: var(--pv2-premium-accent); color: #fff; }
.pv2-plan--power .pv2-btn-accent { background: var(--pv2-power-accent); color: #fff; }

.pv2-prepay {
  margin-top: 1.25rem;
  padding: 1.25rem;
  border-radius: 1.4rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(12, 10, 9, 0.05);
}

.pv2-plan--komfort .pv2-prepay { background: rgba(238, 243, 250, 0.95); }
.pv2-plan--premium .pv2-prepay { background: rgba(238, 248, 244, 0.95); }
.pv2-plan--power .pv2-prepay { background: rgba(255, 244, 236, 0.95); }

.pv2-prepay-label {
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1.4;
}

.pv2-plan--komfort .pv2-prepay-label { color: var(--pv2-komfort-accent); }
.pv2-plan--premium .pv2-prepay-label { color: var(--pv2-premium-accent); }
.pv2-plan--power .pv2-prepay-label { color: var(--pv2-power-accent); }

.pv2-prepay-grid {
  display: grid;
  gap: 1.5rem;
  align-items: center;
}

.pv2-prepay-term {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pv2-soft);
}

.pv2-prepay-price {
  margin: 0.25rem 0 0;
  font-size: clamp(1.875rem, 3vw, 2.25rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--pv2-ink);
}

.pv2-prepay-note {
  margin: 0.75rem 0 0;
  max-width: 28rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  color: #57534e;
}

.pv2-discount {
  margin-bottom: 1rem;
  padding: 1.25rem;
  border-radius: 1.6rem;
}

.pv2-discount--premium {
  background: rgba(238, 248, 244, 0.9);
  color: var(--pv2-premium-accent);
}

.pv2-discount--power {
  background: rgba(255, 244, 236, 0.9);
  color: var(--pv2-power-accent);
}

.pv2-discount-grid {
  display: grid;
  gap: 1.25rem;
}

.pv2-discount-eyebrow {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.pv2-discount-title {
  margin: 0.5rem 0 0;
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--pv2-ink) !important;
}

.pv2-discount-copy {
  margin: 0.75rem 0 0;
  max-width: 56rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  color: #44403c;
}

.pv2-discount-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.pv2-discount-form {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.25rem;
  padding: 0.75rem;
  border-radius: 1.3rem;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 1px 2px rgba(12, 10, 9, 0.05);
}

.pv2-input {
  min-height: 3rem;
  width: 100%;
  padding: 0 1.25rem;
  border: 0;
  border-radius: 999px;
  background: #fff;
  font-size: 0.875rem;
  font-weight: 800;
  color: var(--pv2-ink);
  outline: none;
  box-shadow: inset 0 0 0 1px #e7e5e4;
}

.pv2-input:focus {
  box-shadow: inset 0 0 0 2px rgba(249, 115, 22, 0.45);
}

.pv2-discount-active {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.25rem;
  padding: 1rem 1.25rem;
  border-radius: 1.3rem;
  background: rgba(255, 255, 255, 0.85);
  color: var(--pv2-ink);
  box-shadow: 0 1px 2px rgba(12, 10, 9, 0.05);
}

.pv2-discount-error {
  margin: 0.5rem 0 0;
  padding: 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #b91c1c;
}

/* Consultation */
.pv2-consultation {
  padding: 0 1rem 1.5rem;
}

.pv2-consultation-shell {
  max-width: 80rem;
  margin: 0 auto;
  padding: 2px;
  border-radius: 2rem;
  background: var(--pv2-ink);
  box-shadow: 0 25px 50px -12px rgba(124, 45, 18, 0.2);
}

.pv2-consultation-inner {
  overflow: hidden;
  border-radius: 1.85rem;
  background: linear-gradient(135deg, #fff7ed, #fff, #ecfccb);
}

.pv2-consultation-slide {
  display: grid;
}

.pv2-consultation-slide.is-open .pv2-consultation-teaser {
  display: none;
}

.pv2-consultation-slide.is-open .pv2-consultation-panel {
  display: block;
}

.pv2-consultation-panel.is-hidden {
  display: none;
}

.pv2-consultation-slide.is-open .pv2-consultation-panel.is-hidden {
  display: block;
}

.pv2-consultation-teaser,
.pv2-consultation-panel {
  padding: 1.5rem;
}

.pv2-consultation-teaser h2,
.pv2-consultation-panel h3 {
  margin: 0.5rem 0 0;
  max-width: 56rem;
  font-size: clamp(1.875rem, 4vw, 3rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.04em;
  color: var(--pv2-ink) !important;
}

.pv2-consultation-teaser p,
.pv2-consultation-copy {
  margin: 1rem 0 0;
  max-width: 48rem;
  font-size: 1rem;
  line-height: 1.75;
  color: #57534e;
}

.pv2-consultation-form {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.5rem;
  max-width: 28rem;
}

.pv2-form-success {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--pv2-premium-accent);
}

.pv2-form-error {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #b91c1c;
}

/* Checkout panel */
.pv2-checkout-card {
  border-radius: 1.25rem;
  background: #fffaf2;
  padding: 1rem;
  color: var(--pv2-ink);
}

.pv2-checkout-top {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pv2-checkout-price {
  border-radius: 1.5rem;
  padding: 1rem 1.25rem;
  color: #fff;
  box-shadow: 0 10px 15px -3px rgba(12, 10, 9, 0.1);
}

.pv2-checkout-card.pv2-plan--komfort .pv2-checkout-price {
  background: linear-gradient(90deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent));
}

.pv2-checkout-card.pv2-plan--premium .pv2-checkout-price {
  background: linear-gradient(90deg, var(--pv2-premium-soft), var(--pv2-premium-accent));
}

.pv2-checkout-card.pv2-plan--power .pv2-checkout-price {
  background: linear-gradient(90deg, var(--pv2-power-soft), var(--pv2-power-accent));
}

.pv2-checkout-card .pv2-plan-title,
.pv2-checkout-card h3 {
  color: var(--pv2-ink);
}

.pv2-checkout-card .pv2-description {
  color: #57534e;
}

.pv2-checkout-price .pv2-price-headline,
.pv2-checkout-price .pv2-price-amount,
.pv2-checkout-price .pv2-price-suffix {
  color: #fff;
}

.pv2-checkout-grid {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.pv2-checkout-section {
  border-radius: 1.25rem;
  background: #fff;
  padding: 1rem;
}

.pv2-checkout-section h4 {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pv2-orange);
}

.pv2-field-error {
  margin: -0.25rem 0 0;
  padding: 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #b91c1c;
}

.pv2-payment-option {
  display: block;
  margin-bottom: 0.75rem;
  padding: 0.75rem;
  border: 2px solid #e7e5e4;
  border-radius: 1.4rem;
  background: #faf8f4;
  cursor: pointer;
}

.pv2-payment-option.is-active {
  border-color: var(--pv2-ink);
  background: #fff;
  box-shadow: 0 10px 15px -3px rgba(12, 10, 9, 0.1);
}

.pv2-payment-option input {
  position: absolute;
  opacity: 0;
}

.pv2-payment-title {
  display: block;
  font-size: 1.125rem;
  font-weight: 900;
  color: var(--pv2-ink);
}

.pv2-payment-desc {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--pv2-soft);
}

.pv2-checkout-error {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 1rem;
  background: #fef2f2;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  color: #b91c1c;
}

.pv2-regulations {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 0.5rem;
  padding: 1rem;
  border-radius: 1rem;
  background: #fafaf9;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: #44403c;
  cursor: pointer;
}

.pv2-regulations input {
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.pv2-checkout-fields {
  display: grid;
  gap: 0.75rem;
}

.pv2-checkout-actions {
  margin-top: 1rem;
}

.pv2-trust-list {
  display: grid;
  gap: 0.5rem;
  margin: 1rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 1rem;
  background: #fafaf9;
  list-style: none;
}

.pv2-trust-list li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #44403c;
}

.pv2-trust-list li::before {
  content: "✓";
  display: grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 900;
  color: #fff;
}

.pv2-plan--komfort .pv2-trust-list li::before { background: linear-gradient(135deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent)); }
.pv2-plan--premium .pv2-trust-list li::before { background: linear-gradient(135deg, var(--pv2-premium-soft), var(--pv2-premium-accent)); }
.pv2-plan--power .pv2-trust-list li::before { background: linear-gradient(135deg, var(--pv2-power-soft), var(--pv2-power-accent)); }

@media (min-width: 640px) {
  .pv2-inner {
    padding: 1.5rem;
  }

  .pv2-details,
  .pv2-checkout {
    padding: 1.5rem;
  }

  .pv2-discount-form {
    grid-template-columns: 1fr auto;
  }

  .pv2-consultation-teaser,
  .pv2-consultation-panel {
    padding: 2rem;
  }
}

@media (min-width: 768px) {
  .pv2-header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }

  .pv2-hero {
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 2.5rem;
    padding: 1.5rem;
  }

  .pv2-price-box {
    min-width: 15rem;
    max-width: 18rem;
  }

  .pv2-prepay-grid {
    grid-template-columns: 1fr auto;
  }

  .pv2-discount-grid {
    grid-template-columns: 1fr auto;
    align-items: center;
  }

  .pv2-discount-actions {
    min-width: 14rem;
  }

  .pv2-checkout-top {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }

  .pv2-checkout-grid {
    grid-template-columns: 0.92fr 1.08fr;
  }
}

@media (min-width: 1024px) {
  .pv2-section {
    padding: 5rem 1rem;
  }

  .pv2-inner {
    padding: 2.5rem;
  }

  .pv2-slide.has-checkout {
    grid-template-columns: 1fr 1fr;
    width: 200%;
    transform: translateX(0);
  }

  .pv2-slide.has-checkout.is-checkout-open {
    transform: translateX(-50%);
  }

  .pv2-slide.has-checkout.is-checkout-open .pv2-details,
  .pv2-slide.has-checkout.is-checkout-open .pv2-checkout {
    display: block;
  }

  .pv2-slide.has-checkout .pv2-details,
  .pv2-slide.has-checkout .pv2-checkout {
    display: block;
  }

  .pv2-timeline:not(.pv2-timeline--simple) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    min-width: 980px;
    gap: 1rem;
    padding: 0 1.25rem;
  }

  .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-line {
    left: 0;
    right: 0;
    top: 1.5rem;
    bottom: auto;
    width: auto;
    height: 4px;
    opacity: 0.3;
    background: linear-gradient(90deg, currentColor, currentColor);
  }

  .pv2-plan--komfort .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-line {
    background: linear-gradient(90deg, var(--pv2-komfort-soft), var(--pv2-komfort-accent));
  }

  .pv2-plan--premium .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-line {
    background: linear-gradient(90deg, var(--pv2-premium-soft), var(--pv2-premium-accent));
  }

  .pv2-plan--power .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-line {
    background: linear-gradient(90deg, var(--pv2-power-soft), var(--pv2-power-accent));
  }

  .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-step {
    display: block;
  }

  .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-marker {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto;
  }

  .pv2-timeline:not(.pv2-timeline--simple) .pv2-timeline-card {
    margin-top: 1rem;
  }

  .pv2-timeline--simple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }

  .pv2-timeline--simple .pv2-timeline-line {
    left: 0;
    right: 0;
    top: 1.5rem;
    bottom: auto;
    width: auto;
    height: 4px;
  }

  .pv2-timeline--simple .pv2-timeline-step {
    display: block;
  }

  .pv2-timeline--simple .pv2-timeline-marker {
    margin: 0 auto;
  }

  .pv2-timeline--simple .pv2-timeline-card {
    margin-top: 1rem;
    text-align: center;
  }

  .pv2-trust-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
