/* Services page only: "For aspiring consultants" stacking deck.
   Each card pins under the header; the next slides over it while the covered card shrinks and fades. */
.tc-stack { --stack-top: calc(var(--tc-header-h) + 1.25rem); --stack-step: 14px; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.tc-stack-item { position: sticky; top: calc(var(--stack-top) + var(--i) * var(--stack-step)); margin-bottom: 2.5rem; }
.tc-stack-item:last-child { margin-bottom: 0; }
.tc-stack.is-flat .tc-stack-item { position: static; }
/* In-page links land each card exactly where it pins */
.tc-stack-card { scroll-margin-top: calc(var(--stack-top) + var(--i) * var(--stack-step)); }

.tc-stack-card {
  --p: 0;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 1rem + 3vw, 4rem);
  align-items: center;
  padding: clamp(1.5rem, .75rem + 2.5vw, 2.75rem);
  background: #fff;
  border: 1px solid var(--tc-line);
  border-radius: 22px;
  box-shadow: 0 1px 2px rgba(23, 33, 30, .04), 0 24px 60px -32px rgba(23, 33, 30, .3);
  transform: scale(calc(1 - var(--p) * .05));
  transform-origin: 50% 0;
}
.tc-stack-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--tc-mist); opacity: calc(var(--p) * .7); pointer-events: none; }

.tc-stack-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.tc-stack-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--tc-mist); }
.tc-stack-icon .tc-glyph { width: 30px; height: 30px; }
.tc-stack-count { font-size: .8125rem; font-weight: 600; letter-spacing: .08em; color: var(--tc-slate); font-variant-numeric: tabular-nums; }
.tc-stack-title { margin: 0 0 .6rem; font-size: clamp(1.625rem, 1.2rem + 1.2vw, 2.25rem); font-weight: var(--tc-heading-weight); line-height: 1.14; letter-spacing: var(--tc-track-heading); color: var(--tc-ink); }
.tc-firm .tc-stack-tag { margin: 0 0 1.25rem; font-size: 1.0625rem; color: var(--tc-slate); }
.tc-stack-points { margin: 0 0 1.75rem; padding: 0; list-style: none; }
.tc-stack-points li { position: relative; padding: .55rem 0 .55rem 1.75rem; border-top: 1px solid var(--tc-line); font-size: .9375rem; line-height: 1.45; color: var(--tc-ink); }
.tc-stack-points li:last-child { border-bottom: 1px solid var(--tc-line); }
.tc-stack-points li::before { content: ""; position: absolute; left: .15rem; top: .95rem; width: .75rem; height: .4rem; border-left: 2px solid var(--tc-green); border-bottom: 2px solid var(--tc-green); transform: rotate(-45deg); }
.tc-stack-visual .tc-illus-panel { padding: clamp(1rem, .5rem + 1.5vw, 2rem); }
.tc-stack-visual .tc-illus { max-height: 360px; margin-inline: auto; }

@media (max-width: 991.98px) {
  .tc-stack-card { grid-template-columns: 1fr; gap: 1.25rem; }
  .tc-stack-visual { order: -1; }
  .tc-stack-visual .tc-illus { max-height: 200px; }
}
@media (max-width: 575.98px) {
  .tc-stack { --stack-top: calc(var(--tc-header-h) + .75rem); --stack-step: 8px; margin-top: 1.75rem; }
  .tc-stack-item { margin-bottom: 1.5rem; }
  .tc-stack-card { padding: 1rem 1rem 1.25rem; border-radius: 18px; }
  .tc-stack-visual .tc-illus-panel { padding: .75rem; }
  .tc-stack-visual .tc-illus { max-height: 150px; }
  .tc-stack-top { margin-bottom: .9rem; }
  .tc-stack-icon { width: 44px; height: 44px; border-radius: 12px; }
  .tc-stack-icon .tc-glyph { width: 26px; height: 26px; }
  .tc-firm .tc-stack-tag { margin-bottom: .9rem; font-size: 1rem; }
  .tc-stack-points { margin-bottom: 1.1rem; }
  .tc-stack-points li { padding-block: .4rem; font-size: .875rem; }
  .tc-stack-points li::before { top: .8rem; }
}

/* ---------- Consulting services page ---------- */

.tc-stack-chips li { padding: .35rem .75rem; font-size: .8125rem; font-weight: 600; color: var(--tc-forest); background: var(--tc-mist); border-radius: 50rem; }

.tc-illus .ti-brass-s { fill: none; stroke: var(--tc-brass); stroke-width: 7; stroke-linecap: round; }
@media (prefers-reduced-motion: no-preference) {
  .js [data-reveal] .ti-bar-x { transform: scaleX(0); transform-box: fill-box; transform-origin: left; }
  .js [data-reveal].is-inview .ti-bar-x { transition: transform .9s cubic-bezier(.2, .7, .2, 1) .2s; transform: none; }
}

/* Engagement process: five steps on one line that draws itself in */
.tc-process { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.75rem; margin: 3.5rem 0 0; padding: 0; list-style: none; }
.tc-process::before { content: ""; position: absolute; left: 28px; right: calc((100% - 7rem) / 5 - 28px); top: 27px; height: 2px; background: var(--tc-green); transform-origin: 0 50%; }
.tc-process > li { position: relative; }
.tc-process-n { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 1.25rem; border: 2px solid var(--tc-green); border-radius: 50%; background: #fff; font-size: 1rem; font-weight: 700; color: var(--tc-forest); font-variant-numeric: tabular-nums; }
.tc-process > li:last-child .tc-process-n { color: #fff; background: var(--tc-forest); border-color: var(--tc-forest); }
.tc-process h3 { margin: 0 0 .5rem; font-size: 1.125rem; font-weight: var(--tc-heading-weight); line-height: 1.25; letter-spacing: var(--tc-track-title); color: var(--tc-ink); }
.tc-firm .tc-process p { margin: 0; font-size: .9375rem; line-height: 1.55; }
@media (prefers-reduced-motion: no-preference) {
  .js .tc-process[data-reveal]::before { transform: scaleX(0); transition: transform 1.4s cubic-bezier(.4, .2, .2, 1) .1s; }
  .js .tc-process[data-reveal].is-inview::before { transform: none; }
  .js .tc-process[data-reveal] > li { opacity: 0; transform: translateY(12px); transition: opacity .5s ease, transform .5s ease; }
  .js .tc-process[data-reveal].is-inview > li { opacity: 1; transform: none; }
  .js .tc-process[data-reveal].is-inview > li:nth-child(2) { transition-delay: .15s; }
  .js .tc-process[data-reveal].is-inview > li:nth-child(3) { transition-delay: .3s; }
  .js .tc-process[data-reveal].is-inview > li:nth-child(4) { transition-delay: .45s; }
  .js .tc-process[data-reveal].is-inview > li:nth-child(5) { transition-delay: .6s; }
}
@media (max-width: 991.98px) {
  .tc-process { grid-template-columns: 1fr; gap: 1.75rem; margin-top: 2.5rem; }
  .tc-process::before { display: none; }
  .tc-process > li:not(:last-child)::after { content: ""; position: absolute; left: 27px; top: 56px; bottom: -1.75rem; width: 2px; background: var(--tc-green); }
  .tc-process > li { min-height: 56px; padding-left: 76px; }
  .tc-process-n { position: absolute; left: 0; top: 0; margin: 0; }
  .tc-process h3 { padding-top: .9rem; }
}

/* Preparation pointer: learn.theconsulting.io */
.tc-prep { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: center; padding: clamp(1.75rem, 1rem + 3vw, 3.5rem); border-radius: 22px; background: var(--tc-forest); }
.tc-prep-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 1.25rem; border-radius: 14px; background: rgba(255, 255, 255, .08); }
.tc-prep-icon .tc-glyph { width: 30px; height: 30px; }
.tc-prep .tc-glyph * { stroke: #fff; }
.tc-prep .tc-glyph .g-a { stroke: var(--tc-green-300); }
.tc-firm .tc-prep .tc-kicker { color: var(--tc-green-300); }
.tc-prep .tc-h2 { color: #fff; }
.tc-firm .tc-prep p { margin-bottom: 1.75rem; color: var(--tc-on-dark-muted); }
.tc-prep b { font-weight: 600; color: #fff; }
.tc-prep-window { overflow: hidden; border: 1px solid rgba(255, 255, 255, .14); border-radius: 16px; background: rgba(255, 255, 255, .04); }
.tc-prep-bar { display: flex; align-items: center; gap: .4rem; padding: .7rem 1rem; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.tc-prep-bar i { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, .22); }
.tc-prep-bar span { flex: 1; margin-left: .6rem; padding: .3rem .8rem; border-radius: 50rem; font-size: .8125rem; color: var(--tc-on-dark-muted); background: rgba(255, 255, 255, .07); }
.tc-prep-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 0; padding: 1rem; list-style: none; }
.tc-prep-links a { display: flex; align-items: center; gap: .7rem; height: 100%; padding: .7rem .85rem; border: 1px solid rgba(255, 255, 255, .1); border-radius: 12px; font-size: .875rem; font-weight: 500; line-height: 1.3; color: #fff; text-decoration: none; transition: background-color .2s ease, border-color .2s ease; }
.tc-prep-links a:hover { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .28); }
.tc-prep-links a:focus-visible { outline: 2px solid var(--tc-green-300); outline-offset: 2px; }
.tc-prep-links .tc-glyph { width: 24px; height: 24px; }
@media (max-width: 991.98px) {
  .tc-prep { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .tc-prep { padding: 1.5rem 1.25rem; border-radius: 18px; }
  .tc-prep-links { grid-template-columns: 1fr; padding: .75rem; }
}

/* Getting into consulting (merged preparation + universities) */
.tc-anchor { display: block; height: 0; }
.tc-prep .tc-h2 span { display: block; margin-top: .35rem; color: var(--tc-green-300); }
.tc-prep-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.tc-link--light, .tc-link--light:visited { color: #fff; text-decoration-color: rgba(255, 255, 255, .45); }
.tc-link--light:hover, .tc-link--light:focus-visible { color: var(--tc-green-300); }
.tc-firm .tc-prep .tc-prep-window-title { margin: 1rem 1rem 0; font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tc-green-300); }

/* Simplified services page */
.tc-stack-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.tc-svc-hero .tc-lede { max-width: 32rem; margin-bottom: 1.75rem; }
.tc-process > li h3 { cursor: default; }
