/* 04 · Web services: brand orange background, cream cards that turn ink on hover */
.svc { background: var(--orange); color: var(--ink); padding: 18vh var(--gutter) 16vh; overflow: hidden; }
.svc__head { display: grid; gap: 22px; max-width: 900px; margin-bottom: 56px; }
.svc__num { color: var(--ink); opacity: .75; }
.svc__title { font-size: clamp(44px, 7vw, 124px); line-height: .96; max-width: 12ch; }
.svc__text { font-size: clamp(17px, 1.45vw, 21px); color: var(--ink-soft); max-width: 52ch; }

.svc__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; max-width: 1480px; }
@media (max-width: 1180px) { .svc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .svc__grid { grid-template-columns: 1fr; } }
.scard {
  display: grid; gap: 14px; align-content: start; padding: clamp(22px, 2.2vw, 30px); border-radius: 24px;
  background: var(--cream); color: var(--ink); min-height: 340px; text-decoration: none; cursor: pointer;
  box-shadow: 0 30px 50px -36px rgba(14, 13, 12, .55);
  transition: background-color .45s var(--ease-out), color .45s var(--ease-out), transform .6s var(--ease-out);
}
.scard:hover { background: var(--ink); color: var(--cream); transform: translateY(-6px); }
.scard__top { display: flex; justify-content: space-between; align-items: flex-start; }
.scard__icon { width: 44px; height: 44px; color: var(--orange-deep); transition: color .45s, transform .6s var(--ease-out); }
.scard:hover .scard__icon { color: var(--orange); transform: rotate(-8deg) scale(1.08); }
.scard__n { opacity: .55; }
.scard__name { font-size: clamp(22px, 1.9vw, 28px); line-height: 1.08; margin-top: 14px; }
.scard__desc { font-size: 16px; opacity: .82; }
.scard__list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; }
.scard__list li { position: relative; padding-left: 22px; font-weight: 500; font-size: 15px; }
.scard__list li::before { content: "+"; position: absolute; left: 0; top: 0; font-weight: 700; color: var(--orange-deep); transition: color .45s; }
.scard:hover .scard__list li::before { color: var(--orange); }

/* How we work: line drawn on scroll */
.svc__process { margin-top: clamp(64px, 12vh, 120px); max-width: 1480px; }
.svc__process-h { margin-bottom: 26px; opacity: .75; }
.svc__steps {
  --line: 0; position: relative; list-style: none; margin: 0; padding: 34px 0 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px;
}
.svc__steps::before, .svc__steps::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; border-radius: 2px; }
.svc__steps::before { background: rgba(14, 13, 12, .18); }
.svc__steps::after { background: var(--ink); transform: scaleX(var(--line)); transform-origin: left; }
.is-reduced .svc__steps, .no-js .svc__steps { --line: 1; }
.svc__step { display: grid; gap: 8px; align-content: start; }
.svc__step-n { font: 800 clamp(34px, 3.4vw, 54px)/1 var(--font-display); color: transparent; -webkit-text-stroke: 1.5px var(--ink); }
.svc__step-t { font-size: clamp(19px, 1.6vw, 24px); margin-top: 6px; }
.svc__step-d { font-size: 16px; color: var(--ink-soft); max-width: 30ch; }
@media (max-width: 860px) {
  .svc__steps { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
}
@media (max-width: 480px) { .svc__steps { grid-template-columns: 1fr; } }

.svc__cta {
  margin-top: clamp(56px, 10vh, 100px); max-width: 1480px; padding: clamp(24px, 3vw, 40px); border-radius: 28px;
  background: var(--ink); color: var(--cream); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
}
.svc__cta-text { font: 700 clamp(22px, 2.4vw, 36px)/1.1 var(--font-display); letter-spacing: -.02em; max-width: 24ch; }
.svc__cta-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.svc__cta .btn--ink { --bg: var(--orange); --fg: var(--ink); border-color: var(--orange); }
.svc__cta .btn--ink:hover { --bg: var(--cream); border-color: var(--cream); }
.svc__cta .btn--line { --fg: var(--cream); border-color: rgba(246, 241, 234, .45); }
.svc__cta .btn--line:hover { --bg: var(--cream); --fg: var(--ink); }

/* The whole card links to the quote block */
.scard__cta { align-self: end; margin-top: 8px; font: 600 14px var(--font-body); color: var(--orange-deep); display: inline-flex; gap: 6px; transition: color .45s; }
.scard:hover .scard__cta { color: var(--orange); }
.scard:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }

/* Email under the question and a flash when arriving from a card */
.svc__cta-mail { margin-top: 10px; font-size: 15px; color: rgba(246, 241, 234, .7); }
.svc__cta-mail a, .foot__mail a { color: var(--orange); text-decoration: none; border-bottom: 1px solid currentColor; }
.svc__cta { scroll-margin-top: 30vh; }
.svc__cta.is-flash { animation: ctaFlash 1.4s var(--ease-out); }
@keyframes ctaFlash {
  0% { box-shadow: 0 0 0 0 rgba(14, 13, 12, .55); transform: scale(1); }
  30% { box-shadow: 0 0 0 14px rgba(14, 13, 12, .18); transform: scale(1.015); }
  100% { box-shadow: 0 0 0 28px rgba(14, 13, 12, 0); transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) { .svc__cta.is-flash { animation: none; } }
