/* Shared case-study layout — mirrors Elementor section/column/widget semantics:
   boxed sections cap at 1140px, columns carry 10px gutters, widgets space 20px,
   columns stack below 768px. */

.cs-section { position: relative; padding: 10px 0; } /* Elementor default section padding */
.cs-boxed {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}
.cs-cols { display: flex; width: 100%; }
.cs-col { position: relative; display: flex; flex-direction: column; padding: 10px; min-width: 0; }
.cs-col > * + * { margin-top: 0; }
.cs-widget { margin-bottom: 20px; }
.cs-widget:last-child { margin-bottom: 0; }

.cs-col--10 { width: 10%; }
.cs-col--20 { width: 20%; }
.cs-col--25 { width: 25%; }
.cs-col--33 { width: 33.333%; }
.cs-col--40 { width: 40%; }
.cs-col--50 { width: 50%; }
.cs-col--60 { width: 60%; }
.cs-col--66 { width: 66.666%; }
.cs-col--75 { width: 75%; }
.cs-col--100 { width: 100%; }

@media (max-width: 767px) {
  .cs-cols { flex-wrap: wrap; }
  .cs-cols > .cs-col { width: 100%; }
}

/* ---- common widgets -------------------------------------------------- */

/* Elementor counter: number on top (column-reverse), shrink-wrapped, left-set */
.cs-counter {
  align-self: flex-start;
  display: flex;
  flex-direction: column-reverse;
  text-align: left;
}
.cs-counter-number-wrap { text-align: center; }
.cs-counter-title {
  color: var(--teal);
  font-family: Lato, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3em;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.cs-counter-number {
  color: var(--teal);
  font-family: Lato, sans-serif;
  font-size: 72px;
  font-weight: 300;
  line-height: 1.2;
}

/* Elementor icon list */
.cs-list { list-style: none; margin: 0; padding: 0; }
.cs-list li { display: flex; align-items: baseline; padding-bottom: 2.5px; margin-top: 2.5px; }
.cs-list li:first-child { margin-top: 0; }
.cs-list .li-icon { flex: none; width: 14px; margin-right: 8px; color: var(--teal); }
.cs-list .li-icon svg { width: 14px; height: 14px; fill: currentColor; display: inline-block; vertical-align: -1px; }
.cs-list .li-text { color: rgba(39, 43, 43, 0.9); font-family: Lato, sans-serif; }

/* small uppercase section label heading, used across case studies */
.cs-label {
  margin: 0 0 20px;
  font-family: Lato, sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  line-height: 1;
  color: #272b2b;
}

/* body text block */
.cs-text {
  font-family: Lato, sans-serif;
  font-size: 16px;
  line-height: 1.6em;
  color: rgba(39, 43, 43, 0.9);
}
.cs-text p { margin: 0 0 24px; }
.cs-text p:last-child { margin-bottom: 0; }

/* Elementor "bob" hover animation — applied to all case-study buttons on live */
@keyframes cs-bob {
  0% { transform: translateY(-8px); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(-8px); }
}
@keyframes cs-bob-float {
  100% { transform: translateY(-8px); }
}
.cs-button:hover, .cs-button:focus, .cs-button:active {
  animation-name: cs-bob-float, cs-bob;
  animation-duration: 0.3s, 1.5s;
  animation-delay: 0s, 0.3s;
  animation-timing-function: ease-out, ease-in-out;
  animation-iteration-count: 1, infinite;
  animation-fill-mode: forwards;
  animation-direction: normal, alternate;
}

/* solid button */
.cs-button {
  display: inline-block;
  padding: 12px 24px;
  line-height: 1;
  font-family: Lato, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #fff;
  border-radius: 3px;
  transition: background-color 0.3s;
}
