/**
 * CAM Realty About Us - WPBakery elements.
 *
 * Palette taken from the approved design: indigo #281e5d, orange-red #f54239,
 * cream #fcfdf9, ink #302c2b, yellow #fcbc05.
 * Typography uses the site stack (--rh-font-heading / --rh-font-body) so the
 * page stays consistent with the rest of the site.
 */

.cam-about {
  --cam-indigo: #281e5d;
  --cam-orange: #f54239;
  --cam-ink: #302c2b;
  --cam-cream: #fcfdf9;
  --cam-yellow: #fcbc05;
  --cam-muted: #6f6c6a;
  --cam-line: #e7e4dd;
  --cam-radius: 18px;

  font-family: var(--rh-font-body, "Poppins", sans-serif);
  color: var(--cam-ink);
  padding: 48px 0;
}

.cam-about *,
.cam-about *::before,
.cam-about *::after {
  box-sizing: border-box;
}
.cam-about.cam-section.cam-block{
  padding-bottom: 0;

}

.cam-about .cam-container {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0px 24px;
}

.cam-about .cam-section {
  padding: 86px 0;
}

/* Sections whose background is driven by the scroll position (see
   js/cam-about.js). Text turns white so it stays readable on any point of
   the blue -> red blend; cards keep their own white surface. */
.cam-section--scroll-bg {
  color: #fff;
}

.cam-section--scroll-bg .cam-title,
.cam-section--scroll-bg .cam-eyebrow {
  color: #fff;
}

.cam-section--scroll-bg .cam-intro,
.cam-section--scroll-bg .cam-team__note {
  color: rgba(255, 255, 255, 0.8);
}

.cam-section--scroll-bg .cam-ceo__quote,
.cam-section--scroll-bg .cam-ceo__name {
  font-size: 24px;
  color: #fff;
}

.cam-section--scroll-bg .cam-ceo__role {
  color: rgba(255, 255, 255, 0.8);
}

/* Consistent gap below every section (hero included), so stacked elements
   always have the same breathing room regardless of their background. */
/* .cam-about.cam-section,
.cam-about.cam-hero {
  margin-bottom: 18px;
} */

/* Sections sharing one scroll background sit flush, otherwise the blend
   would break into stripes at each 18px gap. */
.cam-section--scroll-bg.cam-group-mid {
  margin-bottom: 0;
}

/* No trailing gap before the footer. */
.cam-section:last-child,
.cam-hero:last-child,
.wpb_wrapper > .cam-about:last-child {
  margin-bottom: 0;
}

.cam-about .cam-section--cream {
  background: var(--cam-cream);
}

.cam-about .cam-section--indigo {
  background: var(--cam-indigo);
  color: #fff;
}

.cam-about .cam-section--indigo .cam-title,
.cam-about .cam-section--indigo .cam-eyebrow {
  color: #fff;
}

.cam-about .cam-section--indigo .cam-intro {
  color: rgba(255, 255, 255, 0.75);
}

/* -------------------------------------------------------------------------
 * Shared heading block
 * ---------------------------------------------------------------------- */
.cam-about.cam-team .cam-head {
  max-width: 45%;
  /* margin: 0 auto 48px; */
}

.cam-about .cam-head--center {
  text-align: center;
}

.cam-about .cam-head--left {
  text-align: left;
  margin-left: 0;
}

.cam-about .cam-head--right {
  text-align: right;
  margin-left: auto;
  margin-right: 0;
}

.cam-about .cam-eyebrow {
  display: inline-block;
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--cam-orange);
}

.cam-about .cam-title {
  margin: 0 0 16px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: clamp(30px, 4vw, 46px);
  color: var(--cam-indigo);
}

.cam-about .cam-intro {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-about .cam-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border: 0;
  border-radius: 999px;
  background: var(--cam-orange);
  color: #fff !important;
  font-family: inherit;
  font-size: 20px;
  font-weight: 600;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.cam-about .cam-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(245, 66, 57, 0.28);
}

.cam-about .cam-btn--ghost {
  background: transparent;
  border: 1.5px solid currentColor;
  color: var(--cam-indigo) !important;
}

/* -------------------------------------------------------------------------
 * Hero
 * ---------------------------------------------------------------------- */
.cam-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 120px 0 90px;
  background-color: var(--cam-indigo);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}

.cam-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(40, 30, 93, 0.92) 0%, rgba(40, 30, 93, 0.55) 60%, rgba(40, 30, 93, 0.35) 100%);
}

.cam-hero .cam-container {
  position: relative;
  z-index: 2;
}

.cam-hero .cam-eyebrow {
  color: var(--cam-yellow);
}

.cam-hero .cam-title {
  max-width: 720px;
  color: #fff;
  font-size: clamp(36px, 5.5vw, 62px);
}

.cam-hero .cam-intro {
  max-width: 620px;
  color: rgb(255, 255, 255);
  font-size: 22px;
}

.cam-hero .cam-hero__actions {
  margin-top: 30px;
}

/* Two-column hero when a foreground image is supplied. */
.cam-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

.cam-hero--has-media .cam-hero__inner {
  grid-template-columns: 1.05fr 0.95fr;
}

.cam-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  box-shadow: 0 28px 60px rgba(0, 0, 17, 0.35);
}

/* -------------------------------------------------------------------------
 * Story intro + highlight cards
 * ---------------------------------------------------------------------- */
.cam-story__lead {
  max-width: 820px;
  margin: 0 auto;
  font-size: 1.3em;
  color: var(--cam-ink);
}

.cam-story__lead p {
  margin: 0 0 18px;
}

.cam-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 46px;
}

.cam-highlight {
  display: flex;
  flex-direction: column;
  /* border: 1px solid var(--cam-line); */
  border-radius: var(--cam-radius);
  background: #fff;
  overflow: hidden;
  padding: 28px;
}

.cam-highlight__img {
  display: block;
  width: 100%;
  height: 170px;
  object-fit: contain;
}

.cam-highlight__body {
  padding: 26px 26px 28px;
}

.cam-highlight__label {
  display: block;
  margin: 0 0 10px;
  text-align: center;
  font-size: 23px;
  font-weight: 700;
  text-transform: uppercase;
  color: rgb(40, 30, 93);
}

.cam-highlight__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-story__cta {
  margin-top: 34px;
}

/* -------------------------------------------------------------------------
 * Text & images block
 * ---------------------------------------------------------------------- */
.cam-block__content {
  /* max-width: 840px; */
  /* margin-bottom: 44px; */
  font-size: 1.3em;
  color: var(--cam-muted);
}

.cam-block .cam-head--center + .cam-block__content {
  margin-left: auto;
  margin-right: auto;
}

.cam-block__content p:last-child {
  margin-bottom: 0;
}

.cam-block__media {
  display: grid;
  gap: 22px;
}

.cam-block__media--2 {
  grid-template-columns: repeat(2, 1fr);
}

.cam-block__media--3 {
  grid-template-columns: repeat(3, 1fr);
}

.cam-block__media--4 {
  grid-template-columns: repeat(4, 1fr);
}

.cam-block__item {
  margin: 0;
}

.cam-about .cam-block__item img{
  max-height: 330px;
}

.cam-block__item img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
}

.cam-block__item figcaption {
  margin-top: 12px;
  font-size: 24px;
  text-align: center;
  /* color: var(--cam-muted); */
}

/* -------------------------------------------------------------------------
 * CEO message
 * ---------------------------------------------------------------------- */
.cam-ceo__grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 56px;
  align-items: center;
}

.cam-ceo__photo {
  width: 100%;
  border-radius: var(--cam-radius);
  overflow: hidden;
}

.cam-ceo__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cam-ceo__quote p{
  margin: 0 0 28px;
  /* font-family: var(--rh-font-heading, Georgia, serif); */
  font-size: 22px;
  font-weight: 400;
  color: var(--cam-indigo);
}

.cam-ceo__name {
  font-size: 24px;
  margin: 0;
  font-weight: 700;
  color: var(--cam-ink);
}

.cam-ceo__role {
  font-style: italic;
  margin: 4px 0 0;
  font-size: 22px;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * Team
 *
 * Layout: section grid holds the intro in the left column; the card grid
 * spans both columns and is shifted into the right half.
 * Card:   portrait box (flips) + fixed PROFILE sidebar + CONTACT NOW below.
 * ---------------------------------------------------------------------- */
.cam-team {
  position: relative;
}

/* Design gradient; the scroll blend (when enabled) paints over it. */
.cam-team:not(.cam-section--scroll-bg) {
  background: linear-gradient(155deg, #30215f 0%, #59284f 48%, #bd3047 100%);
  color: #fff;
}

/* ---------- section grid ---------- */

.cam-team .cam-head {
  max-width: 650px;
  margin: 0 0 60px;
  text-align: left;
}

/* Masonry: two columns, every second card pulled up. */
.cam-team__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 55px;
  row-gap: 100px;
  align-items: start;
}

.cam-member:nth-child(even) {
  margin-top: -180px;
}

.cam-team__note {
  margin: 34px 0 0;
  text-align: center;
  color: var(--cam-muted);
}

/* ---------- card ---------- */

.cam-member {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;
  min-width: 0;
  align-self: start;
  background: transparent;
}

.cam-member__flip {
  position: relative;
  width: 100%;
  height: clamp(420px, 42vw, 580px);
  perspective: 1200px;
}

.cam-member__inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

/* Faces leave the right 13% free for the sidebar. */
.cam-member__face {
  position: absolute;
  inset: 0 13% 0 0;
  overflow: hidden;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transition: transform 0.8s ease;
}

/* ---------- front ---------- */

.cam-member__face--front {
  transform: rotateY(0deg);
  background: #fff;
}

.cam-member__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.cam-member__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 50%,
    rgba(45, 32, 95, 0.12) 65%,
    rgba(45, 32, 95, 0.98) 100%
  );
}

.cam-member__body {
  position: absolute;
  left: 7%;
  right: 5%;
  bottom: 28px;
  color: #fff;
}

.cam-member__name {
  margin: 0 0 5px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: clamp(19px, 1.8vw, 28px);
  text-transform: uppercase;
  color: #fff;
}

.cam-member__role {
  margin: 0;
  font-size: clamp(14px, 1.5vw, 22px);
  color: #fff;
}

/* ---------- back ---------- */

.cam-member__face--back {
  padding: 25px 20px;
  overflow-y: auto;
  background: #fff;
  color: #2d205f;
  transform: rotateY(180deg);
}

.cam-member__face--back .cam-member__name {
  margin: 0 0 6px;
  font-size: clamp(20px, 2vw, 29px);
  text-transform: uppercase;
  color: #2d205f;
}
.cam-member-title__feedback{
  color: #2d205f;
  font-weight: 700;
  margin-top: 30px;
}

.cam-member__face--back .cam-member__role {
  margin: 0 0 18px;
  color: #fa3e38;
  font-size: clamp(14px, 1.5vw, 20px);
}

.cam-member__desc {
  margin: 0 0 18px;
  font-size: clamp(13px, 1.3vw, 17px);
  color: #2d205f;
}

.cam-member__meta {
  list-style: none;
  padding: 0;
  margin: 0;
}

.cam-member__meta li {
  margin: 10px 0;
  font-size: clamp(12px, 1.2vw, 16px);
  overflow-wrap: anywhere;
  color: #2d205f;
}

.cam-member__meta strong {
  font-weight: 700;
}

.cam-member__meta a {
  color: #2d205f;
}

.cam-member__feedback {
  margin-top: 20px;
  padding-left: 12px;
  border-left: 3px solid #fa3e38;
}

.cam-member__feedback h4 {
  margin: 0 0 8px;
  font-size: 17px;
  color: #2d205f;
}

.cam-member__feedback p {
  margin: 0;
  font-size: 14px;
  color: #2d205f;
}

.cam-member__stars {
  margin-top: 9px;
  color: #fa3e38;
  font-size: 21px;
}

.cam-member__stars span {
  color: #2d205f;
  font-size: 13px;
  font-style: italic;
  margin-left: 4px;
}

/* ---------- flip states ---------- */

@media (hover: hover) and (pointer: fine) {
  .cam-member--flip:not(.is-suppressed) .cam-member__flip:hover .cam-member__face--front {
    transform: rotateY(-180deg);
  }

  .cam-member--flip:not(.is-suppressed) .cam-member__flip:hover .cam-member__face--back {
    transform: rotateY(0deg);
  }
}

.cam-member--flip.is-open .cam-member__face--front {
  transform: rotateY(-180deg);
}

.cam-member--flip.is-open .cam-member__face--back {
  transform: rotateY(0deg);
}

/* ---------- fixed PROFILE sidebar ---------- */

.cam-member__label {
  text-transform: uppercase;
  position: absolute;
  top: 0;
  right: 0;
  width: 13%;
  height: clamp(420px, 42vw, 580px);
  display: flex;
  justify-content: center;
  align-items: center;
  background: #2d205f;
  color: #fff;
  writing-mode: vertical-rl;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-weight: 700;
  font-size: clamp(15px, 1.5vw, 22px);
  z-index: 2;
}

/* ---------- contact button: in flow, under the portrait ---------- */

.cam-member__cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 65%;
  height: 64px;
  margin-left: auto;
  flex-shrink: 0;
  background: #fa3e38;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-size: clamp(13px, 1.4vw, 19px);
  z-index: 3;
  transition: background 0.3s ease;
}

.cam-member__cta:hover,
.cam-member__cta:focus {
  background: #dc302c;
  color: #fff;
  text-decoration: none;
}

/* ---------- tablet ---------- */

@media (max-width: 900px) {
  .cam-team .cam-head {
    max-width: 650px;
    margin-bottom: 45px;
  }

  .cam-team__grid {
    column-gap: 25px;
    row-gap: 65px;
  }

  .cam-member:nth-child(even) {
    margin-top: -90px;
  }

  .cam-member__flip,
  .cam-member__label {
  text-transform: uppercase;
    height: 430px;
  }

  .cam-member__face--back {
    padding: 18px 13px;
  }

  .cam-member__face--back .cam-member__role {
    margin-bottom: 12px;
  }
}

/* ---------- mobile ---------- */

@media (max-width: 560px) {
  .cam-team .cam-head {
    margin-bottom: 35px;
  }

  .cam-team__grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 35px;
  }

  .cam-member:nth-child(even) {
    margin-top: 0;
  }

  .cam-member__flip,
  .cam-member__label {
  text-transform: uppercase;
    height: 460px;
  }

  .cam-member__name {
    font-size: 24px;
  }

  .cam-member__role {
    font-size: 16px;
  }

  .cam-member__face--back {
    padding: 22px 17px;
  }

  .cam-member__face--back .cam-member__name {
    font-size: 23px;
  }

  .cam-member__face--back .cam-member__role {
    font-size: 15px;
  }

  .cam-member__desc {
    font-size: 13px;
  }

  .cam-member__meta li {
    font-size: 12px;
  }

  .cam-member__label {
  text-transform: uppercase;
    font-size: 15px;
  }

  .cam-member__cta {
    height: 55px;
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cam-member__face {
    transition: none;
  }
}

.cam-section--scroll-bg .cam-ceo__quote,
.cam-section--scroll-bg .cam-ceo__name {
  font-size: 24px;
  color: #fff;
}

.cam-section--scroll-bg .cam-ceo__role {
  color: rgba(255, 255, 255, 0.8);
}

/* Consistent gap below every section (hero included), so stacked elements
   always have the same breathing room regardless of their background. */
/* .cam-about.cam-section,
.cam-about.cam-hero {
  margin-bottom: 18px;
} */

/* Sections sharing one scroll background sit flush, otherwise the blend
   would break into stripes at each 18px gap. */
.cam-section--scroll-bg.cam-group-mid {
  margin-bottom: 0;
}

/* No trailing gap before the footer. */
.cam-section:last-child,
.cam-hero:last-child,
.wpb_wrapper > .cam-about:last-child {
  margin-bottom: 0;
}

.cam-about .cam-section--cream {
  background: var(--cam-cream);
}

.cam-about .cam-section--indigo {
  background: var(--cam-indigo);
  color: #fff;
}

.cam-about .cam-section--indigo .cam-title,
.cam-about .cam-section--indigo .cam-eyebrow {
  color: #fff;
}

.cam-about .cam-section--indigo .cam-intro {
  color: rgba(255, 255, 255, 0.75);
}

/* -------------------------------------------------------------------------
 * Shared heading block
 * ---------------------------------------------------------------------- */
.cam-about .cam-head {
  max-width: 90%;
  margin: 0 auto 48px;
}

.cam-about .cam-head--center {
  text-align: center;
}

.cam-about .cam-head--left {
  text-align: left;
  margin-left: 0;
}

.cam-about .cam-head--right {
  text-align: right;
  margin-left: auto;
  margin-right: 0;
}

.cam-about .cam-eyebrow {
  display: inline-block;
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--cam-orange);
}

.cam-about .cam-title {
  margin: 0 0 16px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: clamp(30px, 4vw, 46px);
  color: var(--cam-indigo);
}

.cam-about .cam-intro {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-about .cam-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border: 0;
  border-radius: 999px;
  background: var(--cam-orange);
  color: #fff !important;
  font-family: inherit;
  font-size: 20px;
  font-weight: 600;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.cam-about .cam-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(245, 66, 57, 0.28);
}

.cam-about .cam-btn--ghost {
  background: transparent;
  border: 1.5px solid currentColor;
  color: var(--cam-indigo) !important;
}

/* -------------------------------------------------------------------------
 * Hero
 * ---------------------------------------------------------------------- */
.cam-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 120px 0 90px;
  background-color: var(--cam-indigo);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}

.cam-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(40, 30, 93, 0.92) 0%, rgba(40, 30, 93, 0.55) 60%, rgba(40, 30, 93, 0.35) 100%);
}

.cam-hero .cam-container {
  position: relative;
  z-index: 2;
}

.cam-hero .cam-eyebrow {
  color: var(--cam-yellow);
}

.cam-hero .cam-title {
  max-width: 720px;
  color: #fff;
  font-size: clamp(36px, 5.5vw, 62px);
}

.cam-hero .cam-intro {
  max-width: 620px;
  color: rgb(255, 255, 255);
  font-size: 22px;
}

.cam-hero .cam-hero__actions {
  margin-top: 30px;
}

/* Two-column hero when a foreground image is supplied. */
.cam-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

.cam-hero--has-media .cam-hero__inner {
  grid-template-columns: 1.05fr 0.95fr;
}

.cam-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  box-shadow: 0 28px 60px rgba(0, 0, 17, 0.35);
}

/* -------------------------------------------------------------------------
 * Story intro + highlight cards
 * ---------------------------------------------------------------------- */
.cam-story__lead {
  max-width: 820px;
  margin: 0 auto;
  font-size: 1.3em;
  color: var(--cam-ink);
}

.cam-story__lead p {
  margin: 0 0 18px;
}

.cam-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 46px;
}

.cam-highlight {
  display: flex;
  flex-direction: column;
  /* border: 1px solid var(--cam-line); */
  border-radius: var(--cam-radius);
  background: #fff;
  overflow: hidden;
  padding: 28px;
}

.cam-highlight__img {
  display: block;
  width: 100%;
  height: 170px;
  object-fit: contain;
}

.cam-highlight__body {
  padding: 26px 26px 28px;
}

.cam-highlight__label {
  display: block;
  margin: 0 0 10px;
  text-align: center;
  font-size: 23px;
  font-weight: 700;
  text-transform: uppercase;
  color: rgb(40, 30, 93);
}

.cam-highlight__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-story__cta {
  margin-top: 34px;
}

/* -------------------------------------------------------------------------
 * Text & images block
 * ---------------------------------------------------------------------- */
.cam-block__content {
  /* max-width: 840px; */
  /* margin-bottom: 44px; */
  font-size: 1.3em;
  color: var(--cam-muted);
}

.cam-block .cam-head--center + .cam-block__content {
  margin-left: auto;
  margin-right: auto;
}

.cam-block__content p:last-child {
  margin-bottom: 0;
}

.cam-block__media {
  display: grid;
  gap: 22px;
  margin-bottom: 38px;
}

.cam-block__media--2 {
  grid-template-columns: repeat(2, 1fr);
}

.cam-block__media--3 {
  grid-template-columns: repeat(3, 1fr);
}

.cam-block__media--4 {
  grid-template-columns: repeat(4, 1fr);
}

.cam-block__item {
  margin: 0;
}

.cam-about .cam-block__item img{
  max-height: 330px;
}

.cam-block__item img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
}

.cam-block__item figcaption {
  margin-top: 12px;
  font-size: 24px;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * CEO message
 * ---------------------------------------------------------------------- */
.cam-ceo__grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 56px;
  align-items: center;
}

.cam-ceo__photo {
  width: 100%;
  border-radius: var(--cam-radius);
  overflow: hidden;
}

.cam-ceo__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cam-ceo__quote {
  margin: 0 0 28px;
  /* font-family: var(--rh-font-heading, Georgia, serif); */
  font-size: 22px;
  font-weight: 400;
  color: var(--cam-indigo);
}

.cam-ceo__name {
  font-size: 24px;
  margin: 0;
  font-weight: 700;
  color: var(--cam-ink);
}

.cam-ceo__role {
  font-style: italic;
  margin: 4px 0 0;
  font-size: 22px;
  color: var(--cam-muted);
}


.cam-section--scroll-bg .cam-ceo__quote,
.cam-section--scroll-bg .cam-ceo__name {
  font-size: 24px;
  color: #fff;
}

.cam-section--scroll-bg .cam-ceo__role {
  color: rgba(255, 255, 255, 0.8);
}

/* Consistent gap below every section (hero included), so stacked elements
   always have the same breathing room regardless of their background. */
/* .cam-about.cam-section,
.cam-about.cam-hero {
  margin-bottom: 18px;
} */

/* Sections sharing one scroll background sit flush, otherwise the blend
   would break into stripes at each 18px gap. */
.cam-section--scroll-bg.cam-group-mid {
  margin-bottom: 0;
}

/* No trailing gap before the footer. */
.cam-section:last-child,
.cam-hero:last-child,
.wpb_wrapper > .cam-about:last-child {
  margin-bottom: 0;
}

.cam-about .cam-section--cream {
  background: var(--cam-cream);
}

.cam-about .cam-section--indigo {
  background: var(--cam-indigo);
  color: #fff;
}

.cam-about .cam-section--indigo .cam-title,
.cam-about .cam-section--indigo .cam-eyebrow {
  color: #fff;
}

.cam-about .cam-section--indigo .cam-intro {
  color: rgba(255, 255, 255, 0.75);
}

/* -------------------------------------------------------------------------
 * Shared heading block
 * ---------------------------------------------------------------------- */
.cam-about .cam-head {
  /* max-width: 760px; */
  margin: 0 auto 48px;
}

.cam-about .cam-head--center {
  text-align: center;
}

.cam-about .cam-head--left {
  text-align: left;
  margin-left: 0;
}

.cam-about .cam-head--right {
  text-align: right;
  margin-left: auto;
  margin-right: 0;
}

.cam-about .cam-eyebrow {
  display: inline-block;
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--cam-orange);
}

.cam-about .cam-title {
  margin: 0 0 16px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: clamp(30px, 4vw, 46px);
  color: var(--cam-indigo);
}

.cam-about .cam-intro {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-about .cam-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border: 0;
  border-radius: 999px;
  background: var(--cam-orange);
  color: #fff !important;
  font-family: inherit;
  font-size: 20px;
  font-weight: 600;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.cam-about .cam-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(245, 66, 57, 0.28);
}

.cam-about .cam-btn--ghost {
  background: transparent;
  border: 1.5px solid currentColor;
  color: var(--cam-indigo) !important;
}

/* -------------------------------------------------------------------------
 * Hero
 * ---------------------------------------------------------------------- */
.cam-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 120px 0 90px;
  background-color: var(--cam-indigo);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}

.cam-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(40, 30, 93, 0.92) 0%, rgba(40, 30, 93, 0.55) 60%, rgba(40, 30, 93, 0.35) 100%);
}

.cam-hero .cam-container {
  position: relative;
  z-index: 2;
}

.cam-hero .cam-eyebrow {
  color: var(--cam-yellow);
}

.cam-hero .cam-title {
  max-width: 720px;
  color: #fff;
  font-size: clamp(36px, 5.5vw, 62px);
}

.cam-hero .cam-intro {
  max-width: 620px;
  color: #fff;
  font-size: 22px;
}

.cam-hero .cam-hero__actions {
  margin-top: 30px;
}

/* Two-column hero when a foreground image is supplied. */
.cam-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

.cam-hero--has-media .cam-hero__inner {
  grid-template-columns: 1.05fr 0.95fr;
}

.cam-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  box-shadow: 0 28px 60px rgba(0, 0, 17, 0.35);
}

/* -------------------------------------------------------------------------
 * Story intro + highlight cards
 * ---------------------------------------------------------------------- */
.cam-story__lead {
  max-width: 820px;
  margin: 0 auto;
  font-size: 1.3em;
  color: var(--cam-ink);
}

.cam-story__lead p {
  margin: 0 0 18px;
}

.cam-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 46px;
}

.cam-highlight {
  display: flex;
  flex-direction: column;
  /* border: 1px solid var(--cam-line); */
  border-radius: var(--cam-radius);
  background: #fff;
  overflow: hidden;
  padding: 28px;
}

.cam-highlight__img {
  display: block;
  width: 100%;
  height: 170px;
  object-fit: contain;
}

.cam-highlight__body {
  padding: 26px 26px 28px;
}

.cam-highlight__label {
  display: block;
  margin: 0 0 10px;
  text-align: center;
  font-size: 23px;
  font-weight: 700;
  text-transform: uppercase;
  color: rgb(40, 30, 93);
}

.cam-highlight__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-story__cta {
  margin-top: 34px;
}

/* -------------------------------------------------------------------------
 * Text & images block
 * ---------------------------------------------------------------------- */
.cam-block__content {
  /* max-width: 840px; */
  /* margin-bottom: 44px; */
  font-size: 1.3em;
  color: var(--cam-muted);
}

.cam-block .cam-head--center + .cam-block__content {
  margin-left: auto;
  margin-right: auto;
}

.cam-block__content p:last-child {
  margin-bottom: 0;
}

.cam-block__media {
  display: grid;
  gap: 22px;
}

.cam-block__media--2 {
  grid-template-columns: repeat(2, 1fr);
}

.cam-block__media--3 {
  grid-template-columns: repeat(3, 1fr);
}

.cam-block__media--4 {
  grid-template-columns: repeat(4, 1fr);
}

.cam-block__item {
  margin: 0;
}

.cam-about .cam-block__item img{
  max-height: 330px;
}

.cam-block__item img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
}

.cam-block__item figcaption {
  margin-top: 12px;
  font-size: 24px;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * CEO message
 * ---------------------------------------------------------------------- */
.cam-ceo__grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 56px;
  align-items: center;
}

.cam-ceo__photo {
  width: 100%;
  border-radius: var(--cam-radius);
  overflow: hidden;
}

.cam-ceo__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cam-ceo__quote {
  margin: 0 0 28px;
  /* font-family: var(--rh-font-heading, Georgia, serif); */
  font-size: 22px;
  font-weight: 400;
  color: var(--cam-indigo);
}

.cam-ceo__name {
  font-size: 24px;
  margin: 0;
  font-weight: 700;
  color: var(--cam-ink);
}

.cam-ceo__role {
  font-style: italic;
  margin: 4px 0 0;
  font-size: 22px;
  color: var(--cam-muted);
}

.cam-section--scroll-bg .cam-ceo__quote,
.cam-section--scroll-bg .cam-ceo__name {
  font-size: 24px;
  color: #fff;
}

.cam-section--scroll-bg .cam-ceo__role {
  color: rgba(255, 255, 255, 0.8);
}

/* Consistent gap below every section (hero included), so stacked elements
   always have the same breathing room regardless of their background. */
/* .cam-about.cam-section,
.cam-about.cam-hero {
  margin-bottom: 18px;
} */

/* Sections sharing one scroll background sit flush, otherwise the blend
   would break into stripes at each 18px gap. */
.cam-section--scroll-bg.cam-group-mid {
  margin-bottom: 0;
}

/* No trailing gap before the footer. */
.cam-section:last-child,
.cam-hero:last-child,
.wpb_wrapper > .cam-about:last-child {
  margin-bottom: 0;
}

.cam-about .cam-section--cream {
  background: var(--cam-cream);
}

.cam-about .cam-section--indigo {
  background: var(--cam-indigo);
  color: #fff;
}

.cam-about .cam-section--indigo .cam-title,
.cam-about .cam-section--indigo .cam-eyebrow {
  color: #fff;
}

.cam-about .cam-section--indigo .cam-intro {
  color: rgba(255, 255, 255, 0.75);
}

/* -------------------------------------------------------------------------
 * Shared heading block
 * ---------------------------------------------------------------------- */
.cam-about .cam-head {
  /* max-width: 760px; */
  margin: 0 auto 48px;
}

.cam-about .cam-head--center {
  text-align: center;
}

.cam-about .cam-head--left {
  text-align: left;
  margin-left: 0;
}

.cam-about .cam-head--right {
  text-align: right;
  margin-left: auto;
  margin-right: 0;
}

.cam-about .cam-eyebrow {
  display: inline-block;
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--cam-orange);
}

.cam-about .cam-title {
  margin: 0 0 16px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: clamp(30px, 4vw, 46px);
  color: var(--cam-indigo);
}

.cam-about .cam-intro {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-about .cam-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border: 0;
  border-radius: 999px;
  background: var(--cam-orange);
  color: #fff !important;
  font-family: inherit;
  font-size: 20px;
  font-weight: 600;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.cam-about .cam-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(245, 66, 57, 0.28);
}

.cam-about .cam-btn--ghost {
  background: transparent;
  border: 1.5px solid currentColor;
  color: var(--cam-indigo) !important;
}

/* -------------------------------------------------------------------------
 * Hero
 * ---------------------------------------------------------------------- */
.cam-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 120px 0 90px;
  background-color: var(--cam-indigo);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}

.cam-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(40, 30, 93, 0.92) 0%, rgba(40, 30, 93, 0.55) 60%, rgba(40, 30, 93, 0.35) 100%);
}

.cam-hero .cam-container {
  position: relative;
  z-index: 2;
}

.cam-hero .cam-eyebrow {
  color: var(--cam-yellow);
}

.cam-hero .cam-title {
  max-width: 720px;
  color: #fff;
  font-size: clamp(36px, 5.5vw, 62px);
}

.cam-hero .cam-intro {
  max-width: 620px;
  color: #fff;
  font-size: 22px;
}

.cam-hero .cam-hero__actions {
  margin-top: 30px;
}

/* Two-column hero when a foreground image is supplied. */
.cam-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

.cam-hero--has-media .cam-hero__inner {
  grid-template-columns: 1.05fr 0.95fr;
}

.cam-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  box-shadow: 0 28px 60px rgba(0, 0, 17, 0.35);
}

/* -------------------------------------------------------------------------
 * Story intro + highlight cards
 * ---------------------------------------------------------------------- */
.cam-story__lead {
  max-width: 820px;
  margin: 0 auto;
  font-size: 1.3em;
  color: var(--cam-ink);
}

.cam-story__lead p {
  margin: 0 0 18px;
}

.cam-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 46px;
}

.cam-highlight {
  display: flex;
  flex-direction: column;
  /* border: 1px solid var(--cam-line); */
  border-radius: var(--cam-radius);
  background: #fff;
  overflow: hidden;
  padding: 28px;
}

.cam-highlight__img {
  display: block;
  width: 100%;
  height: 170px;
  object-fit: contain;
}

.cam-highlight__body {
  padding: 26px 26px 28px;
}

.cam-highlight__label {
  display: block;
  margin: 0 0 10px;
  text-align: center;
  font-size: 23px;
  font-weight: 700;
  text-transform: uppercase;
  color: rgb(40, 30, 93);
}

.cam-highlight__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-story__cta {
  margin-top: 34px;
}

/* -------------------------------------------------------------------------
 * Text & images block
 * ---------------------------------------------------------------------- */
.cam-block__content {
  /* max-width: 840px; */
  /* margin-bottom: 44px; */
  font-size: 1.3em;
  color: var(--cam-muted);
}

.cam-block .cam-head--center + .cam-block__content {
  margin-left: auto;
  margin-right: auto;
}

/* CEO message: title sits on the indigo -> red blend, so keep it white. */
.cam-ceo .cam-title {
  color: #fff;
}

.cam-block__content p:last-child {
  margin-bottom: 0;
}

.cam-block__media {
  display: grid;
  gap: 22px;
}

.cam-block__media--2 {
  grid-template-columns: repeat(2, 1fr);
}

.cam-block__media--3 {
  grid-template-columns: repeat(3, 1fr);
}

.cam-block__media--4 {
  grid-template-columns: repeat(4, 1fr);
}

.cam-block__item {
  margin: 0;
}

.cam-about .cam-block__item img{
  max-height: 330px;
}

.cam-block__item img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
}

.cam-block__item figcaption {
  margin-top: 12px;
  font-size: 24px;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * CEO message
 * ---------------------------------------------------------------------- */
.cam-ceo__grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 56px;
  align-items: center;
}

.cam-ceo__photo {
  width: 100%;
  border-radius: var(--cam-radius);
  overflow: hidden;
}

.cam-ceo__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cam-ceo__quote {
  margin: 0 0 28px;
  /* font-family: var(--rh-font-heading, Georgia, serif); */
  font-size: 22px;
  font-weight: 400;
  color: var(--cam-indigo);
}

.cam-ceo__name {
  font-size: 24px;
  margin: 0;
  font-weight: 700;
  color: var(--cam-ink);
}

.cam-ceo__role {
  font-style: italic;
  margin: 4px 0 0;
  font-size: 22px;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * Services
 * ---------------------------------------------------------------------- */
.cam-services__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.cam-service {
  position: relative;
  padding: 34px 30px;
  border-radius: var(--cam-radius);
  background: #fff;
}

.cam-service__title {
  text-transform: uppercase;
  margin: 12px 0 10px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: 23px;
  color: var(--cam-indigo);
}

.cam-service__media {
  margin: 0 0 24px;
  overflow: hidden;
  border-radius: 10px;
}

.cam-service__media img {
  display: block;
  width: auto;
  height: 109px;
  max-height: 109px;
  max-width: 130px;
}

/* Uses the shared .cam-btn pill; only the spacing is card-specific. */
.cam-service__link {
  margin-top: 16px;
}

/* Arrow, inset by the pill's flex gap; slides on hover. */
.cam-service__link::after {
  content: "\2192";
  display: inline-block;
  transition: transform 0.2s ease;
}

.cam-service__link:hover::after,
.cam-service__link:focus::after {
  transform: translateX(4px);
}

.cam-service__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-indigo);
}

.cam-services__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 38px;
}

/* -------------------------------------------------------------------------
 * Testimonials
 * ---------------------------------------------------------------------- */
/* ---------- review carousel ---------- */

.cam-reviews {
  width: 100%;
  padding: 0 1% 0;
  overflow: hidden;
}

.cam-reviews__carousel {
  position: relative;
  max-width: 1800px;
  margin: 0 auto;
  padding: 0 65px;
}

.cam-reviews__track {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.cam-reviews__track::-webkit-scrollbar {
  display: none;
}

.cam-reviews__card {
  flex: 0 0 calc((100% - 40px) / 3);
  min-width: 0;
  min-height: 480px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #fff;
  border-radius: 34px;
  scroll-snap-align: start;
}

.cam-reviews__avatar {
  width: 152px;
  height: 152px;
  flex-shrink: 0;
  margin-bottom: 40px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  border: 1px solid #e5e1e8;
}

.cam-reviews__name {
  margin: 0 0 18px;
  color: #292064;
  /* Poppins, not Bookmania: a reviewer's name, not a heading. */
  font-family: var(--rh-font-body) !important;
  font-size: 2rem;
  font-weight: 700;
  text-transform: none;
}

.cam-reviews__text {
  margin: 0;
  color: #393064;
  font-size: 1em;
  font-weight: 400;
}

.cam-reviews__stars {
  display: flex;
  justify-content: center;
  gap: 3px;
  font-size: 30px;
  margin-top: auto;
  padding-top: 28px;
  color: #ffb400;
}

.cam-reviews__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  padding: 0;
  transform: translateY(-50%);
  border: none;
  border-radius: 50%;
  background: #ff403b;
  color: #fff;
  font-size: 36px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.cam-reviews__arrow:hover {
  background: #e82e29;
  transform: translateY(-50%) scale(1.06);
}

.cam-reviews__arrow:focus-visible {
  outline: 3px solid #292064;
  outline-offset: 4px;
}

.cam-reviews__arrow--prev {
  left: 0;
}

.cam-reviews__arrow--next {
  right: 0;
}

@media (max-width: 1100px) {
  .cam-reviews {
    /* padding: 30px 2% 0; */
  }

  .cam-reviews__carousel {
    padding: 0 45px;
  }

  .cam-reviews__card {
    flex-basis: calc((100% - 20px) / 2);
    min-height: 480px;
    padding: 24px;
  }

  .cam-reviews__avatar {
    width: 152px;
    height: 152px;
    margin-bottom: 30px;
  }

  .cam-reviews__name {
    font-size: 2rem;
  }

  .cam-reviews__text {
    font-size: 1em;
  }

  .cam-reviews__stars {
    /* font-size: 36px; */
  }

  .cam-reviews__arrow {
    width: 58px;
    height: 58px;
    font-size: 30px;
  }
}

@media (max-width: 650px) {
  .cam-reviews {
    /* padding: 20px 12px 0; */
  }

  .cam-reviews__carousel {
    padding: 0 36px;
  }

  .cam-reviews__track {
    gap: 14px;
  }

  .cam-reviews__card {
    flex-basis: 100%;
    min-height: 480px;
    padding: 22px;
    border-radius: 26px;
  }

  .cam-reviews__avatar {
    width: 152px;
    height: 152px;
    margin-bottom: 28px;
  }

  .cam-reviews__name {
    font-size: 2rem;
  }

  .cam-reviews__text {
    font-size: 1em;
  }

  /* .cam-reviews__stars {
    font-size: 35px;
    padding-top: 25px;
  } */

  .cam-reviews__arrow {
    width: 44px;
    height: 44px;
    font-size: 25px;
  }
}

/* Section title above the company card. */
.cam-company-title {
  margin: 0 0 30px;
  color: #292064;
  font-size: clamp(26px, 2.8vw, 42px);
  text-align: center;
}

@media (max-width: 700px) {
  .cam-company-title {
    margin-bottom: 20px;
    font-size: 24px;
  }
}

/* Company card: logo | name + rating + description. */
.cam-company {
  display: flex;
  align-items: flex-start;
  gap: 35px;
  padding: 48px 8.5%;
  background: #fff;
  border-radius: 44px;
  color: #292064;
  width: 70%;
  margin: auto;
  margin-bottom: 30px;
}

.cam-company__logo {
  flex: 0 0 125px;
  width: 125px;
  height: 125px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #292064;
  border-radius: 15px;
  overflow: hidden;
}

.cam-company__logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Text logo used until an image is uploaded. */
.cam-company__logo-text {
  color: #f04436;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: 35px;
  white-space: nowrap;
}

.cam-company__logo-text span {
  color: #fff;
}

.cam-company__bars {
  display: inline-block;
  margin-right: 4px;
  color: #f04436;
  font-family: Arial, sans-serif;
  font-size: 52px;
  font-weight: 300;
  vertical-align: -5px;
}

.cam-company__info {
  flex: 1;
  min-width: 0;
}

.cam-company__name {
  margin: -5px 0 10px;
  color: #292064;
  /* Poppins here, not Bookmania: this is a company name, not a heading. */
  font-family: var(--rh-font-body) !important;
  font-size: 2rem;
  font-weight: 800;
  text-transform: none;
}

.cam-company__rating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 32px;
  font-size: 1em;
}

.cam-company__score {
  font-weight: 400;
  white-space: nowrap;
}

.cam-company__stars {
  display: inline-flex;
  gap: 3px;
  color: #ffb400;
  /* font-family: Arial, sans-serif; */
  font-size: 1em;
}

.cam-company__reviews {
  color: #292064;
  text-decoration: underline;
  text-underline-offset: 4px;
  white-space: nowrap;
}

.cam-company__reviews:hover {
  color: #f04436;
}

.cam-company__desc {
  margin: 0;
  font-size: 1em;
  font-weight: 400;
  overflow-wrap: anywhere;
  color: #292064;
}

@media (max-width: 1100px) {
  .cam-company {
    /* gap: 35px; */
    padding: 40px;
    border-radius: 32px;
  }

  .cam-company__logo {
    flex-basis: 190px;
    width: 190px;
    height: 190px;
  }

  .cam-company__name {
    font-size: 2rem;
  }

  .cam-company__rating {
    /* gap: 10px; */
    font-size: 1em;
    margin-bottom: 24px;
  }

  /* .cam-company__stars {
    font-size: 36px;
  } */

  /* .cam-company__desc {
    font-size: 23px;
  } */
}

@media (max-width: 700px) {
  .cam-company {
    flex-direction: column;
    align-items: flex-start;
    /* gap: 24px; */
    padding: 24px;
    border-radius: 24px;
  }

  .cam-company__logo {
    flex-basis: auto;
    width: 130px;
    height: 130px;
    border-radius: 12px;
  }

  .cam-company__logo-text {
    font-size: 20px;
  }

  .cam-company__bars {
    font-size: 32px;
  }

  .cam-company__name {
    margin: 0 0 14px;
    font-size: 2rem;
  }

  .cam-company__rating {
    /* gap: 8px; */
    margin-bottom: 20px;
    font-size: 1em;
  }

  .cam-company__stars {
    gap: 0;
    /* font-size: 27px; */
  }

  .cam-company__reviews {
    white-space: normal;
  }

  .cam-company__desc {
    /* font-size: 18px; */
  }
}

/* -------------------------------------------------------------------------
 * Logo grid
 * ---------------------------------------------------------------------- */
/* ---------- logos section ---------- */

.cam-logos-section {
  background: #fff;
}

.cam-subtitle {
  margin: 8px 0 0;
  font-size: 3rem;
  font-weight: 700;
  color: var(--cam-indigo);
}

/* White tiles on a white section would disappear, so give them a tint. */
.cam-logos-section .cam-logo {
  /* background: #f7f6f2; */
  border-color: transparent;
}

.cam-logos-section .cam-logo:hover {
  background: #fff;
  border-color: var(--cam-line);
}

.cam-logos-section .cam-logo img {
  width: auto;
  /* max-height: 62px; */
  object-fit: contain;
}

.cam-logos {
  display: grid;
  gap: 24px;
  align-items: center;
  justify-items: center;
  width: 90%;
  margin: auto;
}

.cam-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 214px;
  height: 214px;
  max-width: 100%;
  padding: 16px;
  /* border: 1px solid var(--cam-line); */
  border-radius: 14px;
  background: #fff;
}

.cam-logo img {
  max-width: 100%;
  /* max-height: 56px; */
  width: auto;
  height: auto;
  object-fit: contain;
  transition: opacity 0.2s ease;
}

.cam-logo:hover img {
  opacity: 0.8;
}

/* -------------------------------------------------------------------------
 * Timeline
 * ---------------------------------------------------------------------- */
.cam-timeline {
  position: relative;
  margin: 0;
  padding: 0 0 0 34px;
  list-style: none;
}

.cam-timeline::before {
  content: "";
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 7px;
  width: 2px;
  background: linear-gradient(180deg, var(--cam-orange), var(--cam-indigo));
}

.cam-timeline__item {
  position: relative;
  padding-bottom: 34px;
}

.cam-timeline__item:last-child {
  padding-bottom: 0;
}

.cam-timeline__item::before {
  content: "";
  position: absolute;
  top: 6px;
  left: -34px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--cam-orange);
}

.cam-timeline__date {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--cam-orange);
}

.cam-timeline__title {
  margin: 0 0 6px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: 21px;
  color: var(--cam-indigo);
}

.cam-timeline__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * Feature list (numbered cards)
 * ---------------------------------------------------------------------- */
.cam-features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.cam-feature {
  display: flex;
  gap: 18px;
  padding: 26px 26px;
  border: 1px solid var(--cam-line);
  border-radius: var(--cam-radius);
  background: #fff;
}

.cam-feature__num {
  flex: 0 0 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(245, 66, 57, 0.1);
  color: var(--cam-orange);
  font-weight: 700;
  font-size: 15px;
}

.cam-feature__title {
  margin: 0 0 6px;
  font-size: 17px;
  color: var(--cam-indigo);
}

.cam-feature__text {
  margin: 0;
  font-size: 1.3em;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * Vision / mission / values
 * ---------------------------------------------------------------------- */
.cam-vision__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 40px;
}

.cam-vision__card {
  padding: 32px 30px;
  border-radius: var(--cam-radius);
  background: #fff;
  border: 1px solid var(--cam-line);
}

.cam-vision__card h3 {
  margin: 0 0 12px;
  font-family: var(--rh-font-heading, Georgia, serif);
  font-size: 23px;
  color: var(--cam-indigo);
}

.cam-vision__card p {
  margin: 0 0 10px;
  font-size: 15.5px;
  color: var(--cam-muted);
}

.cam-vision__card p:last-child {
  margin-bottom: 0;
}

.cam-vision__card .cam-vision__kh {
  font-family: "MiSans Khmer", "Noto Sans JP", sans-serif;
  color: var(--cam-ink);
}

.cam-values {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cam-values li {
  position: relative;
  padding-left: 30px;
  font-size: 15.5px;
  color: var(--cam-ink);
}

.cam-values li::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 0;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  background: var(--cam-orange);
}

/* -------------------------------------------------------------------------
 * FAQ
 * ---------------------------------------------------------------------- */
.cam-faq {
  max-width: 860px;
  margin: 0 auto;
}

.cam-faq__item {
  border-bottom: 1px solid var(--cam-line);
}

.cam-faq__item summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 0;
  cursor: pointer;
  list-style: none;
  font-size: 17px;
  font-weight: 600;
  color: var(--cam-indigo);
}

.cam-faq__item summary::-webkit-details-marker {
  display: none;
}

.cam-faq__item summary::after {
  content: "+";
  flex: 0 0 auto;
  font-size: 22px;
  color: var(--cam-orange);
}

.cam-faq__item[open] summary::after {
  content: "\2013";
}

.cam-faq__answer {
  padding: 0 0 24px;
  font-size: 15.5px;
  color: var(--cam-muted);
}

/* -------------------------------------------------------------------------
 * Gallery
 * ---------------------------------------------------------------------- */
.cam-gallery {
  display: grid;
  gap: 16px;
}

.cam-gallery__item {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  overflow: hidden;
  background: var(--cam-cream);
}

.cam-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.cam-gallery__item:hover img {
  transform: scale(1.04);
}

/* -------------------------------------------------------------------------
 * Responsive
 * ---------------------------------------------------------------------- */
@media (max-width: 991px) {
  .cam-about .cam-section {
    padding: 64px 0;
  }

  .cam-block__media--3,
  .cam-block__media--4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .cam-ceo__grid,
  .cam-hero--has-media .cam-hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .cam-hero__media {
    max-width: 520px;
  }

  .cam-ceo__photo {
    max-width: 420px;
  }

  .cam-highlights,
  .cam-services__grid,
  .cam-features,
  .cam-vision__grid,
  .cam-values {
    grid-template-columns: 1fr;
  }
  /* .cam-block__media{
    margin-bottom: 90px;
  } */
  .cam-about .cam-block__item img {
    max-height: 200px;
  }
  .cam-logo{
    width: 150px;
    height: 150px;
  }
}
@media (max-width:768px) {
  .cam-company{
    width: 100%;
  }
}

@media (max-width: 600px) {
  .cam-about .cam-section {
    padding: 52px 0;
  }

  /* .cam-block__media--2,
  .cam-block__media--3,
  .cam-block__media--4 {
    grid-template-columns: 1fr;
  } */

  .cam-hero {
    min-height: 100vh;
    min-height: 100svh;
    padding: 96px 0 64px;
  }
  .cam-about .cam-block__item img{
    max-height: 110px;
  }
  .cam-block__item figcaption{
    font-size: 12px;
  }
  .cam-about.cam-team .cam-head{
    max-width: 100%;
  }
  .cam-subtitle{
    font-size: 2rem;
  }
  .cam-company{
    width: 100%;
  }
  .cam-logo{
    width: 170px;
    height: 170px;
  }
  .cam-block__media--2,
  .cam-block__media--3,
  .cam-block__media--4 {
    grid-template-columns: 1fr;
  }
  .cam-about .cam-block__item img {
      max-height: 190px;
  }
  .cam-block__item figcaption {
    font-size: 17px;
  }

}


/* ---------- logos: see more ---------- */

.cam-logo.is-hidden {
  display: none;
}

.cam-logos__more-wrap {
  margin-top: 30px;
  text-align: center;
}


/* -------------------------------------------------------------------------
 * Credentials
 * ---------------------------------------------------------------------- */
.cam-credentials {
  background: #fafafa;
}

.cam-credentials__title {
  /* Typography comes from the shared .cam-title; only spacing is local. */
  margin: 0 0 58px;
  text-align: center;
}

.cam-credentials__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 38px;
  align-items: stretch;
}

/* ---------- registration card ---------- */

.cam-cred-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 48px 40px 52px;
  background: #fff;
  border-radius: 70px;
  text-align: center;
}

.cam-cred-card__image {
  display: block;
  width: 100%;
  max-width: 590px;
  aspect-ratio: 1.28 / 1;
  object-fit: contain;
  /* margin-bottom: 36px; */
}

.cam-cred-card__title {
  margin: 0 0 12px;
  color: #292064;
  /* Poppins, not Bookmania: matches the design. */
  font-family: var(--rh-font-body) !important;
  font-size: clamp(22px, 1.8vw, 29px);
  font-weight: 800;
  text-transform: none;
}

.cam-cred-card__desc {
  margin: 0;
  color: #393064;
  font-size: 1.3em;
  font-weight: 400;
}

/* ---------- licence cards ---------- */

.cam-cred-licenses {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
}

.cam-cred-license {
  display: flex;
  align-items: center;
  gap: 30px;
  flex: 1;
  min-height: 0;
  padding: 38px 32px;
  background: #fff;
  border-radius: 70px;
}

.cam-cred-license__icon {
  display: block;
  flex: 0 0 125px;
  width: 125px;
  height: 125px;
  color: #292064;
}

.cam-cred-license__icon svg,
.cam-cred-license__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cam-cred-license__content {
  flex: 1;
  min-width: 0;
  text-align: center;
}

.cam-cred-license__title {
  margin: 0 0 12px;
  color: #292064;
  font-family: var(--rh-font-body) !important;
  font-size: clamp(20px, 1.8vw, 31px);
  font-weight: 800;
  text-transform: none;
}

.cam-cred-license__number {
  margin: 0;
  color: #292064;
  font-size: clamp(18px, 1.6vw, 26px);
  font-weight: 700;
}

/* ---------- tablet ---------- */

@media (max-width: 1050px) {
  .cam-credentials__title {
    margin-bottom: 40px;
  }

  .cam-credentials__grid {
    gap: 24px;
  }

  .cam-cred-card {
    padding: 35px 24px;
    border-radius: 40px;
  }

  .cam-cred-card__image {
    /* margin-bottom: 28px; */
  }

  .cam-cred-licenses {
    gap: 24px;
  }

  .cam-cred-license {
    gap: 18px;
    padding: 28px 22px;
    border-radius: 40px;
  }

  .cam-cred-license__icon {
    flex-basis: 85px;
    width: 85px;
    height: 85px;
  }

  .cam-cred-license__title {
    font-size: 20px;
  }

  .cam-cred-license__number {
    font-size: 18px;
  }
}

/* ---------- mobile ---------- */

@media (max-width: 700px) {
  .cam-credentials__title {
    margin-bottom: 32px;
  }

  .cam-credentials__grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .cam-cred-card {
    padding: 28px 22px 32px;
    border-radius: 32px;
  }

  .cam-cred-card__image {
    max-width: 100%;
    /* margin-bottom: 24px; */
  }

  .cam-cred-card__title {
    font-size: 23px;
  }

  .cam-cred-card__desc {
    font-size: 1.3em;
  }

  .cam-cred-licenses {
    gap: 18px;
  }

  .cam-cred-license {
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    padding: 28px 20px;
    border-radius: 32px;
  }

  .cam-cred-license__icon {
    flex: 0 0 auto;
    width: 78px;
    height: 78px;
  }

  .cam-cred-license__content {
    width: 100%;
  }

  .cam-cred-license__title {
    font-size: 20px;
  }

  .cam-cred-license__number {
    font-size: 18px;
  }
}

/* ---------- small mobile ---------- */

@media (max-width: 380px) {
  .cam-cred-card__title {
    font-size: 20px;
  }

  .cam-cred-license__title {
    font-size: 18px;
  }

  .cam-cred-license__number {
    font-size: 16px;
  }
  .cam-hero__content {
    padding-top: 90px;
  }
  .cam-logo{
    width: 145px;
    height: 145px;
  }
  .cam-block__media--2,
  .cam-block__media--3,
  .cam-block__media--4 {
    grid-template-columns: 1fr;
  }
  .cam-about .cam-block__item img {
      max-height: 190px;
  }
  .cam-block__item figcaption {
    font-size: 17px;
  }
}

/* Text & images block: caption styling. */
.cam-about.cam-section.cam-block figcaption {
  font-weight: 400;
  font-style: italic;
  color: rgb(115, 115, 115);
}

/*
 * Text & images block. The parent theme sets p { color: #808080 } directly on
 * paragraphs, which beats an inherited colour, so target them explicitly.
 */
.cam-block__content,
.cam-block__content p,
.cam-block__content li,
.cam-block__content blockquote {
  color: rgb(40, 30, 93);
}

/* CEO message: the body sits on the blended background as a white card. */
.cam-ceo__body {
  background: #fff;
  border-radius: 34px;
  padding: 24px;
  margin-bottom: 22px;
}

/* All text on the white card uses the brand blue. */
.cam-ceo__body .cam-title,
.cam-ceo__body .cam-ceo__quote,
.cam-ceo__body .cam-ceo__name,
.cam-ceo__body .cam-ceo__role {
  /* font-style: italic; */
  color: var(--cam-indigo);
}

@media (max-width: 700px) {
  .cam-ceo__body {
    border-radius: 24px;
    padding: 22px;
  }
}

/* Team section: heading + intro sit on the indigo -> red blend. */
.cam-team .cam-title,
.cam-team .cam-intro {
  color: #fff;
}

/* Body copy leading across every CAM About element. */
.cam-about p {
  line-height: 1.5;
}

/* Member card: client feedback in brand blue. */
.cam-member__feedback,
.cam-member__feedback h4,
.cam-member__feedback p {
  color: var(--cam-indigo);
}

/* Logos: two per row on small screens.
   !important is needed because the column count is written inline by the element. */
@media (max-width: 700px) {
  .cam-logos {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px;
  }

  .cam-logos .cam-logo {
    width: 100%;
    height: 170px;
  }
}

@media (max-width: 380px) {
  .cam-logos {
    gap: 12px;
  }

  .cam-logos .cam-logo {
    height: 140px;
  }
}
