/* =========================================
   PRICING v4.1 — Title on top · Devices sidebar · Smooth transitions
========================================= */

.pricing-section {
  padding: calc(var(--section-padding, 80px) + 1.5rem) 0;
  background: radial-gradient(circle at 15% 20%, rgba(14,165,233,.10), transparent 45%),
              radial-gradient(circle at 85% 60%, rgba(139,92,246,.10), transparent 45%),
              linear-gradient(180deg, #0a0a0a 0%, #0b0b0b 100%);
  border-top: 1px solid rgba(255,255,255,.06);
}

/* ── HEADER (full width, centred above body) ── */
.pricing-header {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 3.5rem;
}

.pricing-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .4rem .9rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.75);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: .78rem;
  margin-bottom: 1.25rem;
}

.pricing-title {
  font-size: clamp(2.2rem, 4.2vw, 3.4rem);
  margin: 0 0 1rem;
  line-height: 1.08;
}

.pricing-subtitle {
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(255,255,255,.62);
}

/* ── BODY: sidebar + cards ── */
.pricing-body {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 2.5rem;
  align-items: start;
}

/* ── SIDEBAR ── */
.pricing-sidebar {
  position: sticky;
  top: 100px;
}

.pricing-devices {
  padding: 1.6rem 1.4rem;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}

.pricing-devices__label {
  display: block;
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: 1rem;
}

.pricing-devices__pills {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.device-pill {
  display: flex;
  align-items: center;
  gap: .75rem;
  width: 100%;
  padding: .75rem 1rem;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
  color: rgba(255,255,255,.75);
  font-weight: 600;
  font-size: .9rem;
  text-align: left;
  cursor: pointer;
  transition: all .22s ease;
  position: relative;
  overflow: hidden;
}

.device-pill::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-primary, linear-gradient(135deg, #0ea5e9, #8b5cf6));
  opacity: 0;
  transition: opacity .22s;
}

.device-pill:hover {
  border-color: rgba(14,165,233,.45);
  color: #fff;
  transform: translateX(3px);
}

.device-pill.is-active {
  border-color: rgba(14,165,233,.6);
  color: #fff;
  background: rgba(14,165,233,.12);
  box-shadow: 0 0 0 1px rgba(14,165,233,.25), 0 6px 20px rgba(14,165,233,.12);
}

.dp-num {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: .92rem;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  transition: background .22s;
}

.device-pill.is-active .dp-num {
  background: linear-gradient(135deg, #0ea5e9, #8b5cf6);
  color: #fff;
}

.dp-label {
  position: relative;
  z-index: 1;
}

.pricing-devices__hint {
  margin: 1rem 0 0;
  font-size: .82rem;
  color: rgba(255,255,255,.42);
  line-height: 1.5;
}

.pricing-sidebar__perks {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,.07);
  display: grid;
  gap: .55rem;
}

.pricing-sidebar__perks li {
  font-size: .82rem;
  color: rgba(255,255,255,.55);
  line-height: 1.45;
}

/* ── CARDS ── */
.pricing-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  align-items: stretch;
}

.price-card {
  position: relative;
  border-radius: 22px;
  padding: 2rem 1.75rem 1.75rem;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 25px 70px rgba(0,0,0,.42);
  overflow: hidden;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
  display: flex;
  flex-direction: column;
}

.price-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 10%, rgba(14,165,233,.18), transparent 50%),
              radial-gradient(circle at 90% 70%, rgba(139,92,246,.16), transparent 55%);
  opacity: .9;
  pointer-events: none;
}

.price-card:hover {
  transform: translateY(-6px);
  border-color: rgba(14,165,233,.4);
  box-shadow: 0 32px 80px rgba(0,0,0,.5);
}

.price-card.is-featured {
  border-color: rgba(14,165,233,.75);
  box-shadow: 0 0 0 1px rgba(14,165,233,.3), 0 30px 90px rgba(0,0,0,.55);
}

.price-card__badge {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  padding: .3rem .65rem;
  font-size: .75rem;
  font-weight: 900;
  border-radius: 999px;
  color: #0a0a0a;
  background: linear-gradient(135deg, rgba(245,158,11,.95), rgba(255,255,255,.85));
}

.price-card__top {
  position: relative;
  z-index: 2;
  margin-bottom: .9rem;
}
.price-card__top h3 {
  margin: 0;
  font-size: 1.25rem;
  letter-spacing: -.02em;
}
.price-card__meta {
  margin: .3rem 0 0;
  color: rgba(255,255,255,.55);
  font-size: .88rem;
}

/* Price display — animated */
.price-card__price {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: baseline;
  gap: .6rem;
  margin: .9rem 0 1.1rem;
}
.price-card__amount {
  font-size: 2.8rem;
  font-weight: 900;
  letter-spacing: -.03em;
  transition: all .35s cubic-bezier(.22,.68,0,1.2);
}
.price-card__amount.is-updating {
  opacity: 0;
  transform: translateY(-8px) scale(.96);
}
.price-card__per {
  color: rgba(255,255,255,.5);
  font-size: .9rem;
  font-weight: 700;
}

/* Savings badge */
.price-card__saving {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .28rem .7rem;
  background: rgba(34,197,94,.1);
  border: 1px solid rgba(34,197,94,.2);
  border-radius: 6px;
  font-size: .78rem;
  font-weight: 700;
  color: #22c55e;
  margin-bottom: 1.1rem;
  transition: opacity .3s ease;
  min-height: 24px;
}

.price-card__features {
  position: relative;
  z-index: 2;
  display: grid;
  gap: .55rem;
  margin: 0 0 1.25rem;
  padding: 0;
  flex: 1;
}
.price-card__features li {
  color: rgba(255,255,255,.8);
  font-size: .92rem;
}

.price-card .btn {
  position: relative;
  z-index: 2;
  width: 100%;
  justify-content: center;
  border-radius: 14px;
  padding: 1rem;
  font-weight: 800;
  transition: transform .24s ease, box-shadow .24s ease, background .24s ease;
}
.price-card .btn:hover {
  transform: translateY(-2px);
}

.price-card__fine {
  position: relative;
  z-index: 2;
  margin: .75rem 0 0;
  color: rgba(255,255,255,.48);
  font-size: .82rem;
  min-height: 1.1em;
  transition: opacity .3s ease;
}
.price-card__micro {
  position: relative;
  z-index: 2;
  margin-top: .5rem;
  color: rgba(255,255,255,.3);
  font-size: .78rem;
}

/* ── Responsive ── */
@media (max-width: 1100px) {
  .pricing-body {
    grid-template-columns: 200px 1fr;
    gap: 1.8rem;
  }
}

@media (max-width: 900px) {
  .pricing-body {
    grid-template-columns: 1fr;
  }
  .pricing-sidebar {
    position: static;
  }
  .pricing-devices__pills {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .device-pill {
    flex: 1;
    min-width: 100px;
    flex-direction: column;
    gap: .3rem;
    padding: .7rem .6rem;
    text-align: center;
  }
  .device-pill:hover { transform: translateY(-2px); }
}

@media (max-width: 680px) {
  .pricing-cards {
    grid-template-columns: 1fr;
  }
  .pricing-title {
    font-size: clamp(2rem, 8vw, 2.8rem);
  }
}
