/* ============================================================
   MarketResearchly - shared editorial styles for the Features and
   Methodology pages and the Pricing FAQ (redesign).
   Same language as About and Contact: serif display type, small
   caps labels with an accent rule, hairlines, frosted cards, one
   deep violet accent, dark cards with a violet glow. Sits on the
   warm site theme (site-theme.css). Tokens (--mr-*) from style.css.
   ============================================================ */

.pg {
  --pg-accent-ink: #BD422A;            /* the logo orange as text: 4.63:1 on cream */
  --pg-ink-soft:   rgba(22, 22, 24, .74);
  --pg-hair:       rgba(22, 22, 24, .1);
  --pg-glass:      rgba(255, 255, 255, .72);
  color: var(--mr-ink); font-family: var(--mr-sans);
}
.pg-wrap { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.pg-narrow { max-width: 1040px; }
.pg em { font-style: italic; }

/* ---------- type ---------- */
.pg-label {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: 12px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase;
  color: var(--pg-accent-ink);
}
.pg-label::before, .pg-label::after { content: ''; width: 40px; height: 1px; background: var(--mr-brand); }
.pg-display {
  font-family: var(--mr-display); font-weight: 400; font-size: 84px; line-height: .98;
  letter-spacing: -0.038em; max-width: 900px; margin: 28px auto 0; text-wrap: balance;
}
.pg-display em, .pg-h2 em { color: var(--pg-accent-ink); }
.pg-lede { font-size: 19px; line-height: 1.6; color: var(--pg-ink-soft); max-width: 660px; margin: 28px auto 0; text-wrap: pretty; }
.pg-h2 {
  font-family: var(--mr-display); font-weight: 400; font-size: 54px; line-height: 1.04;
  letter-spacing: -0.03em; margin: 0; text-wrap: balance;
}
.pg-h2-lg { font-size: 64px; }
.pg-body { font-size: 17px; line-height: 1.7; color: var(--pg-ink-soft); margin: 20px 0 0; text-wrap: pretty; }

/* ---------- layout ---------- */
.pg-hero { max-width: 1140px; margin: 0 auto; padding: 110px 24px 90px; text-align: center; }
.pg-hero .pg-display, .pg-hero .pg-lede { animation: pgRise .9s cubic-bezier(.2, .7, .2, 1) backwards; }
.pg-hero .pg-lede { animation-delay: .1s; }
@keyframes pgRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.pg-section { padding: 0 0 120px; }
.pg-last { padding-bottom: 150px; }
.pg-center-head { text-align: center; max-width: 700px; margin: 0 auto 52px; }
.pg-center-head .pg-body { margin-left: auto; margin-right: auto; max-width: 560px; }
.pg-split { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.pg-btns { display: flex; justify-content: center; gap: 12px; margin-top: 34px; }

/* section divider: label on the left, a hairline running out to the right */
.pg-rule { display: flex; align-items: center; gap: 22px; margin-bottom: 34px; }
.pg-rule span {
  display: inline-flex; align-items: center; gap: 12px; white-space: nowrap;
  font-size: 12px; font-weight: 600; letter-spacing: .16em; color: rgba(22, 22, 24, .7);
}
.pg-rule span::before { content: ''; width: 8px; height: 8px; background: var(--mr-accent); transform: rotate(45deg); }
.pg-rule i { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(22, 22, 24, .16), rgba(22, 22, 24, 0)); }
.pg-block { margin-bottom: 110px; }
.pg-block-last { margin-bottom: 0; }

/* frosted card */
.pg-card, .pg-feat, .pg-src, .pg-out, .pg-cmp {
  background: var(--pg-glass); border: 1px solid rgba(255, 255, 255, .9);
  -webkit-backdrop-filter: blur(18px) saturate(1.15); backdrop-filter: blur(18px) saturate(1.15);
  box-shadow: 0 18px 44px rgba(60, 50, 42, .08);
}
.pg-card-hd {
  font-size: 11.5px; font-weight: 600; letter-spacing: .16em; color: rgba(22, 22, 24, .6);
  padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--pg-hair);
}
.pg .ck { color: var(--mr-accent); font-weight: 700; }

/* ---------- features grid ---------- */
.pg-feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pg .pg-feat {
  position: relative; overflow: hidden; border-radius: 20px !important; padding: 30px 30px 28px;
  transition: transform .35s ease, box-shadow .35s ease;
}
.pg-feat::before {
  content: ''; position: absolute; top: 0; left: 30px; right: 30px; height: 2px;
  background: var(--mr-accent); transform: scaleX(0); transform-origin: left;
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.pg-feat:hover { transform: translateY(-4px); box-shadow: 0 26px 56px rgba(60, 50, 42, .12); }
.pg-feat:hover::before { transform: scaleX(1); }
.pg-feat .t { font-family: var(--mr-display); font-size: 25px; line-height: 1.15; letter-spacing: -0.015em; margin-bottom: 10px; }
.pg-feat .d { font-size: 14.5px; line-height: 1.65; color: var(--pg-ink-soft); }

/* ---------- framework ---------- */
.pg-note {
  margin: 28px 0 0; max-width: 440px; padding: 16px 20px; border-radius: 16px;
  font-size: 14.5px; line-height: 1.65; color: var(--pg-ink-soft);
  background: rgba(255, 255, 255, .6); border: 1px solid rgba(255, 255, 255, .9);
  border-left: 3px solid var(--mr-accent);
}
.pg-check-card { padding: 38px 40px; border-radius: 24px; }
.pg-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; }
.pg-checks > div { display: flex; align-items: baseline; gap: 11px; font-size: 15px; font-weight: 500; }

/* ---------- comparison table ---------- */
.pg-cmp { border-radius: 24px; overflow: hidden; }
.pg-cmp-hd, .pg-cmp-row { display: grid; grid-template-columns: 1fr 1.4fr 1.4fr; }
.pg-cmp-hd > *, .pg-cmp-row > * { padding: 18px 26px; }
.pg-cmp-hd { border-bottom: 1px solid var(--pg-hair); align-items: center; }
.pg-cmp-hd .c-dim { font-size: 11px; font-weight: 600; letter-spacing: .14em; color: rgba(22, 22, 24, .6); }
.pg-cmp-hd .c-us {
  display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600;
  background: #1E1D28; color: #fff;
}
.pg-cmp-hd .badge {
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px; background: var(--mr-accent); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mr-display); font-style: italic; font-size: 13px;
}
.pg-cmp-hd .c-them { font-size: 14px; font-weight: 600; color: rgba(22, 22, 24, .7); }
.pg-cmp-row { border-bottom: 1px solid var(--pg-hair); font-size: 14.5px; line-height: 1.55; }
.pg-cmp-row:last-child { border-bottom: 0; }
.pg-cmp-row .c-dim { font-weight: 600; }
.pg-cmp-row .c-us { display: flex; gap: 10px; font-weight: 500; background: rgba(204, 72, 45, .06); }
.pg-cmp-row .c-them { color: rgba(22, 22, 24, .7); }

/* ---------- dark CTA card ---------- */
.pg-cta-dark {
  max-width: 940px; margin: 0 auto; padding: 72px 64px; border-radius: 28px; text-align: center; color: #fff;
  background:
    radial-gradient(620px 300px at 85% -20%, rgba(86, 74, 153, .24), rgba(86, 74, 153, 0) 70%),
    radial-gradient(520px 260px at 0% 120%, rgba(154, 145, 200, .12), rgba(154, 145, 200, 0) 70%),
    #1E1D28;
  box-shadow: 0 34px 80px rgba(30, 29, 40, .28);
}
.pg-cta-dark .pg-h2 { color: #fff; }
.pg-cta-dark .pg-body { color: rgba(255, 255, 255, .74); max-width: 500px; margin-left: auto; margin-right: auto; }
.pg-pill-ghost { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); }
.pg-pill-ghost:hover { background: rgba(255, 255, 255, .1); color: #fff; }

/* ---------- light CTA with ornament ---------- */
.pg-cta { text-align: center; }
.pg-cta .pg-h2 { margin-top: 28px; }
.pg-cta .pg-body { max-width: 520px; margin-left: auto; margin-right: auto; }
.pg-ornament { display: flex; align-items: center; justify-content: center; gap: 14px; }
.pg-ornament span { width: 64px; height: 1px; background: rgba(22, 22, 24, .2); }
.pg-ornament i { width: 8px; height: 8px; background: var(--mr-accent); transform: rotate(45deg); }

/* ---------- methodology: evidence streams ---------- */
.pg-src-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pg-src { border-radius: 20px; padding: 24px 24px 22px; }
.pg-src .n { font-family: var(--mr-display); font-style: italic; font-size: 26px; line-height: 1; color: var(--pg-accent-ink); margin-bottom: 16px; }
.pg-src .t { font-family: var(--mr-display); font-size: 22px; line-height: 1.15; letter-spacing: -0.01em; margin-bottom: 8px; }
.pg-src .d { font-size: 13.5px; line-height: 1.6; color: var(--pg-ink-soft); }
.pg-src-dark {
  display: flex; flex-direction: column; justify-content: center; color: #fff; border-color: transparent;
  background:
    radial-gradient(300px 180px at 90% 0%, rgba(86, 74, 153, .3), rgba(86, 74, 153, 0) 70%),
    #1E1D28;
}
.pg-src-dark .d { color: rgba(255, 255, 255, .72); }

/* ---------- methodology: engine (cylinders + layers) ----------
   The stack and rows keep style.css's .layer-cyl / .layer-row states
   (inactive cylinders dimmed, the active one shifted); only the
   colours and surfaces are restyled here, in the warm palette. */
.pg-engine { display: grid; grid-template-columns: 340px 1fr; gap: 70px; align-items: center; }
.pg-stack { display: flex; flex-direction: column; align-items: center; padding: 20px 0; }
.pg-cyl { position: relative; width: 250px; height: 96px; cursor: pointer; }
.pg-cyl + .pg-cyl { margin-top: -14px; }
.pg-cyl-0 { z-index: 3; } .pg-cyl-1 { z-index: 2; } .pg-cyl-2 { z-index: 1; }
.pg-cyl .body { position: absolute; top: 26px; left: 0; right: 0; bottom: 0; border-radius: 0 0 125px 125px / 0 0 34px 34px; }
.pg-cyl .top {
  position: absolute; top: 0; left: 0; right: 0; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.pg-cyl .top span { font-family: var(--mr-display); font-style: italic; font-size: 17px; }
.pg-cyl-0 .body { background: #272438; } .pg-cyl-0 .top { background: #34304F; color: #fff; }
.pg-cyl-1 .body { background: #453B80; } .pg-cyl-1 .top { background: #6A5FAC; color: #fff; }
.pg-cyl-2 .body { background: #C6BFDC; } .pg-cyl-2 .top { background: #DCD6EA; color: #34304F; }
.pg-cyl.active { filter: drop-shadow(0 14px 22px rgba(60, 50, 42, .22)); }

.pg-layers { display: flex; flex-direction: column; gap: 10px; }
.pg .layer-row {
  padding: 24px 28px; border-radius: 18px;
  border: 1px solid transparent; border-left: 3px solid transparent;
  transition: background .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.pg .layer-row:hover { background: rgba(255, 255, 255, .45); }
.pg .layer-row.active {
  background: var(--pg-glass); border-color: rgba(255, 255, 255, .9); border-left-color: var(--mr-accent);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  box-shadow: 0 18px 44px rgba(60, 50, 42, .09);
}
.pg-layer .hd { display: flex; align-items: baseline; gap: 14px; margin-bottom: 8px; }
.pg-layer .t { font-family: var(--mr-display); font-size: 26px; line-height: 1.1; letter-spacing: -0.015em; }
.pg-layer .k { font-size: 11.5px; font-weight: 600; letter-spacing: .1em; color: var(--pg-accent-ink); }
.pg-layer .d { font-size: 14.5px; line-height: 1.65; color: var(--pg-ink-soft); max-width: 580px; margin-bottom: 14px; }
.pg-layer .chips { display: flex; gap: 8px; flex-wrap: wrap; }
.pg-layer .chips span {
  font-size: 12px; font-weight: 600; color: rgba(22, 22, 24, .72);
  background: rgba(255, 255, 255, .75); border: 1px solid rgba(22, 22, 24, .08);
  border-radius: 999px; padding: 5px 13px;
}

/* ---------- methodology: build flow timeline ---------- */
.pg-flow { list-style: none; margin: 0 auto; padding: 0; max-width: 840px; position: relative; }
.pg-flow::before {
  content: ''; position: absolute; left: 23px; top: 24px; bottom: 24px; width: 1px;
  background: linear-gradient(rgba(86, 74, 153, .55), rgba(86, 74, 153, .12));
}
.pg-flow li { position: relative; display: grid; grid-template-columns: 48px 1fr; gap: 28px; padding-bottom: 36px; }
.pg-flow li:last-child { padding-bottom: 0; }
.pg-flow .n {
  position: relative; z-index: 1; width: 48px; height: 48px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mr-display); font-style: italic; font-size: 19px; color: #fff;
  background: #1E1D28; box-shadow: 0 0 0 5px rgba(246, 240, 233, .9), 0 8px 18px rgba(30, 29, 40, .2);
}
.pg-flow .hd { display: flex; align-items: baseline; gap: 14px; margin: 8px 0 8px; }
.pg-flow .t { font-family: var(--mr-display); font-size: 27px; line-height: 1.1; letter-spacing: -0.015em; }
.pg-flow .k { font-size: 11.5px; font-weight: 600; letter-spacing: .1em; color: var(--pg-accent-ink); }
.pg-flow .d { font-size: 15px; line-height: 1.7; color: var(--pg-ink-soft); max-width: 640px; }

/* ---------- methodology: outcomes ---------- */
.pg-out-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pg-out { border-radius: 20px; padding: 28px 26px; border-top: 3px solid var(--mr-accent); }
.pg-out .t { font-family: var(--mr-display); font-size: 23px; line-height: 1.15; margin-bottom: 10px; }
.pg-out .d { font-size: 14px; line-height: 1.65; color: var(--pg-ink-soft); }

/* ---------- pricing FAQ ---------- */
.pg-faq-wrap { max-width: 840px; }
.pg-faq {
  border-radius: 24px; padding: 8px 34px;
  background: var(--pg-glass); border: 1px solid rgba(255, 255, 255, .9);
  -webkit-backdrop-filter: blur(18px) saturate(1.15); backdrop-filter: blur(18px) saturate(1.15);
  box-shadow: 0 24px 60px rgba(60, 50, 42, .09);
}
.pg-faq .faq-item { border-bottom: 1px solid var(--pg-hair); padding: 22px 0; }
.pg-faq .faq-item:last-child { border-bottom: 0; }
.pg-faq summary { font-family: var(--mr-display); font-size: 23px; line-height: 1.25; letter-spacing: -0.01em; }
.pg-faq summary::after { color: var(--mr-accent); font-family: var(--mr-sans); font-size: 22px; }
.pg-faq summary:hover { color: var(--pg-accent-ink); }
.pg-faq p { font-size: 15px; line-height: 1.75; color: var(--pg-ink-soft); margin: 12px 0 0; max-width: 680px; }

@media (prefers-reduced-motion: reduce) {
  .pg-hero .pg-display, .pg-hero .pg-lede { animation: none; }
  .pg-feat, .pg-feat::before, .pg .layer-row { transition: none; }
}
