/* Our Companies page */
.companies-hero {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  background-color: var(--rivross-color-navy);
  background-image: var(--companies-hero-image);
  background-position: right center;
  background-size: cover;
}

.companies-hero::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #061a36 0%, #061a36 42%, rgba(6, 26, 54, 0.95) 54%, rgba(6, 26, 54, 0.52) 74%, rgba(6, 26, 54, 0.08) 100%);
  content: "";
}

.companies-hero::after {
  position: absolute;
  top: -1px;
  bottom: -1px;
  left: 41%;
  width: 152px;
  background: var(--rivross-color-gold);
  clip-path: polygon(57% 0, 69% 0, 31% 50%, 69% 100%, 57% 100%, 19% 50%);
  content: "";
}

.companies-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 360px;
  flex-direction: column;
  justify-content: center;
  padding-block: 3rem;
}

.companies-hero__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 1.45rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.75rem;
}

.companies-hero__breadcrumb a { color: var(--rivross-color-gold-light); }
.companies-hero__breadcrumb span[aria-hidden="true"] { color: rgba(255, 255, 255, 0.45); }

.companies-hero h1 {
  max-width: 400px;
  margin: 0 0 1rem;
  color: var(--rivross-color-white);
  font-size: clamp(3.35rem, 6vw, 5.1rem);
  line-height: 0.88;
}

.companies-hero h1 span,
.companies-hero h1 strong { display: block; }
.companies-hero h1 strong { color: var(--rivross-color-gold); }

.companies-rule {
  display: block;
  width: 72px;
  height: 2px;
  margin: 0 0 1.15rem;
  background: var(--rivross-color-gold);
}

.companies-hero p {
  max-width: 380px;
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.9rem;
  line-height: 1.8;
  white-space: pre-line;
}

.companies-section { padding-block: clamp(3.2rem, 6vw, 5rem); }
.companies-intro { background: #fff; }

.companies-section__heading {
  max-width: 700px;
  margin: 0 auto 2.35rem;
  text-align: center;
}

.companies-section__heading h2 {
  margin: 0.35rem 0 0.65rem;
  font-size: clamp(2.35rem, 4.2vw, 3.35rem);
}

.companies-section__heading p {
  max-width: 650px;
  margin: 0 auto;
  color: var(--rivross-color-ink);
  font-size: 0.84rem;
  line-height: 1.75;
}

.companies-business-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.companies-business-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--rivross-color-line);
  border-radius: var(--rivross-radius-md);
  background: var(--rivross-color-white);
  box-shadow: 0 9px 24px rgba(6, 26, 54, 0.04);
}

.companies-business-card__media {
  position: relative;
  min-height: 178px;
  background-image: var(--card-image);
  background-position: center;
  background-size: cover;
}

.companies-business-card__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 26, 54, 0.04), rgba(6, 26, 54, 0.16));
  content: "";
}

.companies-business-card__number {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  display: grid;
  width: 52px;
  height: 46px;
  place-items: center;
  border-radius: 0 0 6px 0;
  background: var(--rivross-color-navy);
  color: var(--rivross-color-gold);
  font-family: var(--rivross-font-display);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
}

.companies-business-card__icon {
  position: absolute;
  z-index: 2;
  bottom: -32px;
  left: 1.65rem;
  display: grid;
  width: 66px;
  height: 66px;
  place-items: center;
  border: 2px solid var(--rivross-color-gold);
  border-radius: 50%;
  background: var(--rivross-color-navy);
  color: var(--rivross-color-gold);
}

.companies-business-card__icon .rivross-icon { width: 2rem; height: 2rem; }

.companies-business-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 2.55rem 1.3rem 1.25rem;
}

.companies-business-card h3 {
  margin: 0 0 0.55rem;
  font-size: clamp(1.55rem, 2.4vw, 2rem);
}

.companies-card-rule {
  display: block;
  width: 26px;
  height: 2px;
  margin-bottom: 0.75rem;
  background: var(--rivross-color-gold);
}

.companies-business-card p {
  min-height: 4.2em;
  margin: 0 0 0.8rem;
  color: var(--rivross-color-ink);
  font-size: 0.78rem;
  line-height: 1.65;
}

.companies-business-card ul {
  display: grid;
  gap: 0.34rem;
  margin: 0 0 1.15rem;
  padding: 0;
  list-style: none;
}

.companies-business-card li {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--rivross-color-ink);
  font-size: 0.76rem;
  line-height: 1.35;
}

.companies-business-card li .rivross-icon {
  flex: 0 0 auto;
  width: 0.82rem;
  height: 0.82rem;
  color: var(--rivross-color-gold);
}

.companies-business-card .rivross-button {
  align-self: flex-start;
  margin-top: auto;
  padding: 0.52rem 0.85rem;
  font-size: 0.68rem;
}

.companies-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 1.1rem;
  overflow: hidden;
  border-radius: var(--rivross-radius-md);
  background: var(--rivross-color-navy);
}

.companies-stat {
  display: flex;
  min-height: 142px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--rivross-color-white);
  text-align: center;
}

.companies-stat:last-child { border-right: 0; }
.companies-stat > .rivross-icon { width: 2rem; height: 2rem; margin-bottom: 0.35rem; color: var(--rivross-color-gold); }
.companies-stat strong { color: var(--rivross-color-gold); font-family: var(--rivross-font-display); font-size: 2rem; line-height: 1; }
.companies-stat b { margin-top: 0.25rem; font-size: 0.76rem; }
.companies-stat small { color: rgba(255, 255, 255, 0.75); font-size: 0.68rem; }

.companies-inquiry {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.1rem;
  margin-top: 1rem;
  padding: 1.15rem 1.55rem;
  border: 1px solid rgba(201, 150, 45, 0.08);
  border-radius: var(--rivross-radius-md);
  background: #f5f3ef;
}

.companies-inquiry__icon {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border: 1px solid var(--rivross-color-gold);
  border-radius: 50%;
  color: var(--rivross-color-gold);
}

.companies-inquiry__icon .rivross-icon { width: 1.85rem; height: 1.85rem; }
.companies-inquiry h3 { margin: 0 0 0.15rem; font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.companies-inquiry p { margin: 0; color: var(--rivross-color-ink); font-size: 0.8rem; }
.companies-inquiry .rivross-button { padding: 0.62rem 1.05rem; font-size: 0.7rem; }

@media (max-width: 900px) {
  .companies-hero::after { left: 55%; }
  .companies-business-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .companies-business-card:last-child { grid-column: 1 / -1; max-width: calc(50% - 0.55rem); justify-self: center; }
  .companies-inquiry { grid-template-columns: auto minmax(0, 1fr); }
  .companies-inquiry .rivross-button { grid-column: 2; justify-self: start; }
}

@media (max-width: 640px) {
  .companies-hero,
  .companies-hero__inner { min-height: 390px; }
  .companies-hero::after { display: none; }
  .companies-hero__inner { padding-block: 2.4rem; }
  .companies-hero h1 { font-size: clamp(3rem, 16vw, 4rem); }
  .companies-hero p { max-width: 340px; font-size: 0.84rem; }
  .companies-business-grid { grid-template-columns: 1fr; }
  .companies-business-card:last-child { grid-column: auto; max-width: none; }
  .companies-business-card__media { min-height: 190px; }
  .companies-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .companies-stat { min-height: 125px; }
  .companies-stat:nth-child(2) { border-right: 0; }
  .companies-stat:nth-child(-n + 2) { border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
  .companies-inquiry { grid-template-columns: auto minmax(0, 1fr); padding: 1rem; }
  .companies-inquiry .rivross-button { grid-column: 1 / -1; width: 100%; }
}
