html { overflow-x:hidden !important; }

/* =====================
   COLLECTIVE MEDIA - GLOBAL STYLES
   ===================== */

* { box-sizing:border-box; }

/* BUTTONS */
.cm-btn-primary {
  display:block;
  font-size:15px;
  font-weight:600;
  color:#fff;
  text-decoration:none;
  border:1.5px solid rgba(255,255,255,0.8);
  border-radius:50px;
  padding:14px 32px;
  margin:0 auto 12px;
  text-align:center;
  transition:all 0.25s ease;
  background:transparent;
}
.cm-btn-primary:hover { background:#e87820; border-color:#e87820; transform:scale(1.04); }

.cm-btn-secondary {
  display:block;
  font-size:15px;
  font-weight:600;
  color:#fff;
  text-decoration:none;
  border:1.5px solid rgba(255,255,255,0.8);
  border-radius:50px;
  padding:14px 32px;
  margin:0 auto;
  text-align:center;
  transition:all 0.25s ease;
  background:transparent;
}
.cm-btn-secondary:hover { background:#e87820; border-color:#e87820; transform:scale(1.04); }

.cm-services-cta {
  display:inline-block;
  font-size:15px;
  font-weight:600;
  color:#1a1a1a;
  text-decoration:none;
  background:#fff;
  border-radius:50px;
  padding:13px 36px;
  border:2px solid #fff;
  transition:all 0.25s ease;
}
.cm-services-cta:hover { background:#e87820; color:#fff; border-color:#e87820; transform:scale(1.04); }

.cm-cta-orange {
  display:inline-block;
  font-size:15px;
  font-weight:600;
  color:#fff;
  text-decoration:none;
  background:#e87820;
  border:2px solid #e87820;
  border-radius:50px;
  padding:16px 44px;
  transition:all 0.25s ease;
}
.cm-cta-orange:hover { background:#fff; color:#e87820; transform:scale(1.04); }

/* NAV */
.cm-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 48px;
  border-bottom:1px solid #e8e8e8;
  background:#fff;
  position:sticky;
  top:0;
  z-index:100;
}
.cm-nav-links { display:flex; align-items:center; gap:36px; }
.cm-nav-links a {
  font-size:14px;
  font-weight:500;
  color:#1a1a1a;
  text-decoration:none;
  white-space:nowrap;
  transition:opacity 0.2s;
  border-bottom:1px solid #1a1a1a;
  padding-bottom:1px;
}
.cm-nav-links a:hover { opacity:0.6; }

.cm-nav-contact {
  font-size:14px !important;
  font-weight:500 !important;
  color:#1a1a1a !important;
  text-decoration:none !important;
  border:1.5px solid #1a1a1a !important;
  border-radius:50px !important;
  padding:9px 22px !important;
  white-space:nowrap !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  transition:all 0.25s ease !important;
  border-bottom:1.5px solid #1a1a1a !important;
}
.cm-nav-contact:hover {
  background:#e87820 !important;
  color:#fff !important;
  border-color:#e87820 !important;
  opacity:1 !important;
}

.cm-hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  background:none;
  border:none;
  padding:4px;
}
.cm-hamburger span { display:block; width:24px; height:2px; background:#1a1a1a; }

.cm-hamburger:focus,
.cm-hamburger:active,
.cm-hamburger:focus-visible {
  outline:none !important;
  background:transparent !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
button.cm-hamburger {
  -webkit-tap-highlight-color:transparent !important;
  tap-highlight-color:transparent !important;
  outline:none !important;
  background:transparent !important;
}

.cm-mobile-menu {
  display:none;
  flex-direction:column;
  background:#fff;
  border-bottom:1px solid #e8e8e8;
  padding:0 24px;
  position:relative;
  z-index:99;
}
.cm-mobile-menu.open { display:flex; }
.cm-mobile-menu a {
  font-size:16px;
  font-weight:500;
  color:#1a1a1a;
  text-decoration:none;
  padding:16px 0;
  border-bottom:1px solid #f0f0f0;
}
.cm-mobile-menu a:last-child { border-bottom:none; color:#e87820; font-weight:600; padding-bottom:20px; }

/* HERO */
.cm-hero {
  position:relative;
  min-height:600px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,#1a3a5c 0%,#0d1f3c 25%,#1a1a2e 50%,#3d1c00 75%,#c44b00 100%);
}
.cm-hero-inner {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:90px 48px;
  gap:60px;
}
.cm-hero-headline {
  font-family:georgia,serif;
  font-weight:900;
  font-size:clamp(40px,6vw,88px);
  line-height:1.0;
  color:#fff;
  max-width:500px;
  flex-shrink:0;
  margin:0;
  text-shadow:0 2px 20px rgba(0,0,0,0.3);
}
.cm-hero-box {
  max-width:420px;
  background:rgba(0,0,0,0.45);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-radius:20px;
  padding:36px;
  border:1px solid rgba(255,255,255,0.15);
  width:100%;
  flex-shrink:0;
}
.cm-hero-flex {
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  gap:60px;
  flex-wrap:wrap;
}

/* SERVICES */
.cm-services-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  max-width:1100px;
  margin:0 auto 48px;
}
.cm-service-card {
  background:#e87820;
  border-radius:18px;
  padding:32px 26px;
  text-align:center;
  transition:transform 0.25s ease, background 0.25s ease;
  border:2px solid #e87820;
}
.cm-service-card h3 { font-weight:600; font-size:15px; color:#fff; margin-bottom:12px; line-height:1.3; transition:color 0.25s ease; }
.cm-service-card p { font-size:13px; color:rgba(255,255,255,0.85); line-height:1.65; margin:0; transition:color 0.25s ease; }
.cm-service-card strong { color:#fff; transition:color 0.25s ease; }

/* LOGO CAROUSEL */
@keyframes cm-scroll {
  0% { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}
.cm-carousel-track { display:flex; width:max-content; animation:cm-scroll 35s linear infinite; }
.cm-logo-item { display:flex; align-items:center; justify-content:center; padding:20px 44px; min-height:90px; min-width:160px; }
.cm-logo-item img { max-height:60px; max-width:160px; width:auto; object-fit:contain; filter:grayscale(100%); opacity:0.7; transition:filter 0.3s,opacity 0.3s; mix-blend-mode:multiply; }
.cm-logo-item:hover img { filter:grayscale(0%); opacity:1; }

/* FLUENT FORMS */
.cm-ff-wrap .ff-el-input--label label {
  color:rgba(255,255,255,0.7) !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:0.12em !important;
  text-transform:uppercase !important;
  font-family:helvetica neue,helvetica,arial,sans-serif !important;
}
.cm-ff-wrap .ff-el-form-control {
  background:rgba(255,255,255,0.12) !important;
  border:1.5px solid rgba(255,255,255,0.25) !important;
  border-radius:8px !important;
  color:#fff !important;
  font-size:15px !important;
  padding:14px 16px !important;
}
.cm-ff-wrap .ff-el-form-control:focus { border-color:rgba(255,255,255,0.6) !important; outline:none !important; }
.cm-ff-wrap .ff-el-form-control::placeholder { color:rgba(255,255,255,0.4) !important; }
.cm-ff-wrap .ff_submit_btn_container .ff-btn {
  background:#e87820 !important;
  border:2px solid #e87820 !important;
  border-radius:50px !important;
  color:#fff !important;
  font-size:15px !important;
  font-weight:600 !important;
  padding:16px 52px !important;
  width:100% !important;
  transition:all 0.25s ease !important;
}
.cm-ff-wrap .ff_submit_btn_container .ff-btn:hover { background:#fff !important; color:#e87820 !important; border-color:#fff !important; }
.cm-ff-wrap select.ff-el-form-control option { background:#111; color:#fff; }
.cm-ff-wrap .ff-el-group { margin-bottom:20px !important; }
.cm-ff-wrap .ff-message-success {
  color:#fff !important;
  background:rgba(232,120,32,0.15) !important;
  border:1px solid #e87820 !important;
  border-radius:12px !important;
  padding:20px !important;
}
.ff-btn-md, .ff-btn, .ff_submit_btn_container button, .ff_submit_btn_container .ff-btn {
  background:#e87820 !important;
  background-color:#e87820 !important;
  border-color:#e87820 !important;
  color:#fff !important;
  border-radius:50px !important;
  font-size:15px !important;
  font-weight:600 !important;
  padding:16px 52px !important;
  width:100% !important;
}
.ff-btn-md:hover, .ff-btn:hover, .ff_submit_btn_container button:hover, .ff_submit_btn_container .ff-btn:hover {
  background:#fff !important;
  background-color:#fff !important;
  color:#e87820 !important;
  border-color:#fff !important;
}

/* SOCIAL ICONS */
.cm-social {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1.5px solid #ddd;
  border-radius:50%;
  color:#1a1a1a;
  text-decoration:none;
  transition:all 0.2s;
}
.cm-social:hover { background:#e87820; color:#fff; border-color:#e87820; }

/* SECTOR CARDS */
.cs-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  max-width:1100px;
  margin:0 auto;
}
.cs-card { position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/3; }
.cs-card img { width:100%; height:100%; object-fit:cover; display:block; }
.cs-card-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,0.85) 0%,rgba(0,0,0,0.2) 60%,transparent 100%);
  z-index:1;
  transition:background 0.3s ease;
}
.cs-card:hover .cs-card-overlay { background:rgba(232,120,32,0.88); }
.cs-card-text { position:absolute; bottom:0; left:0; right:0; z-index:2; padding:24px; text-align:center; }
.cs-card-text span { font-size:10px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.65); display:block; margin-bottom:6px; }
.cs-card-text h3 { font-family:georgia,serif; font-weight:700; font-size:20px; color:#fff; margin:0 0 6px; line-height:1.2; }
.cs-card-text p { font-size:12px; color:rgba(255,255,255,0.7); margin:0; letter-spacing:0.06em; text-transform:uppercase; font-weight:600; }

/* BELIEF CARDS — desktop hover */
.cm-belief-card {
  background:#e87820;
  border-radius:18px;
  padding:36px 32px;
  border:2px solid #e87820;
  transition:transform 0.25s ease, background 0.25s ease;
}
.cm-belief-card h3 { font-family:georgia,serif; font-size:18px; font-weight:700; color:#fff; margin-bottom:12px; line-height:1.3; transition:color 0.25s ease; }
.cm-belief-card p { font-size:14px; color:rgba(255,255,255,0.85); line-height:1.7; margin:0; transition:color 0.25s ease; }

/* TEAM CARDS */
.cm-team-card {
  background:#fff;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,0.07);
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.cm-team-card:hover { transform:translateY(-6px); box-shadow:0 12px 40px rgba(0,0,0,0.12); }

/* FOOTER */
.cm-footer-inner {
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:24px;
}

/* FAQ */
.cm-faq-section {
  background:#fff;
  padding:90px 48px;
  border-top:1px solid #f0f0f0;
  overflow:hidden;
  width:100%;
}

/* ELEMENTOR RESET */
.elementor-widget-wrap,
.elementor-widget-container {
  padding:0 !important;
  margin:0 !important;
}
.elementor-element.elementor-widget.elementor-widget-html {
  padding:0 !important;
  margin:0 !important;
}
.elementor-section:empty,
.elementor-container:empty,
.e-con:empty {
  display:none !important;
  padding:0 !important;
  margin:0 !important;
  height:0 !important;
}
body { background:#fff !important; }
.elementor-section-wrap,
.elementor-inner,
.elementor-container,
.elementor-row,
.e-con,
.e-con-inner {
  background:#fff !important;
}

/* Remove white side borders on large displays */
.elementor-section,
.e-con,
.e-con-inner {
  max-width:100% !important;
}

/* BODY COPY */
body, body p, .elementor-widget-html p {
  font-size:16px !important;
  line-height:1.75 !important;
}

/* FAQ TYPOGRAPHY */
.elementor-widget-html button > span:first-child {
  font-size:17px !important;
  font-weight:600 !important;
  line-height:1.4 !important;
  color:#1a1a1a !important;
}
.elementor-widget-html div[style*="padding-top"] > p {
  font-size:15px !important;
  line-height:1.8 !important;
  color:#555 !important;
}

/* FLOATING MENU BUTTON */
#cm-float-btn {
  box-shadow:0 0 0 3px #fff, 0 4px 20px rgba(232,120,32,0.45) !important;
}

/* =====================
   DESKTOP NAV — fixed, hides on scroll down
   ===================== */
@media (min-width:1025px) {
  .cm-nav {
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    max-width:100% !important;
    border-radius:0 !important;
    border:none !important;
    border-bottom:1px solid #e8e8e8 !important;
    box-shadow:0 2px 20px rgba(0,0,0,0.06) !important;
    background:rgba(255,255,255,0.97) !important;
    backdrop-filter:blur(12px) !important;
    -webkit-backdrop-filter:blur(12px) !important;
    transform:translateY(0) !important;
    transition:transform 0.35s ease, box-shadow 0.35s ease !important;
    z-index:999 !important;
  }
  .cm-nav.nav-hidden {
    transform:translateY(-100%) !important;
    box-shadow:none !important;
  }
  .elementor-section:first-child,
  .e-con:first-child {
    padding-top:92px !important;
  }
  .cm-nav {
    padding-left:80px !important;
    padding-right:80px !important;
  }

  /* Desktop belief card hover */
  .cm-belief-card:hover {
    transform:translateY(-4px) scale(1.02);
    background:#fff;
  }
  .cm-belief-card:hover h3 { color:#e87820; }
  .cm-belief-card:hover p { color:#555; }

  /* Desktop service card hover */
  .cm-service-card:hover {
    transform:translateY(-4px) scale(1.02);
    box-shadow:0 12px 40px rgba(0,0,0,0.1);
    border-color:#e87820;
    background:#fff;
  }
  .cm-service-card:hover h3 { color:#e87820; }
  .cm-service-card:hover p { color:#1a1a1a; }
  .cm-service-card:hover strong { color:#e87820; }
}

/* =====================
   TABLET + MOBILE — floating bottom right button
   ===================== */
@media (max-width:1024px) {
  .cm-nav { display:none !important; }
  .cm-mobile-menu {
    position:fixed !important;
    bottom:80px !important;
    right:16px !important;
    top:auto !important;
    left:auto !important;
    width:200px !important;
    border-radius:16px !important;
    border:1px solid rgba(0,0,0,0.08) !important;
    box-shadow:0 8px 32px rgba(0,0,0,0.15) !important;
    background:rgba(255,255,255,0.98) !important;
    backdrop-filter:blur(16px) !important;
    -webkit-backdrop-filter:blur(16px) !important;
    padding:4px 0 !important;
    z-index:998 !important;
  }
  .cm-mobile-menu a {
    font-size:14px !important;
    padding:12px 20px !important;
    border-bottom:1px solid #f0f0f0 !important;
  }
  .cm-mobile-menu a:last-child { border-bottom:none !important; }
  .elementor-section:first-child,
  .e-con:first-child {
    padding-top:0 !important;
  }

  /* Mobile belief cards — scroll triggered via JS */
  .cm-belief-card {
    transition:background 0.5s ease, border-color 0.5s ease !important;
  }
  .cm-belief-card h3 { transition:color 0.5s ease !important; }
  .cm-belief-card p { transition:color 0.5s ease !important; }

  /* Active — white */
  .cm-belief-card.is-active {
    background:#fff !important;
    border-color:#e87820 !important;
  }
  .cm-belief-card.is-active h3 { color:#e87820 !important; }
  .cm-belief-card.is-active p { color:#555 !important; }

  /* Inactive — orange */
  .cm-belief-card:not(.is-active) {
    background:#e87820 !important;
    border-color:#e87820 !important;
  }
  .cm-belief-card:not(.is-active) h3 { color:#fff !important; }
  .cm-belief-card:not(.is-active) p { color:rgba(255,255,255,0.85) !important; }

  /* Mobile service cards */
  .cm-service-card {
    transition:transform 0.5s ease, box-shadow 0.5s ease, border-color 0.5s ease !important;
  }
  .cm-service-card.is-active {
    transform:translateY(-4px) scale(1.02) !important;
    box-shadow:0 12px 40px rgba(0,0,0,0.1) !important;
    border-color:#e87820 !important;
  }

  /* Mobile cap cards */
  .cm-cap-card {
    transition:transform 0.5s ease, box-shadow 0.5s ease, border-color 0.5s ease !important;
  }
  .cm-cap-card.is-active {
    transform:translateY(-4px) scale(1.02) !important;
    box-shadow:0 12px 40px rgba(0,0,0,0.1) !important;
    border-color:#e87820 !important;
  }
}

/* =====================
   TABLET RESPONSIVE
   ===================== */
@media (max-width:1024px) {
  .cm-hero-inner { padding:70px 32px; gap:40px; }
  .cm-services-grid { grid-template-columns:repeat(2,1fr); }
  .cs-grid { grid-template-columns:repeat(2,1fr); }
  .cm-model-grid { grid-template-columns:repeat(2,1fr) !important; }
  .cm-hero-flex {
    flex-direction:column !important;
    padding:60px 32px !important;
    gap:40px !important;
  }
  .cm-hero-flex h1 {
    font-size:clamp(48px,6vw,72px) !important;
    max-width:100% !important;
    width:100% !important;
    flex-shrink:1 !important;
  }
  .cm-hero-flex > div {
    max-width:100% !important;
    width:100% !important;
    flex-shrink:1 !important;
  }
}

/* =====================
   MOBILE RESPONSIVE
   ===================== */
@media (max-width:768px) {
  .cm-nav { padding:14px 20px; }
  .cm-nav-links { display:none !important; }
  .cm-hamburger { display:flex; }
  .cm-hero { min-height:auto; }
  .cm-hero-inner { flex-direction:column; align-items:center; justify-content:center; padding:48px 20px 56px; gap:32px; text-align:center; }
  .cm-hero-headline { font-size:clamp(36px,10vw,52px); max-width:100%; }
  .cm-hero-box { max-width:100%; padding:28px 24px; }
  .cm-intro-section { padding:60px 20px !important; }
  .cm-services-grid { grid-template-columns:1fr; gap:16px; }
  .cm-services-section { padding:60px 20px !important; }
  .cm-experience-section { padding:60px 20px !important; }
  .cm-logo-item { padding:16px 28px; min-width:120px; }
  .cm-logo-item img { max-height:44px; max-width:120px; }
  .cm-form-section { padding:60px 20px !important; }
  .cm-faq-section { padding:60px 20px !important; }
  .cm-footer-wrap { padding:32px 20px !important; }
  .cm-footer-inner { flex-direction:column; align-items:center; text-align:center; gap:20px; }
  .cs-grid { grid-template-columns:1fr; gap:16px; }
  .cm-belief-grid { grid-template-columns:1fr !important; }
  .cm-process-grid { grid-template-columns:repeat(2,1fr) !important; }
  .cm-team-grid { grid-template-columns:1fr !important; }
  .cm-model-grid { grid-template-columns:1fr !important; }
  .cm-hero-flex {
    flex-direction:column !important;
    padding:48px 20px 56px !important;
    gap:32px !important;
  }
  .cm-hero-flex h1 {
    font-size:clamp(42px,9vw,58px) !important;
    max-width:100% !important;
    width:100% !important;
    word-wrap:break-word !important;
    overflow-wrap:break-word !important;
    white-space:normal !important;
    text-align:center !important;
    flex-shrink:1 !important;
    line-height:1.05 !important;
  }
  .cm-hero-flex > div { max-width:100% !important; width:100% !important; }
  .cs-card { aspect-ratio:16/9 !important; min-height:220px !important; }
  .cs-card-text h3 { font-size:18px !important; }
}

/* =====================
   SMALL MOBILE
   ===================== */
@media (max-width:480px) {
  .cm-hero-headline { font-size:36px; }
  .cm-services-cta { width:100%; text-align:center; display:block; }
  .cm-logo-item { padding:12px 20px; min-width:100px; }
  .cm-process-grid { grid-template-columns:1fr !important; }
  .cm-hero-flex h1 { font-size:clamp(38px,9vw,52px) !important; line-height:1.05 !important; }
  .cs-card { aspect-ratio:4/3 !important; min-height:260px !important; }
}
/* Prevent card scale animation clipping text */
.cm-service-card,
.cm-belief-card,
.cm-cap-card {
  overflow: visible !important;
}