/* Shared category-content block (views/partials/hub-content.ejs): intro,
   service cards, how-it-works steps, FAQ accordion and business CTA.
   Colours match the service hubs (#172a74 navy / #21a9af teal). */

.hub-content {
  margin-top: 34px;
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
}
.hub-content[hidden] { display: none; }

.hub-content h2 {
  text-align: center;
  font-size: 1.55rem;
  font-weight: 700;
  color: #172a74;
  margin: 0 0 8px;
}

.hub-content-intro {
  background: #fff;
  border: 1px solid #e3eaf4;
  border-radius: 16px;
  padding: 26px 28px;
  margin-bottom: 26px;
}
.hub-content-intro h2 { text-align: left; font-size: 1.35rem; margin-bottom: 10px; }
.hub-content-intro p { color: #475569; line-height: 1.65; margin: 0; font-size: .97rem; }

.hub-content-block { margin-bottom: 34px; }
.hub-content-block > h2 { margin-bottom: 22px; }

.hub-content-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 18px;
}
.hub-content-card {
  background: #fff;
  border: 1px solid #e3eaf4;
  border-radius: 14px;
  padding: 22px 20px;
  box-shadow: 0 2px 10px rgba(23, 42, 116, .05);
}
.hub-content-card i {
  font-size: 1.7rem;
  color: #21a9af;
  display: block;
  margin-bottom: 12px;
}
.hub-content-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #172a74;
  margin-bottom: 6px;
}
.hub-content-card p {
  font-size: .87rem;
  color: #64748b;
  line-height: 1.55;
  margin: 0;
}

.hub-content-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 26px;
}
.hub-content-step { text-align: center; }
.hub-content-num {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: linear-gradient(135deg, #172a74, #21a9af);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}
.hub-content-step h4 { font-weight: 700; color: #172a74; margin-bottom: 5px; }
.hub-content-step p { color: #64748b; font-size: .88rem; line-height: 1.55; margin: 0; }

.hub-content-faq-list { max-width: 780px; margin: 0 auto; }
.hub-content-faq-item {
  background: #fff;
  border: 1px solid #e3eaf4;
  border-radius: 12px;
  padding: 0 18px;
  margin-bottom: 10px;
}
.hub-content-faq-item summary {
  cursor: pointer;
  font-weight: 600;
  color: #172a74;
  padding: 14px 0;
  list-style: none;
  position: relative;
  padding-right: 26px;
}
.hub-content-faq-item summary::-webkit-details-marker { display: none; }
.hub-content-faq-item summary::after {
  content: "\f078";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .8rem;
  color: #21a9af;
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform .15s ease;
}
.hub-content-faq-item[open] summary::after { transform: translateY(-50%) rotate(180deg); }
.hub-content-faq-item p {
  color: #475569;
  font-size: .92rem;
  line-height: 1.6;
  margin: 0 0 14px;
}

.hub-content-cta {
  background: linear-gradient(135deg, #172a74, #21a9af);
  color: #fff;
  border-radius: 16px;
  text-align: center;
  padding: 38px 26px;
}
.hub-content-cta h2 { color: #fff; margin-bottom: 8px; }
.hub-content-cta p { opacity: .92; margin: 0 auto 20px; max-width: 620px; font-size: .97rem; }
.hub-content-cta a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: #172a74;
  font-weight: 700;
  padding: 12px 26px;
  border-radius: 999px;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.hub-content-cta a:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
  text-decoration: none;
  color: #172a74;
}

@media (max-width: 576px) {
  .hub-content { margin-top: 26px; }
  .hub-content-intro { padding: 20px 18px; }
  .hub-content h2 { font-size: 1.3rem; }
}
