/* Interactive service cards */
.bureau__services .wpb_column {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  border-radius: 12px;
  padding: 20px 15px !important;
}
.bureau__services .wpb_column:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.9);
}

/* Icon container styling */
.bureau__services .wpb_single_image {
  text-align: center;
  margin-bottom: 10px !important;
}
.bureau__services .wpb_single_image .vc_figure {
  display: inline-block;
  transition: transform 0.4s ease;
}
.bureau__services .wpb_single_image img {
  width: 100px;
  height: 100px;
  transition: transform 0.4s ease, filter 0.3s ease;
  animation: float-subtle 3s ease-in-out infinite;
}
.bureau__services .vc_col-sm-4:nth-child(2) .wpb_single_image img {
  animation-delay: 0.5s;
}
.bureau__services .wpb_column:hover .wpb_single_image img {
  transform: scale(1.15);
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.2));
}

/* Pulse ring on hover */
@keyframes pulse-ring {
  0% { transform: scale(1); opacity: 0.5; }
  100% { transform: scale(1.5); opacity: 0; }
}
.bureau__services .wpb_single_image .vc_figure::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 80px;
  height: 80px;
  margin: -40px 0 0 -40px;
  border-radius: 50%;
  border: 2px solid #333;
  opacity: 0;
  pointer-events: none;
}
.bureau__services .wpb_single_image .vc_figure {
  position: relative;
}
.bureau__services .wpb_column:hover .wpb_single_image .vc_figure::after {
  animation: pulse-ring 1.2s ease-out infinite;
  opacity: 1;
}

/* Title color on hover */
.bureau__services .widgettitle {
  transition: color 0.3s ease, letter-spacing 0.3s ease;
  font-size: 15px;
  letter-spacing: 1.5px;
}
.bureau__services .wpb_column:hover .widgettitle {
  color: #333;
  letter-spacing: 2px;
}

/* Text fade on hover */
.bureau__services .textwidget {
  transition: opacity 0.3s ease;
}
.bureau__services .wpb_column:hover .textwidget {
  opacity: 0.85;
}

/* Subtle float animation */
@keyframes float-subtle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

/* ============================================
   BRILJANT / WAAROM SECTION
   Keep the original stock photo visible with dark overlay
   ============================================ */
.section.briljant .bureau__image-content {
  background: rgba(0,0,0,0.82) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 12px;
  padding: 50px 45px !important;
  border: 1px solid rgba(255,255,255,0.06);
  max-width: 55%;
  position: relative;
  z-index: 2;
}
.section.briljant .bureau__image-content .widgettitle {
  font-size: 32px !important;
  letter-spacing: 0 !important;
  color: white !important;
  margin-bottom: 20px;
  text-transform: none !important;
}
.section.briljant .bureau__image-content .textwidget {
  color: rgba(255,255,255,0.85);
  font-size: 15px;
  line-height: 1.8;
}
.section.briljant .bureau__image-content .textwidget strong {
  color: #fff;
  font-weight: 700;
}

/* Dark overlay on the photo background */
.vc_row.section.dark.briljant.vc_custom_1608044686816.vc_row-has-fill {
  position: relative;
}
.vc_row.section.dark.briljant.vc_custom_1608044686816.vc_row-has-fill > .wpb_column {
  position: relative;
  z-index: 2;
}
.vc_row.section.dark.briljant.vc_custom_1608044686816.vc_row-has-fill::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.55);
  z-index: 1;
  pointer-events: none;
}

@media (max-width: 768px) {
  .section.briljant .bureau__image-content {
    max-width: 100% !important;
    padding: 30px 25px !important;
  }
}

/* ============================================
   FOOTER - zwart/wit/grijs thema
   ============================================ */
.footer.section.dark {
  background: #111 !important;
  padding: 60px 25px 40px;
  border-top: 1px solid rgba(255,255,255,0.08);
  position: relative;
}

/* Tagline left column */
.footer .left-footer-column p {
  font-size: 32px !important;
  line-height: 1.3 !important;
  color: #fff;
  font-weight: 700;
  margin-top: 0;
}
.footer .left-footer-column .footer-tagline-sub {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,0.45);
  margin-top: 10px;
  font-weight: 400;
}

/* Column titles */
.footer h3.widget-title {
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 20px;
  opacity: 0.5;
}

/* Sitemap links */
.footer .middle-footer-column li {
  margin-bottom: 8px;
}
.footer .middle-footer-column li a {
  color: rgba(255,255,255,0.6) !important;
  font-size: 14px;
  text-decoration: none;
  transition: color 0.2s ease, padding-left 0.2s ease;
}
.footer .middle-footer-column li a:hover {
  color: #fff !important;
  padding-left: 5px;
}

/* Address column */
.footer .right-footer-column ul li {
  color: rgba(255,255,255,0.6);
  font-size: 14px;
  margin-bottom: 6px;
}
.footer .right-footer-column ul li a {
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  transition: color 0.2s ease;
}
.footer .right-footer-column ul li a:hover {
  color: #fff;
}

@media (max-width: 768px) {
  .footer .left-footer-column p {
    font-size: 24px !important;
  }
  .footer .left-footer-column,
  .footer .middle-footer-column {
    margin-bottom: 35px;
  }
}

/* ============================================
   HAMBURGER MENU - professional, Akkurat font
   ============================================ */
.hamburger__container .hamburger__list li a {
  font-family: "Akkurat", Tahoma, sans-serif !important;
  font-size: 18px !important;
  line-height: 1.6 !important;
  color: #999 !important;
  text-transform: none;
  letter-spacing: 0.5px;
  font-weight: normal;
  transition: color 0.2s ease;
  display: inline-block;
  padding: 6px 0;
}
.hamburger__container .hamburger__list .current-menu-item a {
  color: #000 !important;
  font-weight: bold;
}
.hamburger__container .hamburger__list .menu-item a:hover {
  color: #000 !important;
}
.hamburger__container .hamburger__list li {
  margin-bottom: 2px;
}
.hamburger__container .hamburger__info h3 {
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #999;
  margin-bottom: 4px;
}
.hamburger__container .hamburger__info p,
.hamburger__container .hamburger__info a {
  font-size: 14px;
  color: #333;
}
@media (min-width: 596px) {
  .hamburger__container .hamburger__list li a {
    font-size: 22px !important;
    line-height: 1.6 !important;
  }
  .hamburger__container .hamburger__wrapper {
    padding: 100px 80px !important;
  }
}
@media (min-width: 768px) {
  .hamburger__container .hamburger__list li a {
    font-size: 26px !important;
  }
  .hamburger__container .hamburger__wrapper {
    padding: 120px 100px !important;
  }
}
@media (min-width: 1200px) {
  .hamburger__container .hamburger__list li a {
    font-size: 30px !important;
  }
}


/* ============================================
   SERVICE PAGES - conversion elements
   ============================================ */

/* CTA Buttons */
.cta-btn {
  display: inline-block;
  padding: 16px 40px;
  font-family: "Akkurat", Tahoma, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: all 0.3s ease;
  margin-top: 25px;
}
.section.dark .cta-btn,
.category__intro.dark .cta-btn {
  background: #fff;
  color: #000 !important;
}
.section.dark .cta-btn:hover,
.category__intro.dark .cta-btn:hover {
  background: #e0e0e0;
  color: #000 !important;
  transform: translateY(-2px);
}
.section.light .cta-btn,
.section.services.light .cta-btn,
.section.services .cta-btn {
  background: #000;
  color: #fff !important;
}
.section.light .cta-btn:hover,
.section.services.light .cta-btn:hover,
.section.services .cta-btn:hover {
  background: #333;
  color: #fff !important;
  transform: translateY(-2px);
}

/* Hero intro - larger text */
.category__intro h1 {
  font-size: 42px;
  line-height: 1.2;
  margin-bottom: 15px;
}
.category__intro .intro-sub {
  font-size: 18px;
  line-height: 1.7;
  opacity: 0.8;
  max-width: 650px;
}
.category__intro.dark .intro-sub {
  color: rgba(255,255,255,0.7);
}

/* Pain points list */
.pain-points {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.pain-points li {
  padding: 8px 0 8px 30px;
  position: relative;
  font-size: 16px;
  line-height: 1.6;
}
.pain-points li::before {
  content: "\2715";
  position: absolute;
  left: 0;
  color: #999;
  font-weight: bold;
}

/* Check list (benefits) */
.check-list {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.check-list li {
  padding: 8px 0 8px 30px;
  position: relative;
  font-size: 16px;
  line-height: 1.6;
}
.check-list li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  font-weight: bold;
}
.section.dark .check-list li::before {
  color: #fff;
}
.section.light .check-list li::before,
.section.services .check-list li::before {
  color: #000;
}

/* Process steps */
.process-step {
  text-align: center;
  padding: 15px;
}
.process-step .step-number {
  display: inline-block;
  width: 50px;
  height: 50px;
  line-height: 50px;
  border-radius: 50%;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 15px;
}
.section.light .step-number,
.section.services .step-number {
  background: #000;
  color: #fff;
}
.section.dark .step-number {
  background: #fff;
  color: #000;
}
.process-step h4 {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.process-step p {
  font-size: 14px;
  opacity: 0.7;
  line-height: 1.6;
}

/* Service columns within pages */
.service-col h3 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 15px;
  letter-spacing: 0.3px;
}
.service-col p {
  font-size: 15px;
  line-height: 1.75;
  opacity: 0.75;
  margin-bottom: 20px;
}

/* Stats / numbers */
.stat-block {
  text-align: center;
  padding: 20px;
}
.stat-block .stat-number {
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 8px;
}
.stat-block .stat-label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 2px;
  opacity: 0.6;
}

/* Final CTA section */
.section.cta-final {
  text-align: center;
  padding: 80px 20px;
}
.section.cta-final h2 {
  font-size: 36px;
  margin-bottom: 15px;
}
.section.cta-final .cta-subtitle {
  font-size: 16px;
  opacity: 0.7;
  margin-bottom: 30px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}
.section.cta-final .cta-contact {
  margin-top: 20px;
  font-size: 14px;
  opacity: 0.5;
}
.section.cta-final .cta-contact a {
  color: inherit;
  text-decoration: underline;
}

@media (max-width: 768px) {
  .category__intro h1 {
    font-size: 30px;
  }
  .stat-block .stat-number {
    font-size: 36px;
  }
  .section.cta-final h2 {
    font-size: 28px;
  }
}

/* ============================================
   HERO BACKGROUND IMAGE OVERLAY
   ============================================ */
.category__intro.dark {
  position: relative;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
.category__intro.dark::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.72);
  z-index: 1;
  pointer-events: none;
}
.category__intro.dark > .wpb_column,
.category__intro.dark > div > .wpb_column {
  position: relative;
  z-index: 2;
}

/* ============================================
   HOMEPAGE HERO QUOTE
   ============================================ */
.slider__container .hero-quote {
  font-size: 52px;
  font-weight: 700;
  line-height: 1.15;
  color: #fff;
  margin-bottom: 15px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.slider__container .hero-quote-sub {
  font-size: 22px;
  font-weight: 300;
  line-height: 1.6;
  color: rgba(255,255,255,0.75);
  text-shadow: 0 1px 10px rgba(0,0,0,0.3);
  max-width: 500px;
}
@media (max-width: 768px) {
  .slider__container .hero-quote {
    font-size: 32px;
  }
  .slider__container .hero-quote-sub {
    font-size: 17px;
  }
}
@media (min-width: 1200px) {
  .slider__container .hero-quote {
    font-size: 62px;
  }
  .slider__container .hero-quote-sub {
    font-size: 24px;
  }
}

/* Override theme hardcoded hero background */
.slider__container > div > div {
  background: none !important;
}

/* ============================================
   SERVICE PAGES - LAYOUT & SPACING FIXES
   ============================================ */

/* Hero section for service pages - proper height and padding */
.vc_row.category__intro.dark {
  padding-top: 140px;
  padding-bottom: 100px;
  min-height: 400px;
}
.vc_row.category__intro.dark .vc_column-inner {
  max-width: 700px;
}

/* Section consistent padding */
/* Section vertical padding only - horizontal handled by WPBakery */
.vc_row.section {
  padding-top: 70px;
  padding-bottom: 70px;
}

/* Remove duplicate padding when two section headings stack */
.vc_row.section + .vc_row.section.dark,
.vc_row.section + .vc_row.section.services {
  /* keep default padding */
}

/* Dark section - ensure all text is white */
.vc_row.section.dark h2,
.vc_row.section.dark h3,
.vc_row.section.dark h4,
.vc_row.section.dark p,
.vc_row.section.dark li {
  color: #fafafa;
}
.vc_row.section.dark a:not(.cta-btn) {
  color: rgba(255,255,255,0.7);
  text-decoration: underline;
  transition: color 0.2s ease;
}
.vc_row.section.dark a:not(.cta-btn):hover {
  color: #fff;
}

/* Light section text */
.vc_row.section.light h2,
.vc_row.section.services.light h2,
.vc_row.section.services h2 {
  color: #1f1f1f;
}
.vc_row.section.light p,
.vc_row.section.services.light p,
.vc_row.section.services p {
  color: #333;
}
.vc_row.section.services.light a:not(.cta-btn),
.vc_row.section.services a:not(.cta-btn) {
  color: #000;
}

/* Category intro text - white on dark */
.vc_row.category__intro.dark h1 {
  color: #fff;
  font-size: 42px;
  line-height: 1.2;
  margin-bottom: 15px;
}
.vc_row.category__intro.dark p {
  color: rgba(255,255,255,0.8);
}

/* CTA final section spacing */
.vc_row.section.dark.cta-final {
  padding-top: 90px;
  padding-bottom: 90px;
}

/* Service columns - better spacing in 2-col and 3-col layouts */
.vc_row.section.dark .vc_col-sm-6 .service-col,
.vc_row.section.dark .vc_col-sm-4 .service-col {
  padding: 10px 0;
}
.vc_row.section.dark .vc_col-sm-6 .service-col h3,
.vc_row.section.dark .vc_col-sm-4 .service-col h3 {
  color: #fff;
  font-size: 20px;
  margin-bottom: 12px;
}

/* Section heading rows (single h2 in a row) */
.vc_row.section .vc_custom_heading {
  margin-bottom: 0;
}

/* When a heading row is followed by a content row, reduce heading row bottom padding */
.vc_row.section.dark + .vc_row.section.dark {
  padding-top: 0;
}

/* ============================================
   CONTACT PAGE
   ============================================ */
.contactrow {
  background: #1f1f1f;
  color: #fafafa;
}
.contactrow .contact__heading {
  padding: 50px 40px 30px;
}
.contactrow .contact__heading .contact__heading-title a {
  color: #fff !important;
  text-decoration: none;
  font-size: 36px;
  transition: opacity 0.2s ease;
}
.contactrow .contact__heading .contact__heading-title a:hover {
  opacity: 0.7;
}
.contactrow .contact__heading-subtitle {
  color: rgba(255,255,255,0.5);
  font-size: 16px;
  font-weight: 400;
}
.contactrow .contact__information {
  padding: 15px 40px 30px;
}
.contactrow .contact__information-title {
  color: rgba(255,255,255,0.4);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 8px;
}
.contactrow .contact__information p,
.contactrow .contact__information a {
  color: rgba(255,255,255,0.7);
  font-size: 15px;
  line-height: 1.7;
  text-decoration: none;
}
.contactrow .contact__information a:hover {
  color: #fff;
}
.contactrow .contact__image {
  max-height: 350px;
  overflow: hidden;
}

/* ============================================
   STAGES PAGE
   ============================================ */
.category__intro.light {
  background: #f5f5f5;
  padding: 140px 40px 80px;
}
.category__intro.light h1 {
  color: #1f1f1f;
  font-size: 42px;
  margin-bottom: 10px;
}
.category__intro.light p {
  color: #333;
  font-size: 17px;
  line-height: 1.6;
}

/* Job cards */
.section__header-container {
  padding: 60px 40px;
  background: #fff;
}
.job__card {
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 35px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.job__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.06);
}
.job__card h2 {
  font-size: 20px;
  margin-bottom: 12px;
}
.job__card p {
  font-size: 14px;
  line-height: 1.6;
  color: #555;
}
.job__card .job__experience {
  font-size: 13px;
  color: #999;
  margin-top: 15px;
}

/* ============================================
   GENERAL TYPOGRAPHY FIXES
   ============================================ */

/* vc_custom_heading in dark sections */
.dark .vc_custom_heading {
  color: #fafafa !important;
}
.light .vc_custom_heading,
.services .vc_custom_heading {
  color: #1f1f1f !important;
}

/* WPBakery wraps <a> in <p> - fix CTA button display */
p > .cta-btn {
  display: inline-block;
}

/* Ensure full-width rows stretch properly */
.vc_row[data-vc-full-width="true"] {
  overflow: visible;
}

/* Header spacer for pages with dark hero */
.header__spacer + main .vc_row.category__intro.dark:first-child,
.header__spacer + .container .vc_row.category__intro.dark {
  margin-top: -20px;
}

/* ============================================
   MOBILE RESPONSIVE - SERVICE PAGES
   ============================================ */
@media (max-width: 768px) {
  .vc_row.category__intro.dark {
    padding-top: 100px;
    padding-bottom: 60px;
    min-height: 300px;
  }
  .vc_row.section {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .vc_row.section.dark.cta-final {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .section.cta-final h2 {
    font-size: 26px;
  }
  .process-step {
    margin-bottom: 25px;
  }
  .contactrow .contact__heading .contact__heading-title a {
    font-size: 24px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .vc_row.category__intro.dark {
    padding: 130px 30px 80px;
  }
}

/* ============================================
   CONTACT PAGE - REDESIGN
   ============================================ */

/* Contact hero */
.vc_row.contact-hero {
  padding-top: 140px;
  padding-bottom: 60px;
  min-height: auto;
  background: #303030 !important;
}
.vc_row.contact-hero h1 {
  text-align: center;
  color: #fff;
}
.vc_row.contact-hero .intro-sub {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

/* Contact info section - white background, dark text */
.contact-info-section {
  padding: 60px 40px !important;
  background: #fff !important;
  border-top: none;
  border-bottom: none;
  color: #1f1f1f;
}
.contact-block {
  text-align: center;
  padding: 20px 10px;
}
.contact-block-label {
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: #999 !important;
  margin-bottom: 12px;
  font-weight: 600;
}
.contact-block-value {
  font-size: 18px;
  line-height: 1.6;
  color: #1f1f1f !important;
}
.contact-block-value a {
  color: #1f1f1f !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}
.contact-block-value a:hover {
  color: #555 !important;
}

/* Map section - no padding, full bleed */
.contact-map-section {
  padding: 0 !important;
}
.contact-map-section .wpb_column {
  padding: 0 !important;
}
.contact-map-section .vc_column-inner {
  padding: 0 !important;
}
.contact-map-section .wpb_wrapper {
  margin: 0 !important;
}
#contact-map {
  display: block;
  width: 100%;
  min-height: 450px;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .vc_row.contact-hero {
    padding-top: 100px;
    padding-bottom: 40px;
  }
  .contact-info-section {
    padding: 40px 20px !important;
  }
  .contact-block {
    margin-bottom: 20px;
  }
  .contact-block-value {
    font-size: 16px;
  }
  #contact-map {
    min-height: 300px;
  }
}

/* ============================================
   PAGE WRAPPER FIXES - dark pages
   Remove white gaps between full-width rows
   ============================================ */

/* Page wrappers - transparent so full-width row backgrounds show through */
.page-id-13 main.container,
.page-id-13 article,
.page-id-15 main.container,
.page-id-15 article,
.page-id-931 main.container,
.page-id-931 article,
.page-id-925 main.container,
.page-id-925 article,
.page-id-232 main.container,
.page-id-232 article,
.page-id-172 main.container,
.page-id-172 article {
  background: transparent;
}

/* vc_clearfix between rows - no visible height */
.vc_row-full-width.vc_clearfix {
  height: 0;
  overflow: hidden;
}

/* ============================================
   INTERACTIVE ELEMENTS - ALL PAGES (except homepage)
   ============================================ */

/* --- GLOBAL LINK HOVER COLOR --- */
.section.dark a:not(.cta-btn):hover,
.cta-final a:not(.cta-btn):hover {
  color: #4dc9f6 !important;
  opacity: 1;
}
.section.light a:not(.cta-btn):hover,
.section.services a:not(.cta-btn):hover {
  color: #0077cc !important;
}
.contact-block-value a:hover {
  color: #0077cc !important;
}

/* --- SERVICE COLUMNS: clean card style --- */
.service-col {
  padding: 45px 40px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  height: 100%;
}
.section.dark .service-col {
  background: rgba(255,255,255,0.03);
}
.section.dark .service-col:hover {
  transform: translateY(-5px);
  border-color: rgba(255,255,255,0.15);
  box-shadow: 0 15px 40px rgba(0,0,0,0.3);
}
.section.light .service-col,
.section.services .service-col {
  background: #f8f8f8;
  border-color: #eee;
}
.section.light .service-col:hover,
.section.services .service-col:hover {
  transform: translateY(-5px);
  border-color: #ddd;
  box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

/* --- PAIN POINTS: subtle hover --- */
.pain-points li {
  transition: opacity 0.2s ease;
  border-radius: 4px;
}
.pain-points li:hover {
  opacity: 0.7;
}

/* --- CHECK LIST: subtle hover --- */
.check-list li {
  transition: opacity 0.2s ease;
  border-radius: 4px;
}
.check-list li:hover {
  opacity: 1 !important;
}
.section.dark .check-list li {
  opacity: 0.8;
}
.section.dark .check-list li:hover {
  opacity: 1;
}

/* --- PROCESS STEPS: subtle hover --- */
.process-step {
  transition: transform 0.3s ease;
  border-radius: 8px;
}
.process-step:hover {
  transform: translateY(-3px);
}
.process-step .step-number {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.process-step:hover .step-number {
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
.process-step h4 {
  transition: letter-spacing 0.3s ease;
}
.process-step:hover h4 {
  letter-spacing: 2px;
}
.process-step p {
  transition: opacity 0.3s ease;
}
.process-step:hover p {
  opacity: 1 !important;
}

/* --- CTA BUTTONS: stronger hover + subtle shadow --- */
.cta-btn {
  position: relative;
  overflow: hidden;
  box-shadow: none;
  transition: all 0.3s ease, box-shadow 0.3s ease;
}
.section.dark .cta-btn:hover,
.category__intro.dark .cta-btn:hover {
  box-shadow: 0 8px 25px rgba(255,255,255,0.15);
  transform: translateY(-3px);
}
.section.light .cta-btn:hover,
.section.services .cta-btn:hover {
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
  transform: translateY(-3px);
}

/* --- CONTACT BLOCKS: lift on hover --- */
.contact-block {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border-radius: 8px;
  padding: 25px 15px;
}
.contact-block:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.08);
}

/* --- vc_custom_heading: underline reveal on hover --- */
.vc_custom_heading {
  display: inline-block;
  position: relative;
}
.vc_custom_heading::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: currentColor;
  transition: width 0.4s ease;
}
.vc_custom_heading:hover::after {
  width: 60px;
}

/* --- SCROLL-REVEAL ANIMATIONS --- */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Animate sections into view */
.vc_row.section .wpb_text_column,
.vc_row.section .vc_custom_heading,
.vc_row.category__intro .wpb_text_column {
  animation: fadeInUp 0.6s ease both;
}
.vc_row.section .vc_col-sm-6:nth-child(2) .wpb_text_column,
.vc_row.section .vc_col-sm-4:nth-child(2) .wpb_text_column,
.vc_row.section .vc_col-sm-3:nth-child(2) .wpb_text_column {
  animation-delay: 0.1s;
}
.vc_row.section .vc_col-sm-4:nth-child(3) .wpb_text_column,
.vc_row.section .vc_col-sm-3:nth-child(3) .wpb_text_column {
  animation-delay: 0.2s;
}
.vc_row.section .vc_col-sm-3:nth-child(4) .wpb_text_column {
  animation-delay: 0.3s;
}

/* --- JOB CARDS (Stages page) --- */
.job__card {
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  border: 1px solid #eee;
}
.job__card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
  border-color: #ccc;
}
.job__card.open {
  border-color: #27ae60;
}
.job__card.open:hover {
  border-color: #27ae60;
  box-shadow: 0 12px 30px rgba(39,174,96,0.1);
}

/* --- REDUCE MOTION for accessibility --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}


/* ============================================
   FIX: Service card alignment + equal height
   ============================================ */

/* Restore proper card padding in dark sections (was overridden to 10px 0) */
.vc_row.section.dark .vc_col-sm-6 .service-col,
.vc_row.section.dark .vc_col-sm-4 .service-col {
  padding: 45px 40px;
}

/* Equal height columns: flex on row, propagate stretch down the chain */
.vc_row.section .vc_col-sm-6:has(.service-col) {
  display: flex;
}
.vc_row.section .vc_col-sm-6:has(.service-col) > .vc_column-inner {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
}
.vc_row.section .vc_col-sm-6:has(.service-col) > .vc_column-inner > .wpb_wrapper {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.vc_row.section .vc_col-sm-6:has(.service-col) .wpb_text_column {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.vc_row.section .vc_col-sm-6:has(.service-col) .wpb_text_column > .wpb_wrapper {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.vc_row.section .vc_col-sm-6:has(.service-col) .service-col {
  flex: 1;
}

@media (max-width: 768px) {
  .vc_row.section.dark .vc_col-sm-6 .service-col,
  .vc_row.section.dark .vc_col-sm-4 .service-col {
    padding: 30px 25px;
  }
}
