/* CCRS Previous Projects Host Width Takeover v2.7.1
   CLEAN RESET BUILD — no legacy override blocks.
   Image system remains locked to matched 1920x1080 (16:9) pairs.
   Breadcrumb remains outside this plugin. */

.ccrs-pp,
.ccrs-pp * { box-sizing: border-box !important; }

.ccrs-pp {
  --green: #09ea9f;
  --cyan: #00d7c6;
  --blue: #129cff;
  --bg: #020b12;
  --panel: #06131c;
  --panel2: #071824;
  --border: rgba(13, 103, 116, .82);
  --rule: rgba(115, 155, 167, .22);
  --text: #f7fbfd;
  --muted: #d6e0e5;
  --heading: proximaextrabold, "Proxima Nova", Arial, Helvetica, sans-serif;
  --body: proximaregular, "Proxima Nova", Arial, Helvetica, sans-serif;

  position: relative !important;
  isolation: isolate !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 26px clamp(16px, 2.7vw, 46px) 34px !important;
  overflow-x: clip !important;
  overflow-y: hidden !important;
  color: var(--text) !important;
  background:
    radial-gradient(circle at 94% 2%, rgba(18,156,255,.05), transparent 24%),
    linear-gradient(180deg, #020a11 0%, #03101a 100%) !important;
  font-family: var(--body) !important;
  font-style: normal !important;
  text-align: left !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

.ccrs-pp::before,
.ccrs-pp::after {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  width: 180px !important;
  height: 180px !important;
  opacity: .10 !important;
  pointer-events: none !important;
  background-image: radial-gradient(circle, var(--green) 1px, transparent 1.15px) !important;
  background-size: 12px 12px !important;
}
.ccrs-pp::before { top: -44px !important; right: -44px !important; }
.ccrs-pp::after { bottom: -48px !important; left: -48px !important; }

.ccrs-pp__inner {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* Match the shortcode ancestors in CSS so delayed JavaScript cannot change the host width.
   The existing JS classes remain compatible fallbacks.
   Shortcode host only. Avada is already configured as a 1/1 column.
   Preserve that 100% width and only neutralise unwanted vertical spacing. */
body.page-id-20901 #main,
body.ccrs-pp-page #main {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  background: #020b12 !important;
}

.ccrs-pp-host-row.fusion-builder-row,
.fusion-builder-row:has(.ccrs-pp) {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ccrs-pp-host-row,
:where(.fusion-fullwidth,.fusion-builder-row):has(.ccrs-pp) {
  --awb-min-height: 0px !important;
  --awb-margin-top: 0px !important;
  --awb-margin-bottom: 0px !important;
  --awb-padding-top: 0px !important;
  --awb-padding-bottom: 0px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: flex-start !important;
  align-content: flex-start !important;
  justify-content: flex-start !important;
  background-color: #020b12 !important;
}

.ccrs-pp-host-column,
:where(.fusion-layout-column):has(.ccrs-pp) {
  --awb-width-large: 100% !important;
  --awb-width-medium: 100% !important;
  --awb-width-small: 100% !important;
  --awb-spacing-left-large: 0 !important;
  --awb-spacing-right-large: 0 !important;
  --awb-spacing-left-medium: 0 !important;
  --awb-spacing-right-medium: 0 !important;
  --awb-spacing-left-small: 0 !important;
  --awb-spacing-right-small: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ccrs-pp-host,
.ccrs-pp-host-text,
:where(.fusion-column-wrapper,.fusion-text):has(.ccrs-pp) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  overflow: visible !important;
}

.ccrs-pp-gap-kill {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* v2.7: normalised Avada host width. No viewport breakout or runtime measurement. */
.ccrs-pp-host-row,
.ccrs-pp-host-column,
.ccrs-pp-host,
.ccrs-pp-host-text,
:where(.fusion-fullwidth,.fusion-builder-row,.fusion-layout-column,.fusion-column-wrapper,.fusion-text):has(.ccrs-pp) { overflow: visible !important; }


/* Prevent the classic 100vw scrollbar sliver from creating horizontal movement. */
body.page-id-20901,
body.ccrs-pp-page {
  overflow-x: clip !important;
}

/* ---------- HERO ---------- */
.ccrs-pp__hero {
  all: unset;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(430px, 38%) minmax(0, 62%) !important;
  gap: 28px !important;
  align-items: start !important;
  align-content: start !important;
  justify-items: stretch !important;
  justify-content: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 0 26px !important;
  padding: 0 2px !important;
  position: relative !important;
}

.ccrs-pp__hero-copy {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: start !important;
}

.ccrs-pp__eyebrow {
  all: unset;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 10px !important;
  color: var(--green) !important;
  font-family: var(--heading) !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  letter-spacing: .025em !important;
  text-transform: uppercase !important;
}
.ccrs-pp__eyebrow > span {
  display: block !important;
  width: 60px !important;
  height: 1px !important;
  flex: 0 0 60px !important;
  background: linear-gradient(90deg, var(--green), transparent) !important;
}

.ccrs-pp__title {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  margin: 0 0 13px !important;
  color: #fff !important;
  font-family: var(--heading) !important;
  font-size: clamp(44px, 3vw, 58px) !important;
  font-weight: 900 !important;
  line-height: .99 !important;
  letter-spacing: -.025em !important;
  text-transform: uppercase !important;
}
.ccrs-pp__title > span {
  display: inline !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  white-space: nowrap !important;
  background: linear-gradient(90deg, var(--green) 0%, var(--cyan) 46%, var(--blue) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.ccrs-pp__intro {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  max-width: 650px !important;
  margin: 0 !important;
  color: #e6eef2 !important;
  font-family: var(--body) !important;
  font-size: 16.5px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  overflow-wrap: break-word !important;
}

.ccrs-pp__benefits {
  all: unset;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: start !important;
  align-content: start !important;
  justify-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: start !important;
}

.ccrs-pp__benefit {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 4px 17px !important;
  border: 0 !important;
  border-left: 1px solid rgba(79,124,139,.38) !important;
  background: transparent !important;
}
.ccrs-pp__benefit:first-child {
  padding-left: 0 !important;
  border-left: 0 !important;
}
.ccrs-pp__benefit-icon {
  display: block !important;
  width: 40px !important;
  height: 40px !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: var(--green) !important;
  line-height: 0 !important;
  filter: drop-shadow(0 0 8px rgba(9,234,159,.12)) !important;
}
.ccrs-pp__benefit-icon svg { display: block !important; width: 40px !important; height: 40px !important; }
.ccrs-pp__benefit strong {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  margin: 0 0 6px !important;
  color: #fff !important;
  font-family: var(--heading) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}
.ccrs-pp__benefit-copy {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  color: #d7e1e6 !important;
  font-family: var(--body) !important;
  font-size: 16.5px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}

/* ---------- PROJECT LIST ---------- */
.ccrs-pp__projects {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ccrs-project {
  display: grid !important;
  grid-template-columns: minmax(400px, 28%) minmax(0, 72%) !important;
  gap: 14px !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ccrs-project > * { min-width: 0 !important; }

.ccrs-project__info,
.ccrs-project__visual {
  min-width: 0 !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: linear-gradient(180deg, rgba(6,22,32,.995), rgba(4,15,23,.995)) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.17), inset 0 0 0 1px rgba(255,255,255,.012) !important;
}

.ccrs-project__info {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 20px 21px 20px !important;
}

.ccrs-project__number {
  all: unset;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 32px !important;
  flex: 0 0 32px !important;
  margin: 0 0 12px !important;
  border: 1px solid rgba(9,234,159,.72) !important;
  border-radius: 5px !important;
  color: var(--green) !important;
  font-family: var(--heading) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.ccrs-project__info h3 {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  margin: 0 0 8px !important;
  color: #fff !important;
  font-family: var(--heading) !important;
  font-size: clamp(20px, 1.25vw, 23px) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  letter-spacing: -.012em !important;
  text-transform: uppercase !important;
  overflow-wrap: break-word !important;
}

.ccrs-project__location {
  all: unset;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 0 10px !important;
  color: var(--green) !important;
  font-family: var(--body) !important;
  font-size: 13.7px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.ccrs-project__location svg { width: 16px !important; height: 16px !important; flex: 0 0 16px !important; }
.ccrs-project__location > span { color: inherit !important; font: inherit !important; }

.ccrs-project__details {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  min-height: 0 !important;
  width: 100% !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
}

.ccrs-project__detail {
  display: grid !important;
  grid-template-columns: 34px minmax(0,1fr) !important;
  gap: 11px !important;
  align-items: start !important;
  width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 10px 0 !important;
  border-top: 1px solid var(--rule) !important;
}
.ccrs-project__detail > div:last-child { min-width: 0 !important; }
.ccrs-project__detail-icon {
  display: grid !important;
  place-items: center !important;
  width: 31px !important;
  height: 31px !important;
  margin: 1px 0 0 !important;
  border: 1px solid rgba(9,234,159,.68) !important;
  border-radius: 50% !important;
  color: var(--green) !important;
}
.ccrs-project__detail-icon svg { width: 16px !important; height: 16px !important; }
.ccrs-project__detail strong {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  margin: 0 0 4px !important;
  color: #fff !important;
  font-family: var(--heading) !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  text-transform: uppercase !important;
}
.ccrs-project__detail p {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  color: #d7e0e5 !important;
  font-family: var(--body) !important;
  font-size: 15.5px !important;
  font-weight: 400 !important;
  line-height: 1.48 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}

.ccrs-project__cta,
.ccrs-project__cta:link,
.ccrs-project__cta:visited,
.ccrs-project__cta:hover,
.ccrs-project__cta:focus,
.ccrs-project__cta:active {
  all: unset;
  box-sizing: border-box !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 52px !important;
  height: 52px !important;
  flex: 0 0 52px !important;
  margin: 0 !important;
  padding: 12px 48px !important;
  border: 1px solid rgba(91,255,219,.24) !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background: linear-gradient(90deg, var(--green) 0%, var(--cyan) 46%, var(--blue) 100%) !important;
  background-size: 125% 100% !important;
  background-position: 0% 50% !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: var(--heading) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow:
    0 7px 18px rgba(0,167,218,.20),
    0 0 0 1px rgba(9,234,159,.08),
    inset 0 1px 0 rgba(255,255,255,.16) !important;
  transition:
    transform .22s ease,
    filter .22s ease,
    box-shadow .22s ease,
    background-position .34s ease !important;
}
.ccrs-project__cta::before {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  top: -40% !important;
  bottom: -40% !important;
  left: -42% !important;
  width: 26% !important;
  pointer-events: none !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.32), transparent) !important;
  transform: skewX(-18deg) !important;
  transition: left .52s cubic-bezier(.2,.75,.25,1) !important;
}
.ccrs-project__cta > span:first-child {
  position: relative !important;
  z-index: 2 !important;
  display: block !important;
  width: 100% !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font: inherit !important;
  text-align: center !important;
  white-space: nowrap !important;
}
.ccrs-pp .ccrs-project .ccrs-project__cta > .ccrs-project__cta-arrow {
  /* Global CTA Registry replaces transform on hover/focus. Keep centring in
     layout, and give its own animation variable a horizontal-only movement. */
  --ccrs-cta-arrow-transform: translateX(6px) !important;
  --ccrs-cta-arrow-transition: transform .22s ease !important;
  position: absolute !important;
  z-index: 3 !important;
  top: calc(50% - 8px) !important;
  bottom: auto !important;
  left: auto !important;
  right: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translateX(0) !important;
  transition: transform .22s ease !important;
  display: block !important;
  width: 22px !important;
  height: 16px !important;
  pointer-events: none !important;
}
.ccrs-project__cta-arrow::before,
.ccrs-project__cta-arrow::after {
  content: "" !important;
  position: absolute !important;
  display: block !important;
  pointer-events: none !important;
}
.ccrs-project__cta-arrow::before {
  left: 1px !important;
  top: 7px !important;
  width: 18px !important;
  height: 2px !important;
  border-radius: 2px !important;
  background: #fff !important;
}
.ccrs-project__cta-arrow::after {
  right: 1px !important;
  top: 4px !important;
  width: 7px !important;
  height: 7px !important;
  border-top: 2px solid #fff !important;
  border-right: 2px solid #fff !important;
  transform: rotate(45deg) !important;
  transform-origin: center !important;
}
.ccrs-project__cta:hover,
.ccrs-project__cta:focus-visible {
  transform: translateY(-2px) scale(1.006) !important;
  filter: brightness(1.08) saturate(1.06) !important;
  background-position: 100% 50% !important;
  box-shadow:
    0 12px 30px rgba(18,156,255,.30),
    0 0 26px rgba(9,234,159,.20),
    0 0 0 1px rgba(83,255,217,.34),
    inset 0 1px 0 rgba(255,255,255,.22) !important;
}
.ccrs-project__cta:hover::before,
.ccrs-project__cta:focus-visible::before { left: 122% !important; }
.ccrs-pp .ccrs-project .ccrs-project__cta:hover > .ccrs-project__cta-arrow,
.ccrs-pp .ccrs-project .ccrs-project__cta:focus-visible > .ccrs-project__cta-arrow {
  transform: translateX(6px) !important;
  filter: none !important;
}
.ccrs-project__cta:active {
  transform: translateY(0) scale(.996) !important;
  filter: brightness(1.02) !important;
  box-shadow: 0 4px 12px rgba(0,167,218,.20), inset 0 1px 0 rgba(255,255,255,.12) !important;
}
.ccrs-project__cta:focus-visible {
  outline: 2px solid rgba(255,255,255,.92) !important;
  outline-offset: 3px !important;
}

/* ---------- BEFORE / AFTER — WORKING SYSTEM, KEPT SIMPLE ---------- */
.ccrs-project__visual {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  align-self: stretch !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
}
.ccrs-ba {
  position: relative !important;
  display: block !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  background: #061019 !important;
  touch-action: none !important;
  user-select: none !important;
  cursor: ew-resize !important;
  isolation: isolate !important;
}
.ccrs-ba__img {
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  object-fit: cover !important;
  pointer-events: none !important;
  filter: none !important;
  opacity: 1 !important;
  image-rendering: auto !important;
}
.ccrs-ba__before-wrap {
  position: absolute !important;
  z-index: 3 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  clip-path: inset(0 calc(100% - var(--ccrs-pos)) 0 0) !important;
  will-change: clip-path !important;
}
.ccrs-ba__before-wrap .ccrs-ba__img { z-index: 2 !important; }
.ccrs-ba__divider {
  position: absolute !important;
  z-index: 5 !important;
  top: 0 !important;
  bottom: 0 !important;
  left: var(--ccrs-pos) !important;
  width: 2px !important;
  transform: translateX(-50%) !important;
  background: linear-gradient(180deg, #24fff0, #03dfc4 45%, #39c7ff) !important;
  box-shadow: 0 0 10px rgba(9,234,225,.62) !important;
}
.ccrs-ba__handle {
  all: unset;
  box-sizing: border-box !important;
  position: absolute !important;
  z-index: 7 !important;
  left: var(--ccrs-pos) !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  width: 56px !important;
  height: 56px !important;
  border: 2px solid var(--green) !important;
  border-radius: 50% !important;
  background: #031018 !important;
  color: #39f5de !important;
  box-shadow: 0 0 0 4px rgba(2,16,24,.78), 0 0 16px rgba(9,234,159,.25) !important;
  cursor: ew-resize !important;
}
.ccrs-ba__handle > span { color: inherit !important; font-family: Arial, sans-serif !important; font-size: 20px !important; font-weight: 800 !important; line-height: 1 !important; }
.ccrs-ba__label {
  all: unset;
  box-sizing: border-box !important;
  position: absolute !important;
  z-index: 6 !important;
  top: 16px !important;
  padding: 7px 11px !important;
  border-radius: 4px !important;
  background: rgba(7,19,30,.94) !important;
  color: #fff !important;
  font-family: var(--heading) !important;
  font-size: 10.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  box-shadow: 0 3px 8px rgba(0,0,0,.22) !important;
}
.ccrs-ba__label--before { left: 16px !important; }
.ccrs-ba__label--after { right: 16px !important; }

/* ---------- META ---------- */
.ccrs-project__meta {
  display: grid !important;
  flex: 0 0 auto !important;
  grid-template-columns: 1.12fr .82fr .96fr 1.08fr !important;
  width: 100% !important;
  min-height: 82px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: linear-gradient(180deg, rgba(5,25,35,.995), rgba(3,18,27,.995)) !important;
  border-top: 1px solid rgba(14,83,94,.72) !important;
}
.ccrs-project__meta-item {
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  min-width: 0 !important;
  min-height: 82px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  border-left: 1px solid rgba(92,128,139,.24) !important;
}
.ccrs-project__meta-item:first-child { border-left: 0 !important; }
.ccrs-project__meta-icon { flex: 0 0 30px !important; width: 30px !important; height: 30px !important; color: var(--green) !important; }
.ccrs-project__meta-icon svg { display: block !important; width: 30px !important; height: 30px !important; }
.ccrs-project__meta-item > div:last-child { min-width: 0 !important; }
.ccrs-project__meta-item strong {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  margin: 0 0 4px !important;
  color: #fff !important;
  font-family: var(--heading) !important;
  font-size: 11.5px !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  text-transform: uppercase !important;
}
.ccrs-project__meta-item span {
  all: unset;
  box-sizing: border-box !important;
  display: block !important;
  color: #e5ecef !important;
  font-family: var(--body) !important;
  font-size: 13.8px !important;
  font-weight: 400 !important;
  line-height: 1.34 !important;
  overflow-wrap: break-word !important;
}

/* ---------- TABLET ---------- */
@media (max-width: 1180px) {
  .ccrs-pp { padding-left: 13px !important; padding-right: 13px !important; }
  .ccrs-pp__hero { grid-template-columns: minmax(390px, 38%) minmax(0,62%) !important; gap: 26px !important; }
  .ccrs-pp__benefit { padding-left: 12px !important; padding-right: 12px !important; }
  .ccrs-pp__benefit strong { font-size: 14px !important; }
  .ccrs-pp__benefit-copy { font-size: 15px !important; line-height: 1.5 !important; }
  .ccrs-project { grid-template-columns: minmax(350px, 30%) minmax(0,70%) !important; gap: 12px !important; }
  .ccrs-project__info { padding: 18px !important; }
  .ccrs-project__detail p { font-size: 14.8px !important; line-height: 1.5 !important; }
}

/* Stack project rows before the left card becomes cramped. */
@media (max-width: 980px) {
  .ccrs-pp__benefits {
    align-items: stretch !important;
    grid-auto-rows: 1fr !important;
  }
  .ccrs-pp__benefit,
  .ccrs-pp__benefit:first-child {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    height: 100% !important;
  }
  .ccrs-pp {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 20px 12px 30px !important;
    overflow-x: hidden !important;
  }
  .ccrs-pp__hero { display: block !important; margin: 0 0 20px !important; padding: 0 !important; }
  .ccrs-pp__hero-copy { max-width: 760px !important; margin: 0 0 16px !important; }
  .ccrs-pp__benefits { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 9px !important; }
  .ccrs-pp__benefit, .ccrs-pp__benefit:first-child {
    padding: 12px !important;
    border: 1px solid rgba(13,103,116,.72) !important;
    border-radius: 8px !important;
    background: rgba(5,22,31,.74) !important;
  }
  .ccrs-pp__benefit-copy { max-width: none !important; }

  .ccrs-project {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    border: 1.5px solid rgba(13,120,134,.90) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: linear-gradient(180deg, rgba(6,22,32,.995), rgba(4,15,23,.995)) !important;
  }
  .ccrs-project__info,
  .ccrs-project__visual {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .ccrs-project__info { border-bottom: 1px solid rgba(13,120,134,.80) !important; }
  /* Stacked layouts return to the established 16:9 media block. */
  .ccrs-project__visual { height: auto !important; }
  .ccrs-ba { flex: 0 0 auto !important; aspect-ratio: 16 / 9 !important; }
  .ccrs-project__details { flex: 0 0 auto !important; justify-content: flex-start !important; }
  .ccrs-project__detail { padding: 10px 0 !important; }
  .ccrs-project__cta { margin-top: 4px !important; }
}

/* ---------- MOBILE ---------- */
@media (max-width: 760px) {
  .ccrs-pp { width: 100vw !important; max-width: none !important; margin: 0 calc(50% - 50vw) !important; padding: 18px 10px 26px !important; overflow-x: hidden !important; }
  .ccrs-pp__inner { width: 100% !important; max-width: 100% !important; overflow: visible !important; }
  .ccrs-pp__hero { display: block !important; margin: 0 0 18px !important; padding: 0 !important; }
  .ccrs-pp__hero-copy { width: 100% !important; max-width: 100% !important; margin: 0 0 14px !important; }
  .ccrs-pp__eyebrow { font-size: 11.5px !important; margin-bottom: 8px !important; }
  .ccrs-pp__eyebrow > span { width: 46px !important; flex-basis: 46px !important; }
  .ccrs-pp__title { font-size: clamp(34px, 8vw, 43px) !important; line-height: 1 !important; margin-bottom: 11px !important; }
  .ccrs-pp__intro { font-size: 15px !important; line-height: 1.48 !important; }

  .ccrs-pp__benefits {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 8px !important;
  }
  .ccrs-pp__benefit,
  .ccrs-pp__benefit:first-child {
    padding: 11px !important;
    border: 1px solid rgba(13,103,116,.72) !important;
    border-radius: 8px !important;
    background: rgba(5,22,31,.74) !important;
  }
  .ccrs-pp__benefit-icon,
  .ccrs-pp__benefit-icon svg { width: 32px !important; height: 32px !important; }
  .ccrs-pp__benefit-icon { margin-bottom: 7px !important; }
  .ccrs-pp__benefit strong { font-size: 12.2px !important; margin-bottom: 5px !important; line-height: 1.22 !important; }
  .ccrs-pp__benefit-copy { max-width: none !important; font-size: 12.9px !important; line-height: 1.45 !important; }

  .ccrs-pp__projects { gap: 14px !important; }
  .ccrs-project__info { padding: 17px 16px 16px !important; }
  .ccrs-project__number { margin-bottom: 10px !important; }
  .ccrs-project__info h3 { font-size: 19px !important; line-height: 1.12 !important; white-space: normal !important; overflow-wrap: anywhere !important; max-width: 100% !important; }
  .ccrs-project__location { font-size: 13.2px !important; margin-bottom: 9px !important; }
  .ccrs-project__detail { grid-template-columns: 32px minmax(0,1fr) !important; gap: 9px !important; padding: 9px 0 !important; }
  .ccrs-project__detail-icon { width: 29px !important; height: 29px !important; }
  .ccrs-project__detail-icon svg { width: 15px !important; height: 15px !important; }
  .ccrs-project__detail strong { font-size: 10.8px !important; }
  .ccrs-project__detail p { font-size: 13.7px !important; line-height: 1.45 !important; }
  .ccrs-project__cta,
  .ccrs-project__cta:link,
  .ccrs-project__cta:visited,
  .ccrs-project__cta:hover,
  .ccrs-project__cta:focus,
  .ccrs-project__cta:active { height: 50px !important; min-height: 50px !important; flex-basis: 50px !important; padding: 11px 44px !important; font-size: 12.2px !important; }

  .ccrs-ba__handle { width: 52px !important; height: 52px !important; }
  .ccrs-ba__label { top: 11px !important; padding: 6px 9px !important; font-size: 9.6px !important; }
  .ccrs-ba__label--before { left: 10px !important; }
  .ccrs-ba__label--after { right: 10px !important; }

  .ccrs-project__meta { grid-template-columns: repeat(2, minmax(0,1fr)) !important; min-height: 0 !important; }
  .ccrs-project__meta-item { min-height: 72px !important; padding: 10px !important; gap: 8px !important; }
  .ccrs-project__meta-item:nth-child(3) { border-left: 0 !important; border-top: 1px solid rgba(92,128,139,.24) !important; }
  .ccrs-project__meta-item:nth-child(4) { border-top: 1px solid rgba(92,128,139,.24) !important; }
  .ccrs-project__meta-icon,
  .ccrs-project__meta-icon svg { width: 25px !important; height: 25px !important; flex-basis: 25px !important; }
  .ccrs-project__meta-item strong { font-size: 9.5px !important; }
  .ccrs-project__meta-item span { font-size: 11.8px !important; line-height: 1.34 !important; }
}

@media (max-width: 400px) {
  .ccrs-pp__title { font-size: 32px !important; }
  .ccrs-pp__benefit-copy { font-size: 12px !important; }
  .ccrs-project__info h3 { font-size: 18.5px !important; }
  .ccrs-project__detail p { font-size: 13.3px !important; }
}

@media (max-width: 340px) {
  .ccrs-pp__benefits { grid-template-columns: 1fr !important; }
  .ccrs-project__meta { grid-template-columns: 1fr !important; }
  .ccrs-project__meta-item { border-left: 0 !important; border-top: 1px solid rgba(92,128,139,.24) !important; }
  .ccrs-project__meta-item:first-child { border-top: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ccrs-pp .ccrs-project .ccrs-project__cta > .ccrs-project__cta-arrow { --ccrs-cta-arrow-transition: none !important; }
  .ccrs-project__cta, .ccrs-project__cta::before, .ccrs-pp .ccrs-project .ccrs-project__cta > .ccrs-project__cta-arrow { transition: none !important; }
  .ccrs-project__cta { transition: none !important; }
}


/* ===== v2.9.3 — project-specific source framing =====
   Projects 17–19 use source images that are naturally taller than the standard
   16:9 gallery media. Project 20 now uses a supplied panoramic real-photo pair. Do not force them through the universal desktop crop.
   Their slider gets a taller native frame so more of the real photo is visible,
   with no grey/blurred side fill. */
@media (min-width: 761px) {
  .ccrs-project--17 .ccrs-ba,
  .ccrs-project--18 .ccrs-ba {
    flex: 0 0 auto !important;
    aspect-ratio: 4 / 3 !important;
  }

  .ccrs-project--19 .ccrs-ba {
    flex: 0 0 auto !important;
    aspect-ratio: 5 / 4 !important;
  }

  .ccrs-project--17 .ccrs-ba__img,
  .ccrs-project--18 .ccrs-ba__img,
  .ccrs-project--19 .ccrs-ba__img {
    object-fit: cover !important;
    object-position: 50% 50% !important;
  }
}

/* Keep the established compact mobile slider. The refreshed source files no
   longer contain the artificial side bars, so the stacked 16:9 crop stays clean. */
@media (max-width: 760px) {
  .ccrs-project--17 .ccrs-ba__img,
  .ccrs-project--18 .ccrs-ba__img,
  .ccrs-project--19 .ccrs-ba__img,
  .ccrs-project--20 .ccrs-ba__img {
    object-fit: cover !important;
    object-position: 50% 50% !important;
  }
}


/* ===== v3.0.6 — Method D: lock desktop project media to 1920x800 (12:5) =====
   The listing now treats 1920x800 as the desktop BEFORE/AFTER source standard.
   Project copy has been condensed so the information card fits the natural
   panoramic visual height instead of forcing the slider taller.

   Desktop:
   - exact 12:5 comparison viewport
   - full box is occupied by the image (no contain/letterbox bands)
   - no distortion
   - compact copy is targeted to the natural panoramic row height
   - the metadata strip can absorb a small residual height without stretching the photo

   Stacked <=980px layouts intentionally retain the established 16:9 media block. */
@media (min-width: 981px) {
  .ccrs-project {
    align-items: stretch !important;
  }

  .ccrs-project__visual {
    align-self: stretch !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .ccrs-project .ccrs-ba {
    flex: 0 0 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 12 / 5 !important;
    background: #061019 !important;
  }

  .ccrs-project .ccrs-ba__img {
    object-fit: cover !important;
  }

  /* If a row ever needs a few extra pixels, let the metadata strip absorb them
     instead of creating a blank panel underneath it or stretching the photo. */
  .ccrs-project__meta {
    flex: 1 1 auto !important;
  }

  /* Compact the information card through spacing and copy length, not tiny type. */
  .ccrs-project__info {
    align-self: stretch !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .ccrs-project__number {
    margin-bottom: 8px !important;
  }

  .ccrs-project__info h3 {
    margin-bottom: 6px !important;
  }

  .ccrs-project__location {
    margin-bottom: 6px !important;
  }

  .ccrs-project__details {
    flex: 0 0 auto !important;
    justify-content: flex-start !important;
    margin-bottom: 8px !important;
  }

  .ccrs-project__detail {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }

  .ccrs-project__detail strong {
    margin-bottom: 2px !important;
  }

  .ccrs-project__cta {
    margin-top: auto !important;
  }
}

/* v3.0.6 responsive reset: stacked rows keep the established 16:9 presentation. */
@media (max-width: 980px) {
  .ccrs-project .ccrs-ba {
    flex: 0 0 auto !important;
    aspect-ratio: 16 / 9 !important;
  }

  .ccrs-project .ccrs-ba__img {
    object-fit: cover !important;
  }
}

/* ===== v3.0.7 — compact metadata cells + pending image blanks =====
   v3.0.6 allowed the four metadata cells to flex-grow and absorb any spare
   project-row height. That made PROPERTY TYPE / PROJECT VALUE / SCOPE / DELIVERY
   look oversized on rows whose left copy was taller. Keep the 1920x800 image
   viewport, but let the metadata strip use only the height its content needs. */
@media (min-width: 981px) {
  .ccrs-project__visual {
    align-self: start !important;
    height: auto !important;
  }

  .ccrs-project__meta {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 82px !important;
  }

  .ccrs-project__meta-item {
    height: auto !important;
    min-height: 82px !important;
  }

  .ccrs-ba--empty {
    cursor: default !important;
    background: #061019 !important;
  }
}


/* ===== v3.0.9 — CTA floor alignment + compact Scope copy =====
   Some short left-hand cards were stretching to match the fixed 1920x800 visual
   row, but the anchor's :link/:visited rule still carried margin:0 !important
   from the base CTA reset. That higher-specificity state selector prevented the
   later margin-top:auto rule from pushing the button to the card floor.

   Explicitly bottom-align the CTA in every desktop link state. Scope copy is
   shortened in the project data so the metadata strip consistently stays at its
   intended compact two-line height. */
@media (min-width: 981px) {
  .ccrs-project__cta,
  .ccrs-project__cta:link,
  .ccrs-project__cta:visited,
  .ccrs-project__cta:hover,
  .ccrs-project__cta:focus,
  .ccrs-project__cta:active {
    margin-top: auto !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
  }

  .ccrs-project__meta-item:nth-child(3) span {
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}


/* ===== v3.0.10 — full-page card audit / consistent 1920x800 geometry =====
   The old v2.9.x project-specific rules gave Projects 17–20 smaller paragraph
   type at some desktop widths. That meant visually similar cards could wrap
   differently and create inconsistent CTA spacing / row heights.

   v3.0.10 uses one typography system for every project, compacts all cards
   uniformly as the viewport narrows, and switches to a single-column project
   row before the 12:5 image viewport becomes too shallow to match readable copy.
   The 1920x800 (12:5) image ratio is preserved through this intermediate layout;
   the existing <=980px mobile layout continues to use its established 16:9 rule. */
@media (min-width: 1181px) and (max-width: 1550px) {
  .ccrs-project__detail p {
    font-size: 14.2px !important;
    line-height: 1.38 !important;
  }

  .ccrs-project__detail {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
}

@media (min-width: 1331px) and (max-width: 1380px) {
  .ccrs-project__detail p {
    font-size: 13.5px !important;
    line-height: 1.34 !important;
  }

  .ccrs-project__detail {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  .ccrs-project__info {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
}

/* Below this point a side-by-side 12:5 image becomes too shallow relative to
   readable Problem / Repair / Outcome copy. Stack the two panels instead of
   reintroducing empty space, stretched metadata or cropped imagery. */
@media (min-width: 981px) and (max-width: 1330px) {
  .ccrs-project {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  .ccrs-project__info,
  .ccrs-project__visual {
    width: 100% !important;
    height: auto !important;
    align-self: stretch !important;
  }

  .ccrs-project .ccrs-ba {
    aspect-ratio: 12 / 5 !important;
  }

  .ccrs-project__cta,
  .ccrs-project__cta:link,
  .ccrs-project__cta:visited,
  .ccrs-project__cta:hover,
  .ccrs-project__cta:focus,
  .ccrs-project__cta:active {
    margin-top: 8px !important;
  }
}

/* ===== v3.0.11 — genuine BEFORE-only media + final desktop row equalisation =====
   Newly supplied project photos are real BEFORE images only. Show them cleanly
   without inventing an AFTER side or exposing a non-functional comparison handle.
   Once an AFTER image is added through the plugin settings, the normal slider
   automatically returns.

   Desktop row equalisation: keep the locked 12:5 media viewport, then let the
   compact metadata strip absorb only the small residual height needed to make
   both project panels finish on exactly the same baseline. Rows that already
   matched are visually unchanged because there is no spare height to absorb. */
.ccrs-ba--single {
  cursor: default !important;
  touch-action: auto !important;
}

.ccrs-ba--single .ccrs-ba__single-img {
  z-index: 2 !important;
}

@media (min-width: 1331px) {
  .ccrs-project__visual {
    align-self: stretch !important;
    height: auto !important;
  }

  .ccrs-project__meta {
    flex: 1 1 auto !important;
  }

  .ccrs-project__meta-item {
    height: 100% !important;
  }
}

/* ===== v3.0.15 — compact metadata lock =====
   v3.0.11 reintroduced flex-grow on desktop metadata cells to force both sides
   of every row to the same baseline. On content-heavy rows this made PROPERTY
   TYPE / PROJECT VALUE / SCOPE / DELIVERY several hundred pixels tall.
   Keep the image at the locked 1920x800 ratio and keep metadata at its normal
   compact height. Project 23 copy is also shortened to the same density as the
   established project cards so the row remains balanced without giant cells. */
@media (min-width: 1331px) {
  .ccrs-project--23 .ccrs-project__visual {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .ccrs-project--23 .ccrs-project__meta {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 82px !important;
  }
  .ccrs-project--23 .ccrs-project__meta-item {
    height: auto !important;
    min-height: 82px !important;
  }
}


/* ===== Project 02 → Project 16 media reassignment + CTA arrow =====
   Project 02 is intentionally image-free and its crack-repair BEFORE photo now
   belongs to Project 16. The CSS arrow is absolutely centred within the button.
   v3.2.4 moves it horizontally on hover/focus while preserving vertical alignment. */

/* v3.2.2: listing cards use the established template and shared renderer.
   Full-frame imagery remains available on individual project pages only. */
.ccrs-new-case .ccrs-ba.ccrs-ba--native{aspect-ratio:var(--ccrs-image-ratio)!important;height:auto!important;min-height:0!important;flex:0 0 auto!important;background:#061019!important}
.ccrs-new-case .ccrs-ba.ccrs-ba--native .ccrs-ba__img{object-fit:contain!important;object-position:center!important}
.ccrs-new-case .ccrs-ba.ccrs-ba--native{--green:#09ea9f;--heading:proximaextrabold,"Proxima Nova",Arial,sans-serif}
@media(min-width:1331px){
  .ccrs-project--new .ccrs-project__visual{align-self:stretch!important;height:100%!important;min-height:100%!important}
  .ccrs-project--new .ccrs-ba{flex:1 1 auto!important;height:auto!important;min-height:0!important}
  .ccrs-project--new .ccrs-project__meta{flex:0 0 88px!important;height:88px!important;min-height:88px!important}
  .ccrs-project--new .ccrs-project__meta-item{height:88px!important;min-height:88px!important}
}

/* ===== v3.11 — Project 02 compact metadata strip =====
   Keep Project 02's four listing metadata cells at the same compact height as
   the established reference cards instead of allowing the strip to absorb the
   taller information-card row height. */
@media (min-width: 1331px) {
  .ccrs-project--2 .ccrs-project__visual {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .ccrs-project--2 .ccrs-project__meta {
    flex: 0 0 88px !important;
    height: 88px !important;
    min-height: 88px !important;
  }
  .ccrs-project--2 .ccrs-project__meta-item {
    height: 88px !important;
    min-height: 88px !important;
  }
}

/* 3.12.6 new bridge profiles: no portfolio images until genuine wide photographs are supplied. */
.ccrs-pp .ccrs-pp-profile-note{display:inline-block!important;align-self:flex-start!important;margin:2px 0 14px!important;padding:7px 10px!important;border:1px solid rgba(9,234,159,.42)!important;border-radius:4px!important;color:#9ef8d7!important;font-family:var(--heading,Arial,sans-serif)!important;font-size:10.5px!important;font-weight:800!important;letter-spacing:.04em!important;line-height:1.5!important}
.ccrs-pp .ccrs-pp-no-gallery-photo{position:relative!important;display:flex!important;flex:1 1 auto!important;min-height:340px!important;aspect-ratio:16/9!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;overflow:hidden!important;padding:clamp(24px,4vw,58px)!important;background:radial-gradient(circle at 80% 25%,rgba(9,234,159,.13),transparent 34%),linear-gradient(126deg,#051726 0%,#071e2c 46%,#030e18 100%)!important;border-bottom:1px solid rgba(9,234,159,.27)!important;color:#fff!important;cursor:default!important;touch-action:auto!important}
.ccrs-pp .ccrs-pp-no-gallery-photo:before{content:""!important;position:absolute!important;top:-40%;right:15%;width:30%!important;height:190%!important;border-left:1px solid rgba(9,234,159,.11)!important;border-right:1px solid rgba(9,234,159,.11)!important;transform:rotate(32deg)!important;pointer-events:none!important}
.ccrs-pp .ccrs-pp-no-gallery-photo__eyebrow{font-family:var(--heading,Arial,sans-serif)!important;color:#09ea9f!important;letter-spacing:.12em!important;font-size:12px!important;font-weight:800!important}
.ccrs-pp .ccrs-pp-no-gallery-photo__rule{display:block!important;width:65px!important;height:3px!important;background:linear-gradient(90deg,#09ea9f,#139dff)!important;margin:20px 0!important}
.ccrs-pp .ccrs-pp-no-gallery-photo strong{position:relative!important;max-width:900px!important;font-family:var(--heading,Arial,sans-serif)!important;font-weight:900!important;color:#fff!important;font-size:clamp(24px,2.4vw,38px)!important;line-height:1.18!important;text-transform:uppercase!important}
.ccrs-pp .ccrs-pp-no-gallery-photo p{position:relative!important;max-width:660px!important;color:#d6e8ed!important;font-size:15px!important;line-height:1.5!important;margin:15px 0 20px!important}
.ccrs-pp .ccrs-pp-no-gallery-photo a{position:relative!important;display:inline-block!important;color:#09ea9f!important;font-family:var(--heading,Arial,sans-serif)!important;font-weight:800!important;font-size:12px!important;text-decoration:underline!important;text-underline-offset:4px!important}
@media(max-width:767px){.ccrs-pp .ccrs-pp-no-gallery-photo{min-height:260px!important;aspect-ratio:auto!important;padding:28px 24px!important}.ccrs-pp .ccrs-pp-no-gallery-photo strong{font-size:24px!important}.ccrs-pp .ccrs-pp-no-gallery-photo p{font-size:14px!important}}

/* v3.12.12: All project entries now share the established card layout.
   There is no custom example-card footer, equal-width grid, or separate section
   heading.  Four facts use the same weighted columns and type as Projects 1–47.
   Keep the earlier responsive rules intact. */
