/* GTM Wave blog post: In-house vs outsourced GTM team cost. Uses brand tokens from /style.css */
.pp, .pp *, .pp *::before, .pp *::after { box-sizing: border-box; }
.pp { position: relative; background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: 18px; line-height: 1.75; overflow-x: clip; }
.pp section { padding: 0; }
.pp svg { display: block; }
.pp a { text-decoration: none; }
.pp-wrap { width: min(calc(100% - 48px), 1160px); margin: 0 auto; position: relative; z-index: 1; }

/* reading progress */
.pp-progress { position: fixed; left: 0; top: 0; right: 0; height: 3px; z-index: 200; background: transparent; pointer-events: none; }
.pp-progress i { display: block; height: 100%; width: 100%; transform: scaleX(0); transform-origin: left; background: var(--gradient-primary); box-shadow: 0 0 12px var(--primary-glow); }

/* reveal */
.pp-rv { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.pp-rv.in { opacity: 1; transform: none; }

/* ---------- hero ---------- */
.pp-hero { position: relative; padding: 112px 0 44px; overflow: hidden; }
.pp-bg { position: absolute; inset: 0; pointer-events: none; }
.pp-bg i { position: absolute; border-radius: 50%; filter: blur(70px); }
.pp-bg i:nth-child(1) { width: 620px; height: 620px; left: -200px; top: -180px; background: radial-gradient(circle, rgba(113,114,219,.34), transparent 68%); animation: pp-float 18s ease-in-out infinite; }
.pp-bg i:nth-child(2) { width: 520px; height: 520px; right: -160px; top: 60px; background: radial-gradient(circle, rgba(139,140,232,.26), transparent 68%); animation: pp-float 22s ease-in-out infinite reverse; }
@keyframes pp-float { 50% { transform: translate(36px, 28px); } }
.pp-crumbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font: 500 12.5px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text-subtle); margin-bottom: 26px; }
.pp-crumbs a:hover { color: var(--primary-deep); }
.pp-crumbs b { color: var(--primary-deep); font-weight: 500; }
.pp-kicker { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 12px; border-radius: 999px; border: 1px solid var(--border-purple); background: rgba(255,255,255,.75); backdrop-filter: blur(8px); font: 500 12px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--primary-deep); }
.pp-dot { width: 7px; height: 7px; border-radius: 50%; background: #2f8f5b; box-shadow: 0 0 0 4px rgba(47,143,91,.15); }
.pp-hero h1 { margin: 22px 0 0; max-width: 940px; font: 600 clamp(38px, 5.2vw, 68px)/1.02 var(--font-display); letter-spacing: -.05em; color: var(--heading); }
.pp-hero h1 em { display: block; font-family: var(--font-serif); font-weight: 400; letter-spacing: -.02em; background: var(--gradient-text); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .06em; }
.pp-byline { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 30px; }
.pp-avatar { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--gradient-primary); color: #fff; font: 600 19px var(--font-display); box-shadow: var(--shadow-purple); }
.pp-avatar.lg { width: 60px; height: 60px; font-size: 24px; }
.pp-byline-text strong { display: block; font: 600 16px/1.3 var(--font-body); color: var(--heading); }
.pp-byline-text small { display: block; font-size: 14px; color: var(--text-muted); }
.pp-share { margin-left: auto; display: flex; gap: 8px; }
.pp-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 999px; border: 1px solid var(--border-strong); background: rgba(255,255,255,.8); color: var(--heading); font: 500 14px var(--font-body); transition: .25s var(--ease); cursor: pointer; }
.pp-chip:hover { border-color: var(--primary); color: var(--primary-deep); transform: translateY(-1px); }
.pp-chip svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.pp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 40px; }
.pp-stat { position: relative; padding: 22px 22px 20px; border-radius: 22px; background: rgba(255,255,255,.9); border: 1px solid var(--border); box-shadow: var(--shadow-md); overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s; }
.pp-stat:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.pp-stat small { display: block; font: 500 11.5px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-subtle); }
.pp-stat strong { display: block; margin: 8px 0 2px; font: 600 clamp(32px, 3.4vw, 44px)/1 var(--font-display); letter-spacing: -.045em; color: var(--heading); }
.pp-stat strong .u { font-size: .5em; letter-spacing: 0; color: var(--text-muted); font-weight: 500; }
.pp-stat em { font-style: normal; font-size: 14px; color: var(--text-muted); }
.pp-stat.hi { background: var(--gradient-dark); border-color: transparent; box-shadow: 0 24px 50px -18px rgba(10,16,24,.5); }
.pp-stat.hi::before { content: ""; position: absolute; right: -50px; top: -50px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(113,114,219,.55), transparent 70%); }
.pp-stat.hi small, .pp-stat.hi em { color: rgba(255,255,255,.65); position: relative; }
.pp-stat.hi strong { color: #fff; position: relative; }

/* ---------- layout ---------- */
.pp-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 56px; padding-top: 28px; padding-bottom: 80px; align-items: start; }
.pp-toc { position: sticky; top: 104px; align-self: start; }
.pp-toc p { margin: 0 0 12px; font: 500 12px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-subtle); }
.pp-toc ol { list-style: none; margin: 0; padding: 0 0 0 2px; border-left: 1.5px solid var(--border); }
.pp-toc li a { display: block; padding: 7px 0 7px 16px; margin-left: -1.5px; border-left: 1.5px solid transparent; font-size: 14px; line-height: 1.35; color: var(--text-muted); transition: .2s; }
.pp-toc li a:hover { color: var(--heading); }
.pp-toc li a.on { color: var(--primary-deep); border-left-color: var(--primary); font-weight: 600; }
.pp-toc-cta { display: flex; justify-content: space-between; align-items: center; margin-top: 22px; padding: 13px 16px; border-radius: 14px; background: var(--gradient-primary); color: #fff; font: 600 14px var(--font-body); box-shadow: var(--shadow-purple); transition: .3s var(--ease); }
.pp-toc-cta:hover { transform: translateY(-2px); box-shadow: var(--shadow-purple-lg); }

/* ---------- article typography ---------- */
.pp-article { min-width: 0; max-width: 800px; }
.pp-article p { margin: 0 0 20px; color: rgba(28,39,53,.84); }
.pp-article a:not(.pp-btn):not(.pp-toc-cta) { color: var(--primary-deep); font-weight: 500; text-decoration: underline; text-decoration-color: rgba(113,114,219,.35); text-underline-offset: 3px; transition: text-decoration-color .2s; }
.pp-article a:not(.pp-btn):hover { text-decoration-color: var(--primary-deep); }
.pp-article h2 { margin: 72px 0 18px; scroll-margin-top: 100px; font: 600 clamp(28px, 3.3vw, 40px)/1.08 var(--font-display); letter-spacing: -.045em; color: var(--heading); }
.pp-article h2::before { content: ""; display: block; width: 36px; height: 3px; border-radius: 3px; background: var(--gradient-primary); margin-bottom: 18px; }
.pp-article h3 { margin: 40px 0 12px; font: 600 22px/1.25 var(--font-display); letter-spacing: -.03em; color: var(--heading); }
.pp-lead { font-size: 22px; line-height: 1.6; color: var(--heading) !important; font-weight: 500; letter-spacing: -.01em; }
.pp-note { font-size: 14px !important; line-height: 1.6; color: var(--text-subtle) !important; margin-top: 12px !important; }
.pp-h-sm { font-size: 26px !important; margin-top: 56px !important; }
.pp-label { display: inline-flex; font: 500 11.5px var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--primary-deep); }

/* short answer */
.pp-answer { position: relative; margin: 0 0 40px; padding: 30px 32px; border-radius: 26px; background: var(--gradient-dark); color: #fff; overflow: hidden; box-shadow: 0 30px 60px -24px rgba(10,16,24,.55); scroll-margin-top: 100px; }
.pp-answer::before { content: ""; position: absolute; right: -80px; top: -90px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(113,114,219,.6), transparent 70%); }
.pp-answer .pp-label { color: #b4b5ff; position: relative; }
.pp-answer p { position: relative; margin: 12px 0 0; font-size: 18.5px; line-height: 1.65; color: rgba(255,255,255,.92); }

/* four-up cards */
.pp-cards4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 26px 0 28px; }
.pp-card { padding: 22px 20px; border-radius: 22px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.pp-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: var(--border-purple-strong); }
.pp-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: var(--primary-soft); border: 1px solid var(--border-purple); color: var(--primary-deep); transition: transform .5s var(--ease-spring); }
.pp-ico.sm { width: 42px; height: 42px; }
.pp-card:hover .pp-ico, .pp-tcard:hover .pp-ico { transform: rotate(-8deg) scale(1.08); }
.pp-ico svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pp-card h3 { margin: 16px 0 6px; font-size: 18px; }
.pp-card p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--text-muted); }

/* figures */
.pp-fig { margin: 30px 0 8px; padding: 28px; border-radius: 26px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-md); }
.pp-fig-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
.pp-fig-head span { font: 600 16px var(--font-display); letter-spacing: -.02em; color: var(--heading); }
.pp-fig-head small { font: 500 11.5px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text-subtle); }
.pp-fig-foot { margin: 18px 0 0 !important; font-size: 14px; color: var(--text-muted) !important; }

.pp-bars { display: grid; gap: 22px; }
.pp-barmeta { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 9px; font-size: 15px; color: var(--text); flex-wrap: wrap; }
.pp-barmeta b { font: 600 16px var(--font-display); letter-spacing: -.02em; color: var(--heading); }
.pp-barmeta b small { font: 400 13px var(--font-body); color: var(--text-subtle); margin-left: 6px; letter-spacing: 0; }
.pp-bar { position: relative; height: 14px; border-radius: 14px; background: var(--bg-soft); overflow: hidden; }
.pp-bar.tall { height: 22px; border-radius: 22px; }
.pp-bar i { position: absolute; left: var(--l, 0); top: 0; bottom: 0; width: 0; border-radius: 14px; background: linear-gradient(90deg, #a5a6f0, #7172db); transition: width 1.3s var(--ease) .15s; }
.pp-in .pp-bar i, .in .pp-bar i { width: var(--w); }
.pp-bar i.house { background: linear-gradient(90deg, #5d6577, #2b3445); }
.pp-bar i.range { background: repeating-linear-gradient(135deg, #5d6577 0 6px, #8b93a5 6px 12px); border-radius: 0 22px 22px 0; opacity: .75; }
.pp-bar i.wave { background: var(--gradient-primary); box-shadow: 0 0 16px rgba(113,114,219,.5); }
.pp-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 28px; margin-top: 26px; padding-top: 20px; border-top: 1px dashed var(--border-strong); }
.pp-total span { font: 500 12px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-subtle); margin-right: auto; }
.pp-total strong { font: 600 clamp(24px, 3vw, 32px) var(--font-display); letter-spacing: -.04em; color: var(--heading); }
.pp-total strong.alt { color: var(--primary-deep); }
.pp-total small { font: 400 14px var(--font-body); color: var(--text-subtle); letter-spacing: 0; }

/* duo / mini */
.pp-duo { display: grid; grid-template-columns: 1fr auto 1.2fr; gap: 12px; align-items: stretch; margin: 26px 0 28px; }
.pp-mini { padding: 20px 22px; border-radius: 20px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.pp-mini small { display: block; font: 500 11px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-subtle); }
.pp-mini strong { display: block; margin: 6px 0 2px; font: 600 28px var(--font-display); letter-spacing: -.04em; color: var(--heading); }
.pp-mini span { font-size: 14px; color: var(--text-muted); }
.pp-mini.hi { background: linear-gradient(135deg, #f1f1fd, #fff); border-color: var(--border-purple-strong); }
.pp-mini.hi strong { color: var(--primary-deep); }
.pp-mini.arrow { display: grid; place-items: center; background: none; border: 0; box-shadow: none; padding: 0 4px; font-size: 26px; color: var(--primary); }

/* callout */
.pp-callout { display: flex; align-items: center; gap: 22px; margin: 26px 0 28px; padding: 22px 26px; border-radius: 22px; background: linear-gradient(135deg, #fff7e8, #fff); border: 1px solid #f3dcae; }
.pp-callout-num { flex: none; font: 600 clamp(30px, 4vw, 44px)/1 var(--font-display); letter-spacing: -.05em; color: #b45309; }
.pp-callout p { margin: 0; font-size: 16.5px; }

/* plans */
.pp-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 26px 0 8px; align-items: stretch; }
.pp-plan { position: relative; padding: 26px 24px; border-radius: 24px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s; display: flex; flex-direction: column; }
.pp-plan:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.pp-plan h3 { margin: 0; font-size: 22px; }
.pp-plan-for { margin: 8px 0 22px !important; font-size: 15px; line-height: 1.5; color: var(--text-muted) !important; flex: 1; }
.pp-price { font: 600 36px/1 var(--font-display); letter-spacing: -.05em; color: var(--heading); }
.pp-price small { font: 400 14px var(--font-body); letter-spacing: 0; color: var(--text-subtle); margin-left: 6px; }
.pp-year { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--border); font-size: 14px; color: var(--text-muted); }
.pp-plan.feat { background: var(--gradient-dark); border-color: transparent; box-shadow: 0 30px 60px -24px rgba(10,16,24,.6); }
.pp-plan.feat::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(ellipse 260px 200px at 100% 0%, rgba(113,114,219,.5), transparent 70%); pointer-events: none; }
.pp-plan.feat > * { position: relative; }
.pp-plan.feat h3, .pp-plan.feat .pp-price { color: #fff; }
.pp-plan.feat .pp-plan-for, .pp-plan.feat .pp-price small, .pp-plan.feat .pp-year { color: rgba(255,255,255,.7) !important; }
.pp-plan.feat .pp-year { border-color: rgba(255,255,255,.15); }
.pp-badge { align-self: flex-start; margin-bottom: 14px; padding: 4px 11px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); font: 500 10.5px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: #fff; }

/* stacked year bar */
.pp-stack { display: grid; gap: 26px; }
.pp-stacklabel { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; font-size: 15px; }
.pp-stacklabel b { font: 600 20px var(--font-display); letter-spacing: -.03em; color: var(--heading); }
.pp-stackbar { display: flex; height: 46px; border-radius: 14px; overflow: hidden; background: var(--bg-soft); }
.pp-stackbar i { display: flex; align-items: center; justify-content: center; width: 0; overflow: hidden; white-space: nowrap; font: 500 13px var(--font-mono); color: #fff; transition: width 1.3s var(--ease) .15s; }
.in .pp-stackbar i { width: var(--w); }
.pp-stackbar i.sal, .pp-legend i.sal { background: linear-gradient(90deg, #5d6577, #2b3445); }
.pp-stackbar i.rec, .pp-legend i.rec { background: #f59e0b; }
.pp-stackbar i.rec.range { background: repeating-linear-gradient(135deg, #f59e0b 0 6px, #fcd34d 6px 12px); }
.pp-stackbar i.wave, .pp-legend i.wave { background: var(--gradient-primary); }
.pp-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 22px; font-size: 13.5px; color: var(--text-muted); }
.pp-legend span { display: inline-flex; align-items: center; gap: 8px; }
.pp-legend i { width: 12px; height: 12px; border-radius: 4px; display: inline-block; }
.pp-legend i.hire { background: repeating-linear-gradient(135deg, #cbd0dc 0 4px, #e5e8ef 4px 8px); }
.pp-legend i.ramp { background: #f59e0b; }
.pp-legend i.live { background: linear-gradient(90deg, #5d6577, #2b3445); }
.pp-ratios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 26px; padding-top: 22px; border-top: 1px dashed var(--border-strong); }
.pp-ratios div { padding: 16px 18px; border-radius: 16px; background: var(--bg-soft); }
.pp-ratios strong { display: block; font: 600 clamp(28px, 3.4vw, 38px)/1 var(--font-display); letter-spacing: -.05em; background: var(--gradient-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pp-ratios span { display: block; margin-top: 6px; font-size: 13.5px; line-height: 1.4; color: var(--text-muted); }

/* gantt */
.pp-gantt-axis, .pp-gantt-track { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; }
.pp-gantt { display: grid; gap: 10px; }
.pp-gantt-axis { margin-left: 92px; }
.pp-gantt-axis span { text-align: center; font: 500 11px var(--font-mono); color: var(--text-subtle); }
.pp-gantt-row { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 4px; align-items: center; }
.pp-gantt-name { font: 600 14px var(--font-display); color: var(--heading); }
.pp-seg { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 8px; border-radius: 12px; font: 500 12.5px/1.2 var(--font-body); text-align: center; font-style: normal; transform: scaleX(0); transform-origin: left; transition: transform 1s var(--ease) .2s; }
.in .pp-seg { transform: none; }
.pp-gantt-track .pp-seg:nth-child(2) { transition-delay: .5s; } .pp-gantt-track .pp-seg:nth-child(3) { transition-delay: .8s; }
.pp-seg.hire { background: repeating-linear-gradient(135deg, #e5e8ef 0 8px, #f1f3f7 8px 16px); color: #5d6577; }
.pp-seg.ramp { background: linear-gradient(135deg, #fcd34d, #f59e0b); color: #5c3a00; }
.pp-seg.live { background: linear-gradient(135deg, #5d6577, #2b3445); color: #fff; }
.pp-seg.setup { background: rgba(113,114,219,.25); color: var(--primary-deep); }
.pp-seg.wave { background: var(--gradient-primary); color: #fff; box-shadow: 0 8px 20px rgba(113,114,219,.35); }

/* simulator */
.pp-sim { margin: 30px 0 28px; padding: 30px; border-radius: 28px; background: linear-gradient(135deg, #f3f3fd, #fff); border: 1px solid var(--border-purple-strong); box-shadow: 0 24px 50px -22px rgba(113,114,219,.35); }
.pp-sim-head h3 { margin: 8px 0 6px; font-size: 24px; }
.pp-sim-head p { margin: 0 0 22px; font-size: 16px; color: var(--text-muted); }
.pp-sim-ctl label { display: flex; justify-content: space-between; align-items: center; font: 600 15px var(--font-body); color: var(--heading); }
.pp-sim-ctl output { display: inline-grid; place-items: center; min-width: 40px; height: 34px; padding: 0 12px; border-radius: 10px; background: var(--primary); color: #fff; font: 600 16px var(--font-display); }
.pp-sim input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; margin: 18px 0 8px; border-radius: 8px; background: linear-gradient(90deg, var(--primary) var(--p, 0%), rgba(113,114,219,.18) var(--p, 0%)); outline: none; cursor: pointer; }
.pp-sim input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 4px solid var(--primary); box-shadow: 0 4px 14px rgba(113,114,219,.5); transition: transform .2s; }
.pp-sim input[type=range]::-webkit-slider-thumb:hover { transform: scale(1.12); }
.pp-sim input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 4px solid var(--primary); box-shadow: 0 4px 14px rgba(113,114,219,.5); }
.pp-sim input[type=range]:focus-visible { outline: 3px solid rgba(113,114,219,.4); outline-offset: 6px; }
.pp-sim-scale { display: flex; justify-content: space-between; font: 500 11.5px var(--font-mono); color: var(--text-subtle); }
.pp-sim-out { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.pp-sim-out > div { padding: 16px 16px 14px; border-radius: 16px; background: #fff; border: 1px solid var(--border); }
.pp-sim-out small { display: block; font: 500 10.5px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text-subtle); }
.pp-sim-out strong { display: block; margin-top: 6px; font: 600 clamp(19px, 2.2vw, 24px)/1.15 var(--font-display); letter-spacing: -.035em; color: var(--heading); transition: color .3s; }
.pp-sim-out span { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.35; color: var(--text-muted); }
.pp-sim-out .hi { background: var(--gradient-dark); border-color: transparent; }
.pp-sim-out .hi small, .pp-sim-out .hi span { color: rgba(255,255,255,.65); }
.pp-sim-out .hi strong { color: #fff; }
.pp-sim-out strong.bump { color: var(--primary); }

/* table */
.pp-table-wrap { margin: 26px 0 8px; overflow-x: auto; border-radius: 22px; border: 1px solid var(--border); background: #fff; box-shadow: var(--shadow-sm); }
.pp-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15.5px; line-height: 1.45; }
.pp-table th, .pp-table td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
.pp-table thead th { background: var(--bg-soft); font: 600 13px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.pp-table thead th.w { color: var(--primary-deep); background: #ececfb; }
.pp-table td.w { background: rgba(113,114,219,.05); }
.pp-table tr.tot td { background: var(--bg-soft); font-size: 16.5px; }
.pp-table tr.tot td.w { background: #ececfb; color: var(--primary-deep); }
.pp-table tbody tr:last-child td { border-bottom: 0; }
.pp-table td:first-child { color: var(--text-muted); }

/* speed path */
.pp-path { display: grid; gap: 20px; }
.pp-path-lane h4 { margin: 0 0 12px; font: 600 15px var(--font-display); color: var(--heading); }
.pp-path-lane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; counter-reset: s; }
.pp-path-lane li { counter-increment: s; position: relative; display: flex; flex-direction: column; justify-content: center; padding: 10px 16px 10px 40px; border-radius: 12px; background: var(--bg-soft); font-size: 14.5px; line-height: 1.3; color: var(--text); }
.pp-path-lane li::before { content: counter(s); position: absolute; left: 11px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1.5px var(--border-strong); font: 500 10.5px var(--font-mono); color: var(--text-muted); }
.pp-path-lane li em { font-style: normal; font: 500 11.5px var(--font-mono); color: #b45309; margin-top: 3px; }
.pp-path-lane li.end { background: #2b3445; color: #fff; }
.pp-path-lane li.end em { color: #fcd34d; }
.pp-path-lane li.end::before { background: rgba(255,255,255,.18); box-shadow: none; color: #fff; }
.pp-path-lane.wave li { background: rgba(113,114,219,.1); }
.pp-path-lane.wave li em { color: var(--primary-deep); }
.pp-path-lane.wave li.end { background: var(--gradient-primary); }
.pp-path-lane.wave li.end em { color: #fff; }

/* trade-offs */
.pp-trade { display: grid; gap: 14px; margin: 24px 0 8px; }
.pp-tcard { display: grid; grid-template-columns: auto 1fr; gap: 6px 20px; padding: 24px 26px; border-radius: 22px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s; }
.pp-tcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.pp-tcard .pp-ico { grid-row: 1 / 3; }
.pp-tcard h3 { margin: 0; font-size: 20px; align-self: center; }
.pp-tcard p { margin: 0; grid-column: 2; font-size: 16px; line-height: 1.65; }

/* check lists */
.pp-check { list-style: none; margin: 22px 0 24px; padding: 0; display: grid; gap: 10px; }
.pp-check li { position: relative; padding: 16px 20px 16px 58px; border-radius: 18px; background: #fff; border: 1px solid var(--border); font-size: 16.5px; line-height: 1.55; color: var(--text); }
.pp-check li::before { content: ""; position: absolute; left: 20px; top: 17px; width: 24px; height: 24px; border-radius: 50%; background: var(--c, var(--primary)); }
.pp-check li::after { content: ""; position: absolute; left: 28px; top: 22px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.pp-check.slate { --c: #2b3445; }
.pp-check.wave { --c: var(--primary); }
.pp-check.wave li { background: linear-gradient(135deg, #f3f3fd, #fff); border-color: var(--border-purple); }

/* hybrid flow */
.pp-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 8px; align-items: stretch; }
.pp-flow li:not(.arr) { padding: 18px 16px; border-radius: 18px; background: var(--bg-soft); }
.pp-flow li span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--gradient-primary); color: #fff; font: 600 14px var(--font-display); }
.pp-flow li.loop span { background: #2b3445; }
.pp-flow h4 { margin: 12px 0 6px; font: 600 15.5px/1.3 var(--font-display); color: var(--heading); }
.pp-flow p { margin: 0 !important; font-size: 13.5px !important; line-height: 1.5; color: var(--text-muted) !important; }
.pp-flow .arr { display: grid; place-items: center; font-size: 20px; color: var(--primary); }

/* steps */
.pp-steps { list-style: none; margin: 24px 0; padding: 0; display: grid; gap: 0; position: relative; }
.pp-steps::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; background: linear-gradient(var(--primary), rgba(113,114,219,.15)); }
.pp-steps li { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 20px; padding: 10px 0 18px; font-size: 17px; line-height: 1.6; }
.pp-steps li span { position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; border: 2px solid var(--primary); color: var(--primary-deep); font: 600 17px var(--font-display); box-shadow: 0 0 0 6px var(--bg); }
.pp-steps li div { padding-top: 8px; }
.pp-steps li.hi span { background: var(--gradient-primary); color: #fff; border-color: transparent; }
.pp-steps li.hi div { padding: 16px 20px; border-radius: 18px; background: linear-gradient(135deg, #f3f3fd, #fff); border: 1px solid var(--border-purple-strong); }

/* faq */
.pp-faq { display: grid; gap: 10px; }
.pp-q { border-radius: 18px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); transition: .3s; }
.pp-q[open] { border-color: var(--border-purple-strong); box-shadow: var(--shadow-md); }
.pp-q summary { list-style: none; cursor: pointer; position: relative; padding: 18px 54px 18px 22px; font: 600 17px/1.4 var(--font-body); color: var(--heading); }
.pp-q summary::-webkit-details-marker { display: none; }
.pp-q summary::after { content: ""; position: absolute; right: 24px; top: 50%; width: 9px; height: 9px; border: solid var(--primary-deep); border-width: 0 2px 2px 0; transform: translateY(-70%) rotate(45deg); transition: transform .3s var(--ease); }
.pp-q[open] summary::after { transform: translateY(-30%) rotate(225deg); }
.pp-q summary:focus-visible { outline: 3px solid rgba(113,114,219,.4); outline-offset: 2px; border-radius: 18px; }
.pp-q p { margin: 0 !important; padding: 0 22px 20px; font-size: 16px; line-height: 1.65; color: var(--text-muted) !important; }

/* cta */
.pp-cta { position: relative; margin: 64px 0 40px; padding: 48px 40px; border-radius: 32px; text-align: center; overflow: hidden; color: #fff; background: var(--gradient-primary); background-size: 200% 200%; animation: pp-grad 10s ease infinite; box-shadow: var(--shadow-purple-lg); }
@keyframes pp-grad { 50% { background-position: 100% 50%; } }
.pp-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 500px 300px at 12% 0%, rgba(255,255,255,.28), transparent 65%), radial-gradient(ellipse 480px 300px at 92% 100%, rgba(10,16,24,.35), transparent 65%); }
.pp-cta > * { position: relative; }
.pp-article .pp-cta h2 { margin: 0 auto; max-width: 560px; color: #fff; font-size: clamp(28px, 3.6vw, 42px); }
.pp-article .pp-cta h2::before { display: none; }
.pp-cta h2 em { font-family: var(--font-serif); font-weight: 400; letter-spacing: -.02em; }
.pp-article .pp-cta p { margin: 16px auto 0; max-width: 560px; font-size: 17px; color: rgba(255,255,255,.88); }
.pp-article .pp-cta p a { color: #fff; text-decoration-color: rgba(255,255,255,.5); }
.pp-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 28px; }
.pp-btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 28px; border-radius: 999px; font: 600 16px var(--font-body); transition: transform .25s var(--ease), box-shadow .25s; }
.pp-btn:hover { transform: translateY(-2px); }
.pp-btn.light { background: #fff; color: var(--heading); box-shadow: 0 14px 34px rgba(0,0,0,.25); }
.pp-btn.ghost { background: rgba(255,255,255,.14); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.45); }

/* author + sources */
.pp-author { display: flex; gap: 18px; align-items: center; padding: 22px 24px; border-radius: 22px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.pp-author strong { font: 600 18px var(--font-display); color: var(--heading); }
.pp-author p { margin: 4px 0 0 !important; font-size: 15px; line-height: 1.55; color: var(--text-muted) !important; }
.pp-sources { margin: 0 0 24px; padding: 0 0 0 22px; font-size: 14.5px; line-height: 1.5; color: var(--text-muted); display: grid; gap: 8px; }
.pp-sources li::marker { color: var(--primary); font-family: var(--font-mono); font-size: 12px; }
.pp-back { margin-top: 28px !important; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  .pp-layout { grid-template-columns: 1fr; gap: 0; }
  .pp-toc { display: none; }
  .pp-article { max-width: none; }
  .pp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-cards4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .pp { font-size: 17px; }
  .pp-wrap { width: calc(100% - 32px); }
  .pp-hero { padding: 92px 0 28px; }
  .pp-share { margin-left: 0; width: 100%; }
  .pp-crumbs { margin-bottom: 18px; font-size: 11.5px; }
  .pp-stat { padding: 18px 16px; border-radius: 18px; }
  .pp-lead { font-size: 19px; }
  .pp-article h2 { margin-top: 56px; }
  .pp-answer { padding: 24px 20px; border-radius: 22px; }
  .pp-answer p { font-size: 16.5px; }
  .pp-fig { padding: 20px 16px; border-radius: 22px; }
  .pp-duo { grid-template-columns: 1fr; }
  .pp-mini.arrow { transform: rotate(90deg); padding: 0; height: 28px; }
  .pp-callout { flex-direction: column; align-items: flex-start; gap: 8px; }
  .pp-plans { grid-template-columns: 1fr; }
  .pp-ratios { grid-template-columns: 1fr; }
  .pp-stackbar { height: 38px; }
  .pp-gantt-axis { margin-left: 0; }
  .pp-gantt-row { grid-template-columns: 1fr; gap: 6px; }
  .pp-gantt-name { font-size: 13px; }
  .pp-seg { min-height: 46px; font-size: 11px; padding: 0 4px; }
  .pp-sim { padding: 22px 16px; border-radius: 22px; }
  .pp-sim-out { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-flow { grid-template-columns: 1fr; }
  .pp-flow .arr { transform: rotate(90deg); height: 18px; }
  .pp-tcard { grid-template-columns: 1fr; padding: 20px; }
  .pp-tcard .pp-ico { grid-row: auto; }
  .pp-tcard p { grid-column: 1; }
  .pp-check li { padding: 14px 16px 14px 52px; font-size: 16px; }
  .pp-check li::before { left: 16px; } .pp-check li::after { left: 24px; }
  .pp-steps li { grid-template-columns: 38px 1fr; gap: 14px; font-size: 16px; }
  .pp-steps li span { width: 38px; height: 38px; font-size: 15px; }
  .pp-steps::before { left: 18px; }
  .pp-cta { padding: 38px 20px; border-radius: 26px; }
  .pp-author { flex-direction: column; text-align: center; }
}
@media (max-width: 480px) {
  .pp-cards4 { grid-template-columns: 1fr; }
  .pp-stats { gap: 10px; }
  .pp-stat strong { font-size: 30px; }
  .pp-sim-out { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .pp *, .pp *::before, .pp *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media print {
  #navbar, #footer, .pp-toc, .pp-progress, .pp-share, .pp-bg, .pp-cta { display: none !important; }
  .pp-rv { opacity: 1 !important; transform: none !important; }
  .pp-bar i { width: var(--w) !important; } .pp-stackbar i { width: var(--w) !important; } .pp-seg { transform: none !important; }
  .pp-layout { display: block; }
  .pp-fig, .pp-answer, .pp-plan, .pp-stat { break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* polish */
.pp-hero h1 { text-wrap: balance; }
.pp-plan-for { flex: 0 0 auto; min-height: 3.2em; }
.pp-plan .pp-price { margin-top: auto; }
.pp-sim-scale { position: relative; height: 18px; display: block; }
.pp-sim-scale span { position: absolute; top: 0; transform: translateX(-50%); }
.pp-sim-scale span:nth-child(1) { left: 0; transform: none; }
.pp-sim-scale span:nth-child(2) { left: 33.3%; }
.pp-sim-scale span:nth-child(3) { left: 66.6%; }
.pp-sim-scale span:nth-child(4) { left: auto; right: 0; transform: none; }
@media (max-width: 760px) {
  .pp-table { min-width: 0; font-size: 13.5px; }
  .pp-table th, .pp-table td { padding: 10px 9px; }
  .pp-table thead th { font-size: 10.5px; letter-spacing: .03em; }
}

/* v4 */
.pp-article .pp-cta p a { color:#fff !important; text-decoration-color:rgba(255,255,255,.6) !important; }
.pp-hero-answer { margin:26px 0 8px; max-width:880px; }
.pp-author small { display:block; margin-top:2px; font:500 12.5px var(--font-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--primary-deep); }
.pp-note a { font-weight:500; }

/* v5: compact centred hero + light short-answer card */
.pp-hero { padding: 96px 0 36px; text-align: center; }
.pp-crumbs { justify-content: center; margin-bottom: 18px; }
.pp-hero h1 { margin: 16px auto 0; max-width: 820px; font-size: clamp(30px, 3.9vw, 50px); line-height: 1.08; letter-spacing: -.04em; }
.pp-hero h1 em { display: block; margin-top: 4px; }
.pp-byline { justify-content: center; margin-top: 20px; text-align: left; }
.pp-answer, .pp-hero-answer { text-align: left; background: linear-gradient(135deg, #f1f1fd 0%, #ffffff 70%); color: var(--heading); border: 1px solid var(--border-purple-strong); border-left: 4px solid var(--primary); box-shadow: 0 18px 40px -22px rgba(79,79,201,.35); }
.pp-answer::before { background: radial-gradient(circle, rgba(113,114,219,.18), transparent 70%); }
.pp-answer .pp-label { color: var(--primary-deep); }
.pp-answer p { color: var(--text); font-size: 17.5px; }
.pp-hero-answer { margin: 22px auto 0; max-width: 860px; padding: 24px 28px; border-radius: 22px; }
.pp-stats { margin-top: 26px; text-align: left; }
@media (max-width: 760px) {
  .pp-hero { padding: 84px 0 24px; }
  .pp-hero-answer { padding: 20px 18px; }
  .pp-answer p { font-size: 16px; }
}

/* ---------- v6: what-is-a-gtm-agency components ---------- */
.pp-week { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 26px 0 28px; position: relative; }
.pp-day { position: relative; padding: 24px 22px 22px; border-radius: 22px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.pp-day:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: var(--border-purple-strong); }
.pp-day-tag { display: inline-block; padding: 5px 11px; border-radius: 999px; background: var(--primary-soft); border: 1px solid var(--border-purple); font: 500 11.5px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--primary-deep); }
.pp-article .pp-day h3 { margin: 14px 0 8px; font-size: 20px; }
.pp-article .pp-day p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--text-muted); }
.pp-day.live { background: linear-gradient(135deg, #f3f3fd, #fff); border-color: var(--border-purple); }

.pp-cmp-wrap { margin: 26px 0 8px; overflow-x: auto; border-radius: 22px; border: 1px solid var(--border); background: #fff; box-shadow: var(--shadow-sm); }
.pp-cmp { width: 100%; min-width: 0; border-collapse: collapse; font-size: 13.5px; line-height: 1.45; table-layout: fixed; }
.pp-cmp th, .pp-cmp td { padding: 13px 12px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
.pp-cmp thead th { background: var(--bg-soft); font: 600 11.5px var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.pp-cmp thead th.w { color: var(--primary-deep); background: #ececfb; }
.pp-cmp th:first-child, .pp-cmp td:first-child { width: 11%; color: var(--text-muted); }
.pp-cmp td.w { background: rgba(113,114,219,.06); color: var(--heading); font-weight: 500; }
.pp-cmp tbody tr:last-child td { border-bottom: 0; }

.pp-qcards { display: grid; gap: 14px; margin: 24px 0 8px; }
.pp-qcard { display: grid; grid-template-columns: 52px 1fr; gap: 0 20px; padding: 24px 26px; border-radius: 22px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s; }
.pp-qcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.pp-qcard > span { grid-row: 1 / 3; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--gradient-primary); color: #fff; font: 600 20px var(--font-display); box-shadow: var(--shadow-purple); }
.pp-article .pp-qcard h3 { margin: 4px 0 6px; font-size: 20px; }
.pp-article .pp-qcard p { margin: 0; font-size: 16px; line-height: 1.65; }

.pp-months { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 26px 0 24px; position: relative; }
.pp-month { position: relative; padding: 24px 22px; border-radius: 22px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-sm); overflow: hidden; }
.pp-month::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--gradient-primary); opacity: var(--o, .35); }
.pp-month:nth-child(2) { --o: .65; }
.pp-month:nth-child(3) { --o: 1; }
.pp-month b { display: block; font: 500 11.5px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--primary-deep); }
.pp-month strong { display: block; margin: 8px 0 8px; font: 600 22px/1.15 var(--font-display); letter-spacing: -.03em; color: var(--heading); }
.pp-article .pp-month p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--text-muted); }

.pp-faq h3 { margin: 0; }

@media (max-width: 900px) {
  .pp-week, .pp-months { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .pp-cmp-wrap { overflow: visible; }
  .pp-cmp, .pp-cmp tbody, .pp-cmp tr, .pp-cmp td { display: block; width: 100%; }
  .pp-cmp thead { display: none; }
  .pp-cmp { font-size: 14.5px; table-layout: auto; }
  .pp-cmp tr { padding: 6px 0 10px; border-bottom: 1px solid var(--border); }
  .pp-cmp tbody tr:last-child { border-bottom: 0; }
  .pp-cmp td { border: 0; padding: 7px 18px; }
  .pp-cmp td:first-child { width: 100%; padding-top: 14px; font: 600 15px var(--font-display); color: var(--heading); }
  .pp-cmp td[data-label]::before { content: attr(data-label); display: block; font: 500 10.5px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-subtle); margin-bottom: 1px; }
  .pp-cmp td.w::before { color: var(--primary-deep); }
  .pp-cmp td.w { margin: 2px 10px; width: auto; border-radius: 12px; padding: 9px 12px; }
  .pp-qcard { grid-template-columns: 42px 1fr; gap: 0 14px; padding: 20px 18px; }
  .pp-qcard > span { width: 42px; height: 42px; font-size: 17px; }
}
