/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 3rem; padding: .7rem 1.4rem; border-radius: 6px; border: 2px solid transparent; font: inherit; font-weight: 700; font-size: .95rem; text-decoration: none; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.btn--sm { min-height: 2.5rem; padding: .45rem 1.1rem; font-size: .88rem; }
.btn--block { width: 100%; }
.btn--primary { background: var(--orange-btn); color: var(--on-orange); }
.btn--primary:hover { background: var(--orange-hover); color: var(--on-orange); }
.btn .ico { width: 1.05em; height: 1.05em; }
.btn--light { background: #fff; color: var(--orange-deep); }
.btn--light:hover { background: var(--orange-tint); color: var(--orange-deep); }
.btn--ghost { border-color: var(--night); color: var(--night); background: transparent; }
.btn--ghost:hover { background: var(--night); color: #fff; }
.btn--ghost-light { border-color: rgba(255,255,255,.5); color: #fff; background: transparent; }
.btn--ghost-light:hover { border-color: #fff; background: rgba(255,255,255,.08); color: #fff; }
.btn--dark { background: var(--night); color: #fff; }
.btn--dark:hover { background: var(--night-2); color: #fff; }
.text-link { font-weight: 700; }

/* ---------- Sections ---------- */
.section { padding: clamp(2.75rem, 6vw, 5rem) 0; }
.section--tint { background: var(--lilac); }
.section__title { font-size: clamp(1.6rem, 3vw, var(--step-3)); margin-bottom: 1.75rem; letter-spacing: -.02em; }
.section__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.section__head .section__title { margin: 0; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }

.service-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.service-card { position: relative; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-card); padding: 1.5rem 1.6rem 1.6rem; transition: border-color .15s; }
.service-card:hover { border-color: var(--orange); }
.service-card--lead { background: var(--orange-tint); border-color: transparent; }
.service-card h3 { font-size: var(--step-1); margin-bottom: .45rem; }
.service-card h3 a { color: var(--night); text-decoration: none; }
.service-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card clickable */
.service-card:hover h3 a { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
.service-card p { color: var(--steel); margin: 0; max-width: 34em; }
@media (max-width: 720px) { .service-grid { grid-template-columns: 1fr; } }

/* Numbered steps: used only for real sequences (process, hiring) */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; counter-reset: none; }
.steps__item { position: relative; padding-top: 3.25rem; }
.steps__num { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--orange-btn); color: var(--on-orange); font-weight: 800; }
.steps:not(.steps--vertical):not(.steps--inline) .steps__item:not(:last-child)::before { content: ""; position: absolute; top: 1.2rem; left: 3rem; right: -1rem; height: 2px; background: repeating-linear-gradient(90deg, var(--orange) 0 6px, transparent 6px 12px); }
.steps__item h3 { font-size: 1.08rem; margin-bottom: .35rem; }
.steps__item p { color: var(--steel); margin: 0; font-size: .95rem; }
.steps--vertical, .steps--inline { grid-template-columns: 1fr; gap: 0; }
.steps--vertical .steps__item, .steps--inline .steps__item { padding: 0 0 1.5rem 3.4rem; }
.steps--vertical .steps__item:not(:last-child)::before, .steps--inline .steps__item:not(:last-child)::before { content: ""; position: absolute; left: 1.15rem; top: 2.6rem; bottom: .2rem; width: 2px; background: var(--line); }
.steps--inline .steps__num { width: 2.2rem; height: 2.2rem; font-size: .9rem; }
@media (max-width: 900px) {
  .steps { grid-template-columns: 1fr 1fr; }
  .steps:not(.steps--vertical):not(.steps--inline) .steps__item::before { display: none; }
}
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }

.why-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.why-list li { padding-left: 1.25rem; border-left: 3px solid var(--orange); }
.why-list h3 { font-size: 1.1rem; margin-bottom: .25rem; }
.why-list p { color: var(--steel); margin: 0; }

.tech { margin: 0; display: grid; gap: 1.1rem; }
.tech dt { font-weight: 700; font-size: .9rem; margin-bottom: .45rem; }
.tech dd { margin: 0; }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.chips li { padding: .3rem .75rem; border-radius: 999px; background: var(--lilac); font-size: .85rem; font-weight: 500; }
.section--tint .chips li { background: var(--paper); }
.chips--sm li { padding: .15rem .6rem; font-size: .78rem; background: var(--orange-tint); }
.chips--dark { margin-top: 1.25rem; }
.chips--dark li { background: var(--night-2); color: #fff; }

.post-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
.post-card__link { display: block; color: inherit; text-decoration: none; }
.post-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-card); background: var(--line); margin-bottom: .9rem; }
.post-card__img--empty { display: block; background: var(--night); position: relative; overflow: hidden; }
.post-card__img--empty::after { content: ""; position: absolute; width: 60%; aspect-ratio: 1; border-radius: 50%; background: var(--orange); right: -15%; bottom: -35%; }
.post-card time { font-size: var(--step--1); color: var(--steel); }
.post-card h3 { font-size: 1.08rem; margin: .25rem 0 .4rem; }
.post-card__link:hover h3 { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
.post-card p { color: var(--steel); font-size: .95rem; margin: 0; }
.post-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
@media (max-width: 900px) { .post-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .post-list { grid-template-columns: 1fr; } }

.band { background: var(--orange); color: var(--night); }
.band__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding-top: 3rem; padding-bottom: 3rem; }
.band h2 { font-size: var(--step-3); margin-bottom: .35rem; letter-spacing: -.02em; }
.band p { margin: 0; max-width: 40em; font-weight: 500; }

.contact-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding: 2.25rem; background: var(--paper); border: 1px solid var(--line); border-radius: 22px; }
.contact-band__inner .section__title { margin-bottom: .4rem; }
.contact-band__inner p { margin: 0; color: var(--steel); }
.contact-band__actions { display: flex; gap: .75rem; flex-wrap: wrap; }
