/**
 * Ecommerce Websites.
 * Editorial page layer loaded only by page-ecommerce-websites.php.
 */
.tk-ecommerce {
  overflow: clip;
  background: var(--tk-color-background);
}

.tk-ecommerce .tk-button { border-radius: 0.625rem; }

.tk-ec-hero {
  padding-block: clamp(var(--tk-space-64), 9vw, 8.5rem);
  border-block-end: 1px solid var(--tk-color-border-strong);
}

.tk-ec-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(17rem, 0.55fr);
  gap: clamp(var(--tk-space-48), 8vw, 8rem);
  align-items: end;
}

.tk-ec-hero h1 {
  max-width: 13ch;
  font-size: clamp(2.75rem, 6.4vw, 5.75rem);
  letter-spacing: -0.045em;
}

.tk-ec-hero__lede {
  max-width: 47rem;
  color: var(--tk-color-text-primary);
  font-size: clamp(1.15rem, 1.9vw, 1.45rem);
  line-height: 1.55;
}

.tk-ec-hero__content > p:not(.tk-eyebrow, .tk-ec-hero__lede) {
  max-width: 43rem;
  color: var(--tk-color-text-secondary);
}

.tk-ec-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tk-space-16);
  align-items: center;
  margin-block-start: var(--tk-space-32);
}

.tk-ec-hero__aside {
  margin: 0;
  border-block-start: 1px solid var(--tk-color-border-strong);
}

.tk-ec-hero__aside-label {
  margin: 0;
  padding-block: var(--tk-space-16);
  color: var(--tk-color-text-secondary);
  font-size: var(--tk-font-size-label);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.tk-ec-hero__aside ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tk-ec-hero__aside li {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: var(--tk-space-12);
  padding-block: var(--tk-space-24);
  border-block-start: 1px solid var(--tk-color-border);
  color: var(--tk-color-text-primary);
  font-weight: 750;
}

.tk-ec-hero__aside li span,
.tk-ec-deliverables > li > span,
.tk-ec-platform-list__number,
.tk-ec-process-list > li > span {
  color: var(--tk-color-brand-secondary);
  font-size: var(--tk-font-size-small);
  font-weight: 850;
  letter-spacing: 0.08em;
}

.tk-ec-scope,
.tk-ec-platforms,
.tk-ec-faqs {
  background: #fffdf8;
}

.tk-ec-scope,
.tk-ec-proof,
.tk-ec-platforms,
.tk-ec-process,
.tk-ec-faqs {
  border-block-end: 1px solid var(--tk-color-border);
}

.tk-ec-heading-row,
.tk-ec-proof__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.7fr);
  gap: clamp(var(--tk-space-32), 7vw, var(--tk-space-96));
  align-items: end;
  margin-block-end: clamp(var(--tk-space-48), 7vw, var(--tk-space-96));
}

.tk-ec-heading-row h2,
.tk-ec-proof__intro h2 {
  max-width: 18ch;
  margin-block-end: 0;
}

.tk-ec-heading-row > p,
.tk-ec-proof__intro > p {
  margin: 0;
  color: var(--tk-color-text-secondary);
  font-size: var(--tk-font-size-body-large);
}

.tk-ec-deliverables,
.tk-ec-platform-list,
.tk-ec-process-list {
  margin: 0;
  padding: 0;
  border-block-start: 1px solid var(--tk-color-border-strong);
  list-style: none;
}

.tk-ec-deliverables > li {
  display: grid;
  grid-template-columns: 3rem minmax(12rem, 0.5fr) minmax(0, 1fr);
  gap: var(--tk-space-24);
  align-items: start;
  padding-block: var(--tk-space-32);
  border-block-end: 1px solid var(--tk-color-border-strong);
}

.tk-ec-deliverables h3,
.tk-ec-deliverables p,
.tk-ec-platform-list h3,
.tk-ec-platform-list p,
.tk-ec-process-list h3,
.tk-ec-process-list p {
  margin: 0;
}

.tk-ec-deliverables p,
.tk-ec-platform-list > li > p,
.tk-ec-process-list p {
  color: var(--tk-color-text-secondary);
}

.tk-ec-related-service {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tk-space-8) var(--tk-space-16);
  align-items: center;
  margin: var(--tk-space-32) 0 0;
  color: var(--tk-color-text-secondary);
}

.tk-ec-proof { background: var(--tk-color-background); }

.tk-ec-project { margin: 0; }

.tk-ec-project__media {
  display: block;
  overflow: clip;
  border: 1px solid var(--tk-color-border-strong);
  border-radius: 0.625rem;
  background: #f4e5de;
}

.tk-ec-project__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 36 / 25;
  object-fit: cover;
}

.tk-ec-project__caption {
  display: grid;
  grid-template-columns: minmax(12rem, 0.45fr) minmax(0, 1fr) auto;
  gap: var(--tk-space-32);
  align-items: end;
  padding-block: var(--tk-space-32);
  border-block-end: 1px solid var(--tk-color-border-strong);
}

.tk-ec-project__type {
  margin: 0 0 var(--tk-space-8);
  color: var(--tk-color-text-secondary);
  font-size: var(--tk-font-size-label);
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.tk-ec-project__caption h3 { margin: 0; }

.tk-ec-project__services {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tk-space-8);
  margin: 0;
  color: var(--tk-color-text-secondary);
}

.tk-ec-project__services span { color: var(--tk-color-border-strong); }

.tk-ec-platform-list > li {
  display: grid;
  grid-template-columns: 3rem minmax(10rem, 0.35fr) minmax(16rem, 0.75fr) minmax(13rem, 0.55fr);
  gap: var(--tk-space-24);
  align-items: start;
  padding-block: var(--tk-space-32);
  border-block-end: 1px solid var(--tk-color-border-strong);
}

.tk-ec-platform-list__consider {
  font-size: var(--tk-font-size-small);
}

.tk-ec-platform-list__consider strong { color: var(--tk-color-text-primary); }

.tk-ec-factors {
  display: grid;
  grid-template-columns: minmax(14rem, 0.48fr) minmax(0, 1fr);
  gap: clamp(var(--tk-space-32), 7vw, var(--tk-space-96));
  margin-block-start: clamp(var(--tk-space-64), 8vw, var(--tk-space-96));
  padding: clamp(var(--tk-space-32), 6vw, var(--tk-space-64));
  background: var(--tk-color-surface-strong);
  color: var(--tk-color-text-inverse);
}

.tk-ec-factors .tk-eyebrow { color: var(--tk-color-accent-soft); }
.tk-ec-factors h3 { max-width: 14ch; color: var(--tk-color-text-inverse); }

.tk-ec-factor-list {
  margin: 0;
  border-block-start: 1px solid rgba(255, 250, 240, 0.28);
}

.tk-ec-factor-list > div {
  display: grid;
  grid-template-columns: minmax(9rem, 0.45fr) minmax(0, 1fr);
  gap: var(--tk-space-24);
  padding-block: var(--tk-space-16);
  border-block-end: 1px solid rgba(255, 250, 240, 0.28);
}

.tk-ec-factor-list dt { font-weight: 800; }
.tk-ec-factor-list dd { margin: 0; color: rgba(255, 250, 240, 0.72); }

.tk-ec-seo-link {
  grid-column: 2;
  margin: 0;
  color: rgba(255, 250, 240, 0.72);
}

.tk-ec-seo-link .tk-text-link { color: var(--tk-color-accent-soft); }

.tk-ec-process { background: var(--tk-color-background); }

.tk-ec-process-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tk-ec-process-list > li {
  min-width: 0;
  padding: var(--tk-space-32) var(--tk-space-24) var(--tk-space-24) 0;
  border-block-end: 1px solid var(--tk-color-border-strong);
}

.tk-ec-process-list > li + li {
  padding-inline-start: var(--tk-space-24);
  border-inline-start: 1px solid var(--tk-color-border-strong);
}

.tk-ec-process-list > li > span {
  display: block;
  margin-block-end: var(--tk-space-32);
}

.tk-ec-process-list h3 { margin-block-end: var(--tk-space-12); }

.tk-ec-faqs__layout {
  display: grid;
  grid-template-columns: minmax(15rem, 0.52fr) minmax(0, 1fr);
  gap: clamp(var(--tk-space-48), 8vw, 8rem);
  align-items: start;
}

.tk-ec-faqs__intro {
  position: sticky;
  top: 7rem;
}

.tk-ec-faqs__intro > p:not(.tk-eyebrow) { color: var(--tk-color-text-secondary); }

.tk-ec-faq-list { border-block-start: 1px solid var(--tk-color-border-strong); }

.tk-ec-faq { border-block-end: 1px solid var(--tk-color-border-strong); }

.tk-ec-faq summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--tk-space-16);
  align-items: center;
  min-height: 4rem;
  padding-block: var(--tk-space-24);
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}

.tk-ec-faq summary::-webkit-details-marker { display: none; }
.tk-ec-faq summary::after { color: var(--tk-color-brand-secondary); content: "+"; font-size: 1.5rem; line-height: 1; }
.tk-ec-faq[open] summary::after { content: "−"; }
.tk-ec-faq summary:focus-visible { outline: 3px solid var(--tk-color-accent); outline-offset: 4px; }

.tk-ec-faq__answer {
  max-width: 44rem;
  padding: 0 var(--tk-space-48) var(--tk-space-24) 0;
  color: var(--tk-color-text-secondary);
}

.tk-ec-faq__answer p { margin: 0; }

.tk-ec-final-cta {
  background: var(--tk-color-surface-strong);
  color: var(--tk-color-text-inverse);
}

.tk-ec-final-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.65fr);
  gap: clamp(var(--tk-space-48), 8vw, 8rem);
  align-items: end;
}

.tk-ec-final-cta .tk-eyebrow { color: var(--tk-color-accent-soft); }
.tk-ec-final-cta h2 { max-width: 15ch; margin: 0; color: var(--tk-color-text-inverse); }
.tk-ec-final-cta__body p { color: rgba(255, 250, 240, 0.76); font-size: var(--tk-font-size-body-large); }

.tk-ec-final-cta .tk-button {
  border-color: var(--tk-color-text-inverse);
  background: var(--tk-color-text-inverse);
  color: var(--tk-color-brand-primary);
}

.tk-ec-final-cta .tk-button:hover { background: #fff; color: var(--tk-color-brand-primary); }

@media (max-width: 64rem) {
  .tk-ec-hero__layout,
  .tk-ec-heading-row,
  .tk-ec-proof__intro,
  .tk-ec-faqs__layout,
  .tk-ec-final-cta__inner {
    grid-template-columns: 1fr;
  }

  .tk-ec-hero__aside { max-width: 38rem; }
  .tk-ec-heading-row h2, .tk-ec-proof__intro h2 { max-width: 20ch; }
  .tk-ec-project__caption { grid-template-columns: minmax(12rem, 0.45fr) minmax(0, 1fr); }
  .tk-ec-project__caption .tk-text-link { grid-column: 1 / -1; justify-self: start; }
  .tk-ec-platform-list > li { grid-template-columns: 3rem minmax(10rem, 0.35fr) minmax(0, 1fr); }
  .tk-ec-platform-list__consider { grid-column: 2 / -1; }
  .tk-ec-process-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tk-ec-process-list > li:nth-child(odd) { padding-inline: 0 var(--tk-space-24); border-inline-start: 0; }
  .tk-ec-process-list > li:nth-child(even) { padding-inline: var(--tk-space-24) 0; border-inline-start: 1px solid var(--tk-color-border-strong); }
  .tk-ec-faqs__intro { position: static; max-width: 42rem; }
}

@media (max-width: 48rem) {
  .tk-ec-hero { padding-block: var(--tk-space-64); }
  .tk-ec-hero h1 { font-size: clamp(2.6rem, 13vw, 4rem); }
  .tk-ec-actions { align-items: stretch; flex-direction: column; }
  .tk-ec-actions .tk-button, .tk-ec-final-cta .tk-button { width: 100%; }

  .tk-ec-deliverables > li {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: var(--tk-space-12) var(--tk-space-16);
  }

  .tk-ec-deliverables > li p { grid-column: 2; }
  .tk-ec-project__media { border-radius: 0.5rem; }
  .tk-ec-project__caption { grid-template-columns: 1fr; gap: var(--tk-space-24); }
  .tk-ec-project__caption .tk-text-link { grid-column: auto; }

  .tk-ec-platform-list > li {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: var(--tk-space-12) var(--tk-space-16);
  }

  .tk-ec-platform-list > li > p,
  .tk-ec-platform-list__consider { grid-column: 2; }

  .tk-ec-factors { grid-template-columns: 1fr; margin-inline: calc(var(--tk-container-padding) * -1); }
  .tk-ec-factor-list > div { grid-template-columns: 1fr; gap: var(--tk-space-4); }
  .tk-ec-seo-link { grid-column: auto; }
  .tk-ec-process-list { grid-template-columns: 1fr; }
  .tk-ec-process-list > li,
  .tk-ec-process-list > li:nth-child(odd),
  .tk-ec-process-list > li:nth-child(even) {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: var(--tk-space-16);
    padding: var(--tk-space-24) 0;
    border-inline-start: 0;
  }

  .tk-ec-process-list > li > span { margin: 0; }
  .tk-ec-faq__answer { padding-inline-end: var(--tk-space-16); }
}

@media (prefers-reduced-motion: reduce) {
  .tk-ec-project__media img { scroll-behavior: auto; }
}
