/* ==========================================================================
   COMPONENTS — Services, Process, Stats, Industries, Testimonials, FAQ
   ========================================================================== */

/* ---- Trust strip ---- */

.fb-trust{
  background:var(--fb-plum-deep);
  padding-block:1.6rem;
  border-bottom:1px solid var(--fb-border-dark);
}

.fb-trust .container-fb{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1.2rem;
}

.fb-trust__label{
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--fb-slate-light);
  flex-shrink:0;
}

.fb-trust__items{
  display:flex;
  gap:var(--space-lg);
  flex-wrap:wrap;
  color:rgba(255,249,236,0.55);
  font-family:var(--font-display);
  font-weight:600;
  font-size:1rem;
}

/* ---- Services / What we do ---- */

.fb-services__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
}

@media (max-width: 991px){ .fb-services__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px){ .fb-services__grid{ grid-template-columns:1fr; } }

.fb-service-card{
  background:#fff;
  border:1px solid var(--fb-border);
  border-radius:var(--radius-lg);
  padding:2rem 1.8rem;
  position:relative;
  overflow:hidden;
  transition:transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out), border-color var(--dur-med);
}

.fb-service-card::before{
  content:'';
  position:absolute;
  top:0; left:0;
  width:100%; height:3px;
  background:linear-gradient(90deg, var(--fb-honey), var(--fb-honey-bright));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--dur-med) var(--ease-out);
}

.fb-service-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:transparent;
}
.fb-service-card:hover::before{ transform:scaleX(1); }

.fb-service-card__icon{
  width:56px; height:56px;
  clip-path:var(--hex-clip);
  background:linear-gradient(150deg, var(--fb-plum), var(--fb-plum-deep));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.3rem;
  transition:transform var(--dur-med) var(--ease-out);
}
.fb-service-card:hover .fb-service-card__icon{ transform:rotate(20deg) scale(1.05); }

.fb-service-card__icon svg{ width:24px; height:24px; stroke:var(--fb-honey-bright); }

.fb-service-card h3{ font-size:1.18rem; margin-bottom:0.6rem; font-weight:600; }

.fb-service-card p{ color:var(--fb-text-muted); font-size:0.95rem; }

.fb-service-card__num{
  position:absolute;
  top:1.6rem; right:1.6rem;
  font-family:var(--font-mono);
  font-size:0.75rem;
  color:var(--fb-border);
  font-weight:700;
}

/* ---- Process / The Flight Path — a bee's route, not a numbered rail ---- */

.fb-process{ background:var(--fb-plum-deep); color:var(--fb-cream); position:relative; overflow:hidden; }

.fb-process .section-head .eyebrow{ color:var(--fb-honey-bright); }
.fb-process .section-head h2{ color:var(--fb-cream); }
.fb-process .section-head .lead{ color:rgba(255,249,236,0.62); }

.fb-process__field{
  position:relative;
}

.fb-process__path{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  overflow:visible;
}
.fb-process__path path{
  fill:none;
  stroke:rgba(255,201,77,0.3);
  stroke-width:2;
  stroke-dasharray:1 11;
  stroke-linecap:round;
}
@media (max-width:900px){ .fb-process__path{ display:none; } }

.fb-process__rail{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.8rem;
}

@media (max-width:991px){ .fb-process__rail{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .fb-process__rail{ grid-template-columns:1fr; } }

.fb-step{ position:relative; }

.fb-step__num{
  width:58px; height:58px;
  clip-path:var(--hex-clip);
  background:var(--fb-plum-deep);
  border:2px solid var(--fb-honey);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono);
  font-weight:700;
  color:var(--fb-honey-bright);
  margin-bottom:1.2rem;
  position:relative;
  z-index:1;
}

.fb-step h3{ color:var(--fb-cream); font-size:1.1rem; margin-bottom:0.5rem; font-weight:600; }
.fb-step p{ color:rgba(255,249,236,0.6); font-size:0.92rem; }

/* ---- Stats band — honeycomb cluster ---- */

.fb-stats{
  background:linear-gradient(135deg, var(--fb-honey-bright), var(--fb-honey) 60%, var(--fb-honey-deep));
  padding-block:var(--space-xl);
  position:relative;
  overflow:hidden;
}

.fb-stats::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:radial-gradient(circle at 8px 8px, rgba(54,34,54,0.05) 1.5px, transparent 0);
  background-size:26px 26px;
  pointer-events:none;
}

.fb-stats__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
  text-align:center;
  position:relative;
}

@media (max-width:768px){ .fb-stats__grid{ grid-template-columns:repeat(2,1fr); } }

.fb-stat strong{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.9rem, 3.4vw, 2.8rem);
  color:var(--fb-plum-deep);
  display:block;
  line-height:1;
  margin-bottom:0.3rem;
}

.fb-stat span{
  font-family:var(--font-mono);
  font-size:0.76rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:rgba(54,34,54,0.72);
  font-weight:700;
}

/* ---- Industries served — hex chips ---- */

.fb-industries__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
}

@media (max-width:768px){ .fb-industries__grid{ grid-template-columns:repeat(2,1fr); } }

.fb-industry-chip{
  background:#fff;
  border:1px solid var(--fb-border);
  border-radius:var(--radius-md);
  padding:1.4rem 1.2rem;
  display:flex;
  align-items:center;
  gap:0.9rem;
  transition:border-color var(--dur-fast), transform var(--dur-fast);
}
.fb-industry-chip:hover{ border-color:var(--fb-honey); transform:translateY(-3px); }

.fb-industry-chip__icon{
  width:40px; height:40px;
  clip-path:var(--hex-clip);
  background:var(--fb-cream-dim);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}

.fb-industry-chip svg{ width:20px; height:20px; stroke:var(--fb-honey-deep); flex-shrink:0; }
.fb-industry-chip span{ font-weight:600; font-size:0.95rem; }

/* ---- Why us / approach split ---- */

.fb-why__grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:var(--space-2xl);
  align-items:center;
}
@media (max-width:900px){ .fb-why__grid{ grid-template-columns:1fr; gap:var(--space-xl); } }

.fb-why__visual{
  position:relative;
  background:var(--fb-plum-deep);
  border-radius:var(--radius-lg);
  aspect-ratio:4/5;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:2rem;
}

.fb-why__visual::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at 20% 15%, rgba(240,164,0,0.28), transparent 42%),
    radial-gradient(circle at 85% 80%, rgba(240,164,0,0.18), transparent 40%);
}

.fb-why__visual-quote{
  position:relative;
  z-index:1;
  color:var(--fb-cream);
}

.fb-why__visual-quote .mark{
  font-family:var(--font-display);
  font-size:3.2rem;
  font-style:italic;
  color:var(--fb-honey-bright);
  line-height:0.6;
  display:block;
  margin-bottom:0.6rem;
}

.fb-why__visual-quote p{ font-size:1.05rem; font-weight:500; }

.fb-why-list{ display:flex; flex-direction:column; gap:1.6rem; }

.fb-why-item{ display:flex; gap:1.1rem; }

.fb-why-item__icon{
  width:44px; height:44px;
  clip-path:var(--hex-clip);
  background:var(--fb-sage-tint);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.fb-why-item__icon svg{ width:19px; height:19px; stroke:var(--fb-sage); }

.fb-why-item h3{ font-size:1.05rem; margin-bottom:0.3rem; font-weight:600; }
.fb-why-item p{ color:var(--fb-text-muted); font-size:0.93rem; }

/* ---- Testimonials ---- */

.fb-testimonials{ background:var(--fb-cream-dim); }

.fb-testimonials__track{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
}
@media (max-width:991px){ .fb-testimonials__track{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .fb-testimonials__track{ grid-template-columns:1fr; } }

.fb-testimonial{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:1.9rem;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
}

.fb-testimonial__stars{ display:flex; gap:0.2rem; margin-bottom:1rem; }
.fb-testimonial__stars svg{ width:16px; height:16px; fill:var(--fb-honey); stroke:var(--fb-honey); }

.fb-testimonial p{ color:var(--fb-text-primary); font-size:0.97rem; margin-bottom:1.3rem; flex-grow:1; }

.fb-testimonial__author{ display:flex; align-items:center; gap:0.8rem; }

.fb-testimonial__avatar{
  width:42px; height:42px;
  clip-path:var(--hex-clip);
  background:var(--fb-plum-deep);
  color:var(--fb-honey-bright);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display);
  font-weight:600;
  font-size:0.92rem;
}

.fb-testimonial__author strong{ display:block; font-size:0.9rem; font-weight:600; }
.fb-testimonial__author span{ font-size:0.8rem; color:var(--fb-text-muted); }

/* ---- FAQ accordion ---- */

.fb-faq{ max-width:780px; margin-inline:auto; }

.fb-faq-item{
  border-bottom:1px solid var(--fb-border);
}

.fb-faq-item__q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.4rem 0.2rem;
  text-align:left;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.02rem;
  color:var(--fb-plum);
}

.fb-faq-item__q .plus{
  width:30px; height:30px;
  clip-path:var(--hex-clip);
  border:1.5px solid var(--fb-border);
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  position:relative;
  transition:transform var(--dur-med) var(--ease-out), background var(--dur-med), border-color var(--dur-med);
}

.fb-faq-item__q .plus::before,
.fb-faq-item__q .plus::after{
  content:'';
  position:absolute;
  background:var(--fb-plum);
  transition:opacity var(--dur-fast), background var(--dur-fast);
}
.fb-faq-item__q .plus::before{ width:12px; height:1.5px; }
.fb-faq-item__q .plus::after{ width:1.5px; height:12px; }

.fb-faq-item.is-open .fb-faq-item__q .plus{ background:var(--fb-honey); border-color:var(--fb-honey); transform:rotate(90deg); }
.fb-faq-item.is-open .fb-faq-item__q .plus::before,
.fb-faq-item.is-open .fb-faq-item__q .plus::after{ background:var(--fb-plum); }
.fb-faq-item.is-open .fb-faq-item__q .plus::after{ opacity:0; }

.fb-faq-item__a{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--dur-med) var(--ease-in-out);
}

.fb-faq-item__a-inner{
  padding:0 0.2rem 1.5rem;
  color:var(--fb-text-muted);
  font-size:0.95rem;
  max-width:640px;
}

/* ---- CTA banner ---- */

.fb-cta-banner{
  background:var(--fb-plum-deep);
  border-radius:var(--radius-lg);
  padding:clamp(2.5rem, 5vw, 4rem);
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-lg);
  flex-wrap:wrap;
}

.fb-cta-banner::after{
  content:'';
  position:absolute;
  width:380px; height:380px;
  background:var(--fb-honey);
  border-radius:50%;
  filter:blur(90px);
  opacity:0.25;
  right:-100px; top:-120px;
}

.fb-cta-banner__text{ position:relative; z-index:1; max-width:520px; }
.fb-cta-banner h2{ color:var(--fb-cream); margin-bottom:0.6rem; }
.fb-cta-banner p{ color:rgba(255,249,236,0.65); }
.fb-cta-banner__actions{ position:relative; z-index:1; display:flex; gap:0.8rem; flex-wrap:wrap; }

/* ---- Contact section ---- */

.fb-contact__grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:var(--space-2xl);
}
@media (max-width:900px){ .fb-contact__grid{ grid-template-columns:1fr; gap:var(--space-xl); } }

.fb-contact-info{ display:flex; flex-direction:column; gap:1.5rem; }

.fb-contact-item{ display:flex; gap:1rem; align-items:flex-start; }

.fb-contact-item__icon{
  width:46px; height:46px;
  clip-path:var(--hex-clip);
  background:var(--fb-plum-deep);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.fb-contact-item__icon svg{ width:20px; height:20px; stroke:var(--fb-honey-bright); }

.fb-contact-item h3{ font-size:0.98rem; margin-bottom:0.2rem; font-weight:600; }
.fb-contact-item p, .fb-contact-item a{ color:var(--fb-text-muted); font-size:0.93rem; }

.fb-form-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:clamp(1.6rem, 3vw, 2.5rem);
  box-shadow:var(--shadow-md);
}

.fb-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:560px){ .fb-form-row{ grid-template-columns:1fr; } }

.fb-field{ margin-bottom:1.1rem; }

.fb-field label{
  display:block;
  font-size:0.82rem;
  font-weight:600;
  margin-bottom:0.4rem;
  color:var(--fb-plum);
}

.fb-field input,
.fb-field select,
.fb-field textarea{
  width:100%;
  border:1.5px solid var(--fb-border);
  border-radius:var(--radius-sm);
  padding:0.75rem 0.9rem;
  font-family:var(--font-body);
  font-size:0.95rem;
  background:var(--fb-cream);
  transition:border-color var(--dur-fast);
}

.fb-field input:focus,
.fb-field select:focus,
.fb-field textarea:focus{
  border-color:var(--fb-honey);
  outline:none;
}

.fb-field textarea{ resize:vertical; min-height:110px; }

.fb-form-note{
  font-size:0.78rem;
  color:var(--fb-slate-light);
  margin-top:0.8rem;
  display:flex;
  align-items:center;
  gap:0.4rem;
}
.fb-form-note svg{ width:14px; height:14px; }
