/*
=============================================================
  case-study.css — v3
  Foundation Testing Group — foundationtestgroup.com
  Corrected selectors based on actual Beaver Builder HTML output
=============================================================
*/

/* ============================================================
   CUSTOM PROPERTIES
   ============================================================ */
:root {
  --cs-red:         #EA1C2D;
  --cs-body-text:   #000F23;
  --cs-accent-1:    #94A3B8;
  --cs-accent-2:    #CBD5E1;
  --cs-white:       #FFFFFF;
  --cs-off-white:   #F8FAFC;
  --cs-dark-navy:   #060D18;
  --cs-mid-navy:    #0D1F38;

  --cs-font-head:   'Open Sans', sans-serif;
  --cs-font-body:   'IBM Plex Sans', sans-serif;

  --cs-radius:      4px;
  --cs-max-w:       1200px;
  --cs-section-gap: 100px;
}

/* ============================================================
   HERO ROW — #cs-hero
   ============================================================ */
#cs-hero {
  min-height: 100vh !important;
  background-color: var(--cs-dark-navy) !important;
}

#cs-hero .fl-row-content-wrap {
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  padding-bottom: 250px !important;
}

/* Overlay gradient */
#cs-hero .fl-row-bg-overlay {
  background: linear-gradient(
    to bottom,
    rgba(6,13,24,0.2) 0%,
    rgba(6,13,24,0.5) 40%,
    rgba(6,13,24,0.92) 100%
  ) !important;
  opacity: 1 !important;
}

/* Column inside hero */
#cs-hero .fl-col-content {
  padding: 0 !important;
}

/* ── "CASE STUDY" eyebrow tag ── */
#cs-hero h4.fl-heading {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--cs-red) !important;
  margin-bottom: 8px !important;
}

/* ── Client name (first h5) ── */
#cs-hero h5.fl-heading:first-of-type {
  font-family: var(--cs-font-body) !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  color: var(--cs-accent-2) !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 0px !important;
  text-transform: none !important;
}

/* ── Project title H1 ── */
#cs-hero h1.fl-heading {
  font-family: var(--cs-font-head) !important;
  font-weight: 800 !important;
  font-size: clamp(42px, 7vw, 88px) !important;
  color: var(--cs-white) !important;
  line-height: 1.0 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 5px !important;
}

/* ── Subtitle (second h5) ── */
#cs-hero h5.fl-heading:last-of-type {
  font-family: var(--cs-font-body) !important;
  font-weight: 400 !important;
  font-size: clamp(16px, 2vw, 19px) !important;
    width: fit-content;
    border-left: 3px solid var(--cs-red) !important;
    background: rgba(255, 255, 255, 0.1) !important;
  color: var(--cs-accent-2) !important;
    padding: 12px 20px !important;
  margin-bottom: 28px !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

/* ── Download button ── */
#cs-hero .fl-button {
  background: var(--cs-red) !important;
  color: var(--cs-white) !important;
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 16px 32px !important;
  border-radius: var(--cs-radius) !important;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.2s !important;
  display: inline-flex !important;
  align-items: center !important;
}

#cs-hero .fl-button:hover {
  background: #c8101f !important;
  transform: translateY(-2px) !important;
}

#cs-hero .fl-button-text {
  color: var(--cs-white) !important;
}

/* ============================================================
   STATS BAR — #cs-stats
   ============================================================ */
#cs-stats {
  background: var(--cs-body-text) !important;
}

#cs-stats .fl-col-content {
  padding: 44px 40px !important;
  position: relative;
}

#cs-stats .fl-col {
  border-right: 1px solid rgba(255,255,255,0.08);
  position: relative;
}

#cs-stats .fl-col:last-child {
  border-right: none;
}

#cs-stats .fl-col::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 0;
  height: 3px;
  background: var(--cs-red);
  transition: width 0.4s ease;
  z-index: 2;
}

#cs-stats .fl-col:hover::before {
  width: 100%;
}

/* Stat value — first heading in each column */
#cs-stats .fl-col .fl-heading:first-child {
  font-family: var(--cs-font-head) !important;
  font-weight: 800 !important;
  font-size: clamp(32px, 3.5vw, 48px) !important;
  color: var(--cs-white) !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 8px !important;
}

/* Stat label — second heading in each column */
#cs-stats .fl-col .fl-heading:last-child {
  font-family: var(--cs-font-body) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--cs-accent-1) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* ============================================================
   CHALLENGE SECTION — #cs-challenge
   ============================================================ */
#cs-challenge {
  background: var(--cs-white) !important;
}


/* Eyebrow */
#cs-challenge .fl-col:first-child .fl-heading:first-child,
#cs-risk .fl-col:first-child .fl-heading:first-child{
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--cs-accent-1) !important;
  margin-bottom: 16px !important;
}

/* Section title h2 */
#cs-challenge h2.fl-heading {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: clamp(28px, 4vw, 42px) !important;
  color: var(--cs-body-text) !important;
  line-height: 1.15 !important;
  margin-bottom: 20px !important;
}

/* Body text */
#cs-challenge .fl-rich-text p {
  font-family: var(--cs-font-body) !important;
  font-size: 17px !important;
  color: #2a3a52 !important;
  line-height: 1.48 !important;
}

/* Risk list */
#cs-challenge .fl-rich-text ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 28px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}

#cs-challenge .fl-rich-text ul li {
  display: flex !important;
  gap: 16px !important;
  align-items: flex-start !important;
  font-size: 17px !important;
  color: var(--cs-body-text) !important;
  line-height: 1.48 !important;
  padding-left: 0 !important;
}

#cs-challenge .fl-rich-text ul li::before {
  content: '' !important;
  flex-shrink: 0 !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: var(--cs-red) !important;
  margin-top: 8px !important;
  display: block !important;
}

/* Callout blockquote */
#cs-challenge .fl-rich-text blockquote {
  background: var(--cs-off-white) !important;
  border-left: 4px solid var(--cs-red) !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  padding: 20px 24px !important;
  font-size: 15px !important;
  font-style: italic !important;
  color: #2a3a52 !important;
  border-radius: 0 var(--cs-radius) var(--cs-radius) 0 !important;
  margin: 0 !important;
}

/* ============================================================
   APPROACH SECTION — #cs-approach
   ============================================================ */

#cs-approach h2.fl-heading {
  font-size: clamp(28px, 4vw, 42px) !important;
  color: var(--cs-white) !important;
  font-weight: 700 !important;
  margin-bottom: 16px !important;
}

#cs-approach .fl-rich-text p {
  color: var(--cs-accent-1);
  font-size: 16px !important;
  line-height: 1.35 !important;
}

/* H2 title — full width, row 2 */
[data-node="oa39hsum8y0j"] {
/*  grid-column: 1 / -1 !important;
  grid-row: 2 !important; */
  margin: 0 0 8px !important;
}

/* Intro paragraph — full width, row 3 */
[data-node="pks6ofz2tl8v"] {
/*  grid-column: 1 / -1 !important;
  grid-row: 3 !important; */
  margin: 0 0 24px !important;
}

/* Eyebrow "FTG'S APPROACH" — final */
[data-node="fi13x85bwa6s"] {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--cs-red) !important;
  margin: 0 0 8px !important;
}

/* Services Provided eyebrow */
[data-node="0w1vtkcs5o6f"] {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  margin: 0 0 8px !important;
}

.cs-instrument-title {
  margin: 16px 16px 0 !important;
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  color: var(--cs-red) !important;
}

#cs-approach .cs-instrument-desc {
    margin:10px 15px; !important
}

#cs-approach .services-right .header p {
    color: var(--cs-white) !important;
    font-weight:700 !important;
    margin:0px !important;
}

#cs-approach .header {
    margin-bottom:0 !important;
}

#cs-approach .services-right .fl-module-rich-text:last-of-type  {
    margin-top:5px !important;
}

/* var(--cs-white) */

/* ============================================================
   RISK EVENT SECTION — #cs-risk
   ============================================================ */
   
/* Risk event data panel */
#cs-risk .cs-data-panel {
  background: var(--cs-body-text) !important;
  border-radius: var(--cs-radius) !important;
  padding: 28px !important;
}

#cs-risk .cs-data-panel__label {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--cs-red) !important;
  margin-bottom: 16px !important;
}

#cs-risk .cs-before-after {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}

#cs-risk .cs-ba-card {
  border-radius: var(--cs-radius) !important;
  padding: 14px 16px !important;
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

#cs-risk .cs-ba-card.before {
  background: rgba(148,163,184,0.15) !important;
  color: var(--cs-accent-1) !important;
  border: 1px solid rgba(148,163,184,0.25) !important;
}

#cs-risk .cs-ba-card.after {
  background: rgba(34,197,94,0.1) !important;
  color: #22c55e !important;
  border: 1px solid rgba(34,197,94,0.2) !important;
}

#cs-risk .cs-ba-card span {
  display: block !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  opacity: 0.7 !important;
  margin-top: 4px !important;
  text-transform: none !important;
  font-family: var(--cs-font-body) !important;
}

#cs-risk .cs-risk-alert p {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--cs-red) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* Risk body paragraphs */
#cs-risk .fl-rich-text p {
  font-size: 16px !important;
  line-height: 1.8 !important;
}

/* Risk outcome box (consolidated — was duplicated) */
#cs-risk .risk-outcome {
  background: var(--cs-body-text) !important;
  color: var(--cs-white) !important;
  padding: 4px 28px !important;
  border-radius: var(--cs-radius) !important;
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  margin-top: 38px !important;
}

#cs-risk .risk-outcome p {
  color: var(--cs-white) !important;
  font-weight: 700 !important;
  margin: 0 !important;
}

/* Risk body paragraph 1 */
[data-node="z42yrci6tvnx"] p {
  font-size: 16px !important;
  color: #2a3a52 !important;
  line-height: 1.8 !important;
  margin-bottom: 24px !important;
}

/* Risk body paragraph 2 */
[data-node="kcaih8nx2p3g"] p {
  font-size: 16px !important;
  color: #2a3a52 !important;
  line-height: 1.8 !important;
  margin-bottom: 24px !important;
}

/* Risk outcome box */
[data-node="8agdr0lcsv3h"],
[data-node="8agdr0lcsv3h"] p,
[data-node="8agdr0lcsv3h"] * {
  background: #000F23 !important;
  color: #FFFFFF !important;
  padding: 4px 28px !important;
  border-radius: 4px !important;
  font-family: 'Open Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  margin: 10px 0 0 0 !important;
}

/* Remove previous column balance rules and replace with these */
#cs-risk .fl-col-group {
  display: flex !important;
  align-items: stretch !important;
}

#cs-risk .fl-col {
  display: flex !important;
  flex-direction: column !important;
}

#cs-risk .fl-col:last-child .fl-col-content {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
}

#cs-risk .fl-col:last-child .fl-photo-wrap {
  flex: 1 !important;
  display: flex !important;
}

#cs-risk .fl-col:last-child .fl-photo-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  min-height: 200px !important;
}
   
/* Risk row — expand left column ONLY when right column is hidden */
#cs-risk .fl-col-group {
  display: flex !important;
}

/* When the photo is the BB placeholder pixel, hide the entire right column
   and let the left column take full width */
#cs-risk .fl-col:has(img[src*="pixel.png"]) {
  display: none !important;
}

#cs-risk .fl-col-group:has(img[src*="pixel.png"]) .fl-col:not(:has(img[src*="pixel.png"])) {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
}
   
#cs-risk {
  background: var(--cs-off-white) !important;
}

#cs-risk h2.fl-heading {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: clamp(28px, 4vw, 42px) !important;
  color: var(--cs-body-text) !important;
  margin-bottom: 20px !important;
}

#cs-risk .fl-rich-text p {
  font-size: 16px !important;
  line-height: 1.8 !important;}

/* Alert callout column */
.cs-risk-alert .fl-col-content {
  background: #fff0f1 !important;
  border-left: 4px solid var(--cs-red) !important;
  border-radius: 0 var(--cs-radius) var(--cs-radius) 0 !important;
  padding: 20px !important;
  margin-bottom: 24px !important;
}

.cs-risk-alert .fl-heading {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--cs-red) !important;
  line-height: 1.5 !important;
}

/* Outcome box */
.cs-risk-outcome .fl-col-content {
  background: var(--cs-body-text) !important;
  padding: 24px 28px !important;
  border-radius: var(--cs-radius) !important;
}

.cs-risk-outcome .fl-heading {
  color: var(--cs-white) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

/* ============================================================
   PROJECT IMPACT SECTION — #cs-demolition
   ============================================================ */
#cs-demolition {
  background: var(--cs-white) !important;
}

#cs-demolition h2.fl-heading {
  font-size: clamp(28px, 4vw, 42px) !important;
  font-weight: 700 !important;
  color: var(--cs-body-text) !important;
  margin-bottom: 20px !important;
}

#cs-demolition .fl-rich-text p {
  font-size: 16px !important;
  color: #2a3a52 !important;
  line-height: 1.8 !important;
  margin-bottom: 20px !important;
}

/* Badge */
.cs-demo-badge .fl-col-content {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--cs-off-white) !important;
  border: 1px solid var(--cs-accent-2) !important;
  border-radius: var(--cs-radius) !important;
  padding: 10px 16px !important;
}

.cs-demo-badge .fl-heading {
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--cs-body-text) !important;
}

.cs-demo-badge .fl-heading::before {
  content: '' !important;
  display: inline-block !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #22c55e !important;
  margin-right: 8px !important;
  animation: cs-pulse 1.5s infinite !important;
}

@keyframes cs-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
}

/* Video wrapper */
.cs-video-wrap {
  position: relative !important;
  border-radius: var(--cs-radius) !important;
  overflow: hidden !important;
  background: var(--cs-dark-navy) !important;
  aspect-ratio: 16/9 !important;
}

.cs-video-wrap iframe {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: none !important;
}

/* Project Impact row — expand remaining column when the
   video/photo column is removed from the DOM entirely by
   conditional logic (project_impact_video / project_impact_photo
   both empty). BB Themer strips the hidden column completely
   rather than display:none-ing it, so :only-child catches it. */
#cs-demolition .fl-col-group > .fl-col:only-child {
  width: 100% !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

/* ============================================================
   RESULTS SECTION — #cs-results
   ============================================================ */
#cs-results {
  background: var(--cs-body-text) !important;
  position: relative !important;
  overflow: hidden !important;
}

#cs-results::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(234,28,45,0.08) 0%, transparent 70%);
  pointer-events: none;
}

#cs-results .fl-heading {
  color: var(--cs-white) !important;
}

#cs-results h2.fl-heading {
  font-size: clamp(28px, 4vw, 42px) !important;
  font-weight: 700 !important;
  margin-bottom: 48px !important;
}

/* Result items */
.cs-result-item {
  background: var(--cs-mid-navy) !important;
  transition: background 0.2s !important;
  margin-bottom: 2px !important;
}

.cs-result-item:hover {
  background: rgba(234,28,45,0.07) !important;
}

.cs-result-item .fl-col-content {
  padding: 28px 32px !important;
}

.cs-result-item .fl-heading {
  color: var(--cs-accent-2) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
}

.cs-result-item .fl-heading::before {
  content: '✓  ' !important;
  color: #22c55e !important;
  font-weight: 700 !important;
}

/* Results closing statement */
.cs-results-closer .fl-col-content {
  padding: 32px 36px !important;
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: var(--cs-radius) !important;
}

.cs-results-closer .fl-rich-text p {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: var(--cs-white) !important;
  line-height: 1.4 !important;
}

/* ============================================================
   CTA SECTION — #cs-cta
   ============================================================ */
#cs-cta {
  background: var(--cs-off-white) !important;
  position: relative !important;
  overflow: hidden !important;
  text-align: center !important;
}

#cs-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent, transparent 59px,
      var(--cs-accent-2) 59px, var(--cs-accent-2) 60px
    ),
    repeating-linear-gradient(
      90deg,
      transparent, transparent 59px,
      var(--cs-accent-2) 59px, var(--cs-accent-2) 60px
    );
  opacity: 0.15;
  pointer-events: none;
}

#cs-cta .fl-row-content {
  position: relative;
  z-index: 2;
}

#cs-cta h2.fl-heading {
  font-size: clamp(28px, 4vw, 48px) !important;
  font-weight: 700 !important;
  color: var(--cs-body-text) !important;
  line-height: 1.2 !important;
  margin-bottom: 16px !important;
}

#cs-cta .fl-heading {
  color: var(--cs-body-text) !important;
}

#cs-cta .fl-button {
  background: var(--cs-red) !important;
  color: var(--cs-white) !important;
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 16px 32px !important;
  border-radius: var(--cs-radius) !important;
  transition: background 0.2s, transform 0.2s !important;
}

#cs-cta .fl-button:hover {
  background: #c8101f !important;
  transform: translateY(-2px) !important;
}

#cs-results h5.fl-heading {
  font-size: 15px !important;
  font-weight: 400 !important;
  color: var(--cs-accent-2) !important;
  margin-bottom: 12px !important;
}

#cs-results h5.fl-heading::before {
  content: '✓  ' !important;
  color: #22c55e !important;
  font-weight: 700 !important;
}

#cs-results .fl-module-rich-text p {
  font-family: var(--cs-font-head) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: var(--cs-white) !important;
  line-height: 1.4 !important;
}

/* Remove checkmark from eyebrow */
#cs-results h5.fl-heading:first-child::before {
  content: '' !important;
}

/* Keep checkmark on result items only */
#cs-results h5.fl-heading:not(:first-child)::before {
  content: '✓  ' !important;
  color: #22c55e !important;
  font-weight: 700 !important;
}

/* Eyebrow specific styling */
#cs-results h5.fl-heading:first-child {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--cs-red) !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

#cs-results h5.fl-heading:not(:first-child) {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
}

#cs-results h5.fl-heading:not(:first-child)::before {
  content: '✓' !important;
  color: #22c55e !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
}

/* ============================================================
   RESPONSIVE — Tablet
   ============================================================ */
@media (max-width: 960px) {
  #cs-hero h1.fl-heading {
    font-size: 52px !important;
  }

  #cs-stats .fl-col {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  }
}

/* ============================================================
   RESPONSIVE — Mobile
   ============================================================ */
/* ============================================================
   MOBILE FIXES (max-width: 768px)
   ============================================================ */
@media (max-width: 768px) {

  /* Force Challenge and Risk columns to stack vertically */
  #cs-challenge .fl-col-group,
  #cs-risk .fl-col-group {
    flex-direction: column !important;
  }

  #cs-challenge .fl-col,
  #cs-risk .fl-col {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
  }

  /* Reduce hero padding on mobile */
  #cs-hero .fl-row-content-wrap {
    padding-bottom: 40px !important;
    padding-top: 40px !important;
  }

  /* Reduce vertical spacing between all major sections — correct element */
  #cs-challenge .fl-row-content-wrap,
  #cs-approach .fl-row-content-wrap,
  #cs-risk .fl-row-content-wrap,
  #cs-demolition .fl-row-content-wrap,
  #cs-results .fl-row-content-wrap,
  #cs-cta .fl-row-content-wrap {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* Ensure the stylesheet loader row never takes visual space */
  #cs-stylesheet-loader,
  .fl-row[style*="visibility: hidden"] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Challenge section — horizontal padding */
  #cs-challenge .fl-col-content {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Approach section — horizontal padding on both sides */
  #cs-approach .fl-row-content-wrap {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }

  #cs-approach .fl-col-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Stack Approach columns, add space before Services Provided */
  #cs-approach .fl-col-group {
    flex-direction: column !important;
  }

  #cs-approach .fl-col:last-child {
    margin-top: 32px !important;
  }
}

@media (max-width: 768px) {
  #cs-hero .fl-col-content,
  #cs-stats .fl-col-content,
  #cs-challenge .fl-col-content,
  #cs-approach .fl-col-content,
  #cs-risk .fl-col-content,
  #cs-demolition .fl-col-content,
  #cs-results .fl-col-content,
  #cs-cta .fl-col-content {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* Fix applies at ALL screen sizes, not just mobile — the top gap
   was appearing on desktop too, since it comes from the theme's
   global content wrapper, not a mobile-specific style. */
body.single-case-study #content.site-content {
  margin-top: 0 !important;
}

@media (max-width: 600px) {
  #cs-hero h1.fl-heading {
    font-size: 38px !important;
  }

  #cs-hero .fl-row-content-wrap {
    padding-bottom: 40px !important;
  }

  #cs-stats .fl-col-content {
    padding: 28px 20px !important;
  }

  .cs-results-closer .fl-col-content {
    flex-direction: column !important;
    text-align: center !important;
  }
}

/* Challenge risk items — by node ID */
[data-node="kleus240jcnb"],
[data-node="tgq9rveyzupi"],
[data-node="y6p7rwns4b2k"],
[data-node="e7b1oj9a680v"],
#cs-challenge .cs-challenge-bullet{
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-bottom: 0px !important;
}

[data-node="kleus240jcnb"]::before,
[data-node="tgq9rveyzupi"]::before,
[data-node="y6p7rwns4b2k"]::before,
[data-node="e7b1oj9a680v"]::before,
#cs-challenge .cs-challenge-bullet::before{
  content: '' !important;
  flex-shrink: 0 !important;
  width: 8px !important;
  height: 8px !important;
  min-width: 8px !important;
  border-radius: 50% !important;
  background: var(--cs-red) !important;
  margin-top: 9px !important;
  display: block !important;
}

[data-node="kleus240jcnb"] p,
[data-node="tgq9rveyzupi"] p,
[data-node="y6p7rwns4b2k"] p,
[data-node="e7b1oj9a680v"] p {
  font-size: 15px !important;
  color: var(--cs-body-text) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Callout box */
[data-node="umqjhrv5p0cw"] p,
#cs-challenge .cs-challenge-warning p{
  background: var(--cs-off-white) !important;
  border-left: 4px solid var(--cs-red) !important;
  padding: 20px 24px !important;
  font-size: 17px !important;
  line-height:1.48 !important;
  font-style: italic !important;
  color: #2a3a52 !important;
  border-radius: 0 4px 4px 0 !important;
  margin: 0 !important;
  display: block !important;
}

/* Challenge risk items — individual heading modules */
#cs-challenge .fl-col:first-child h5.fl-heading {
  display: flex !important;
  align-items: flex-start !important;
  font-family: var(--cs-font-body) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: var(--cs-body-text) !important;
  line-height: 1.6 !important;
  margin-bottom: 10px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

#cs-challenge .fl-col:first-child h5.fl-heading:empty {
  display: none !important;
}

/* Challenge row — expand left column when image is hidden */
#cs-challenge .fl-col-group {
  display: flex !important;
}

#cs-challenge > .fl-row-content-wrap [data-node="or63ab8gzvcp"] > .fl-col[style*="display: none"],
#cs-challenge > .fl-row-content-wrap [data-node="or63ab8gzvcp"] > .fl-col[style*="display:none"] {
  flex: 0 !important;
  width: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

[data-node="or63ab8gzvcp"] > .fl-col:not([style*="display: none"]) {
  flex: 1 1 100% !important;
  max-width: 100% !important;
}

/* Risk Alert box — ACF connected version */
[data-node="luxv51pj483w"] {
  background: #fff0f1 !important;
  border-left: 4px solid var(--cs-red) !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 20px !important;
  margin-bottom: 10px !important;
}

[data-node="luxv51pj483w"] p,
#cs-risk .risk-alert-box p{
  font-weight: 500 !important;
  color: var(--cs-red) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* Risk Alert box — ACF connected version */
#cs-risk .risk-alert-box{
  background: #fff0f1 !important;
  border-left: 4px solid var(--cs-red) !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 20px !important;
  margin-bottom: 10px !important;
}

#cs-risk .risk-alert-box p{
  font-size: 17px !important;
  font-weight: 500 !important;
  color: var(--cs-red) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* replacement — was: #cs-challenge .fl-module-photo img */
/* Large hero photo only */
#cs-challenge .fl-col:last-child > .fl-col-content > .fl-module-photo:first-of-type .fl-photo-img {
  width: 100% !important;
  object-fit: cover !important;
  border-radius: 4px !important;
}

/* replacement — targets the nested group directly instead of :first-of-type */
/* Large photo — direct child only, so it no longer leaks onto the small ones */
#cs-challenge .fl-col:last-child > .fl-col-content > .fl-module-photo .fl-photo-img {
  width: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 6px !important;
}

/* Force the nested group into 3 even columns */
#cs-challenge .fl-col-group-nested {
  display: flex !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
}

#cs-challenge .fl-col-group-nested > .fl-col {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  float: none !important;
  clear: none !important;
}

/* replacement — forces true edge-to-edge cropping regardless of BB's own sizing */
#cs-challenge .fl-col-group-nested .fl-photo-content {
    position: relative !important;
    aspect-ratio: 4 / 3 !important;
    overflow: hidden !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 6px !important;
}

#cs-challenge .fl-col-group-nested .fl-photo-img-link {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

#cs-challenge .fl-col-group-nested .fl-photo-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 6px !important;
}

/* Demolition video — thumbnail overlay technique */
#cs-demolition .fl-col:has(.cs-video-player) {
  position: relative !important;
}

/* Force the embedded video to be fully responsive 16:9,
   regardless of what YouTube's oEmbed returns (fixes 640px sizing) */
#cs-demolition .fl-module-video {
  position: relative !important;
  width: 100% !important;
  padding-bottom: 56.25% !important; /* 16:9 aspect ratio */
  height: 0 !important;
  overflow: hidden !important;
}

#cs-demolition .fl-module-video iframe,
#cs-demolition .fl-module-video .fluid-width-video-wrapper,
#cs-demolition .fl-module-video .fl-video-embed {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

/* Thumbnail always on top and covering fully — no flash, no dependency on JS timing */
#cs-demolition .cs-video-thumb {
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;
  cursor: pointer !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 1 !important;
  transition: opacity 0.2s !important;
}

#cs-demolition .cs-video-thumb .fl-photo-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

#cs-demolition .cs-video-player {
  position: relative !important;
  z-index: 1 !important;
}

#cs-demolition .cs-video-thumb.cs-hide {
  opacity: 0 !important;
  pointer-events: none !important;
}