/* ═════════════════════════════════════════════════════════════════
   Service-detail extras: animations, timeline, tech-stack, FAQ,
   deliverables. Layers on top of services.css.
   ═══════════════════════════════════════════════════════════════ */

/* ── Reveal on scroll ── */
[data-sr] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--sr-delay, 0ms);
  will-change: opacity, transform;
}
[data-sr].is-in {
  opacity: 1;
  transform: translateY(0);
}
[data-sr="fade"]      { transform: translateY(0); }
[data-sr="left"]      { transform: translateX(-32px); }
[data-sr="right"]     { transform: translateX(32px); }
[data-sr="left"].is-in,
[data-sr="right"].is-in { transform: translateX(0); }
[data-sr="scale"]     { transform: scale(.94); }
[data-sr="scale"].is-in { transform: scale(1); }

@media (prefers-reduced-motion: reduce) {
  [data-sr] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ═════ Detailed process timeline ═════ */
.svcd-timeline {
  position: relative;
  display: grid;
  gap: 24px;
  margin-top: 40px;
  counter-reset: tl;
}
.svcd-timeline::before {
  content: "";
  position: absolute;
  left: 26px;
  top: 24px;
  bottom: 24px;
  width: 2px;
  background: linear-gradient(180deg, var(--sage) 0%, rgba(139,168,136,.15) 100%);
  border-radius: 2px;
  transform-origin: top;
  animation: tl-draw 1.4s cubic-bezier(.7,0,.3,1) forwards;
}
@keyframes tl-draw { from { transform: scaleY(0); } to { transform: scaleY(1); } }

.tl-step {
  position: relative;
  padding: 20px 24px 20px 76px;
  background: var(--cream);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.tl-step:hover {
  transform: translateX(4px);
  box-shadow: 0 8px 24px rgba(44,62,45,.08);
  border-color: rgba(139,168,136,.6);
}
.tl-step__dot {
  position: absolute;
  left: 15px;
  top: 22px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--sage);
  color: var(--cream);
  display: grid;
  place-items: center;
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 0 0 4px var(--cream), 0 0 0 5px rgba(139,168,136,.35);
}
.tl-step__dot::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 2px solid rgba(139,168,136,.55);
  animation: tl-pulse 2.2s ease-out infinite;
}
@keyframes tl-pulse {
  0%   { transform: scale(1);   opacity: .8; }
  70%  { transform: scale(1.9); opacity: 0;  }
  100% { transform: scale(1.9); opacity: 0;  }
}
.tl-step__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.tl-step__head h4 {
  margin: 0;
  font-size: 19px;
  letter-spacing: -.01em;
  color: var(--sage);
}
.tl-step__dur {
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(139,168,136,.14);
  color: var(--sage);
  letter-spacing: .04em;
}
.tl-step p {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--gray-700);
}
.tl-step__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 6px;
}
.tl-step__list li {
  font-size: 13.5px;
  color: var(--gray-700);
  padding-left: 20px;
  position: relative;
}
.tl-step__list li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--sage);
  font-weight: 700;
}

/* ═════ Deliverables grid ═════ */
.svcd-deliv {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-top: 32px;
}
.svcd-deliv__card {
  background: var(--cream);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  padding: 18px 20px;
  transition: transform .3s ease, box-shadow .3s ease;
  position: relative;
  overflow: hidden;
}
.svcd-deliv__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(139,168,136,.08), transparent 60%);
  opacity: 0;
  transition: opacity .35s ease;
}
.svcd-deliv__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(44,62,45,.09);
}
.svcd-deliv__card:hover::before { opacity: 1; }
.svcd-deliv__check {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--sage);
  color: var(--cream);
  display: grid;
  place-items: center;
  margin-bottom: 12px;
  position: relative;
  z-index: 1;
}
.svcd-deliv__card h5 {
  margin: 0 0 6px;
  font-size: 15px;
  color: var(--sage);
  position: relative;
  z-index: 1;
}
.svcd-deliv__card p {
  margin: 0;
  font-size: 13.5px;
  color: var(--gray-700);
  line-height: 1.55;
  position: relative;
  z-index: 1;
}

/* ═════ Tech stack marquee ═════ */
.svcd-stack {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px;
}
.svcd-stack__cat {
  background: var(--cream);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  padding: 18px;
  transition: border-color .3s ease, transform .3s ease;
}
.svcd-stack__cat:hover {
  border-color: rgba(139,168,136,.6);
  transform: translateY(-3px);
}
.svcd-stack__cat h5 {
  margin: 0 0 10px;
  font-size: 12px;
  font-family: var(--mono, "JetBrains Mono", monospace);
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--sage);
}
.svcd-stack__cat ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.svcd-stack__cat li {
  font-size: 12.5px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(139,168,136,.15);
  color: var(--sage);
  font-family: var(--mono, "JetBrains Mono", monospace);
  transition: background .25s ease, transform .25s ease;
}
.svcd-stack__cat li:hover {
  background: rgba(139,168,136,.3);
  transform: scale(1.05);
}

/* ═════ Timeline + Investment panel ═════ */
.svcd-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 32px;
}
.svcd-panel__card {
  background: var(--cream);
  border: 1px solid var(--gray-100);
  border-radius: 18px;
  padding: 26px;
  position: relative;
  overflow: hidden;
}
.svcd-panel__card::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 18px;
  background: linear-gradient(120deg, rgba(139,168,136,.4), transparent 60%);
  opacity: 0;
  transition: opacity .5s ease;
  pointer-events: none;
  z-index: 0;
}
.svcd-panel__card:hover::after { opacity: .35; }
.svcd-panel__card > * { position: relative; z-index: 1; }
.svcd-panel__lbl {
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sage);
  opacity: .7;
}
.svcd-panel__val {
  font-size: 32px;
  font-weight: 700;
  color: var(--sage);
  letter-spacing: -.02em;
  margin: 6px 0;
}
.svcd-panel__note {
  font-size: 13.5px;
  color: var(--gray-700);
  line-height: 1.55;
}
.svcd-panel__bar {
  height: 6px;
  background: var(--gray-100);
  border-radius: 999px;
  margin-top: 16px;
  overflow: hidden;
}
.svcd-panel__bar span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--sage), #8BA888);
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin: left;
  animation: svcd-bar 1.6s cubic-bezier(.7,0,.3,1) forwards;
  animation-delay: .4s;
}
@keyframes svcd-bar { to { transform: scaleX(var(--w, .8)); } }

@media (max-width: 640px) {
  .svcd-panel { grid-template-columns: 1fr; }
}

/* ═════ FAQ accordion ═════ */
.svcd-faq {
  display: grid;
  gap: 12px;
  margin-top: 32px;
}
.svcd-faq details {
  background: var(--cream);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  transition: border-color .3s ease, box-shadow .3s ease;
  overflow: hidden;
}
.svcd-faq details:hover { border-color: rgba(139,168,136,.5); }
.svcd-faq details[open] {
  border-color: rgba(139,168,136,.7);
  box-shadow: 0 8px 20px rgba(44,62,45,.06);
}
.svcd-faq summary {
  padding: 18px 22px;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-weight: 600;
  color: var(--sage);
  font-size: 15.5px;
  user-select: none;
}
.svcd-faq summary::-webkit-details-marker { display: none; }
.svcd-faq summary::after {
  content: "+";
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 22px;
  color: var(--sage);
  transition: transform .35s cubic-bezier(.7,0,.3,1);
  flex-shrink: 0;
}
.svcd-faq details[open] summary::after {
  transform: rotate(45deg);
}
.svcd-faq details > div {
  padding: 0 22px 20px;
  color: var(--gray-700);
  font-size: 14.5px;
  line-height: 1.65;
  animation: svcd-faq-in .35s ease both;
}
@keyframes svcd-faq-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ═════ Metric counters ═════ */
.svcd-counters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  margin-top: 32px;
}
.svcd-counter {
  padding: 20px 22px;
  border-radius: 16px;
  background: var(--cream);
  border: 1px solid var(--gray-100);
  transition: transform .3s ease, border-color .3s ease;
}
.svcd-counter:hover {
  transform: translateY(-3px);
  border-color: rgba(139,168,136,.55);
}
.svcd-counter__num {
  font-size: 40px;
  font-weight: 800;
  color: var(--sage);
  letter-spacing: -.02em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.svcd-counter__lbl {
  margin-top: 6px;
  font-size: 13px;
  color: var(--gray-700);
  font-family: var(--mono, "JetBrains Mono", monospace);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* ═════ Section head accent for detail pages ═════ */
.svcd-section__title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.svcd-section__lede {
  max-width: 640px;
  color: var(--gray-700);
  font-size: 15.5px;
  line-height: 1.65;
  margin-top: 8px;
}

/* ═══════════════════════════════════════════════════════════
   Mobile (≤ 640px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  /* Timeline steps: pull the dot in tighter, reduce left padding */
  .svcd-timeline::before { left: 20px; }
  .tl-step { padding: 16px 16px 16px 54px; border-radius: 12px; }
  .tl-step__dot {
    left: 8px;
    top: 18px;
    width: 22px;
    height: 22px;
    font-size: 10px;
  }
  .tl-step__head h4 { font-size: 17px; }
  .tl-step__dur { font-size: 10.5px; padding: 2px 8px; }
  .tl-step p { font-size: 14px; line-height: 1.5; margin-bottom: 10px; }
  .tl-step__list li { font-size: 13px; }

  /* Deliverables + stack + counters + FAQ tighter */
  .svcd-deliv { gap: 10px; }
  .svcd-deliv__card { padding: 16px; }
  .svcd-deliv__card h5 { font-size: 14.5px; }
  .svcd-deliv__card p { font-size: 13px; }
  .svcd-deliv__check { width: 26px; height: 26px; margin-bottom: 10px; }

  .svcd-stack { gap: 10px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
  .svcd-stack__cat { padding: 14px; }
  .svcd-stack__cat li { font-size: 11.5px; padding: 3px 8px; }

  /* Timeline+Investment panel stacks (already declared inline in the file — safeguard) */
  .svcd-panel { grid-template-columns: 1fr; gap: 12px; }
  .svcd-panel__card { padding: 20px; border-radius: 14px; }
  .svcd-panel__val { font-size: 26px; }

  /* Counters row */
  .svcd-counters { gap: 10px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
  .svcd-counter { padding: 14px 16px; }
  .svcd-counter__num { font-size: 30px; }
  .svcd-counter__lbl { font-size: 11px; }

  /* FAQ padding */
  .svcd-faq summary { padding: 14px 16px; font-size: 14.5px; }
  .svcd-faq summary::after { font-size: 20px; }
  .svcd-faq details > div { padding: 0 16px 16px; font-size: 13.5px; }

  /* Section title row + lede */
  .svcd-section__title-row { gap: 12px; }
  .svcd-section__lede { font-size: 14.5px; }
}
