/* Pricing page (2026-10-25). Page-scoped additions on top of base.css + components.css.
   Shared stylesheets are Cloudflare-immutable, so nothing here touches them. */

.pricing-hero { padding-top: calc(var(--nav-h) + var(--s-7)); }
.pricing-hero .hero__cta { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-6); }

/* In-page index */
.pricing-index { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); margin-top: var(--s-7); padding-top: var(--s-5); border-top: 1px solid var(--rule); list-style: none; padding-left: 0; }
.pricing-index a { display: inline-flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); font-weight: 500; letter-spacing: 0.04em; color: var(--ink); min-height: 44px; }
.pricing-index a span { font-family: var(--serif); font-style: italic; color: var(--accent); font-size: var(--fs-base); }
.pricing-index a:hover { color: var(--accent-deep); }

/* Groups within a service section */
.pricing-group { padding-top: var(--s-6); }
.pricing-group + .pricing-group { margin-top: var(--s-7); border-top: 1px solid var(--rule); }
.pricing-group__head { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); align-items: end; margin-bottom: var(--s-5); }
.pricing-group__title { font-family: var(--serif); font-weight: 400; font-size: var(--fs-xl); line-height: 1.1; letter-spacing: -0.015em; }
.pricing-group__title em { font-style: italic; color: var(--accent); }
.pricing-group__intro { font-size: var(--fs-sm); line-height: 1.6; color: var(--ink-soft); max-width: 52ch; justify-self: end; }
.pricing-group .pricing__grid { margin-bottom: var(--s-5); }

/* Card details */
.pricing__unit { font-size: var(--fs-sm); color: var(--ink-soft); margin-top: calc(var(--s-2) * -1); }
.pricing__total { font-size: var(--fs-sm); font-weight: 500; color: var(--ink); margin-top: auto; padding-top: var(--s-3); }
.pricing__price--text { font-size: clamp(1.5rem, 2.6vw, 1.875rem); line-height: 1.15; }
.pricing__card--setup { background: var(--bg-alt); }
.pricing__actions { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5); align-items: center; margin-bottom: var(--s-2); }
.pricing__actions .editorial-link { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--fs-sm); font-weight: 500; letter-spacing: 0.04em; color: var(--ink); box-shadow: inset 0 -1px 0 var(--ink); }
.pricing__actions .editorial-link:hover { color: var(--accent-deep); box-shadow: inset 0 -1px 0 var(--accent-deep); }

/* Terms */
.terms-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-6) var(--s-6); border-top: 1px solid var(--ink); padding-top: var(--s-6); margin: 0; }
.terms-grid div { display: flex; flex-direction: column; gap: var(--s-2); }
.terms-grid dt { font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); }
.terms-grid dd { margin: 0; font-size: var(--fs-base); line-height: 1.6; color: var(--ink); }
.terms-grid dd strong { font-weight: 500; }
.terms-links { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); margin-top: var(--s-6); }
.terms-links a { font-size: var(--fs-sm); font-weight: 500; letter-spacing: 0.04em; color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 2px; min-height: 44px; display: inline-flex; align-items: center; }
.terms-links a:hover { color: var(--accent-deep); border-color: var(--accent-deep); }

@media (max-width: 860px) {
  .pricing-group__head { grid-template-columns: 1fr; gap: var(--s-3); }
  .pricing-group__intro { justify-self: start; }
  .terms-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .terms-grid { grid-template-columns: 1fr; gap: var(--s-5); }
  .pricing-index { gap: var(--s-2) var(--s-5); }
  .pricing__unit, .pricing__total, .pricing__feat, .pricing__note, .pricing__terms { font-size: 1rem; }
}
