/* ==========================================================================
   TheConsulting.io — site design system (loaded after the Around theme)
   Pages opt in to the full system with <body class="tc-firm">.
   Header and footer styles apply everywhere.
   ========================================================================== */

:root {
  --tc-ink: #17211e;
  --tc-slate: #56645f;
  --tc-line: #d5ddd9;
  --tc-mist: #eef2f0;
  --tc-paper: #ffffff;
  --tc-forest: #16302a;
  --tc-forest-2: #10251f;
  --tc-green: #448c74;
  --tc-green-700: #2f6b57;
  --tc-green-300: #8fc7b2;
  --tc-brass: #b08a3e;
  --tc-on-dark: #ffffff;
  --tc-on-dark-muted: #b7c6c0;
  --tc-serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --tc-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --tc-header-h: 76px;
  --tc-radius: 6px;
  --tc-radius-lg: 12px;
  --tc-section-y: clamp(4.5rem, 2.75rem + 5vw, 8rem);
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.tc-header {
  --bs-navbar-padding-y: 0;
  height: var(--tc-header-h);
  padding: 0;
  background: var(--tc-paper);
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.tc-header.is-scrolled {
  border-bottom-color: var(--tc-line);
}
.tc-header > .container {
  height: 100%;
}
.tc-brand {
  display: inline-flex;
  align-items: center;
  padding: .25rem 0;
  margin-right: auto;
}
.tc-brand img {
  display: block;
  width: 172px;
  height: auto;
}
.tc-nav {
  display: flex;
  align-items: center;
  gap: 2.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tc-nav-link {
  position: relative;
  font-family: var(--tc-sans);
  font-size: .9375rem;
  font-weight: 500;
  color: var(--tc-ink);
  text-decoration: none;
  padding: .5rem 0;
}
.tc-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: .15rem;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.tc-nav-link:hover,
.tc-nav-link:focus-visible,
.tc-nav-link.is-active {
  color: var(--tc-green-700);
}
.tc-nav-link:hover::after,
.tc-nav-link.is-active::after {
  transform: scaleX(1);
}
.tc-menu-toggle {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  margin-right: -.75rem;
  font: 500 .9375rem var(--tc-sans);
  color: var(--tc-ink);
  background: none;
  border: 0;
}
.tc-menu-toggle .tc-bars,
.tc-menu-toggle .tc-bars::before {
  display: block;
  width: 18px;
  height: 1.5px;
  background: currentColor;
  transition: transform .2s ease;
}
.tc-menu-toggle .tc-bars {
  position: relative;
  transform: translateY(-3px);
}
.tc-menu-toggle .tc-bars::before {
  content: "";
  position: absolute;
  top: 6px;
}
.tc-menu-toggle[aria-expanded="true"] .tc-bars { transform: translateY(0) rotate(45deg); }
.tc-menu-toggle[aria-expanded="true"] .tc-bars::before { transform: translateY(-6px) rotate(-90deg); }

@media (max-width: 991.98px) {
  .tc-header > .container { position: relative; }
  .tc-header .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0 calc(var(--bs-gutter-x, 1.5rem) * .5);
    background: var(--tc-paper);
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .tc-header .navbar-collapse::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 50vw);
    right: calc(50% - 50vw);
    z-index: -1;
    background: var(--tc-paper);
    border-top: 1px solid var(--tc-line);
    border-bottom: 1px solid var(--tc-line);
    box-shadow: 0 24px 40px -24px rgba(22, 48, 42, .25);
  }
  .tc-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: .5rem 0 1.5rem;
  }
  .tc-nav > li { border-bottom: 1px solid var(--tc-line); }
  .tc-nav > li:last-child { border-bottom: 0; padding-top: 1.25rem; }
  .tc-nav-link {
    display: block;
    padding: 1rem 0;
    font-family: var(--tc-serif);
    font-size: 1.5rem;
  }
  .tc-nav-link::after { display: none; }
  .tc-nav .tc-btn { width: 100%; }
}

/* --------------------------------------------------------------------------
   Buttons and links
   -------------------------------------------------------------------------- */
.tc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .875rem 1.375rem;
  font: 600 .9375rem/1.2 var(--tc-sans);
  letter-spacing: .005em;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: var(--tc-radius);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  cursor: pointer;
}
.tc-btn-sm { padding: .625rem 1.05rem; font-size: .875rem; }
.tc-btn-primary { color: #fff; background: var(--tc-green-700); }
.tc-btn-primary:hover, .tc-btn-primary:focus-visible { color: #fff; background: var(--tc-forest); }
.tc-btn-outline { color: var(--tc-ink); border-color: var(--tc-ink); background: transparent; }
.tc-btn-outline:hover, .tc-btn-outline:focus-visible { color: #fff; background: var(--tc-ink); }
.tc-btn-light { color: var(--tc-forest); background: #fff; }
.tc-btn-light:hover, .tc-btn-light:focus-visible { color: var(--tc-forest); background: var(--tc-mist); }
.tc-btn-ghost-light { color: #fff; border-color: rgba(255, 255, 255, .45); background: transparent; }
.tc-btn-ghost-light:hover, .tc-btn-ghost-light:focus-visible { color: var(--tc-forest); background: #fff; border-color: #fff; }
.tc-btn:disabled { opacity: .6; cursor: progress; }

.tc-link {
  color: var(--tc-green-700);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .3em;
  transition: text-decoration-thickness .15s ease, color .15s ease;
}
.tc-link:hover, .tc-link:focus-visible { color: var(--tc-forest); text-decoration-thickness: 2px; }

.tc-header a:focus-visible,
.tc-footer a:focus-visible,
.tc-firm a:focus-visible,
.tc-firm button:focus-visible,
.tc-btn:focus-visible {
  outline: 2px solid var(--tc-green);
  outline-offset: 3px;
  border-radius: 2px;
}

/* --------------------------------------------------------------------------
   Page base (opt-in)
   -------------------------------------------------------------------------- */
body.tc-firm {
  padding-top: var(--tc-header-h);
  font-family: var(--tc-sans);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--tc-ink);
  background: var(--tc-paper);
  -webkit-font-smoothing: antialiased;
}
.tc-firm p { color: var(--tc-slate); }
.tc-firm .tc-serif,
.tc-firm h1, .tc-firm h2, .tc-firm h3 {
  font-family: var(--tc-serif);
  font-weight: 500;
  color: var(--tc-ink);
  font-optical-sizing: auto;
}
.tc-display {
  font-size: clamp(2.75rem, 1.55rem + 3.9vw, 4.75rem);
  line-height: 1.03;
  letter-spacing: -.022em;
  margin-bottom: 1.5rem;
}
.tc-h1 {
  font-size: clamp(2.5rem, 1.6rem + 2.8vw, 4rem);
  line-height: 1.06;
  letter-spacing: -.02em;
}
.tc-h2 {
  font-size: clamp(2rem, 1.45rem + 1.8vw, 3rem);
  line-height: 1.1;
  letter-spacing: -.015em;
  margin-bottom: 1.25rem;
}
.tc-h3 {
  font-size: clamp(1.375rem, 1.2rem + .5vw, 1.625rem);
  line-height: 1.22;
  letter-spacing: -.005em;
  margin-bottom: .5rem;
}
.tc-lede {
  font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);
  line-height: 1.6;
  max-width: 34em;
}
.tc-small { font-size: .875rem; line-height: 1.5; }
.tc-meta { font-size: .875rem; color: var(--tc-slate); }

.tc-section { padding-block: var(--tc-section-y); }
.tc-section--mist { background: var(--tc-mist); }
.tc-section--forest { background: var(--tc-forest); }
.tc-section--rule { border-top: 1px solid var(--tc-line); }

/* Dark bands */
.tc-section--forest,
.tc-section--forest p { color: var(--tc-on-dark-muted); }
.tc-section--forest h1,
.tc-section--forest h2,
.tc-section--forest h3,
.tc-section--forest .tc-serif { color: var(--tc-on-dark); }
.tc-section--forest a:not(.tc-btn) { color: #fff; }

/* Answer-first layout: governing statement left, support right */
@media (min-width: 992px) {
  .tc-sticky { position: sticky; top: calc(var(--tc-header-h) + 2.5rem); }
}

/* Breadcrumb */
.tc-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.75rem;
  padding: 0;
  list-style: none;
  font-size: .875rem;
  color: var(--tc-slate);
}
.tc-crumbs li + li::before { content: "/"; margin-right: .5rem; color: var(--tc-line); }
.tc-crumbs a { color: var(--tc-slate); text-decoration: none; }
.tc-crumbs a:hover { color: var(--tc-green-700); }

/* --------------------------------------------------------------------------
   Hero + issue tree
   -------------------------------------------------------------------------- */
.tc-hero { padding-block: clamp(3rem, 1.5rem + 5vw, 6.5rem) clamp(3rem, 2rem + 3vw, 5rem); }
.tc-hero .tc-lede { margin-bottom: 2.25rem; }
.tc-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; }
.tc-proof {
  margin-top: clamp(3rem, 2rem + 3vw, 4.5rem);
  padding-top: 1.5rem;
  border-top: 1px solid var(--tc-line);
  font-size: .9375rem;
  color: var(--tc-slate);
  max-width: 62em;
}
.tc-proof strong { color: var(--tc-ink); font-weight: 600; }

.tc-tree-panel {
  position: relative;
  padding: 1.5rem;
  border-radius: var(--tc-radius-lg);
  background-color: var(--tc-mist);
  background-image: radial-gradient(rgba(22, 48, 42, .13) 1px, transparent 1.2px);
  background-size: 18px 18px;
}
.tc-tree-caption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  font-size: .8125rem;
  color: var(--tc-slate);
}
.tc-tree {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1.3fr) 32px minmax(0, .95fr);
  grid-template-rows: repeat(3, 1fr);
  align-items: center;
}
.tc-node {
  position: relative;
  padding: .75rem .875rem;
  font-size: .875rem;
  line-height: 1.35;
  color: var(--tc-ink);
  background: #fff;
  border: 1px solid var(--tc-line);
  border-radius: 8px;
}
.tc-node-label {
  display: block;
  margin-bottom: .25rem;
  font-size: .75rem;
  font-weight: 500;
  color: var(--tc-slate);
}
.tc-node--question { grid-column: 1; grid-row: 1 / span 3; font-family: var(--tc-serif); font-size: 1.125rem; line-height: 1.25; }
.tc-node--question .tc-node-label { font-family: var(--tc-sans); }
.tc-hyp { grid-column: 3; padding-block: .375rem; }
.tc-hyp--1 { grid-row: 1; }
.tc-hyp--2 { grid-row: 2; }
.tc-hyp--3 { grid-row: 3; }
.tc-status {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .35rem;
  font-size: .75rem;
  font-weight: 600;
  color: var(--tc-green-700);
}
.tc-status::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.tc-node--ruled-out { color: var(--tc-slate); background: rgba(255, 255, 255, .6); border-style: dashed; }
.tc-node--ruled-out .tc-node-text { text-decoration: line-through; text-decoration-color: rgba(86, 100, 95, .5); }
.tc-node--ruled-out .tc-status { color: var(--tc-slate); }
.tc-node--decision {
  grid-column: 5;
  grid-row: 1 / span 3;
  color: #fff;
  background: var(--tc-forest);
  border-color: var(--tc-forest);
  border-top: 3px solid var(--tc-brass);
  font-family: var(--tc-serif);
  font-size: 1.0625rem;
  line-height: 1.28;
}
.tc-node--decision .tc-node-label { font-family: var(--tc-sans); color: #d9c08a; }
.tc-links {
  grid-row: 1 / span 3;
  align-self: stretch;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.tc-links path {
  fill: none;
  stroke: var(--tc-green);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}
.tc-links .is-faint { stroke: #9aa8a3; stroke-dasharray: 4 4; }
.tc-links--in { grid-column: 2; }
.tc-links--out { grid-column: 4; }

/* The one orchestrated moment: the tree resolves from question to decision */
@media (prefers-reduced-motion: no-preference) {
  .js .tc-tree .tc-node { opacity: 0; transform: translateY(6px); }
  .js .tc-tree .tc-links { clip-path: inset(0 100% 0 0); }
  .js .tc-tree.is-drawn .tc-node { animation: tc-node-in .5s cubic-bezier(.2, .7, .2, 1) forwards; }
  .js .tc-tree.is-drawn .tc-links { animation: tc-draw .5s ease-out forwards; }
  .js .tc-tree.is-drawn .tc-node--question { animation-delay: .1s; }
  .js .tc-tree.is-drawn .tc-links--in { animation-delay: .45s; }
  .js .tc-tree.is-drawn .tc-hyp--1 .tc-node { animation-delay: .8s; }
  .js .tc-tree.is-drawn .tc-hyp--2 .tc-node { animation-delay: .95s; }
  .js .tc-tree.is-drawn .tc-hyp--3 .tc-node { animation-delay: 1.1s; }
  .js .tc-tree.is-drawn .tc-links--out { animation-delay: 1.45s; }
  .js .tc-tree.is-drawn .tc-node--decision { animation-delay: 1.85s; }
}
@keyframes tc-node-in { to { opacity: 1; transform: none; } }
@keyframes tc-draw { to { clip-path: inset(0 0 0 0); } }

@media (max-width: 767.98px) {
  .tc-tree-panel { padding: 1.25rem 1rem; }
  .tc-tree { display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
  .tc-links { display: none; }
  .tc-hyp { position: relative; padding-block: 0; }
  .tc-tree .tc-hyp::before,
  .tc-tree .tc-node--decision::before {
    content: "";
    position: absolute;
    top: -15px;
    left: 1.25rem;
    width: 1.5px;
    height: 14px;
    background: var(--tc-green);
  }
}

/* --------------------------------------------------------------------------
   Services index
   -------------------------------------------------------------------------- */
.tc-index { border-bottom: 1px solid var(--tc-line); }
.tc-index-row {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: .5rem 2.5rem;
  padding-block: 1.75rem;
  border-top: 1px solid var(--tc-line);
  color: inherit;
  text-decoration: none;
}
.tc-index-row .tc-h3 { margin: 0; transition: color .2s ease, transform .25s ease; }
.tc-index-row p { margin: 0 0 .5rem; }
.tc-index-row .tc-includes { font-size: .875rem; color: var(--tc-slate); }
.tc-index-row .tc-includes b { font-weight: 600; color: var(--tc-ink); }
.tc-index-row:hover .tc-h3,
.tc-index-row:focus-visible .tc-h3 { color: var(--tc-green-700); transform: translateX(6px); }
@media (max-width: 767.98px) {
  .tc-index-row { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Why us / principles
   -------------------------------------------------------------------------- */
.tc-figure img { display: block; width: 100%; height: auto; border-radius: var(--tc-radius-lg); }
.tc-figure figcaption { margin-top: .75rem; font-size: .875rem; color: var(--tc-slate); }
.tc-principles { margin: 2.5rem 0 0; }
.tc-principles > div {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(0, 2.6fr);
  gap: .25rem 2rem;
  padding-block: 1.25rem;
  border-top: 1px solid var(--tc-line);
}
.tc-principles dt { font-family: var(--tc-serif); font-size: 1.375rem; font-weight: 500; color: var(--tc-ink); line-height: 1.3; }
.tc-principles dd { margin: 0; color: var(--tc-slate); }
@media (max-width: 575.98px) {
  .tc-principles > div { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Engagement steps (a real sequence, so numbered)
   -------------------------------------------------------------------------- */
.tc-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 2rem;
  margin: 3.5rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.tc-steps li {
  position: relative;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, .22);
  counter-increment: step;
}
.tc-steps li::before {
  content: counter(step, decimal-leading-zero);
  display: block;
  margin-bottom: 1rem;
  font-family: var(--tc-serif);
  font-size: 2.25rem;
  line-height: 1;
  color: var(--tc-green-300);
}
.tc-steps li::after {
  content: "";
  position: absolute;
  top: -4px;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--tc-green-300);
}
.tc-steps h3 { font-size: 1.3125rem; line-height: 1.25; margin-bottom: .5rem; }
.tc-steps p { font-size: .9375rem; margin: 0; }
@media (max-width: 1199.98px) {
  .tc-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.5rem; }
}
@media (max-width: 767.98px) {
  .tc-steps { grid-template-columns: 1fr; gap: 0; }
  .tc-steps li { display: grid; grid-template-columns: 3.25rem 1fr; padding-block: 1.5rem; }
  .tc-steps li::before { grid-row: 1 / span 2; font-size: 1.75rem; }
  .tc-steps li::after { display: none; }
}

/* --------------------------------------------------------------------------
   Client questions
   -------------------------------------------------------------------------- */
.tc-questions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tc-questions li { padding-block: 1.5rem; border-top: 1px solid var(--tc-line); }
.tc-questions blockquote {
  margin: 0 0 .75rem;
  font-family: var(--tc-serif);
  font-size: 1.3125rem;
  line-height: 1.32;
  font-style: italic;
  color: var(--tc-ink);
}
.tc-questions .tc-meta a { color: var(--tc-green-700); font-weight: 600; text-decoration: none; }
.tc-questions .tc-meta a:hover { text-decoration: underline; text-underline-offset: .25em; }
@media (max-width: 767.98px) {
  .tc-questions { grid-template-columns: 1fr; }
}
.tc-facts { margin: 3rem 0 0; }
.tc-facts > div {
  display: grid;
  grid-template-columns: 9rem minmax(0, 1fr);
  gap: .25rem 1.5rem;
  padding-block: 1rem;
  border-top: 1px solid var(--tc-line);
}
.tc-facts dt { font-weight: 600; font-size: .9375rem; color: var(--tc-ink); }
.tc-facts dd { margin: 0; font-size: .9375rem; color: var(--tc-slate); }
@media (max-width: 575.98px) {
  .tc-facts > div { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Learnings
   -------------------------------------------------------------------------- */
.tc-feature {
  display: block;
  padding-bottom: 2rem;
  color: inherit;
  text-decoration: none;
}
.tc-feature .tc-feature-title {
  font-family: var(--tc-serif);
  font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.375rem);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.012em;
  color: var(--tc-ink);
  margin: .75rem 0 1rem;
  transition: color .2s ease;
}
.tc-feature:hover .tc-feature-title,
.tc-feature:focus-visible .tc-feature-title { color: var(--tc-green-700); }
.tc-article-list { margin: 0; padding: 0; list-style: none; }
.tc-article-list li { border-top: 1px solid var(--tc-line); }
.tc-article-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .25rem 1.5rem;
  align-items: baseline;
  padding-block: 1.25rem;
  color: inherit;
  text-decoration: none;
}
.tc-article-list .tc-article-title {
  font-family: var(--tc-serif);
  font-size: 1.25rem;
  line-height: 1.3;
  color: var(--tc-ink);
  transition: color .2s ease;
}
.tc-article-list a:hover .tc-article-title,
.tc-article-list a:focus-visible .tc-article-title { color: var(--tc-green-700); }
.tc-aside {
  margin-top: 2.5rem;
  padding: 1.25rem 1.375rem;
  border-left: 3px solid var(--tc-green);
  background: rgba(255, 255, 255, .6);
}
.tc-aside p { margin: 0; font-size: .9375rem; }

/* --------------------------------------------------------------------------
   Final CTA
   -------------------------------------------------------------------------- */
.tc-cta-statement {
  font-size: clamp(2.25rem, 1.4rem + 2.8vw, 3.75rem);
  line-height: 1.06;
  letter-spacing: -.02em;
  margin: 0;
  max-width: 14em;
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.tc-next { margin: 2rem 0; padding: 0; list-style: none; counter-reset: next; }
.tc-next li {
  display: grid;
  grid-template-columns: 2rem 1fr;
  padding-block: .875rem;
  border-top: 1px solid var(--tc-line);
  counter-increment: next;
  color: var(--tc-slate);
  font-size: .9375rem;
}
.tc-next li::before {
  content: counter(next);
  font-family: var(--tc-serif);
  font-size: 1.125rem;
  color: var(--tc-green-700);
  line-height: 1.4;
}
.tc-next b { display: block; color: var(--tc-ink); font-weight: 600; }
.tc-form-card {
  padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  border-radius: var(--tc-radius-lg);
  background: var(--tc-mist);
}
.tc-form .form-label {
  margin-bottom: .4rem;
  font-size: .875rem;
  font-weight: 600;
  color: var(--tc-ink);
}
.tc-form .form-label .tc-optional { font-weight: 400; color: var(--tc-slate); }
.tc-form .form-control,
.tc-form .form-select {
  padding: .8rem .95rem;
  font-size: 1rem;
  color: var(--tc-ink);
  background-color: #fff;
  border: 1px solid #c5d0cb;
  border-radius: var(--tc-radius);
  box-shadow: none;
}
.tc-form .form-control::placeholder { color: #8a9793; }
.tc-form .form-control:focus,
.tc-form .form-select:focus {
  border-color: var(--tc-green);
  box-shadow: 0 0 0 3px rgba(68, 140, 116, .2);
}
.tc-form.was-validated .form-control:invalid { border-color: #b4483c; }
.tc-form-status { min-height: 1.5rem; margin: 1rem 0 0; font-size: .9375rem; font-weight: 500; }
.tc-form-status.is-error { color: #a13d32; }
.tc-form-status.is-success { color: var(--tc-green-700); }
.tc-form-note { margin: .75rem 0 0; font-size: .8125rem; color: var(--tc-slate); }
.tc-form-note a { color: var(--tc-slate); }

/* --------------------------------------------------------------------------
   Service detail page
   -------------------------------------------------------------------------- */
.tc-jump { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.tc-jump li { border-top: 1px solid var(--tc-line); }
.tc-jump a { display: block; padding-block: .875rem; color: var(--tc-ink); font-weight: 500; text-decoration: none; }
.tc-jump a:hover { color: var(--tc-green-700); }
@media (max-width: 575.98px) { .tc-jump { grid-template-columns: 1fr; } }
.tc-service { padding-block: clamp(3.5rem, 2.5rem + 3vw, 5.5rem); border-top: 1px solid var(--tc-line); }
.tc-deliver { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.tc-deliver li {
  position: relative;
  padding: .7rem 0 .7rem 1.5rem;
  border-top: 1px solid var(--tc-line);
  color: var(--tc-ink);
}
.tc-deliver li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(.7rem + .82em);
  width: 8px;
  height: 1.5px;
  background: var(--tc-green);
}
.tc-tools { margin-top: 1.5rem; font-size: .9375rem; color: var(--tc-slate); }
.tc-tools b { color: var(--tc-ink); font-weight: 600; }
.tc-models { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; margin-top: 3rem; }
.tc-models > div { padding-top: 1.5rem; border-top: 1px solid var(--tc-line); }
@media (max-width: 767.98px) { .tc-models { grid-template-columns: 1fr; gap: 1.5rem; } }

/* --------------------------------------------------------------------------
   Learnings list page
   -------------------------------------------------------------------------- */
.tc-post-list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--tc-line); }
.tc-post-list li { border-top: 1px solid var(--tc-line); }
.tc-post-list a {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: .5rem 2.5rem;
  padding-block: 1.75rem;
  color: inherit;
  text-decoration: none;
}
.tc-post-list .tc-h3 { margin: .35rem 0 0; transition: color .2s ease; }
.tc-post-list a:hover .tc-h3 { color: var(--tc-green-700); }
.tc-post-list p { margin: 0; font-size: .9375rem; }
@media (max-width: 767.98px) { .tc-post-list a { grid-template-columns: 1fr; } }
.tc-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.tc-filter a {
  display: inline-block;
  padding: .45rem .9rem;
  font-size: .875rem;
  font-weight: 500;
  color: var(--tc-ink);
  text-decoration: none;
  border: 1px solid var(--tc-line);
  border-radius: 50rem;
}
.tc-filter a:hover { border-color: var(--tc-ink); }
.tc-filter a.is-active { color: #fff; background: var(--tc-ink); border-color: var(--tc-ink); }
.tc-pager { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.tc-footer {
  padding-block: clamp(3.5rem, 2.5rem + 3vw, 5rem) 2rem;
  font-family: var(--tc-sans);
  font-size: .9375rem;
  color: var(--tc-on-dark-muted);
  background: var(--tc-forest-2);
}
.tc-footer .tc-brand img { width: 180px; }
.tc-footer p { color: var(--tc-on-dark-muted); }
.tc-footer h2 {
  margin-bottom: 1rem;
  font-family: var(--tc-sans);
  font-size: .9375rem;
  font-weight: 600;
  color: #fff;
}
.tc-footer ul { margin: 0; padding: 0; list-style: none; }
.tc-footer li { padding-block: .3rem; }
.tc-footer a { color: var(--tc-on-dark-muted); text-decoration: none; transition: color .15s ease; }
.tc-footer a:hover { color: #fff; }
.tc-footer .tc-footer-mail { color: #fff; font-weight: 500; }
.tc-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem 2rem;
  margin-top: 3.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, .12);
  font-size: .8125rem;
}
.tc-footer-bottom ul { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.tc-footer-bottom li { padding: 0; }
.tc-social { display: flex; gap: 1.25rem; margin-top: 1.5rem; }
.tc-social a { font-size: 1.125rem; }

/* Old anchors keep clear of the fixed header */
[id] { scroll-margin-top: calc(var(--tc-header-h) + 16px); }

@media (prefers-reduced-motion: reduce) {
  .tc-index-row .tc-h3, .tc-nav-link::after { transition: none; }
}
.tc-form-status:empty { min-height: 0; margin: 0; }

/* Article pages (Around layout, new type) */
.tc-article h1, .tc-article .h1, .tc-article h2, .tc-article h3 {
  font-family: var(--tc-serif);
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--tc-ink);
}
.tc-article .breadcrumb-item a { color: var(--tc-slate); }
