/* ═══════════════════════════════════════════════════════════════════════
   Azora Marketing — Pricing page (v2)
   ═══════════════════════════════════════════════════════════════════════ */

/* Registered custom property so the featured-tier conic ring can animate.
   Browsers without @property ignore this; the solid brand border below is
   the fallback, so the card never loses its emphasis. */
@property --tier-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-stack-md);
  align-items: stretch;
}
@media (max-width: 880px) { .pricing-grid { grid-template-columns: 1fr; } }

.tier {
  background: var(--surface-overlay);
  border: var(--line-hairline) solid var(--ink-200);
  border-radius: var(--radius-card);
  padding: 32px;
  display: flex;
  flex-direction: column;
  position: relative;
}
.tier--featured {
  /* Solid brand border is the fallback; the animated ring (::before) overlays
     it where supported. Glow makes the flagship plan pop off the grid. */
  border-color: var(--brand-600);
  border-width: 2px;
  box-shadow: var(--glow-brand), var(--shadow-lg);
}
.tier--featured::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(from var(--tier-angle),
    var(--brand-500), var(--acc-teal), var(--acc-blue), var(--acc-mauve), var(--brand-500));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: tier-spin 6s linear infinite;
  pointer-events: none;
}
@keyframes tier-spin { to { --tier-angle: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .tier--featured::before { animation: none; }
}
.tier__ribbon {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: var(--brand-600); color: var(--color-text-on-brand);
  padding: 4px 14px;
  border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.tier__name {
  font: 700 22px/1.2 var(--font-display);
  letter-spacing: -0.005em;
  margin: 0 0 4px;
  color: var(--ink-900);
}
.tier__tagline {
  margin: 0 0 var(--space-stack-md);
  color: var(--ink-500);
  font-size: 14px;
}
.tier__price {
  display: flex; align-items: baseline; gap: 6px;
  margin: var(--space-stack-sm) 0 var(--space-stack-md);
}
.tier__price-num {
  font: 700 48px/1 var(--font-display);
  letter-spacing: -0.02em;
  color: var(--ink-900);
}
.tier__price-period {
  color: var(--ink-500); font-size: 14px;
}
.tier__cta { margin-bottom: var(--space-stack-md); }
.tier__features {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: var(--space-inline-md);
  flex: 1;
}
.tier__features li {
  display: flex; align-items: flex-start; gap: var(--space-inline-sm);
  font-size: 14px; color: var(--ink-700);
  position: relative;
}
.tier__features li::before {
  content: ""; flex: none;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--brand-50);
  border: 1px solid var(--brand-200);
  margin-top: 1px;
}
.tier__features li::after {
  content: "";
  position: absolute;
  left: 5px; top: 7px;
  width: 8px; height: 4px;
  border-left: 2px solid var(--brand-700);
  border-bottom: 2px solid var(--brand-700);
  transform: rotate(-45deg);
}
.tier__features li.no::before { background: var(--ink-50); border-color: var(--ink-200); }
.tier__features li.no::after { display: none; }
.tier__features li.no { color: var(--ink-300); text-decoration: line-through; }

.tier__footer {
  margin-top: var(--space-stack-md);
  padding-top: var(--space-stack-sm);
  border-top: var(--line-hairline) dashed var(--ink-100);
  font-size: 12px; color: var(--ink-500);
}

/* Feature matrix */
.matrix {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.matrix thead th {
  font: 600 14px var(--font-display);
  text-align: left;
  padding: 16px 12px;
  border-bottom: var(--line-hairline) solid var(--ink-200);
  color: var(--ink-900);
  background: var(--surface-base);
  position: sticky; top: 56px; z-index: 1;
}
.matrix thead th.col-tier { text-align: center; min-width: 100px; }
.matrix thead th.col-tier--featured { color: var(--brand-700); }
.matrix tbody td {
  padding: 12px;
  border-bottom: var(--line-hairline) solid var(--ink-100);
  color: var(--ink-700);
}
.matrix tbody td.cell-tier { text-align: center; }
.matrix tbody tr.row-section td {
  background: var(--surface-raised);
  font: 600 13px var(--font-display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--brand-700);
  padding-top: 24px;
}
.matrix .check { color: var(--brand-600); font-weight: 700; }
.matrix .dash { color: var(--ink-300); }

/* FAQ */
.faq { display: flex; flex-direction: column; gap: var(--space-inline-md); max-width: 760px; margin: 0 auto; }
.faq details {
  border: var(--line-hairline) solid var(--ink-100);
  border-radius: var(--radius-card);
  background: var(--surface-overlay);
  overflow: hidden;
}
.faq details[open] { border-color: var(--ink-200); }
.faq summary {
  padding: 18px 22px;
  font: 600 16px var(--font-display);
  cursor: pointer;
  list-style: none;
  display: flex; align-items: center; justify-content: space-between;
  color: var(--ink-900);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; font-size: 22px; color: var(--brand-600); font-weight: 400;
}
.faq details[open] summary::after { content: "−"; }
.faq details p {
  margin: 0;
  padding: 0 22px 22px;
  color: var(--ink-700);
  font-size: 15px;
  line-height: 1.6;
}
