/* ==========================================================================
   COMPONENTS — Services, Process, Stats, Industries, Testimonials, FAQ
   ========================================================================== */

/* ---- Trust strip ---- */

.cc-trust{
  background:var(--cc-charcoal);
  padding-block:1.6rem;
  border-bottom:1px solid var(--cc-charcoal-line);
}

.cc-trust .container-cc{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1.2rem;
}

.cc-trust__label{
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--cc-slate-light);
  flex-shrink:0;
}

.cc-trust__items{
  display:flex;
  gap:var(--space-lg);
  flex-wrap:wrap;
  color:rgba(250,248,244,0.55);
  font-family:var(--font-display);
  font-weight:600;
  font-size:1rem;
}

/* ---- Services / What we do ---- */

.cc-services__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
}

@media (max-width: 991px){ .cc-services__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px){ .cc-services__grid{ grid-template-columns:1fr; } }

.cc-service-card{
  background:#fff;
  border:1px solid var(--cc-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);
}

.cc-service-card::before{
  content:'';
  position:absolute;
  top:0; left:0;
  width:100%; height:3px;
  background:linear-gradient(90deg, var(--cc-gold), var(--cc-gold-bright));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--dur-med) var(--ease-out);
}

.cc-service-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:transparent;
}
.cc-service-card:hover::before{ transform:scaleX(1); }

.cc-service-card__icon{
  width:54px; height:54px;
  border-radius:var(--radius-md);
  background:linear-gradient(135deg, var(--cc-charcoal), var(--cc-charcoal-soft));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.3rem;
  transition:transform var(--dur-med) var(--ease-out);
}
.cc-service-card:hover .cc-service-card__icon{ transform:rotate(-6deg) scale(1.05); }

.cc-service-card__icon svg{ width:26px; height:26px; stroke:var(--cc-gold-bright); }

.cc-service-card h3{ font-size:1.2rem; margin-bottom:0.6rem; }

.cc-service-card p{ color:var(--cc-text-muted); font-size:0.95rem; }

.cc-service-card__num{
  position:absolute;
  top:1.6rem; right:1.6rem;
  font-family:var(--font-mono);
  font-size:0.75rem;
  color:var(--cc-border);
  font-weight:700;
}

/* ---- Process / How it works (timeline — genuine sequence, so numbering is earned) ---- */

.cc-process{ background:var(--cc-charcoal); color:var(--cc-cream); position:relative; }

.cc-process .section-head .eyebrow{ color:var(--cc-gold-bright); }
.cc-process .section-head h2{ color:var(--cc-cream); }
.cc-process .section-head .lead{ color:rgba(250,248,244,0.62); }

.cc-process__rail{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.8rem;
}

@media (max-width:991px){ .cc-process__rail{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cc-process__rail{ grid-template-columns:1fr; } }

.cc-process__rail::before{
  content:'';
  position:absolute;
  top:28px; left:0; right:0;
  height:2px;
  background:repeating-linear-gradient(90deg, var(--cc-gold) 0, var(--cc-gold) 8px, transparent 8px, transparent 16px);
  opacity:0.4;
}

@media (max-width:991px){ .cc-process__rail::before{ display:none; } }

.cc-step{ position:relative; }

.cc-step__num{
  width:56px; height:56px;
  border-radius:50%;
  background:var(--cc-charcoal);
  border:2px solid var(--cc-gold);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono);
  font-weight:700;
  color:var(--cc-gold-bright);
  margin-bottom:1.2rem;
  position:relative;
  z-index:1;
}

.cc-step h3{ color:var(--cc-cream); font-size:1.1rem; margin-bottom:0.5rem; }
.cc-step p{ color:rgba(250,248,244,0.6); font-size:0.92rem; }

/* ---- Stats band ---- */

.cc-stats{
  background:linear-gradient(135deg, var(--cc-gold-bright), var(--cc-gold) 60%, var(--cc-gold-deep));
  padding-block:var(--space-xl);
}

.cc-stats__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
  text-align:center;
}

@media (max-width:768px){ .cc-stats__grid{ grid-template-columns:repeat(2,1fr); } }

.cc-stat strong{
  font-family:var(--font-display);
  font-size:clamp(2rem, 3.6vw, 3rem);
  color:var(--cc-charcoal);
  display:block;
  line-height:1;
  margin-bottom:0.3rem;
}

.cc-stat span{
  font-family:var(--font-mono);
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:rgba(23,24,28,0.7);
  font-weight:600;
}

/* ---- Industries served ---- */

.cc-industries__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
}

@media (max-width:768px){ .cc-industries__grid{ grid-template-columns:repeat(2,1fr); } }

.cc-industry-chip{
  background:#fff;
  border:1px solid var(--cc-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);
}
.cc-industry-chip:hover{ border-color:var(--cc-gold); transform:translateY(-3px); }

.cc-industry-chip svg{ width:28px; height:28px; stroke:var(--cc-gold-deep); flex-shrink:0; }
.cc-industry-chip span{ font-weight:600; font-size:0.95rem; }

/* ---- Why us / approach split ---- */

.cc-why__grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:var(--space-2xl);
  align-items:center;
}
@media (max-width:900px){ .cc-why__grid{ grid-template-columns:1fr; gap:var(--space-xl); } }

.cc-why__visual{
  position:relative;
  background:var(--cc-charcoal);
  border-radius:var(--radius-lg);
  aspect-ratio:4/5;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:2rem;
}

.cc-why__visual::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(160deg, transparent 40%, var(--cc-gold) 200%);
  opacity:0.5;
}

.cc-why__visual-quote{
  position:relative;
  z-index:1;
  color:var(--cc-cream);
}

.cc-why__visual-quote .mark{
  font-family:var(--font-display);
  font-size:3.5rem;
  color:var(--cc-gold-bright);
  line-height:0.6;
  display:block;
  margin-bottom:0.6rem;
}

.cc-why__visual-quote p{ font-size:1.05rem; font-weight:500; }

.cc-why-list{ display:flex; flex-direction:column; gap:1.6rem; }

.cc-why-item{ display:flex; gap:1.1rem; }

.cc-why-item__icon{
  width:44px; height:44px;
  border-radius:50%;
  background:var(--cc-emerald-tint);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.cc-why-item__icon svg{ width:20px; height:20px; stroke:var(--cc-emerald); }

.cc-why-item h3{ font-size:1.05rem; margin-bottom:0.3rem; }
.cc-why-item p{ color:var(--cc-text-muted); font-size:0.93rem; }

/* ---- Testimonials ---- */

.cc-testimonials{ background:var(--cc-cream-dim); }

.cc-testimonials__track{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
}
@media (max-width:991px){ .cc-testimonials__track{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .cc-testimonials__track{ grid-template-columns:1fr; } }

.cc-testimonial{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:1.9rem;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
}

.cc-testimonial__stars{ display:flex; gap:0.2rem; margin-bottom:1rem; }
.cc-testimonial__stars svg{ width:16px; height:16px; fill:var(--cc-gold); stroke:var(--cc-gold); }

.cc-testimonial p{ color:var(--cc-text-primary); font-size:0.97rem; margin-bottom:1.3rem; flex-grow:1; }

.cc-testimonial__author{ display:flex; align-items:center; gap:0.8rem; }

.cc-testimonial__avatar{
  width:42px; height:42px;
  border-radius:50%;
  background:var(--cc-charcoal);
  color:var(--cc-gold-bright);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display);
  font-weight:700;
  font-size:0.95rem;
}

.cc-testimonial__author strong{ display:block; font-size:0.9rem; }
.cc-testimonial__author span{ font-size:0.8rem; color:var(--cc-text-muted); }

/* ---- FAQ accordion ---- */

.cc-faq{ max-width:780px; margin-inline:auto; }

.cc-faq-item{
  border-bottom:1px solid var(--cc-border);
}

.cc-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(--cc-charcoal);
}

.cc-faq-item__q .plus{
  width:30px; height:30px;
  border-radius:50%;
  border:1.5px solid var(--cc-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);
}

.cc-faq-item__q .plus::before,
.cc-faq-item__q .plus::after{
  content:'';
  position:absolute;
  background:var(--cc-charcoal);
  transition:opacity var(--dur-fast), background var(--dur-fast);
}
.cc-faq-item__q .plus::before{ width:12px; height:1.5px; }
.cc-faq-item__q .plus::after{ width:1.5px; height:12px; }

.cc-faq-item.is-open .cc-faq-item__q .plus{ background:var(--cc-gold); border-color:var(--cc-gold); transform:rotate(90deg); }
.cc-faq-item.is-open .cc-faq-item__q .plus::before,
.cc-faq-item.is-open .cc-faq-item__q .plus::after{ background:var(--cc-charcoal); }
.cc-faq-item.is-open .cc-faq-item__q .plus::after{ opacity:0; }

.cc-faq-item__a{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--dur-med) var(--ease-in-out);
}

.cc-faq-item__a-inner{
  padding:0 0.2rem 1.5rem;
  color:var(--cc-text-muted);
  font-size:0.95rem;
  max-width:640px;
}

/* ---- CTA banner ---- */

.cc-cta-banner{
  background:var(--cc-charcoal);
  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;
}

.cc-cta-banner::after{
  content:'';
  position:absolute;
  width:380px; height:380px;
  background:var(--cc-gold);
  border-radius:50%;
  filter:blur(80px);
  opacity:0.25;
  right:-100px; top:-120px;
}

.cc-cta-banner__text{ position:relative; z-index:1; max-width:520px; }
.cc-cta-banner h2{ color:var(--cc-cream); margin-bottom:0.6rem; }
.cc-cta-banner p{ color:rgba(250,248,244,0.65); }
.cc-cta-banner__actions{ position:relative; z-index:1; display:flex; gap:0.8rem; flex-wrap:wrap; }

/* ---- Contact section ---- */

.cc-contact__grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:var(--space-2xl);
}
@media (max-width:900px){ .cc-contact__grid{ grid-template-columns:1fr; gap:var(--space-xl); } }

.cc-contact-info{ display:flex; flex-direction:column; gap:1.5rem; }

.cc-contact-item{ display:flex; gap:1rem; align-items:flex-start; }

.cc-contact-item__icon{
  width:46px; height:46px;
  border-radius:50%;
  background:var(--cc-charcoal);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.cc-contact-item__icon svg{ width:20px; height:20px; stroke:var(--cc-gold-bright); }

.cc-contact-item h3{ font-size:0.98rem; margin-bottom:0.2rem; }
.cc-contact-item p, .cc-contact-item a{ color:var(--cc-text-muted); font-size:0.93rem; }

.cc-form-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:clamp(1.6rem, 3vw, 2.5rem);
  box-shadow:var(--shadow-md);
}

.cc-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:560px){ .cc-form-row{ grid-template-columns:1fr; } }

.cc-field{ margin-bottom:1.1rem; }

.cc-field label{
  display:block;
  font-size:0.82rem;
  font-weight:600;
  margin-bottom:0.4rem;
  color:var(--cc-charcoal);
}

.cc-field input,
.cc-field select,
.cc-field textarea{
  width:100%;
  border:1.5px solid var(--cc-border);
  border-radius:var(--radius-sm);
  padding:0.75rem 0.9rem;
  font-family:var(--font-body);
  font-size:0.95rem;
  background:var(--cc-cream);
  transition:border-color var(--dur-fast);
}

.cc-field input:focus,
.cc-field select:focus,
.cc-field textarea:focus{
  border-color:var(--cc-gold);
  outline:none;
}

.cc-field textarea{ resize:vertical; min-height:110px; }

.cc-form-note{
  font-size:0.78rem;
  color:var(--cc-slate-light);
  margin-top:0.8rem;
  display:flex;
  align-items:center;
  gap:0.4rem;
}
.cc-form-note svg{ width:14px; height:14px; }