/* Grizzly Beam — /pricing/ (spec: specs/pricing-build-spec.md)
   Shared: .svc-hero*, .svc-plus, .svc-closer* → components.css */

/* ---------- 1 · Hero ---------- */
.prc-hero { display: flex; align-items: center; justify-content: center; }
/* ---------- 2 · How it works ---------- */
.prc-how { background: var(--paper); color: var(--ink); padding-block: 9rem 5rem; }
.prc-how__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 6rem; align-items: start; }
.prc-how__eyebrow { color: var(--tx-g); }
.prc-how__title {
  font-size: 3.2rem; line-height: 1.05; letter-spacing: -0.005em; font-weight: var(--w-h2);   /* brand: H2 */
  margin-top: 1.5rem;
}
.prc-how__body {
  font-family: var(--f-body);
  font-size: 1.55rem; line-height: 1.55;
  color: var(--tx-g); max-width: 42rem; padding-top: 0.6rem;
}

/* ---------- 3 · What that means for you ---------- */
.prc-mean { background: linear-gradient(0deg, var(--stone2) 0%, var(--paper) 100%); color: var(--ink); padding-block: 5rem 9rem; }
.prc-mean__head { text-align: center; }
.prc-mean__title { font-size: 3.2rem; line-height: 1.05; letter-spacing: -0.005em; font-weight: var(--w-h2); }
.prc-mean__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3.6rem 3.2rem; margin-top: 4.4rem; align-items: stretch; grid-auto-rows: 1fr;   /* all items stretch to the tallest one's height so the bars match */ }
.prc-card {
  position: relative;
  padding-top: 1.6rem; padding-left: 1.4rem;
  will-change: transform, opacity;
}
.prc-card::before {
  content: ""; position: absolute; left: 0; top: 1.6rem; width: 3px;
  height: calc(100% - 1.6rem);
  background: var(--accent);
}
.prc-card__title { font-size: 2.1rem; line-height: 1.25; font-weight: var(--w-h3); }   /* brand: H3 */
.prc-card__desc { color: var(--tx-g); margin-top: 1rem; max-width: 30rem; }

/* ---------- 4 · Estimate + Care plans (ink) ---------- */
.prc-est { background: var(--ink); color: var(--tx-l); padding-block: 9rem; }
.prc-est__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6rem; align-items: start; }
.prc-est__title {
  font-size: 2.53rem; line-height: 1.1; letter-spacing: -0.005em; font-weight: var(--w-h2);
  color: var(--tx-l);
}
.prc-est__body {
  font-family: var(--f-body);
  font-size: 1.55rem; line-height: 1.55;
  color: rgba(236, 232, 225, 0.72);
  margin-top: 1.8rem; max-width: 38rem;
}
.prc-est__link { display: inline-block; margin-top: 1.6rem; color: var(--tx-l); padding-bottom: 0.35em; }

/* ---------- 5 · Closer ---------- */
.prc-closer { padding-block: 10rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  .prc-how__grid { grid-template-columns: 1fr; gap: 3rem; }
  .prc-mean__grid { grid-template-columns: 1fr; gap: 3.4rem; }
  .prc-est__grid { grid-template-columns: 1fr; gap: 4.5rem; }
}
@media (max-width: 767px) {
  .prc-how { padding-block: 6rem 3rem; }
  .prc-how__title, .prc-mean__title { font-size: 2.6rem; }
  .prc-how__body { font-size: 1.35rem; }
  .prc-mean { padding-block: 3rem 6rem; }
  .prc-est { padding-block: 6rem; }
  .prc-est__title { font-size: 2rem; }
  .prc-est__body { font-size: 1.35rem; }
  .prc-closer { padding-block: 6rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .prc-card { opacity: 1 !important; transform: none !important; }
  .prc-card::before { transition: none; }
}

/* ============================================================
   WHY WE PRICE THIS WAY — ink (§04: ink behind proof moments)
   Typography carries the section: a large statement on the left, the reasoning on the right.
   The only device is the masked per-line heading entrance — a single moment,
   no spectacle (§09 „calm and fast over spectacle").
   ============================================================ */
.prc-why { background: var(--ink); color: var(--tx-l); padding-block: 9rem; }
.prc-why__grid {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 6rem; align-items: start;
}
.prc-why__rule { display: block; width: 3.4rem; height: 3px; background: var(--accent); margin-bottom: 1.8rem; }
.prc-why__eyebrow { color: rgba(236, 232, 225, 0.55); }
.prc-why__title {
  margin-top: 1.4rem;
  font-size: 5rem; line-height: 1.02; letter-spacing: -0.01em;
  font-weight: var(--w-display); color: var(--tx-l);
}
/* .wm / .wm__i live in core.css — used by both /pricing/ and /404/ */
.prc-why.is-on .wm__i { transform: translateY(0); }
.prc-why.is-on .wm:nth-child(2) .wm__i { transition-delay: 0.11s; }

.prc-why__body {
  font-family: var(--f-body); font-size: 1.45rem; line-height: 1.6; font-weight: 400;
  color: rgba(236, 232, 225, 0.68); max-width: 44rem; padding-top: 1.2rem;
}

/* two ink chapters in a row — a hairline separates them so they do not merge into one block */
.prc-est { border-top: 1px solid rgba(236, 232, 225, 0.12); }

/* ============================================================
   PRICING FAQ — paper; breaks up the dark middle and leads into the closer
   Accordion: mono number + question + chevron; opening is done via
   grid-template-rows 0fr→1fr (not height — it does not cause layout thrash).
   ============================================================ */
.prc-faq { background: var(--paper); color: var(--ink); padding-block: 9rem; }
.prc-faq__grid {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: 6rem; align-items: start;
}
.prc-faq__rule { display: block; width: 3.4rem; height: 3px; background: var(--accent); }
.prc-faq__title {
  margin-top: 1.8rem;
  font-size: 3.2rem; line-height: 1.05; letter-spacing: -0.005em;
  font-weight: var(--w-h2); color: var(--ink);
}
.prc-faq__cta { margin-top: 2.8rem; }

.pfaq { position: relative; border-bottom: 1px solid rgba(22, 24, 28, 0.16); }
.pfaq::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--accent);
  transform: scaleY(0); transform-origin: top;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.pfaq.is-open::before { transform: scaleY(1); }

.pfaq__q {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: baseline; gap: 1.6rem;
  padding: 2rem 0 2rem 1.6rem;
  cursor: pointer; list-style: none;
}
.pfaq__q::-webkit-details-marker { display: none; }
.pfaq__q:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.pfaq__num {
  font-family: var(--f-mono); font-size: 0.984rem; letter-spacing: 0.18em;
  color: var(--tx-g); transition: color 0.3s ease;
}
.pfaq.is-open .pfaq__num { color: var(--amber-deep); }
.pfaq__txt {
  font-size: 1.75rem; line-height: 1.3; letter-spacing: -0.005em;
  font-weight: var(--w-h3); color: var(--ink);
}
.pfaq__ico {
  align-self: center; display: grid; place-items: center;
  color: var(--tx-g);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.pfaq__ico svg { width: 1.25rem; height: 1.25rem; }   /* §08: 16px inline */
.pfaq.is-open .pfaq__ico { transform: rotate(180deg); }

.pfaq__a {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.pfaq.is-open .pfaq__a { grid-template-rows: 1fr; }
.pfaq__a > div { overflow: hidden; }
.pfaq__a p {
  color: var(--tx-g); max-width: 46rem;
  padding: 0 3.4rem 2.2rem 4.6rem;
}

@media (max-width: 1023px) {
  .prc-why { padding-block: 7rem; }
  .prc-why__grid { grid-template-columns: 1fr; gap: 2.6rem; }
  .prc-why__title { font-size: 4rem; }
  .prc-why__body { padding-top: 0; }
  .prc-faq { padding-block: 7rem; }
  .prc-faq__grid { grid-template-columns: 1fr; gap: 3rem; }
}
@media (max-width: 767px) {
  .prc-why { padding-block: 6rem; }
  .prc-why__title { font-size: 3.2rem; }
  .prc-why__body { font-size: 1.35rem; }
  .prc-faq { padding-block: 6rem; }
  .prc-faq__title { font-size: 2.6rem; }
  .pfaq__q { gap: 1rem; padding: 1.7rem 0 1.7rem 1.3rem; }
  .pfaq__txt { font-size: 1.5rem; }
  .pfaq__a p { padding: 0 1rem 1.9rem 3.4rem; }
}

@media (prefers-reduced-motion: reduce) {
  .pfaq__a, .pfaq::before, .pfaq__ico { transition: none; }
}
