/* Page-level components layered on top of design-system.css */

.icon-box {
  width: 52px; height: 52px; border-radius: 14px;
  background: linear-gradient(135deg, rgba(22,86,201,0.12), rgba(23,182,232,0.16));
  display: flex; align-items: center; justify-content: center;
  color: var(--primary-mid); margin-bottom: 18px;
}
.icon-box svg { width: 26px; height: 26px; }

.service-card { padding: 28px; display: flex; flex-direction: column; height: 100%; }
.service-card .more-link { margin-top: auto; font-weight: 700; font-size: 0.88rem; display: inline-flex; align-items: center; gap: 6px; }

.testimonial-card { padding: 28px; }
.testimonial-card .stars { color: #f5a623; letter-spacing: 2px; margin-bottom: 12px; }
.testimonial-card .quote { font-size: 1.02rem; color: var(--text); }
.testimonial-card .author { display: flex; align-items: center; gap: 12px; margin-top: 18px; }
.testimonial-card .avatar-fallback {
  width: 42px; height: 42px; border-radius: 50%;
  background: linear-gradient(135deg, var(--primary-mid), var(--accent));
  color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem;
}
.testimonial-card .author strong { display: block; font-size: 0.92rem; }
.testimonial-card .author span { font-size: 0.8rem; color: var(--muted); }

.logo-strip { display: flex; flex-wrap: wrap; gap: 32px; align-items: center; justify-content: center; opacity: 0.75; }
.logo-strip .logo-chip {
  padding: 10px 22px; border: 1px solid var(--border); border-radius: var(--radius-pill);
  font-weight: 700; color: var(--muted); font-size: 0.85rem; letter-spacing: 0.02em;
}

.why-item { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.why-item:last-child { border-bottom: none; }
.why-item .check {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  background: rgba(22,163,74,0.12); color: var(--success);
  display: flex; align-items: center; justify-content: center; font-weight: 700;
}

.case-card { overflow: hidden; }
.case-card .thumb {
  height: 180px;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.85); font-weight: 700;
}
.case-card .body { padding: 24px; }
.case-card .result-pill { display: inline-block; background: var(--surface-alt); color: var(--primary-mid); font-weight: 700; font-size: 0.82rem; padding: 4px 10px; border-radius: var(--radius-pill); margin-bottom: 10px; }

.blog-card .thumb { height: 160px; background: var(--surface-alt); border-radius: var(--radius-md) var(--radius-md) 0 0; }
.blog-card .body { padding: 22px; }
.blog-card .meta { font-size: 0.8rem; color: var(--muted); margin-bottom: 8px; }
.blog-card h3 a { color: var(--text); }
.blog-card h3 a:hover { color: var(--primary-mid); }

.job-card { padding: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.job-meta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }

.cta-band {
  background: linear-gradient(135deg, var(--primary-dark), var(--primary-mid));
  color: #fff; border-radius: var(--radius-lg); padding: 56px; text-align: center;
}
.cta-band h2 { color: #fff; }
.cta-band p { color: #cfe0ff; max-width: 560px; margin-left: auto; margin-right: auto; }
.cta-band .hero-actions { justify-content: center; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 860px) { .two-col { grid-template-columns: 1fr; } }

.tag-list { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-list .tag { background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 5px 12px; font-size: 0.8rem; color: var(--text-secondary); }

.sidebar-block { padding: 22px; margin-bottom: 20px; }
.sidebar-block h4 { margin-bottom: 12px; }
.sidebar-block ul { list-style: none; margin: 0; padding: 0; }
.sidebar-block li { padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 0.9rem; }
.sidebar-block li:last-child { border-bottom: none; }

.error-page { padding: 100px 0; text-align: center; }
.error-page .code { font-size: 5rem; font-weight: 800; background: linear-gradient(135deg, var(--primary-mid), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.error-links { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }

.no-results { text-align: center; padding: 60px 20px; color: var(--muted); }

table.admin-table { width: 100%; border-collapse: collapse; background: var(--surface); border-radius: var(--radius-md); overflow: hidden; }
