/**
 * Service Page Builder — CSS bổ sung cho các block KHÔNG có sẵn class trong
 * style.css (ảnh trong Hero, Image + Text, Case Studies, số cột Features/Stats).
 * Chỉ dùng biến màu/bo góc/đổ bóng của theme (--line, --muted, --blue, --shadow...)
 * nên không đổi design system. Được nạp ở frontend chỉ khi trang có block markee/*.
 */

/* Hero: có ảnh -> 2 cột; nút kêu gọi */
.sb-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
  gap: 48px;
  align-items: center;
}
.sb-hero-media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: var(--shadow-lg);
}
.sb-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}
.sb-actions:empty {
  display: none;
}

/* Image + Text */
.sb-image-text {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  align-items: center;
}
.sb-image-text.no-media {
  grid-template-columns: minmax(0, 1fr);
}
.sb-image-text.is-right .sb-image-text-media {
  order: 2;
}
.sb-image-text-media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: var(--shadow);
}
.sb-image-text-copy h2 {
  margin: 12px 0 14px;
  font-size: 36px;
}
.sb-image-text-copy p {
  color: var(--muted);
  line-height: 1.75;
  margin: 0 0 22px;
}

/* Features: số cột */
.service-grid.sb-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.service-grid.sb-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Statistics: số cột theo số item */
.stats-grid.sb-n-1 {
  grid-template-columns: minmax(0, 1fr);
}
.stats-grid.sb-n-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.stats-grid.sb-n-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.stats-grid .sb-stat {
  text-align: center;
}
.stats-grid .sb-stat strong {
  display: block;
  font-size: 34px;
  background: var(--grad-spectrum);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.stats-grid .sb-stat span {
  color: #a3addb;
  font-size: 13px;
}

/* Case Studies */
.sb-case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.sb-case-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 12px 40px rgba(10, 14, 35, 0.05);
  transition: 0.3s;
}
a.sb-case-card:hover {
  transform: translateY(-5px);
  border-color: #cad8ff;
  box-shadow: var(--shadow);
}
.sb-case-media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--soft);
}
.sb-case-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sb-case-body {
  padding: 22px 24px 26px;
}
.sb-case-body h3 {
  font-size: 20px;
  margin: 4px 0 8px;
}
.sb-case-body p {
  margin: 0;
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.7;
}

/* Responsive — cùng điểm ngắt với style.css (980 / 640) */
@media (max-width: 980px) {
  .sb-hero-grid,
  .sb-image-text {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .sb-image-text.is-right .sb-image-text-media {
    order: 0;
  }
  .service-grid.sb-cols-4,
  .sb-case-grid,
  .stats-grid.sb-n-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .service-grid.sb-cols-2,
  .service-grid.sb-cols-4,
  .sb-case-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .stats-grid.sb-n-3,
  .stats-grid.sb-n-2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .sb-image-text-copy h2 {
    font-size: 28px;
  }
  .sb-actions .btn {
    width: 100%;
    justify-content: center;
  }
}
