:root {
  --bg: #353b43;
  --bg-2: #353b43;
  --bg-3: #353b43;
  --main-bg: #353b43;
  --nav-bg: #1d2024;
  --panel: rgba(14, 20, 30, 0.92);
  --panel-strong: #111722;
  --line: rgba(255, 255, 255, 0.12);
  --line-soft: rgba(255, 255, 255, 0.08);
  --text: #f4f2ee;
  --muted: #b8b4aa;
  --muted-2: #807c73;
  --accent: #c81927;
  --accent-2: #8d111b;
  --gold: #b9945a;
  --navy: #24272d;
  --shadow: 0 28px 80px rgba(0, 0, 0, 0.42);
  --radius: 0;
  --max: 1180px;
  --header-offset: 76px;
  --font-sans: Arial, Helvetica, sans-serif;
  --font-serif: Georgia, "Times New Roman", serif;
  color-scheme: dark;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--main-bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

main {
  background: var(--main-bg);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.45), transparent 70%);
}

img { display: block; max-width: 100%; }

a { color: inherit; text-decoration: none; }

/* RW_V117_PARAGRAPH_LINK_UNDERLINE
   Restore visible underlines for inline links inside paragraph copy. */
p a,
p a:visited {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

p a:hover,
p a:focus-visible {
  text-decoration-thickness: 2px;
}

button { font: inherit; }


.shell {
  width: min(var(--max), calc(100% - 42px));
  margin-inline: auto;
}

.section-space { padding: 94px 0; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(18px);
  box-shadow: 0 14px 36px rgba(0,0,0,0.32);
}

.topline {
  background: var(--nav-bg);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  color: #d7d2c7;
  font-size: 12px;
  letter-spacing: 0.03em;
}

.topbar {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.topbar__contact,
.topbar__right,
.topbar__socials {
  display: flex;
  align-items: center;
  gap: 18px;
}

.topbar__item { opacity: 0.86; }

.topbar__lang {
  color: var(--text);
  font-weight: 700;
  padding-inline: 12px;
  border-inline: 1px solid rgba(255,255,255,0.16);
}

.topbar__socials a {
  font-size: 10px;
  color: #aaa39a;
  transition: color 0.2s ease, transform 0.2s ease;
}

.topbar__socials a:hover {
  color: #fff;
  transform: translateY(-1px);
}

.mainnav-wrap {
  background: var(--nav-bg);
  border-bottom: 1px solid rgba(255,255,255,0.09);
}

.mainnav {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: max-content;
}

.brand__mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  font-weight: 900;
  letter-spacing: -0.08em;
  box-shadow: 0 12px 28px rgba(200,25,39,0.24);
}

.primary-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  font-size: 13px;
}

.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 76px;
  padding: 0 12px;
  color: #dfdbd2;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease;
}

.nav-link:hover,
.nav-link.is-active,
.nav-group.is-active > .nav-link {
  color: #fff;
  background: rgba(255,255,255,0.03);
}

.nav-link::after,
.nav-group.is-active > .nav-link::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 3px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.2s ease;
}

.nav-link:hover::after,
.nav-link.is-active::after,
.nav-group.is-active > .nav-link::after { transform: scaleX(1); }

.nav-group {
  position: relative;
}

.nav-link--button::before {
  content: "";
  width: 0;
  height: 0;
  margin-right: 7px;
  border-top: 4px solid currentColor;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  opacity: 0.7;
}

.dropdown {
  position: absolute;
  top: calc(100% + 1px);
  left: 0;
  min-width: 235px;
  padding: 10px;
  background: rgba(10, 14, 22, 0.98);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.nav-group:hover .dropdown,
.nav-group:focus-within .dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dropdown__link {
  display: block;
  padding: 11px 12px;
  color: #d2cdc4;
  border-left: 2px solid transparent;
  font-size: 13px;
}

.dropdown__link:hover,
.dropdown__link.is-current {
  color: #fff;
  background: rgba(255,255,255,0.05);
  border-left-color: var(--accent);
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.04);
  color: #fff;
  padding: 10px;
}

.nav-toggle span {
  display: block;
  height: 2px;
  margin: 6px 0;
  background: currentColor;
}

.page-hero {
  position: relative;
  min-height: 258px;
  display: grid;
  align-items: end;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  background-color: #0a0f17;
  background-image: url('../img/about-us/hero.jpg');
  background-size: cover;
  background-position: center;
}

.page-hero--simple { background-image: url('../img/shared/simple-hero.jpg'); }

.page-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7,9,13,0.92) 0%, rgba(7,9,13,0.63) 38%, rgba(7,9,13,0.72) 100%),
    linear-gradient(180deg, rgba(200,25,39,0.18), rgba(0,0,0,0.18));
}

.page-hero__content {
  position: relative;
  z-index: 1;
  padding: 0 0 46px;
}


.page-hero h1 {
  position: relative;
  margin: 0;
  padding-left: 20px;
  font-family: var(--font-serif);
  font-size: clamp(42px, 6vw, 72px);
  line-height: 0.95;
  font-weight: 500;
  letter-spacing: -0.05em;
}

.page-hero h1::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 4px;
  width: 5px;
  background: var(--accent);
}

.section-kicker {
  margin: 0 0 12px;
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.section-kicker--red { color: #ff5962; }

.about-intro {
  position: relative;
  background: var(--main-bg);
}

.about-intro::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  background: rgba(255,255,255,0.05);
}

.about-intro__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.78fr);
  gap: 72px;
  align-items: start;
}

.reveal-card {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line-soft);
  padding: 42px 0 30px;
}

.about-copy h2,
.values-panel h2,
.letter-heading h2,
.simple-content h2,
.footer-cta h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.about-copy h2 { font-size: clamp(32px, 4.3vw, 56px); max-width: 790px; }

.about-list {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  display: grid;
  gap: 15px;
  color: #d6d1c7;
  max-width: 790px;
}

.about-list li {
  position: relative;
  padding-left: 24px;
}

.about-list li::before {
  content: "";
  position: absolute;
  top: 0.74em;
  left: 0;
  width: 8px;
  height: 8px;
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(200,25,39,0.12);
}

.image-stack {
  position: relative;
  min-height: 500px;
  padding: 28px 0 0 22px;
}

.image-stack__main,
.image-stack__small {
  position: relative;
  z-index: 2;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.12);
  background: #151c28;
  box-shadow: var(--shadow);
}

.image-stack__main { width: min(100%, 390px); }

.image-stack__small {
  width: 235px;
  position: absolute;
  right: 0;
  top: 285px;
}

.image-stack__main img,
.image-stack__small img { width: 100%; }

.image-stack__plate {
  position: absolute;
  z-index: 1;
  width: 178px;
  height: 96px;
  right: 76px;
  top: 385px;
  border: 1px solid rgba(185,148,90,0.42);
  background: linear-gradient(135deg, rgba(185,148,90,0.35), rgba(200,25,39,0.24));
}

.image-stack__caption {
  position: absolute;
  left: 22px;
  bottom: 0;
  max-width: 340px;
  margin: 0;
  padding: 20px;
  color: #c9c2b6;
  background: rgba(6,9,14,0.72);
  border-left: 3px solid var(--accent);
  box-shadow: 0 18px 44px rgba(0,0,0,0.28);
}

.values-band {
  position: relative;
  min-height: 368px;
  isolation: isolate;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,0.09);
  border-bottom: 1px solid rgba(255,255,255,0.09);
}

.values-band__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}

.page-about .values-band__image { background-image: url('../img/about-us/values-bg.jpg'); }
.page-services .values-band__image { background-image: url('../img/services/values-bg.jpg'); }
.page-careers .values-band__image { background-image: url('../img/careers/values-bg.jpg'); }
.page-contact-us .values-band__image { background-image: url('../img/contact-us/values-bg.jpg'); }
.page-team .values-band__image { background-image: url('../img/team/values-bg.jpg'); }

.values-band::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(7,9,13,0.72) 0%, rgba(7,9,13,0.36) 38%, rgba(7,9,13,0.82) 100%),
    rgba(7,9,13,0.38);
}

.values-band__inner {
  min-height: 368px;
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
}

.values-panel {
  width: min(100%, 520px);
  padding: 58px 58px 52px;
  background: rgba(6, 9, 14, 0.84);
  border-inline: 1px solid rgba(255,255,255,0.1);
  box-shadow: var(--shadow);
}

.values-panel h2 { font-size: clamp(30px, 3vw, 44px); }

.values-panel ul {
  list-style: none;
  padding: 0;
  margin: 26px 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 20px;
}

.values-panel li {
  position: relative;
  padding-left: 20px;
  color: #eee8dc;
  font-size: 14px;
}

.values-panel li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.76em;
  width: 8px;
  height: 2px;
  background: var(--accent);
}

.leadership-letter {
  background: var(--main-bg);
}

.letter-grid {
  display: grid;
  grid-template-columns: 0.46fr 1fr;
  gap: 66px;
  align-items: start;
}

.letter-heading {
  position: sticky;
  top: 148px;
  padding-top: 8px;
}

.letter-heading h2 {
  font-size: clamp(32px, 4vw, 54px);
}

.letter-body {
  padding: 48px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: var(--shadow);
  color: #d8d2c7;
}

.letter-body p {
  margin: 0 0 18px;
}

.signatures {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: grid;
  justify-items: end;
  gap: 4px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 17px;
}

.footer-cta {
  background: linear-gradient(135deg, var(--accent-2) 0%, var(--accent) 56%, #4d0a10 100%);
  border-top: 1px solid rgba(255,255,255,0.12);
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.footer-cta__inner {
  min-height: 184px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.footer-cta h2 { font-size: clamp(32px, 4.8vw, 58px); color: #fff; }

.footer-cta p { max-width: 700px; color: rgba(255,255,255,0.86); }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 26px;
  color: #fff;
  background: var(--accent);
  border: 1px solid var(--accent);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.button:hover { transform: translateY(-2px); background: #e02533; border-color: #e02533; }

.button--light {
  background: #fff;
  border-color: #fff;
  color: #160408;
  min-width: 168px;
}

.button--light:hover { background: #f6efe5; border-color: #f6efe5; }

.site-footer {
  background: var(--main-bg);
}

.footer-grid {
  padding: 70px 0;
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) 0.65fr 0.65fr 0.9fr;
  gap: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.brand--footer { margin-bottom: 22px; }

.footer-about p,
.footer-contact p {
  color: #bbb5aa;
  margin: 0 0 18px;
}

.footer-socials {
  display: flex;
  gap: 10px;
}

.footer-socials a {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  font-size: 10px;
  font-weight: 900;
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.footer-socials a:hover {
  background: var(--accent);
  border-color: var(--accent);
  transform: translateY(-2px);
}

.footer-links h3,
.footer-contact h3 {
  margin: 0 0 18px;
  font-size: 13px;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: #fff;
}

.footer-links {
  display: grid;
  align-content: start;
  gap: 9px;
}

.footer-links a {
  color: #bdb7ad;
  font-size: 14px;
}

.footer-links a:hover { color: #fff; }

.footer-bottom {
  color: #8e887f;
  font-size: 12px;
  padding: 18px 0;
  background: #05070a;
}

.simple-content {
  min-height: 440px;
  background: var(--main-bg);
}

.simple-content__grid {
  display: grid;
  grid-template-columns: 0.8fr 1fr;
  gap: 70px;
}

.simple-content h2 { font-size: clamp(32px, 4vw, 56px); }

.simple-content__panel {
  padding: 42px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: var(--shadow);
}

.simple-content__panel p {
  color: #d4cfc4;
  margin-top: 0;
}

@media (max-width: 1080px) {
    .primary-nav { gap: 0; font-size: 12px; }
  .nav-link { padding-inline: 8px; }
  .about-intro__grid { grid-template-columns: 1fr; gap: 48px; }
  .image-stack { max-width: 560px; }
  .letter-grid { grid-template-columns: 1fr; gap: 30px; }
  .letter-heading { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .mainnav { min-height: 68px; }
    .nav-toggle { display: block; }
  .primary-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 12px 21px 22px;
    background: var(--nav-bg);
    border-bottom: 1px solid rgba(255,255,255,0.1);
    box-shadow: var(--shadow);
  }
  .primary-nav.is-open { display: flex; }
  .nav-group, .nav-link { width: 100%; }
  .nav-link { min-height: 46px; justify-content: space-between; }
  .dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
    min-width: 0;
    box-shadow: none;
    margin-bottom: 8px;
  }
  .nav-group:hover .dropdown,
  .nav-group:focus-within .dropdown { display: block; }
  .page-hero { min-height: 220px; }
  .section-space { padding: 68px 0; }
  .values-panel { width: 100%; padding: 42px 28px; }
  .values-panel ul { grid-template-columns: 1fr; }
  .footer-cta__inner { flex-direction: column; align-items: flex-start; padding: 42px 0; }
  .simple-content__grid { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 640px) {
  .shell { width: min(100% - 28px, var(--max)); }
  .topbar__contact, .topbar__right { flex-wrap: wrap; gap: 10px; }
  .page-hero__content { padding-bottom: 34px; }
  .about-copy h2,
  .letter-heading h2 { font-size: 34px; }
  .image-stack { min-height: auto; padding: 0 0 164px; }
  .image-stack__small { width: 48%; right: 16px; top: auto; bottom: 64px; }
  .image-stack__plate { right: 90px; top: auto; bottom: 36px; }
  .image-stack__caption { position: relative; left: 0; margin-top: 18px; max-width: none; }
  .letter-body { padding: 28px 22px; }
  .footer-grid { grid-template-columns: 1fr; padding: 52px 0; }
}


.page-hero--alliance {
  min-height: 300px;
  background-image: url('../img/alliance-partners/hero.jpg');
}

.page-hero__overlay--alliance {
  background:
    linear-gradient(90deg, rgba(7,9,13,0.82) 0%, rgba(7,9,13,0.42) 46%, rgba(7,9,13,0.68) 100%),
    linear-gradient(180deg, rgba(17,26,46,0.42), rgba(7,9,13,0.16));
}

.page-hero__content--alliance {
  padding-bottom: 52px;
}

.page-hero__title--compact {
  margin-bottom: 12px !important;
  font-size: clamp(38px, 4.5vw, 58px) !important;
}

.page-hero__title--compact::before {
  top: 4px !important;
  bottom: 8px !important;
}

.hero-summary {
  max-width: 700px;
  margin: 0 0 0 20px;
  color: rgba(244,242,238,0.86);
  font-size: 15px;
}

.alliance-section {
  background: var(--main-bg);
}

.partner-list {
  border-top: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.02);
}

.partner-row {
  display: grid;
  grid-template-columns: minmax(190px, 270px) 1fr;
  gap: 34px;
  align-items: center;
  padding: 28px 26px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: background 0.2s ease, transform 0.2s ease;
}

.partner-row:hover {
  background: rgba(255,255,255,0.03);
}

.partner-logo-wrap {
  display: flex;
  align-items: center;
}

.partner-logo-card {
  width: 100%;
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 18px 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f1ed 100%);
  border-left: 4px solid var(--accent);
  box-shadow: 0 16px 36px rgba(0,0,0,0.22);
}

.partner-logo-card img {
  max-width: 100%;
  max-height: 62px;
  width: auto;
  height: auto;
}

.partner-copy h2 {
  margin: 0 0 10px;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--text);
}

.partner-copy p {
  margin: 0;
  max-width: 860px;
  color: #cbc5bb;
  font-size: 15px;
}

@media (max-width: 860px) {
  .page-hero--alliance { min-height: 240px; }
  .partner-row { grid-template-columns: 1fr; gap: 18px; padding: 22px 18px; }
  .partner-logo-card { min-height: 82px; }
}

@media (max-width: 640px) {
  .hero-summary { margin-left: 20px; font-size: 14px; }
  .partner-copy h2 { font-size: 24px; }
  .partner-copy p { font-size: 14px; }
}


.page-hero--projects {
  min-height: 300px;
  background-image: url('../img/projects/hero.jpg');
}

.page-hero__overlay--projects {
  background:
    linear-gradient(90deg, rgba(7,9,13,0.82) 0%, rgba(7,9,13,0.45) 48%, rgba(7,9,13,0.74) 100%),
    linear-gradient(180deg, rgba(17,26,46,0.35), rgba(7,9,13,0.18));
}

.page-hero__content--projects { padding-bottom: 52px; }

.projects-index {
  background: var(--main-bg);
}

.project-filters {
  margin-bottom: 26px;
  padding: 24px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 20px 48px rgba(0,0,0,0.25);
}

.filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
}

.project-filters label {
  display: grid;
  gap: 7px;
}

.project-filters label span {
  color: #a8a198;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.project-filters select,
.project-filters input {
  width: 100%;
  min-height: 42px;
  padding: 0 14px;
  color: #f6f2ea;
  background: #252d35;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 0;
  outline: none;
}

.project-filters select:focus,
.project-filters input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(200,25,39,0.16);
}

.project-search { margin-top: 14px; }

.project-filter-actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
}

.project-filter-clear {
  min-height: 38px;
  padding: 0 18px;
  color: #f6f2ea;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 11px;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.project-filter-clear:hover,
.project-filter-clear:focus-visible {
  color: #111820;
  background: var(--gold);
  border-color: var(--gold);
}


.project-count {
  min-height: 22px;
  margin-top: 12px;
  color: #aaa39a;
  font-size: 13px;
}

.project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.project-card {
  min-height: 250px;
  background: #101722;
  border: 1px solid rgba(255,255,255,0.08);
  overflow: hidden;
}

.project-card.is-hidden { display: none; }

.project-card__link {
  position: relative;
  display: block;
  height: 100%;
  min-height: 250px;
}

.project-card img {
  width: 100%;
  height: 100%;
  min-height: 250px;
  object-fit: cover;
  transition: transform 0.35s ease, filter 0.35s ease;
}

.project-card__overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 52px 18px 15px;
  color: #fff;
  background: linear-gradient(180deg, transparent 0%, rgba(5,8,13,0.88) 72%, rgba(5,8,13,0.96) 100%);
}

.project-card__overlay p,
.related-card p {
  margin: 0 0 5px;
  color: #d8b77b;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.project-card__overlay h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 22px;
  line-height: 1.5;
  font-weight: 500;
}

.project-card:hover img {
  transform: scale(1.055);
  filter: brightness(1.08);
}

.project-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  margin-top: 30px;
}

.project-pagination button {
  min-width: 32px;
  height: 32px;
  color: #c8c2b8;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.12);
  cursor: pointer;
}

.project-pagination button:hover,
.project-pagination button.is-active {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

.project-empty {
  padding: 32px;
  color: #cfc8be;
  text-align: center;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.1);
}

.project-detail-hero {
  position: relative;
  height: clamp(360px, 55vw, 620px);
  overflow: hidden;
  background: #0a0f17;
}

.project-detail-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project-detail-main {
  background: var(--main-bg);
}

.project-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 72px;
  align-items: start;
}

.back-link {
  display: inline-block;
  margin-bottom: 28px;
  color: #d8b77b;
  font-size: 13px;
}

.project-detail-copy h1 {
  margin: 0 0 26px;
  font-family: var(--font-serif);
  font-size: clamp(42px, 5vw, 66px);
  line-height: 1.02;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.project-detail-copy p {
  max-width: 760px;
  color: #d4cfc4;
}

.project-summary {
  color: #f0eadf !important;
  font-size: 17px;
}

.project-fact-panel {
  position: sticky;
  top: 145px;
  background: #24272d;
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: var(--shadow);
}

.project-fact {
  display: grid;
  grid-template-columns: 0.62fr 1fr;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.project-fact:last-child { border-bottom: 0; }

.project-fact span {
  color: #b9945a;
  font-size: 12px;
}

.project-fact strong {
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.project-back-button { margin-top: 24px; }
.project-gallery-preview {
  margin-top: 38px;
}

.project-gallery-preview__title {
  margin: 0 0 16px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
}

.project-gallery-preview__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.project-gallery-preview__button {
  display: block;
  width: 100%;
  padding: 0;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.03);
  cursor: pointer;
  overflow: hidden;
}

.project-gallery-preview__button img {
  width: 100%;
  aspect-ratio: 16 / 10;
  height: auto;
  object-fit: cover;
  transition: transform 0.28s ease, opacity 0.28s ease;
}

.project-gallery-preview__button:hover img,
.project-gallery-preview__button:focus-visible img {
  transform: scale(1.035);
  opacity: 0.9;
}

.project-gallery-preview__button:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}



.related-projects {
  padding: 80px 0 100px;
  background: var(--main-bg);
}

.related-projects h2 {
  margin: 0 0 28px;
  font-family: var(--font-serif);
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.related-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.related-card {
  min-height: 230px;
  position: relative;
  overflow: hidden;
  background: #101722;
  border: 1px solid rgba(255,255,255,0.08);
}

.related-card a,
.related-card img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 230px;
}

.related-card img { object-fit: cover; transition: transform 0.35s ease; }
.related-card:hover img { transform: scale(1.05); }

.related-card div {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 52px 18px 16px;
  background: linear-gradient(180deg, transparent 0%, rgba(5,8,13,0.86) 72%, rgba(5,8,13,0.96) 100%);
}

.related-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.5;
}

@media (max-width: 960px) {
  .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-detail-grid { grid-template-columns: 1fr; gap: 38px; }
  .project-fact-panel { position: static; }
}

@media (max-width: 720px) {
  .project-gallery-preview__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .filter-grid { grid-template-columns: 1fr; }
  .project-grid,
  .related-project-grid { grid-template-columns: 1fr; }
  .project-card,
  .project-card__link,
  .project-card img { min-height: 230px; }
  .project-detail-hero { height: 320px; }
}


/* RW_PROJECT_DETAIL_GALLERY_SLIDER_CSS_V6 */
.project-detail-slider {
  isolation: isolate;
  cursor: pointer;
  touch-action: pan-y;
  user-select: none;
}

.project-detail-slider.is-dragging,
.project-lightbox__stage.is-dragging {
  cursor: grabbing;
}

.project-detail-slider__track,
.project-detail-slide,
.project-lightbox__stage,
.project-lightbox__slide {
  position: absolute;
  inset: 0;
}

.project-detail-slider__track {
  z-index: 1;
  overflow: hidden;
}

.project-detail-slide {
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.025);
  transition: opacity 0.55s ease, transform 1.2s ease, visibility 0.55s ease;
}

.project-detail-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.project-detail-slide img,
.project-lightbox__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.project-slider-arrow {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 58px;
  height: 82px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  color: #fff;
  background: rgba(5, 7, 10, 0.32);
  border: 1px solid rgba(255,255,255,0.14);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.project-slider-arrow:hover {
  background: rgba(200, 25, 39, 0.72);
  border-color: rgba(255,255,255,0.28);
}

.project-slider-arrow span,
.project-lightbox__arrow span {
  display: block;
  margin-top: -5px;
  font-family: var(--font-serif);
  font-size: 68px;
  font-weight: 300;
  line-height: 1;
}

.project-slider-arrow--prev { left: 24px; }
.project-slider-arrow--next { right: 24px; }

.project-slider-dots,
.project-lightbox__dots {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 24px;
  display: flex;
  gap: 10px;
  transform: translateX(-50%);
}

.project-slider-dots button,
.project-lightbox__dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.24);
  cursor: pointer;
  transition: width 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.project-slider-dots button.is-active,
.project-lightbox__dots button.is-active {
  width: 26px;
  background: var(--accent);
  border-color: var(--accent);
}

.project-detail-slider.is-single .project-slider-arrow,
.project-detail-slider.is-single .project-slider-dots,
.project-lightbox.is-single .project-lightbox__arrow,
.project-lightbox.is-single .project-lightbox__dots {
  display: none;
}

body.is-lightbox-open {
  overflow: hidden;
}

.project-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: none;
  color: #fff;
}

.project-lightbox.is-open {
  display: block;
}

.project-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 4, 8, 0.88);
  backdrop-filter: blur(6px);
}

.project-lightbox__dialog {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 48px 78px;
}

.project-lightbox__stage {
  position: relative;
  width: min(100%, 1180px);
  height: min(78vh, 760px);
  overflow: hidden;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  box-shadow: 0 36px 100px rgba(0,0,0,0.58);
}

.project-lightbox__slide {
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: scale(0.99);
  transition: opacity 0.36s ease, visibility 0.36s ease, transform 0.36s ease;
}

.project-lightbox__slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.project-lightbox__slide img {
  object-fit: contain;
}

.project-lightbox__close {
  position: absolute;
  top: 18px;
  right: 22px;
  z-index: 12;
  width: 44px;
  height: 44px;
  color: #fff;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.16);
  cursor: pointer;
  font-size: 34px;
  line-height: 1;
}

.project-lightbox__close:hover,
.project-lightbox__arrow:hover {
  background: rgba(200,25,39,0.74);
  border-color: rgba(255,255,255,0.3);
}

.project-lightbox__counter {
  position: absolute;
  top: 22px;
  left: 26px;
  z-index: 12;
  color: #f4f2ee;
  font-size: 15px;
  letter-spacing: 0.08em;
}

.project-lightbox__arrow {
  position: absolute;
  top: 50%;
  z-index: 11;
  width: 58px;
  height: 82px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  color: #fff;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.16);
  cursor: pointer;
}

.project-lightbox__arrow--prev { left: 24px; }
.project-lightbox__arrow--next { right: 24px; }

.project-lightbox__dots {
  bottom: 22px;
}

@media (max-width: 860px) {
  .project-slider-arrow,
  .project-lightbox__arrow {
    width: 46px;
    height: 66px;
  }

  .project-slider-arrow span,
  .project-lightbox__arrow span {
    font-size: 54px;
  }

  .project-slider-arrow--prev,
  .project-lightbox__arrow--prev { left: 10px; }

  .project-slider-arrow--next,
  .project-lightbox__arrow--next { right: 10px; }

  .project-lightbox__dialog {
    padding: 56px 14px 48px;
  }

  .project-lightbox__stage {
    height: 72vh;
  }
}

@media (max-width: 640px) {
  .project-detail-hero {
    height: 68vh;
    min-height: 360px;
  }

  .project-slider-arrow {
    background: rgba(5,7,10,0.48);
  }

  .project-lightbox__counter {
    top: 22px;
    left: 16px;
  }

  .project-lightbox__close {
    right: 14px;
  }
}

/* RW_GENERIC_HERO_FADE_ZOOM_SLIDER_CSS_V9 */
.page-hero--with-slider,
.page-hero.about-hero,
.page-hero--alliance,
.page-hero--projects,
.page-hero--simple {
  background-image: none;
  background-color: #0a0f17;
}

.auto-hero-slider,
.auto-hero-slide {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.auto-hero-slider {
  z-index: 0;
  background: #0a0f17;
}

.auto-hero-slide {
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.35s ease, visibility 1.35s ease;
}

.auto-hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}

.auto-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transform-origin: center center;
  will-change: transform, opacity;
}

.auto-hero-slide.is-active img {
  animation: autoHeroSlowZoom 5s ease-out forwards;
}

.page-hero--with-slider .page-hero__overlay,
.page-hero.about-hero .page-hero__overlay {
  z-index: 2;
}

.page-hero.about-hero .page-hero__overlay {
  background:
    linear-gradient(90deg, rgba(7,9,13,0.86) 0%, rgba(7,9,13,0.54) 36%, rgba(7,9,13,0.64) 100%),
    linear-gradient(180deg, rgba(200,25,39,0.16), rgba(0,0,0,0.18));
}

.page-hero--with-slider .page-hero__content,
.page-hero.about-hero .page-hero__content {
  z-index: 3;
}

@keyframes autoHeroSlowZoom {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
  .auto-hero-slide,
  .auto-hero-slide.is-active img {
    transition-duration: 0.2s;
    animation: none;
  }
}


/* RW_HOME_MERGED_LAYOUT_V13 */
.home-hero {
  position: relative;
  min-height: clamp(620px, 82vh, 860px);
  overflow: hidden;
  display: grid;
  align-items: stretch;
  background: #0a0f17;
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(29,32,36,0.94) 0%, rgba(29,32,36,0.72) 42%, rgba(29,32,36,0.42) 100%),
    linear-gradient(180deg, rgba(200,25,39,0.18), rgba(53,59,67,0.18));
}

.home-hero__inner {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 52px;
  align-items: end;
  padding: 110px 0 84px;
}

.home-hero__copy {
  max-width: 850px;
}

.home-hero__copy h1,
.home-intro h2,
.home-feature h2,
.home-projects h2,
.home-final-cta h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.055em;
}

.home-hero__copy h1 {
  max-width: 920px;
  font-size: clamp(52px, 8vw, 116px);
}

.home-hero__copy > p:not(.section-kicker) {
  max-width: 670px;
  margin: 28px 0 0;
  color: #e1dbd0;
  font-size: clamp(17px, 1.5vw, 22px);
}

.home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.button--ghost {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.2);
}

.button--ghost:hover {
  background: rgba(255,255,255,0.11);
  border-color: rgba(255,255,255,0.32);
}

.home-hero__panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(29,32,36,0.78);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow);
}

.home-hero__panel div {
  min-height: 138px;
  padding: 26px 22px;
  border-right: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.home-hero__panel div:nth-child(2n) { border-right: 0; }
.home-hero__panel div:nth-last-child(-n+2) { border-bottom: 0; }

.home-hero__panel strong {
  display: block;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 44px;
  line-height: 1;
  font-weight: 500;
}

.home-hero__panel span {
  display: block;
  margin-top: 10px;
  color: #c9c1b4;
  font-size: 12px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.home-intro,
.home-projects {
  background: var(--main-bg);
}

.home-intro__grid,
.home-projects__grid {
  display: grid;
  grid-template-columns: 0.82fr 1fr;
  gap: 72px;
  align-items: start;
}

.home-intro h2,
.home-feature h2,
.home-projects h2 {
  font-size: clamp(36px, 5vw, 68px);
}

.home-intro__copy > p,
.home-feature__copy > p,
.home-projects p {
  margin-top: 0;
  color: #d9d2c7;
  font-size: 16px;
}

.home-service-grid {
  display: grid;
  gap: 16px;
  margin-top: 30px;
}

.home-service-card {
  padding: 28px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.035);
  box-shadow: 0 18px 48px rgba(0,0,0,0.18);
}

.home-service-card h3 {
  margin: 0 0 12px;
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 500;
}

.home-service-card p {
  margin: 0;
  color: #cfc8be;
}

.home-feature {
  background: #2c3239;
  border-block: 1px solid rgba(255,255,255,0.08);
}

.home-feature__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 0.78fr);
  gap: 58px;
  align-items: center;
}

.home-feature__media {
  min-height: 450px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: var(--shadow);
}

.home-feature__media img {
  width: 100%;
  height: 100%;
  min-height: 450px;
  object-fit: cover;
}

.home-feature__copy {
  padding: 42px;
  background: rgba(29,32,36,0.74);
  border-left: 4px solid var(--accent);
}

.home-feature__copy ul {
  list-style: none;
  display: grid;
  gap: 13px;
  margin: 28px 0 0;
  padding: 0;
}

.home-feature__copy li {
  position: relative;
  padding-left: 24px;
  color: #f0eadf;
}

.home-feature__copy li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 10px;
  height: 2px;
  background: var(--accent);
}

.home-projects__grid {
  align-items: center;
}

.home-projects__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.home-projects__cards a {
  position: relative;
  min-height: 240px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.1);
  background: #111722;
}

.home-projects__cards a:first-child {
  grid-column: 1 / -1;
  min-height: 320px;
}

.home-projects__cards img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  transition: transform 0.35s ease, filter 0.35s ease;
}

.home-projects__cards span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 56px 18px 16px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 24px;
  background: linear-gradient(180deg, transparent, rgba(5,8,13,0.92));
}

.home-projects__cards a:hover img {
  transform: scale(1.055);
  filter: brightness(1.08);
}

.home-final-cta {
  background: linear-gradient(135deg, var(--accent-2), var(--accent) 60%, #4d0a10);
  border-block: 1px solid rgba(255,255,255,0.12);
}

.home-final-cta__inner {
  min-height: 230px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
}

.home-final-cta h2 {
  font-size: clamp(36px, 5vw, 72px);
}

.home-final-cta p {
  max-width: 690px;
  color: rgba(255,255,255,0.86);
}

@media (max-width: 1020px) {
  .home-hero__inner,
  .home-intro__grid,
  .home-feature__grid,
  .home-projects__grid {
    grid-template-columns: 1fr;
  }

  .home-hero__panel {
    max-width: 560px;
  }
}

@media (max-width: 720px) {
  .home-hero {
    min-height: 720px;
  }

  .home-hero__inner {
    padding: 82px 0 56px;
  }

  .home-hero__copy h1 {
    font-size: 48px;
  }

  .home-hero__panel,
  .home-projects__cards {
    grid-template-columns: 1fr;
  }

  .home-hero__panel div,
  .home-hero__panel div:nth-child(2n),
  .home-hero__panel div:nth-last-child(-n+2) {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }

  .home-hero__panel div:last-child { border-bottom: 0; }

  .home-feature__copy {
    padding: 30px 24px;
  }

  .home-feature__media,
  .home-feature__media img {
    min-height: 310px;
  }

  .home-projects__cards a,
  .home-projects__cards a:first-child {
    min-height: 250px;
  }

  .home-final-cta__inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 44px 0;
  }
}


/* RW_HOMEPAGE_MERGE_V14 */
.page-home-rw .footer-cta { display: none; }
.rw-home { background: var(--main-bg); color: var(--text); }
.rw-hero {
  position: relative;
  min-height: calc(100vh - 110px);
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
}
.rw-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(circle at 50% 35%, rgba(200,25,39,.22), transparent 32rem), linear-gradient(180deg, rgba(29,32,36,.56), rgba(29,32,36,.88));
}
.rw-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 920px;
  text-align: center;
  padding: 96px 0;
}
.rw-hero h1 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(50px, 8vw, 104px);
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #fff;
}
.rw-hero p:not(.section-kicker) {
  max-width: 720px;
  margin: 26px auto 0;
  color: rgba(244,242,238,.86);
  font-size: clamp(17px, 2.1vw, 23px);
}
.rw-actions { margin-top: 36px; display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
.rw-feature { display: grid; grid-template-columns: 1fr 1fr; min-height: 640px; background: #252b31; }
.rw-feature__media { min-height: 520px; background-size: cover; background-position: center; border-right: 1px solid rgba(255,255,255,.1); }
.rw-feature__content { padding: clamp(48px, 6vw, 88px); display: grid; align-content: center; }
.rw-feature__content h2,
.rw-centered h2,
.rw-section-title h2,
.rw-skills-grid h3,
.rw-cta h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.04em;
}
.rw-feature__content h2 { font-size: clamp(34px, 4vw, 58px); }
.rw-feature__content > p { color: #d8d2c7; max-width: 720px; }
.rw-feature__items { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 34px; }
.rw-mini-card { display: flex; gap: 16px; align-items: flex-start; padding: 20px; border: 1px solid rgba(255,255,255,.11); background: rgba(29,32,36,.48); }
.rw-mini-card > span { flex: 0 0 auto; width: 48px; height: 48px; display: grid; place-items: center; background: rgba(200,25,39,.14); border: 1px solid rgba(200,25,39,.45); color: #fff; font-weight: 900; font-size: 12px; letter-spacing: .08em; }
.rw-mini-card h3,
.rw-service-card h3,
.rw-team-card h3,
.rw-post-card h3 { margin: 0 0 8px; color: #fff; }
.rw-mini-card p,
.rw-service-card p,
.rw-team-card p,
.rw-post-card p { margin: 0; color: #cfc9bf; font-size: 14px; }
.rw-post-card__date { margin: 0 0 12px; color: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.rw-bg-panel { position: relative; overflow: hidden; background: linear-gradient(135deg, rgba(29,32,36,.94), rgba(53,59,67,.86)), url('../img/home/slider-2.jpg') center/cover; border-block: 1px solid rgba(255,255,255,.11); }
.rw-centered { min-height: 300px; display: grid; place-items: center; text-align: center; align-content: center; padding: 72px 0; }
.rw-centered h2 { font-size: clamp(34px, 5vw, 66px); }
.rw-centered p { max-width: 780px; color: rgba(244,242,238,.82); }
.rw-section { padding: 96px 0; background: #353b43; }
.rw-section--dark { background: #252b31; }
.rw-section-title { margin-bottom: 48px; text-align: center; }
.rw-section-title h2 { font-size: clamp(34px, 4vw, 58px); color: #fff; }
.rw-section-title span { color: var(--gold); }
.rw-section-title i { display: block; width: 72px; height: 2px; margin: 18px auto 0; background: var(--accent); }
.rw-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rw-service-card { padding: 36px 28px; min-height: 250px; text-align: center; border: 1px solid rgba(255,255,255,.1); background: rgba(29,32,36,.38); transition: transform .2s ease, background .2s ease; }
.rw-service-card:hover { transform: translateY(-4px); background: rgba(29,32,36,.62); }
.rw-service-icon { margin: 0 auto 22px; display: inline-flex; align-items: center; justify-content: center; width: auto; height: auto; background: transparent; border: 0; box-shadow: none; }
.rw-skills-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 64px; align-items: center; }
.rw-skills-grid h3 { font-size: clamp(30px, 3.5vw, 48px); }
.rw-skills-grid p { color: #d8d2c7; }
.rw-skills-grid img { margin-top: 28px; width: 100%; border: 1px solid rgba(255,255,255,.12); box-shadow: var(--shadow); }
.rw-skill { margin-bottom: 26px; }
.rw-skill p { margin: 0 0 10px; color: #fff; font-weight: 800; }
.rw-skill p span { color: var(--gold); }
.rw-progress { height: 9px; background: rgba(255,255,255,.13); overflow: hidden; }
.rw-progress b { display: block; height: 100%; background: linear-gradient(90deg, var(--accent-2), var(--accent)); }
.rw-portfolio-filter { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: -18px 0 34px; }
.rw-portfolio-filter button { min-height: 38px; padding: 0 18px; border: 1px solid rgba(255,255,255,.16); background: transparent; color: #eee8dc; cursor: pointer; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: 11px; }
.rw-portfolio-filter button.is-active,
.rw-portfolio-filter button:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.rw-portfolio-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.rw-work-card { position: relative; min-height: 310px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); background: #1d2024; }
.rw-work-card.is-hidden { display: none; }
.rw-work-card img { width: 100%; height: 100%; min-height: 310px; object-fit: cover; transition: transform .45s ease; }
.rw-work-card:hover img { transform: scale(1.06); }
.rw-work-card__caption { position: absolute; inset: 0; display: grid; align-content: end; padding: 28px; background: linear-gradient(180deg, transparent 20%, rgba(9,10,12,.9) 100%); opacity: .98; }
.rw-work-card__caption > a { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 18px; background: var(--accent); color: #fff; font-size: 24px; }
.rw-work-card__caption h3 { margin: 0 0 6px; color: #fff; }
.rw-work-card__caption p { margin: 0; color: #d8d2c7; }

.rw-work-card__caption h3 a,
.rw-work-card__caption h3 a:visited {
  color: inherit;
  text-decoration: none;
}
.rw-work-card__caption h3 a:hover,
.rw-work-card__caption h3 a:focus-visible {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.rw-more { text-align: center; margin-top: 38px; }
.rw-counter { padding: 72px 0; }
.rw-counter-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.rw-counter-item { text-align: center; padding: 28px; background: rgba(29,32,36,.58); border: 1px solid rgba(255,255,255,.11); }
.rw-counter-item strong { display: block; color: #fff; font-size: clamp(38px, 5vw, 64px); font-family: var(--font-serif); line-height: 1; }
.rw-counter-item span { display: block; color: #d8d2c7; margin-top: 10px; font-weight: 800; }
.rw-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.rw-team-card { border: 1px solid rgba(255,255,255,.1); background: rgba(29,32,36,.38); overflow: hidden; }
.rw-team-card__photo img { width: 100%; aspect-ratio: 1/1.12; object-fit: cover; }
.rw-team-card__photo img { object-position: center top; }
.rw-team-card__meta { padding: 22px; }
.rw-team-card__meta strong { display: block; margin-bottom: 10px; color: var(--gold); font-size: 13px; }
.rw-client-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.rw-client-logo { min-height: 92px; display: grid; place-items: center; padding: 18px; background: rgba(255,255,255,.92); color: #1d2024; font-family: var(--font-serif); font-size: 18px; font-weight: 700; border-left: 4px solid var(--accent); }
.rw-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rw-post-card { border: 1px solid rgba(255,255,255,.1); background: rgba(29,32,36,.38); overflow: hidden; }
.rw-post-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.rw-post-card > div { padding: 26px; }
.rw-contact { background: #252b31; }
.rw-contact-grid { display: grid; gap: 34px; align-items: start; }
.rw-contact-info-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: 36px;
  align-items: stretch;
}
.rw-contact-map {
  min-height: 420px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(29,32,36,.38);
}
.rw-contact-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
}
.rw-contact-info { color: #d8d2c7; }
.rw-contact-info h3 { margin: 0 0 12px; color: #fff; font-size: 26px; }
.rw-contact-line { margin-top: 16px; display: flex; gap: 12px; align-items: flex-start; }
.rw-contact-line span { color: var(--accent); font-size: 22px; line-height: 1; }
.rw-contact-mail-button {
  width: fit-content;
  margin: 4px 0 10px;
}
@media (max-width: 1080px) {
  .rw-feature, .rw-skills-grid, .rw-contact-grid, .rw-contact-info-map-grid { grid-template-columns: 1fr; }
  .rw-services-grid, .rw-portfolio-grid, .rw-blog-grid { grid-template-columns: repeat(2, 1fr); }
  .rw-team-grid, .rw-counter-grid { grid-template-columns: repeat(2, 1fr); }
  .rw-client-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 640px) {
  .rw-contact-map iframe { min-height: 300px; }
  .rw-hero { min-height: 680px; }
  .rw-feature__content, .rw-section { padding: 64px 0; }
  .rw-feature__content { padding-inline: 22px; }
  .rw-feature__items, .rw-services-grid, .rw-portfolio-grid, .rw-team-grid, .rw-blog-grid, .rw-counter-grid, .rw-client-grid { grid-template-columns: 1fr; }
  .rw-client-logo { min-height: 74px; }
}


/* RW_HOMEPAGE_INTERACTIONS_V15 */
.rw-service-icon i {
  display: block;
  font-size: 28px;
  line-height: 1;
  color: #fff;
}

.rw-counter-item strong {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
}

.rw-counter-item strong em {
  font-style: normal;
  opacity: 0;
  transform: translateY(0);
  transition: none;
}

.rw-counter-item.is-complete strong em {
  opacity: 1;
  transform: translateY(0);
}

.rw-client-grid {
  align-items: center;
  justify-items: center;
}

.rw-client-logo {
  width: clamp(96px, 9vw, 132px);
  min-height: 0 !important;
  height: clamp(96px, 9vw, 132px);
  padding: 16px !important;
  border-radius: 50%;
  border-left: 0 !important;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.95);
  box-shadow: 0 18px 48px rgba(0,0,0,.25);
  overflow: hidden;
}

.rw-client-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

@media (max-width: 640px) {
  .rw-client-logo {
    width: 104px;
    height: 104px;
  }
}


/* RW_CLIENT_GRID_FILL_V16
   Each client logo slot now stretches to fill its grid cell. The slot remains circular
   through aspect-ratio and border-radius; images fill the circle edge-to-edge. */
.rw-client-grid {
  align-items: stretch !important;
  justify-items: stretch !important;
}

.rw-client-logo {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  min-height: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 50% !important;
  overflow: hidden;
}

.rw-client-logo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  border-radius: inherit;
  display: block;
}

@media (max-width: 640px) {
  .rw-client-logo {
    width: 100% !important;
    height: auto !important;
  }
}


/* RW_COUNTER_PLUS_IMMEDIATE_V18
   The counter suffix is still hidden while the number is rolling, but it appears
   immediately once .is-complete is added at the final animation frame. */
.rw-counter-item strong em {
  transition: none !important;
}


/* RW_NAV_LOGO_LANGUAGE_AND_COUNTER_V19 */
.brand {
  gap: 14px;
  min-width: 0;
}

.brand__logo {
  display: block;
  width: clamp(190px, 24vw, 245px);
  max-width: 100%;
  height: auto;
  max-height: 54px;
  object-fit: contain;
}

.nav-language {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 76px;
  padding-left: 12px;
  margin-left: 4px;
  color: #dfdbd2;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.nav-language select {
  min-height: 34px;
  padding: 0 30px 0 12px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 0;
  background: #252a30;
  color: #f4f2ee;
  font: inherit;
  cursor: pointer;
}

.rw-counter-item strong {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
}

.rw-counter-item strong span,
.rw-counter-item strong em {
  display: inline !important;
  margin-top: 0 !important;
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  font-style: normal !important;
  font-weight: inherit !important;
}

.rw-counter-item strong em {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
}

.rw-counter-item > span {
  display: block;
  color: #d8d2c7;
  margin-top: 10px;
  font-weight: 800;
}

.rw-team-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

.rw-team-card__meta {
  padding: 18px 16px 20px;
}

.rw-team-card__meta h3 {
  font-size: 17px;
  line-height: 1.22;
}

.rw-team-card__meta strong {
  font-size: 11px;
  line-height: 1.35;
}

.rw-team-card__meta p {
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 1080px) {
  .brand__logo { width: clamp(170px, 28vw, 220px); max-height: 49px; }
  .nav-language span { display: none; }
  .rw-team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .primary-nav .nav-language {
    width: 100%;
    min-height: 46px;
    justify-content: space-between;
    padding: 8px 0;
    margin-left: 0;
  }
  .primary-nav .nav-language span { display: inline; }
  .primary-nav .nav-language select { width: min(220px, 60%); }
  .brand__logo { width: clamp(160px, 48vw, 220px); max-height: 49px; }
}

@media (max-width: 640px) {
  .rw-team-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px;
  }
  .rw-team-card__photo img { aspect-ratio: 1 / 1; }
  .rw-team-card__meta { padding: 11px 8px 13px; }
  .rw-team-card__meta h3 { font-size: 12px; }
  .rw-team-card__meta strong { font-size: 9px; margin-bottom: 5px; }
  .rw-team-card__meta p { font-size: 10px; line-height: 1.35; }
}


/* RW_NAV_PORTFOLIO_COUNTERS_V21
   Counter suffixes behave like normal text: visible immediately and using the same font as the number. */
.rw-counter-item strong em,
.rw-counter-item strong [data-rw-counter-suffix] {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
  font: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
  font-style: normal !important;
  font-weight: inherit !important;
}

/* RW_450X100_LOGO_DISPLAY_V21
   Logo display tuned for a 450 x 100 source image while preserving the empty PHP text placeholders. */
.brand__logo {
  width: clamp(220px, 27vw, 315px) !important;
  max-height: 70px !important;
  aspect-ratio: 450 / 100;
}
@media (max-width: 860px) {
  .brand__logo {
    width: clamp(170px, 52vw, 260px) !important;
    max-height: 58px !important;
  }
}

/* RW_V22_NAV_ANCHORS_HERO_CHART_TEAM_FOOTER */
@media (min-width: 861px) {
  .nav-language span { display: none !important; }
}

.rw-hero h1 span {
  display: block;
}

.auto-hero-slider .auto-hero-dots {
  position: absolute;
  left: 50%;
  bottom: 28px;
  z-index: 4;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  gap: 10px;
}

.auto-hero-slider .auto-hero-dots button {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.72);
  background: rgba(255,255,255,.18);
  padding: 0;
  cursor: pointer;
}

.auto-hero-slider .auto-hero-dots button.is-active,
.auto-hero-slider .auto-hero-dots button:hover {
  background: var(--accent);
  border-color: var(--accent);
}

.rw-capability-chart {
  min-width: 0;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(135deg, rgba(244,242,238,.98), rgba(230,226,218,.92));
  box-shadow: var(--shadow);
  overflow: hidden;
}

.rw-capability-chart svg {
  display: block;
  width: 100%;
  height: auto;
}

.rw-chart-bg { fill: transparent; }
.rw-chart-axis { stroke: rgba(74,78,84,.35); stroke-width: 2; }
.rw-chart-grid-line { stroke: rgba(74,78,84,.08); stroke-width: 1; }
.rw-chart-line {
  fill: none;
  stroke: #b3474c;
  stroke-width: 7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rw-chart-point,
.rw-chart-legend circle {
  fill: #b3474c;
}
.rw-chart-legend line {
  stroke: #b3474c;
  stroke-width: 7;
  stroke-linecap: round;
}
.rw-chart-legend text {
  fill: #4a4e54;
  font-size: 27px;
  font-weight: 700;
  letter-spacing: .04em;
}
.rw-chart-legend .rw-chart-subtitle {
  font-size: 24px;
  font-weight: 400;
  fill: rgba(74,78,84,.78);
}
.rw-chart-y-label,
.rw-chart-years text,
.rw-chart-unit text {
  fill: #4a4e54;
  font-size: 23px;
  font-weight: 500;
}
.rw-chart-years text { text-anchor: middle; }
.rw-chart-year-tick { stroke: rgba(74,78,84,.18); stroke-width: 2; }
.rw-chart-unit text {
  text-anchor: middle;
  letter-spacing: .08em;
}

.rw-team-card__photo {
  position: relative;
  overflow: hidden;
  perspective: 900px;
}
.rw-team-card__photo img {
  filter: saturate(.8);
  transition: filter .32s ease, transform .32s ease;
}
.rw-team-card__photo:hover img,
.rw-team-card__photo:focus-within img {
  filter: saturate(1);
  transform: scale(1.03);
}
.rw-team-card__overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(29,32,36,.58);
  opacity: 0;
  transform: rotateX(90deg);
  transform-origin: center center;
  transition: opacity .28s ease, transform .42s cubic-bezier(.2,.8,.2,1);
  backface-visibility: hidden;
}
.rw-team-card__photo:hover .rw-team-card__overlay,
.rw-team-card__photo:focus-within .rw-team-card__overlay {
  opacity: 1;
  transform: rotateX(0deg);
}
.rw-cv-button {
  min-width: 86px;
  justify-content: center;
  box-shadow: 0 14px 32px rgba(0,0,0,.28);
}
.rw-cv-lightbox .project-lightbox__slide img {
  object-fit: contain;
}

.rw-cv-lightbox.is-single .project-lightbox__counter {
  display: none;
}

.site-footer--compact {
  background: #252d35;
  padding: 34px 0 18px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.footer-compact {
  display: grid;
  justify-items: center;
  gap: 14px;
  text-align: center;
}
.footer-compact__socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.footer-compact__socials a {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  background: #20272f;
  color: rgba(255,255,255,.58);
  font-size: 12px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.footer-compact__socials a:hover {
  background: var(--accent);
  color: #fff;
  transform: translateY(-2px);
}
.footer-compact__brand img {
  width: clamp(120px, 16vw, 170px);
  max-height: 46px;
  object-fit: contain;
  display: block;
}
.footer-compact__brand span {
  color: #fff;
  font-weight: 800;
}
.footer-compact__copyright {
  margin: 0;
  color: rgba(255,255,255,.66);
  font-size: 9px;
}

@media (max-width: 860px) {
  .auto-hero-slider .auto-hero-dots { bottom: 18px; }
  .rw-chart-legend text { font-size: 25px; }
  .rw-chart-y-label,
  .rw-chart-years text,
  .rw-chart-unit text { font-size: 22px; }
}


/* RW_V23_HOMEPAGE_VISUAL_REFINEMENTS
   Hero dots now reuse the project slider dot proportions, hero title lines never wrap,
   work captions reveal only on hover, chart colors match the dark theme, counters are
   plain text over the background, and mobile client logos match leadership card sizing. */
.rw-hero__shade {
  pointer-events: none;
}

.rw-hero h1 {
  font-size: clamp(34px, 6vw, 82px);
}

.rw-hero h1 span {
  display: block;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
  hyphens: none;
}

.auto-hero-slider .auto-hero-dots {
  z-index: 12;
  pointer-events: auto;
}

.auto-hero-slider .auto-hero-dots button,
.auto-hero-slider .auto-hero-dots button:hover {
  width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.24);
  cursor: pointer;
  transition: width 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.auto-hero-slider .auto-hero-dots button.is-active,
.auto-hero-slider .auto-hero-dots button.is-active:hover {
  width: 26px;
  background: var(--accent);
  border-color: var(--accent);
}

.auto-hero-slide,
.auto-hero-slide img {
  pointer-events: none;
}

.rw-feature__media {
  background-position: center center !important;
}

.rw-capability-chart {
  border-color: rgba(255,255,255,.13) !important;
  background: linear-gradient(145deg, rgba(29,32,36,.96), rgba(48,54,61,.96)) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
}

.rw-chart-bg {
  fill: rgba(16,18,21,.36) !important;
  stroke: rgba(255,255,255,.11) !important;
  stroke-width: 1.5 !important;
}

.rw-chart-axis {
  stroke: rgba(244,242,238,.38) !important;
}

.rw-chart-grid-line {
  stroke: rgba(244,242,238,.10) !important;
}

.rw-chart-year-tick {
  stroke: rgba(244,242,238,.20) !important;
}

.rw-chart-legend text,
.rw-chart-y-label,
.rw-chart-years text,
.rw-chart-unit text {
  fill: rgba(244,242,238,.88) !important;
}

.rw-chart-legend .rw-chart-subtitle {
  fill: rgba(244,242,238,.64) !important;
}

.rw-work-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(9,10,12,.56);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
  z-index: 1;
}

.rw-work-card__caption {
  z-index: 2;
  background: linear-gradient(180deg, transparent 12%, rgba(9,10,12,.78) 100%) !important;
  opacity: 0 !important;
  transform: translateY(18px);
  transition: opacity .3s ease, transform .3s ease;
  pointer-events: none;
}

.rw-work-card:hover::after,
.rw-work-card:focus-within::after {
  opacity: 1;
}

.rw-work-card:hover .rw-work-card__caption,
.rw-work-card:focus-within .rw-work-card__caption {
  opacity: 1 !important;
  transform: translateY(0);
  pointer-events: auto;
}

.rw-counter.rw-bg-panel {
  padding: 44px 0 38px;
  background: #050606 !important;
  border-block: 1px solid rgba(255,255,255,.08) !important;
}

.rw-counter-grid {
  gap: clamp(22px, 5vw, 72px) !important;
}

.rw-counter-item {
  padding: 0 !important;
  text-align: left !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.rw-counter-item strong {
  justify-content: flex-start !important;
  gap: 5px !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: clamp(24px, 2.45vw, 31px) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
}

.rw-counter-item strong span,
.rw-counter-item strong em {
  font: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
}

.rw-counter-item > span {
  margin-top: 15px !important;
  color: rgba(255,255,255,.9) !important;
  font-size: clamp(11px, 1.1vw, 15px) !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  letter-spacing: .34em !important;
  text-transform: uppercase !important;
}

@media (max-width: 860px) {
  .rw-hero h1 {
    font-size: clamp(26px, 7.2vw, 48px);
  }
  .auto-hero-slider .auto-hero-dots { bottom: 18px; }
  .rw-counter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    row-gap: 32px !important;
  }
}

@media (max-width: 640px) {
  .rw-hero h1 {
    font-size: clamp(18px, 4.9vw, 28px);
  }
  .rw-counter.rw-bg-panel {
    padding: 36px 0 34px;
  }
  .rw-counter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 20px !important;
  }
  .rw-counter-item > span {
    letter-spacing: .22em !important;
  }
  .rw-client-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: start !important;
    justify-items: stretch !important;
  }
  .rw-client-logo {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
  }
}


/* RW_V24_HOMEPAGE_HERO_COUNTER_CLIENT_FIXES
   Homepage hero dots are now rendered outside the generic hero slider so other pages keep clean heroes,
   the desktop hero type is smaller and centered, counters use #252b31, and mobile client logos have more spacing. */
.rw-hero__inner {
  width: 100%;
  max-width: min(1040px, calc(100vw - 48px));
  padding-inline: 24px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

@media (min-width: 861px) {
  .rw-hero h1 {
    font-size: clamp(40px, 4.2vw, 62px) !important;
    max-width: 100%;
    margin-inline: auto;
    text-align: center;
  }
  .rw-hero p:not(.section-kicker) {
    max-width: 660px;
    font-size: clamp(15px, 1.35vw, 19px) !important;
    line-height: 1.55;
    margin-top: 22px;
  }
}

.rw-hero h1 span,
.rw-feature__content h2 span {
  display: block;
}

.rw-hero h1 span {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
}

.rw-home-hero-dots {
  position: absolute;
  z-index: 30;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  pointer-events: auto;
}

.rw-home-hero-dots button,
.rw-home-hero-dots button:hover {
  width: 9px !important;
  height: 9px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,0.75) !important;
  background: rgba(255,255,255,0.24) !important;
  cursor: pointer !important;
  transition: width 0.2s ease, background 0.2s ease, border-color 0.2s ease !important;
}

.rw-home-hero-dots button.is-active,
.rw-home-hero-dots button.is-active:hover {
  width: 26px !important;
  background: var(--accent) !important;
  border-color: var(--accent) !important;
}

.rw-counter.rw-bg-panel {
  background: #252b31 !important;
}

.rw-skills-grid > div:first-child img {
  display: none !important;
}

@media (max-width: 640px) {
  .rw-client-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    justify-items: center !important;
    align-items: start !important;
  }
  .rw-client-logo {
    width: min(100%, 138px) !important;
    max-width: 138px !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
  }
  .rw-hero__inner {
    max-width: calc(100vw - 28px);
    padding-inline: 14px;
  }
  .rw-hero h1 {
    font-size: clamp(22px, 6.15vw, 31px) !important;
  }
  .rw-home-hero-dots {
    bottom: 18px;
  }
}


/* RW_V25_FOOTER_CTA_CENTER_FEATURE_TEXT */
.footer-cta { display: block; }
.page-home-rw .footer-cta { display: none !important; }
.site-footer--compact { text-align: center; }
.footer-compact {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  display: grid;
  place-items: center;
  justify-content: center;
  text-align: center;
}
.footer-compact__socials {
  width: 100%;
  justify-content: center;
  margin-inline: auto;
}
.footer-compact__brand {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-inline: auto;
}
.footer-compact__brand img {
  margin-inline: auto;
}
.footer-compact__copyright {
  width: 100%;
  text-align: center;
}
.rw-feature__items:empty { display: none; }


/* RW_V26_ALIGNMENT_CONTENT_PROJECTS_ABOUT */
.footer-compact {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  margin-inline: auto !important;
  text-align: center !important;
}
.footer-compact__socials,
.footer-compact__brand,
.footer-compact__copyright {
  width: fit-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
  align-self: center !important;
  text-align: center !important;
}
.footer-compact__socials {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.footer-compact__brand img {
  display: block !important;
  margin-inline: auto !important;
}
.rw-counter-grid {
  justify-items: center !important;
  align-items: center !important;
  text-align: center !important;
}
.rw-counter-item {
  width: 100% !important;
  text-align: center !important;
}
.rw-counter-item strong {
  justify-content: center !important;
  text-align: center !important;
}
.rw-counter-item > span {
  text-align: center !important;
}
.rw-client-grid {
  gap: clamp(28px, 4.2vw, 58px) !important;
  justify-items: center !important;
  align-items: center !important;
}
.rw-client-logo {
  width: min(100%, 150px) !important;
  max-width: 150px !important;
  aspect-ratio: 1 / 1 !important;
}
.values-list--ordered {
  margin: 0;
  padding-left: 1.35rem;
}
.values-list--ordered li::marker {
  color: var(--accent);
  font-weight: 800;
}
@media (max-width: 640px) {
  .rw-client-grid {
    gap: 26px 24px !important;
  }
  .rw-client-logo {
    width: min(100%, 138px) !important;
    max-width: 138px !important;
  }
}

/* RW_V27_ASSET_GROUPING_FOOTER_CONTACT_LEADERSHIP_SWIPE */
.site-footer--compact .shell.footer-compact {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
.site-footer--compact .footer-compact__socials,
.site-footer--compact .footer-compact__brand,
.site-footer--compact .footer-compact__copyright {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  transform: none !important;
  left: auto !important;
}
.site-footer--compact .footer-compact__copyright { display: block !important; }
.site-footer--compact .footer-compact__brand img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
  object-fit: contain;
  object-position: center;
}
.rw-client-grid {
  gap: clamp(42px, 6vw, 82px) !important;
}
@media (max-width: 640px) {
  .rw-client-grid { gap: 34px 30px !important; }
}
.rw-contact-line { align-items: baseline; }
.rw-contact-line b { font-weight: 400; color: inherit; }
.rw-contact-line--plain { padding-left: 0; }
.values-panel ol.values-list--ordered {
  list-style: decimal !important;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 26px;
  margin: 26px 0 0;
  padding-left: 1.35rem;
}
.values-panel ol.values-list--ordered li {
  padding-left: 0 !important;
  list-style-position: outside;
}
.values-panel ol.values-list--ordered li::before {
  content: none !important;
  display: none !important;
}
.values-panel ol.values-list--ordered li::marker {
  color: var(--accent);
  font-weight: 800;
}
.letter-body__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: clamp(24px, 3.6vw, 44px);
  align-items: start;
  margin-bottom: 22px;
}
.letter-body__intro p:first-child { margin-top: 0; }
.leadership-portrait {
  margin: 0;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: #252d35;
  box-shadow: var(--shadow);
}
.leadership-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
@media (max-width: 820px) {
  .letter-body__top { grid-template-columns: 1fr; }
  .leadership-portrait { max-width: 320px; margin-inline: auto; }
  .values-panel ol.values-list--ordered { grid-template-columns: 1fr; }
}


/* RW_V28_SERVICES_ALLIANCE_CV_UPDATES */
.rw-cv-button {
  min-width: 52px !important;
  width: 52px;
  height: 52px;
  padding: 0 !important;
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
}
.rw-cv-button i {
  font-size: 20px;
  line-height: 1;
}
.rw-services-more {
  margin-top: 34px;
}
.simple-content__list-intro {
  margin-top: 24px;
  color: #ffffff;
  font-weight: 800;
}
.simple-content__list {
  margin: 12px 0 0;
  padding-left: 1.25rem;
  color: #d8d2c7;
}
.simple-content__list li {
  margin: 8px 0;
}


/* RW_V30_SERVICES_ABOUT_STYLE_NO_BREADCRUMBS_JPG_ASSETS */
.page-services .page-hero__content { padding-bottom: 46px; }
.services-about-intro .services-copy { margin-top: 28px; max-width: 820px; color: #d6d1c7; }
.services-about-intro .services-copy p { margin: 0 0 18px; }
.services-values-band .values-panel { max-width: 760px; }
.services-values-panel .services-list { margin-top: 26px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.services-values-panel .services-list li { color: #f4f2ee; font-weight: 700; }
.services-image-stack img { object-fit: cover; }
@media (max-width: 720px) {
  .services-values-panel .services-list { grid-template-columns: 1fr; }
}


/* RW_V31_SERVICES_SINGLE_IMAGE_ONE_COLUMN */
.services-image-single {
  min-height: 0 !important;
  padding: 0 !important;
  display: flex;
  justify-content: center;
  align-items: center;
}
.services-image-single .services-image-single__figure {
  width: min(100%, 420px) !important;
  margin: 0 !important;
  aspect-ratio: 16 / 10;
}
.services-image-single .services-image-single__figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.services-values-panel .section-kicker { display: none !important; }
.services-values-panel .services-list,
.services-values-panel .services-list--single-column {
  grid-template-columns: 1fr !important;
  max-width: 560px;
}
.services-values-panel h2 {
  margin-bottom: 20px;
}
@media (max-width: 720px) {
  .services-image-single .services-image-single__figure { width: 100% !important; }
}


/* RW_V32_SERVICES_IMAGE_ALIGNMENT_AND_NAVY_UPDATE */
.services-about-intro .about-intro__grid {
  align-items: center;
}
.services-image-single {
  align-self: center;
  justify-self: center;
  width: 100%;
}
.services-image-single .services-image-single__figure {
  margin-inline: auto !important;
}
@media (max-width: 720px) {
  .services-about-intro .about-intro__grid {
    justify-items: center;
  }
  .services-image-single {
    justify-content: center;
    width: 100%;
  }
  .services-image-single .services-image-single__figure {
    width: min(100%, 420px) !important;
    margin-inline: auto !important;
  }
}

/* RW_V33_ABOUT_STYLE_GENERIC_AND_NEWS_STRUCTURE */
.page-about-style-generic .about-style-copy,
.page-news-index .about-style-copy {
  margin-top: 28px;
  max-width: 820px;
  color: #d6d1c7;
}
.page-about-style-generic .about-style-copy p,
.page-news-index .about-style-copy p {
  margin: 0 0 18px;
}
.about-style-values-panel .about-style-list,
.about-style-values-panel .services-list--single-column {
  grid-template-columns: 1fr !important;
  max-width: 640px;
}
.about-style-image-single img { object-fit: cover; object-position: center; }
.rw-section-action { margin: 36px 0 0; text-align: center; }
.news-list-section { background: var(--main-bg); }
.news-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.news-card {
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.news-card__image {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #24272d;
}
.news-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
}
.news-card:hover .news-card__image img { transform: scale(1.04); filter: saturate(1.05); }
.news-card__body { padding: 26px; }
.news-card__meta {
  margin: 0 0 12px;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.news-card h3 { margin: 0 0 12px; font-size: 24px; line-height: 1.12; }
.news-card h3 a { color: #fff; }
.news-card p { color: #d6d1c7; }
.news-post-article { background: var(--main-bg); }
.news-post-shell { max-width: 980px; }
.news-post-header h2 {
  margin: 0 0 16px;
  font-family: var(--font-serif);
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.04;
  letter-spacing: -.045em;
}
.news-post-excerpt { color: #e2ddd4; font-size: 20px; max-width: 780px; }
.news-post-content {
  margin-top: 40px;
  color: #d8d2c7;
  font-size: 18px;
  line-height: 1.76;
}
.news-post-content h3 {
  margin: 42px 0 14px;
  color: #fff;
  font-size: 28px;
}
.news-post-content ul { padding-left: 1.25rem; }
.news-post-content li { margin: 8px 0; }
.news-media { margin: 36px 0; }
.news-media img,
.news-media video {
  display: block;
  width: 100%;
  border: 1px solid rgba(255,255,255,.12);
  background: #24272d;
  box-shadow: var(--shadow);
}
.news-media figcaption {
  margin-top: 10px;
  color: #aaa39a;
  font-size: 14px;
}
.news-post-back { margin-top: 48px; }
@media (max-width: 980px) {
  .news-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .news-card-grid { grid-template-columns: 1fr; }
  .news-card__body { padding: 22px; }
  .news-post-content { font-size: 16px; }
}


/* RW_V34_PAGE_CONTENT_IMAGES_CLIENT_GRID_AND_NEWS_MEDIA_ROWS */
.about-style-client-section {
  background: var(--main-bg);
  padding-top: 0;
}
.page-our-clients .about-style-values-band {
  display: none;
}
.news-media-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
  margin: 36px 0;
}
.news-media-row .news-media {
  margin: 0;
}
.news-media-row .news-media img,
.news-media-row .news-media video {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
@media (max-width: 720px) {
  .news-media-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* RW_V43_ABOUT_SINGLE_IMAGE_STACK */
.page-about .about-image-single {
  align-self: center;
  justify-self: center;
  width: 100%;
}
.page-about .about-image-single .services-image-single__figure {
  width: min(100%, 440px) !important;
  aspect-ratio: 16 / 10;
}

/* RW_V45_HOME_SECTION_KICKER_GOLD */
.page-home-rw .section-kicker {
  color: var(--gold);
}

/* RW_V47_HOME_COUNTER_ROW_ALIGNMENT
   Counter cards now reserve consistent rows: the number row aligns with other
   numbers, and the label <span> row aligns with the other labels even when a
   label wraps to two lines. */
.rw-counter-grid {
  align-items: start !important;
}

.rw-counter-item {
  display: grid !important;
  grid-template-rows: auto minmax(2.9em, auto);
  align-content: start !important;
  justify-items: center !important;
  row-gap: 15px !important;
}

.rw-counter-item strong {
  min-height: 1em;
  margin: 0 !important;
}

.rw-counter-item > span {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  min-height: 2.9em;
  margin-top: 0 !important;
}

@media (max-width: 640px) {
  .rw-counter-item {
    grid-template-rows: auto minmax(2.7em, auto);
    row-gap: 12px !important;
  }
  .rw-counter-item > span {
    min-height: 2.7em;
  }
}
/* RW_V51_HOME_NEWS_BUTTON_BALANCED_SPACING */
#blog .rw-post-card > div > .button {
  margin-top: 26px;
}

/* RW_V52_HOME_HERO_EMPHASIS_AND_SERVICE_SHADOWS */
.rw-hero-title-gold {
  color: var(--gold);
  font-style: normal;
}

.page-home-rw .rw-service-card {
  box-shadow: 8px 8px 0 rgba(255,255,255,.24);
}


/* RW_V53_HOME_HERO_SECOND_LINE_SCALE
   Keep the second homepage hero title line visually shorter than the first line. */
.page-home-rw .rw-hero h1 span:nth-child(2) {
  display: block;
  font-size: .76em;
}

/* RW_V56_HOME_HERO_TYPE_CASCADE_CLEANUP
   The requested homepage hero h1 typography is enforced on the h1 and its
   block title-line spans so no older hero title rule can override the spacing. */
.page-home-rw .rw-hero h1,
.page-home-rw .rw-hero h1 > span {
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
}

/* RW_V62_CLIENT_GRID_SEVEN_PER_ROW
   Homepage and Our Clients page show seven circles per desktop row, while
   retaining three per row for tablet and mobile layouts. */
.page-home-rw #clients .rw-client-grid,
.page-our-clients .about-style-client-section .rw-client-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  justify-content: center !important;
}

@media (max-width: 1080px) {
  .page-home-rw #clients .rw-client-grid,
  .page-our-clients .about-style-client-section .rw-client-grid {
    grid-template-columns: repeat(3, minmax(0, 150px)) !important;
  }
}

@media (max-width: 640px) {
  .page-home-rw #clients .rw-client-grid,
  .page-our-clients .about-style-client-section .rw-client-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  .page-home-rw #clients .rw-client-logo,
  .page-our-clients .about-style-client-section .rw-client-logo {
    width: 100% !important;
    max-width: 104px !important;
    justify-self: center !important;
  }
}


/* RW_V57_HOME_HERO_NAV_CLIENT_REFINEMENTS */
.nav-toggle {
  padding: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  line-height: 1;
}

.nav-toggle span {
  width: 20px;
  height: 2px;
  margin: 0;
  flex: 0 0 2px;
}

@media (max-width: 860px) {
  .nav-toggle {
    display: flex !important;
  }
}

/* RW_V58_HOME_HERO_VIEWPORT_MINUS_HEADER
   The homepage hero uses the visible device viewport minus the sticky header,
   so the full slider area fits below the navigation on different screen heights. */
:root {
  --home-hero-viewport: 100vh;
}

@supports (height: 100svh) {
  :root { --home-hero-viewport: 100svh; }
}

@supports (height: 100dvh) {
  :root { --home-hero-viewport: 100dvh; }
}

@media (max-width: 860px) {
  :root { --header-offset: 68px; }
}

.page-home-rw .rw-hero {
  min-height: calc(var(--home-hero-viewport) - var(--header-offset)) !important;
  height: calc(var(--home-hero-viewport) - var(--header-offset)) !important;
}

.page-home-rw .rw-hero__inner {
  padding-block: clamp(40px, 8vh, 96px) clamp(58px, 8vh, 96px);
}

@media (max-height: 700px) and (min-width: 861px) {
  .page-home-rw .rw-hero__inner {
    padding-block: 34px 54px;
  }

  .page-home-rw .rw-hero p:not(.section-kicker) {
    margin-top: 14px;
  }

  .page-home-rw .rw-actions {
    margin-top: 18px;
  }
}

@media (max-width: 860px) {
  .page-home-rw .rw-hero__inner {
    padding-block: clamp(28px, 7vh, 66px) clamp(52px, 8vh, 72px);
  }
}

/* RW_V60_CLIENT_LOGO_TEXT_FALLBACK
   Keeps client slots visible when a numbered client image has not been supplied yet. */
.rw-client-logo__fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: inherit;
  background: #1d2329;
  color: var(--accent);
  font-family: var(--font-serif);
  font-size: clamp(13px, 1.15vw, 17px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.25;
  text-align: center;
  padding: 12px;
}


/* RW_V65_CLIENT_CIRCLE_SIZE_AND_CENTERING
   Homepage and Our Clients page client circles remain seven per desktop row,
   with larger circles and centered incomplete final rows. */
.page-home-rw #clients .rw-client-grid,
.page-our-clients .about-style-client-section .rw-client-grid {
  --rw-client-gap: clamp(24px, 3vw, 36px);
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: var(--rw-client-gap) !important;
}

.page-home-rw #clients .rw-client-logo,
.page-our-clients .about-style-client-section .rw-client-logo {
  flex: 0 0 calc((100% - (6 * var(--rw-client-gap))) / 7) !important;
  width: calc((100% - (6 * var(--rw-client-gap))) / 7) !important;
  max-width: 164px !important;
}

@media (max-width: 1080px) {
  .page-home-rw #clients .rw-client-grid,
  .page-our-clients .about-style-client-section .rw-client-grid {
    --rw-client-gap: clamp(18px, 4vw, 34px);
  }

  .page-home-rw #clients .rw-client-logo,
  .page-our-clients .about-style-client-section .rw-client-logo {
    flex-basis: calc((100% - (2 * var(--rw-client-gap))) / 3) !important;
    width: calc((100% - (2 * var(--rw-client-gap))) / 3) !important;
    max-width: 156px !important;
  }
}

@media (max-width: 640px) {
  .page-home-rw #clients .rw-client-grid,
  .page-our-clients .about-style-client-section .rw-client-grid {
    --rw-client-gap: 12px;
  }

  .page-home-rw #clients .rw-client-logo,
  .page-our-clients .about-style-client-section .rw-client-logo {
    flex-basis: calc((100% - (2 * var(--rw-client-gap))) / 3) !important;
    width: calc((100% - (2 * var(--rw-client-gap))) / 3) !important;
    max-width: 118px !important;
  }
}

/* RW_V67_ABOUT_IMAGE_AND_LEADERSHIP_SIZING
   About Us: make the intro single image fill the copy-card row, and reduce the leadership portrait size. */
.page-about .about-intro__grid {
  align-items: stretch;
}
.page-about .about-copy.reveal-card,
.page-about .about-image-single {
  min-height: 100%;
}
.page-about .about-image-single {
  align-self: stretch;
  justify-self: stretch;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  width: 100%;
}
.page-about .about-image-single .services-image-single__figure {
  width: 100% !important;
  max-width: none !important;
  height: 100%;
  min-height: 100%;
  aspect-ratio: auto;
}
.page-about .about-image-single .services-image-single__figure img {
  height: 100%;
}
.page-about .letter-body__top {
  grid-template-columns: minmax(0, 1fr) minmax(180px, min(260px, 50vw));
  gap: clamp(22px, 3vw, 38px);
}
.page-about .leadership-portrait {
  max-width: min(260px, 50vw);
  justify-self: end;
}
@media (max-width: 1080px) {
  .page-about .about-image-single .services-image-single__figure {
    min-height: clamp(260px, 45vw, 420px);
  }
}
@media (max-width: 820px) {
  .page-about .leadership-portrait {
    max-width: 260px;
    justify-self: center;
  }
}
@media (max-width: 640px) {
  .page-about .about-image-single .services-image-single__figure {
    min-height: 260px;
  }
  .page-about .leadership-portrait {
    max-width: 220px;
  }
}


/* RW_V76_MULTI_UPDATE
   Project category expansion, footer scale, homepage copy/contact updates,
   square packed client logos, and bottom-aligned news buttons. */
.site-footer--compact .footer-compact__brand img {
  width: clamp(220px, 27vw, 315px) !important;
  max-height: 70px !important;
  aspect-ratio: 450 / 100;
}

.site-footer--compact .footer-compact__socials {
  gap: 10px !important;
}

.site-footer--compact .footer-compact__socials a {
  width: 70px !important;
  height: 70px !important;
  font-size: 26px !important;
}

@media (max-width: 860px) {
  .site-footer--compact .footer-compact__brand img {
    width: clamp(170px, 52vw, 260px) !important;
    max-height: 58px !important;
  }

  .site-footer--compact .footer-compact__socials a {
    width: 58px !important;
    height: 58px !important;
    font-size: 22px !important;
  }
}

.page-home-rw #clients .rw-client-grid,
.page-our-clients .about-style-client-section .rw-client-grid {
  --rw-client-gap: 0px !important;
  gap: 0 !important;
  align-items: stretch !important;
}

.page-home-rw #clients .rw-client-logo,
.page-our-clients .about-style-client-section .rw-client-logo {
  border-radius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  padding: clamp(8px, 1.15vw, 16px) !important;
  flex: 0 0 calc(100% / 7) !important;
  width: calc(100% / 7) !important;
  max-width: none !important;
  aspect-ratio: 1 / 1 !important;
}

.page-home-rw #clients .rw-client-logo img,
.page-our-clients .about-style-client-section .rw-client-logo img {
  border-radius: 0 !important;
  object-fit: contain !important;
  background: #fff !important;
}

.page-home-rw #clients .rw-client-logo__fallback,
.page-our-clients .about-style-client-section .rw-client-logo__fallback {
  border-radius: 0 !important;
  background: #fff !important;
  color: #252b31 !important;
}


@media (max-width: 1080px) {
  .page-home-rw #clients .rw-client-logo,
  .page-our-clients .about-style-client-section .rw-client-logo {
    flex-basis: calc(100% / 3) !important;
    width: calc(100% / 3) !important;
    max-width: none !important;
  }
}

#blog .rw-blog-grid {
  align-items: stretch;
}

#blog .rw-post-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

#blog .rw-post-card > div {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}

#blog .rw-post-card > div > .button {
  margin-top: auto !important;
  align-self: flex-start;
}

.rw-contact-info > h3:not(:first-child) {
  margin-top: 26px;
}

.rw-contact-info > p {
  margin: 0 0 8px;
  color: #d8d2c7;
  line-height: 1.65;
}

/* RW_V77_PROJECT_CATEGORY_CLIENT_NEWS_CONTACT_REFINEMENTS
   Align the chart legend text with its SVG indicator, keep project category wording
   consistent, close client-logo background gaps, and preserve spacing above news CTAs. */
.rw-chart-legend text:not(.rw-chart-subtitle) {
  dominant-baseline: middle;
}

.page-home-rw #clients .rw-client-grid {
  background: #fff !important;
  overflow: hidden;
}

#blog .rw-post-card > div > p:not(.rw-post-card__date) {
  margin-bottom: 22px !important;
}

#blog .rw-post-card > div > .button {
  margin-top: auto !important;
}

/* RW_V78_PROJECT_SLIDER_AND_CLIENT_PAGE_REFINEMENTS
   Project gallery hero fills the viewport below the sticky header, slider arrows are
   centered inside their boxes, and the Our Clients page uses the same full white
   client-logo block as the homepage. */
:root {
  --project-detail-hero-viewport: 100vh;
}

@supports (height: 100svh) {
  :root { --project-detail-hero-viewport: 100svh; }
}

@supports (height: 100dvh) {
  :root { --project-detail-hero-viewport: 100dvh; }
}

.page-project-detail .project-detail-hero {
  min-height: calc(var(--project-detail-hero-viewport) - var(--header-offset)) !important;
  height: calc(var(--project-detail-hero-viewport) - var(--header-offset)) !important;
}

.page-project-detail .project-slider-arrow,
.page-project-detail .project-lightbox__arrow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.page-project-detail .project-slider-arrow span,
.page-project-detail .project-lightbox__arrow span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  transform: translateY(-1px);
}

.page-our-clients .about-style-client-section .rw-client-grid {
  background: #fff !important;
  overflow: hidden;
}


/* RW_V79_PROJECT_CONTENT_NEWS_ARROW_REFINEMENTS
   Center project slider chevrons with CSS-drawn arrows, keep the detail slider plus
   sticky header within the viewport, and reuse homepage news-card structure on the
   news listing page. */
.page-project-detail .project-slider-arrow > span,
.page-project-detail .project-lightbox__arrow > span {
  position: relative !important;
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  transform: none !important;
  font-family: inherit !important;
}

.page-project-detail .project-slider-arrow > span::before,
.page-project-detail .project-lightbox__arrow > span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  border-top: 3px solid currentColor;
  border-left: 3px solid currentColor;
}

.page-project-detail .project-slider-arrow--prev > span::before,
.page-project-detail .project-lightbox__arrow--prev > span::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.page-project-detail .project-slider-arrow--next > span::before,
.page-project-detail .project-lightbox__arrow--next > span::before {
  transform: translate(-50%, -50%) rotate(135deg);
}

.page-project-detail .project-detail-hero {
  min-height: calc(var(--project-detail-hero-viewport) - var(--header-offset)) !important;
  height: calc(var(--project-detail-hero-viewport) - var(--header-offset)) !important;
}

.rw-post-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.rw-post-card__image {
  display: block;
  overflow: hidden;
  background: #24272d;
}

.rw-post-card > img,
.rw-post-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
}

.rw-post-card:hover .rw-post-card__image img {
  transform: scale(1.04);
  filter: saturate(1.05);
}

.rw-post-card > div {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 26px;
}

.rw-post-card h3 a,
.rw-post-card h3 a:visited {
  color: #fff;
}

.rw-post-card > div > p:not(.rw-post-card__date) {
  margin-bottom: 22px !important;
}

.rw-post-card > div > .button {
  margin-top: auto !important;
  align-self: flex-start;
}

.news-list-section .rw-blog-grid.news-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

@media (max-width: 1080px) {
  .news-list-section .rw-blog-grid.news-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .news-list-section .rw-blog-grid.news-card-grid {
    grid-template-columns: 1fr;
  }
}


/* RW_V80_PROJECT_ARROW_HORIZONTAL_HOME_CARD_UNIFICATION
   Center the CSS-drawn project slider chevrons both vertically and horizontally,
   and make homepage project previews use the same card dimensions as the
   project overview cards. */
.page-project-detail .project-slider-arrow,
.page-project-detail .project-lightbox__arrow {
  padding: 0 !important;
  line-height: 0 !important;
}

.page-project-detail .project-slider-arrow > span,
.page-project-detail .project-lightbox__arrow > span {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

.page-project-detail .project-slider-arrow > span::before,
.page-project-detail .project-lightbox__arrow > span::before {
  top: 50% !important;
  left: 50% !important;
}

.rw-portfolio-grid .project-card,
.rw-portfolio-grid .project-card__link,
.rw-portfolio-grid .project-card img {
  min-height: 250px;
}

/* RW_V85_CLIENT_CONTACT_SIGNATURE_REFINEMENTS
   Remove clickable client-logo preview behavior, keep client logos on white tiles,
   use page-specific cluster backgrounds, and add signature placeholder layout. */
.page-home-rw #clients .rw-client-grid {
  background: #252b31 !important;
}

.page-our-clients .about-style-client-section .rw-client-grid {
  background: #353b43 !important;
}

.page-home-rw #clients .rw-client-logo,
.page-our-clients .about-style-client-section .rw-client-logo,
.page-home-rw #clients .rw-client-logo img,
.page-our-clients .about-style-client-section .rw-client-logo img,
.page-home-rw #clients .rw-client-logo__fallback,
.page-our-clients .about-style-client-section .rw-client-logo__fallback {
  background-color: #fff !important;
}

.rw-client-logo {
  cursor: default;
}

.rw-client-grid-intro {
  margin: -10px auto 28px;
  max-width: 780px;
  color: #d8d2c7;
  text-align: center;
  line-height: 1.75;
}

.rw-feature-more {
  text-align: left;
}

.signatures--with-image {
  display: flex;
  align-items: center;
  gap: clamp(22px, 4vw, 44px);
}

.signatures__image {
  flex: 0 0 min(220px, 42vw);
  min-height: 96px;
  display: grid;
  place-items: center;
  padding: 18px;
  border: 1px dashed rgba(255,255,255,.24);
  background: rgba(255,255,255,.06);
  color: #d8d2c7;
  font-size: .88rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.signatures__image img {
  display: block;
  max-width: 100%;
  max-height: 110px;
  object-fit: contain;
}

.signatures__text {
  display: grid;
  gap: 4px;
}

@media (max-width: 720px) {
  .signatures--with-image {
    align-items: flex-start;
    flex-direction: column;
  }

  .signatures__image {
    width: 100%;
    flex-basis: auto;
  }
}

/* RW_V86_ABOUT_STYLE_SERVICES_AND_LOGO_REFINEMENTS
   Align about-style images with their copy cards, remove residual white logo
   backgrounds, add service detail sections, and refine the signature layout. */
.about-intro::before {
  top: clamp(14px, 2vw, 24px) !important;
  bottom: clamp(14px, 2vw, 24px) !important;
  height: auto !important;
}

.page-about .about-intro__grid,
.page-about-style .about-style-intro .about-intro__grid,
.page-about-style-generic .about-style-intro .about-intro__grid,
.page-services .services-about-intro .about-intro__grid {
  align-items: stretch !important;
}

.page-about .about-image-single,
.page-about-style .about-style-image-single,
.page-about-style-generic .about-style-image-single,
.page-services .services-image-single {
  align-self: stretch !important;
  justify-self: stretch !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  width: 100% !important;
  min-height: 100% !important;
}

.page-about .about-image-single .services-image-single__figure,
.page-about-style .about-style-image-single .services-image-single__figure,
.page-about-style-generic .about-style-image-single .services-image-single__figure,
.page-services .services-image-single .services-image-single__figure {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  aspect-ratio: auto !important;
}

.page-about .about-image-single .services-image-single__figure img,
.page-about-style .about-style-image-single .services-image-single__figure img,
.page-about-style-generic .about-style-image-single .services-image-single__figure img,
.page-services .services-image-single .services-image-single__figure img {
  width: 100% !important;
  height: 100% !important;
  min-height: clamp(280px, 42vw, 520px);
  object-fit: cover !important;
}

.page-home-rw #clients .rw-client-grid {
  background: #252b31 !important;
  overflow: hidden !important;
}

.page-our-clients .about-style-client-section .rw-client-grid {
  background: #353b43 !important;
  overflow: hidden !important;
}

.page-home-rw #clients .rw-client-logo,
.page-our-clients .about-style-client-section .rw-client-logo,
.page-home-rw #clients .rw-client-logo img,
.page-our-clients .about-style-client-section .rw-client-logo img,
.page-home-rw #clients .rw-client-logo__fallback,
.page-our-clients .about-style-client-section .rw-client-logo__fallback {
  background: transparent !important;
  background-color: transparent !important;
}

.page-home-rw #clients .rw-client-logo,
.page-our-clients .about-style-client-section .rw-client-logo {
  padding: clamp(8px, 1vw, 14px) !important;
}

.partner-logo-card {
  background: transparent !important;
  border-left: 0 !important;
  box-shadow: none !important;
  padding: 12px 0 !important;
}

.partner-logo-card img {
  background: transparent !important;
}

.signatures--with-image {
  width: 100%;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(24px, 5vw, 56px) !important;
}

.signatures__image {
  flex: 0 1 min(260px, 42%) !important;
  min-height: 76px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  justify-items: start !important;
  color: #d8d2c7;
}

.signatures__image img {
  max-width: 100% !important;
  max-height: 120px !important;
  object-fit: contain !important;
}

.signatures__text {
  flex: 1 1 auto !important;
  justify-items: end !important;
  text-align: right !important;
}

.services-detail-sections {
  background: var(--main-bg);
}

.services-detail-section {
  border-top: 1px solid rgba(255,255,255,.06);
}

.services-detail-section__grid {
  grid-template-areas: "copy image";
}

.services-detail-section--reversed .services-detail-section__grid {
  grid-template-areas: "image copy";
}

.services-detail-section__copy {
  grid-area: copy;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.services-detail-section__image {
  grid-area: image;
}

.services-detail-section__copy h2 {
  margin: 0;
}

.services-detail-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: clamp(24px, 4vw, 44px);
}

.services-detail-gallery__item {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}

.services-detail-gallery__item img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

@media (max-width: 860px) {
  .page-about .about-intro__grid,
  .page-about-style .about-style-intro .about-intro__grid,
  .page-about-style-generic .about-style-intro .about-intro__grid,
  .page-services .services-about-intro .about-intro__grid,
  .services-detail-section__grid,
  .services-detail-section--reversed .services-detail-section__grid {
    grid-template-areas: none !important;
    align-items: start !important;
  }

  .page-about .about-image-single .services-image-single__figure,
  .page-about-style .about-style-image-single .services-image-single__figure,
  .page-about-style-generic .about-style-image-single .services-image-single__figure,
  .page-services .services-image-single .services-image-single__figure {
    min-height: 280px !important;
  }

  .services-detail-section__copy,
  .services-detail-section__image {
    grid-area: auto !important;
  }

  .services-detail-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .signatures--with-image {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .signatures__image,
  .signatures__text {
    width: 100% !important;
    flex-basis: auto !important;
    justify-items: start !important;
    text-align: left !important;
  }

  .services-detail-gallery {
    grid-template-columns: 1fr;
  }
}

/* RW_V87_ABOUT_STYLE_AND_SERVICES_DETAIL_REFINEMENTS
   Align about-style single images with the padded text area, keep the signature
   block background subtle, remove logo white-fill residue, and simplify Services detail sections. */
.page-about .about-intro:not(.services-detail-section) .about-image-single,
.page-about-style .about-style-intro .about-style-image-single,
.page-about-style-generic .about-style-intro .about-style-image-single,
.page-services section.services-about-intro:not(.services-detail-section) .services-image-single {
  box-sizing: border-box !important;
  padding: 42px 0 30px !important;
}

.page-about .about-intro:not(.services-detail-section) .about-image-single .services-image-single__figure,
.page-about-style .about-style-intro .about-style-image-single .services-image-single__figure,
.page-about-style-generic .about-style-intro .about-style-image-single .services-image-single__figure,
.page-services section.services-about-intro:not(.services-detail-section) .services-image-single .services-image-single__figure {
  height: 100% !important;
}

.signatures__image {
  border: 0 !important;
  background: rgba(255,255,255,.06) !important;
  padding: clamp(14px, 2vw, 20px) !important;
}

.page-home-rw #clients .rw-client-logo,
.page-our-clients .about-style-client-section .rw-client-logo,
.page-home-rw #clients .rw-client-logo img,
.page-our-clients .about-style-client-section .rw-client-logo img,
.page-home-rw #clients .rw-client-logo__fallback,
.page-our-clients .about-style-client-section .rw-client-logo__fallback,
.partner-logo-card,
.partner-logo-card img {
  background: transparent !important;
  background-color: transparent !important;
}

.services-detail-sections .about-intro::before {
  display: none !important;
}

.services-detail-sections .services-detail-section {
  background: var(--main-bg) !important;
}

.services-detail-section__grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .78fr) !important;
  grid-template-areas: none !important;
}

.services-detail-section__copy {
  grid-column: 1 !important;
  grid-area: auto !important;
}

.services-detail-section--reversed .services-detail-section__copy {
  grid-column: 2 !important;
}

.services-detail-sections .section-kicker,
.services-detail-section__image {
  display: none !important;
}

@media (max-width: 860px) {
  .page-about .about-intro:not(.services-detail-section) .about-image-single,
  .page-about-style .about-style-intro .about-style-image-single,
  .page-about-style-generic .about-style-intro .about-style-image-single,
  .page-services section.services-about-intro:not(.services-detail-section) .services-image-single {
    padding: 30px 0 0 !important;
  }

  .services-detail-section__grid {
    grid-template-columns: 1fr !important;
  }

  .services-detail-section__copy,
  .services-detail-section--reversed .services-detail-section__copy {
    grid-column: 1 !important;
  }
}

/* RW_V88_SERVICES_ANCHORS_PARTNER_BACKGROUND_LOADER
   Service anchors, section-aware Services dropdown highlighting, restored
   Alliance Partners logo-card background, and JS-only page loading overlay. */
html {
  scroll-behavior: smooth;
}

.services-detail-section {
  scroll-margin-top: calc(var(--header-offset, 88px) + 24px);
}

.services-list__link {
  color: inherit;
  text-decoration: none;
  transition: color .2s ease;
}

.services-list__link:hover,
.services-list__link:focus-visible {
  color: var(--accent-gold);
}

.partner-logo-card {
  background: #fff !important;
  background-color: #fff !important;
  border-left: 4px solid var(--accent) !important;
  box-shadow: 0 16px 36px rgba(0,0,0,0.22) !important;
  padding: 18px 22px !important;
}

.partner-logo-card img {
  background: transparent !important;
  background-color: transparent !important;
}

.site-loader {
  display: none;
}

html.js:not(.site-loaded) body {
  overflow: hidden;
}

html.js:not(.site-loaded) body > :not(.site-loader) {
  visibility: hidden;
}

html.js .site-loader {
  --site-loader-progress: 0;
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--main-bg);
  color: var(--text);
  opacity: 1;
  visibility: visible;
  transition: opacity .35s ease, visibility .35s ease;
}

html.js.site-loaded .site-loader {
  --site-loader-progress: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.site-loader__panel {
  width: min(72vw, 420px);
  display: grid;
  justify-items: center;
  gap: 22px;
}

.site-loader__logo {
  width: min(180px, 52vw);
  min-height: 64px;
  display: grid;
  place-items: center;
}

.site-loader__logo img {
  display: block;
  max-width: 100%;
  max-height: 92px;
  object-fit: contain;
}

.site-loader__logo-placeholder {
  display: inline-flex;
  min-width: 128px;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.18);
  color: #d8d2c7;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.site-loader__progress {
  width: 100%;
  height: 4px;
  background: rgba(255,255,255,.16);
  overflow: hidden;
  position: relative;
}

.site-loader__bar {
  display: block;
  width: 100%;
  height: 100%;
  transform-origin: left center;
  transform: scaleX(var(--site-loader-progress, 0));
  background: var(--accent-gold);
  transition: transform .24s ease-out;
}

.site-loader__text {
  font-size: 12px;
  line-height: 1;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #d8d2c7;
}

html.js.site-loaded .site-loader__bar {
  transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site-loader__bar { transition: none; }
}



/* RW_V96_METADATA_AND_MOBILE_LEADERSHIP_REFINEMENTS
   Keep the About Us leadership portrait as a normal standalone image on mobile. */
@media (max-width: 720px) {
  .page-about .letter-body__top {
    display: block !important;
  }

  .page-about .leadership-portrait {
    width: 100% !important;
    max-width: none !important;
    margin: 24px 0 !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
  }

  .page-about .leadership-portrait img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center top !important;
  }
}

/* RW_V97_NAV_IMAGE_NEWS_REFINEMENTS
   Remove navigation brand copy, enforce minimum height for single-image figures,
   and support clickable homepage news thumbnails. */
figure.image-stack__main.services-image-single__figure {
  min-height: 520px !important;
}

figure.image-stack__main.services-image-single__figure img {
  min-height: 520px !important;
}

.rw-post-card__image {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* RW_V107_SUBTLE_SITE_REVEAL_ANIMATIONS
   Restrained fly-in/fade-in reveal effects for page sections, cards and panels. */
.reveal-on-scroll {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  filter: blur(1px);
  transition:
    opacity .68s cubic-bezier(.2, .72, .18, 1),
    transform .68s cubic-bezier(.2, .72, .18, 1),
    filter .68s cubic-bezier(.2, .72, .18, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

.reveal-on-scroll[data-reveal="left"] {
  transform: translate3d(-28px, 0, 0);
}

.reveal-on-scroll[data-reveal="right"] {
  transform: translate3d(28px, 0, 0);
}

.reveal-on-scroll[data-reveal="fade"] {
  transform: translate3d(0, 0, 0);
}

.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

.rw-section-title.reveal-on-scroll,
.page-hero__content.reveal-on-scroll,
.project-hero__content.reveal-on-scroll {
  transition-duration: .78s;
}

.rw-service-card.reveal-on-scroll,
.project-card.reveal-on-scroll,
.rw-post-card.reveal-on-scroll,
.rw-team-card.reveal-on-scroll,
.rw-client-logo.reveal-on-scroll,
.partner-card.reveal-on-scroll {
  transition-duration: .58s;
}

@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll,
  .reveal-on-scroll[data-reveal="left"],
  .reveal-on-scroll[data-reveal="right"],
  .reveal-on-scroll[data-reveal="fade"] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* RW_V115_CAREERS_JOB_LINK_UNDERLINE
   Make the Careers external job link visually recognizable as a link. */
.simple-content__panel .careers-job-link,
.simple-content__panel .careers-job-link:visited {
  color: var(--accent-gold);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

.simple-content__panel .careers-job-link:hover,
.simple-content__panel .careers-job-link:focus-visible {
  color: #fff;
}


/* RW_V141_PARTNER_ORDER_HERO_SUBTITLE_CLIENT_GRID
   Homepage hero title lines now use the same visual scale, the subtitle uses
   the section-kicker typography while retaining its hero subtitle color, and
   desktop client logos are arranged as seven in the first row and eight in the
   second row when all 15 client slots are present. */
.page-home-rw .rw-hero h1 span:nth-child(2) {
  font-size: 1em !important;
}

.page-home-rw .rw-hero__inner > p:not(.section-kicker) {
  color: rgba(244,242,238,.86) !important;
  font-family: var(--font-sans) !important;
  font-size: clamp(12px, 1.05vw, 15px) !important;
  font-weight: 800 !important;
  letter-spacing: 0.2em !important;
  line-height: 1.45 !important;
  text-transform: uppercase !important;
}

.section-kicker__underline {
  text-decoration-line: underline;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.22em;
}

@media (min-width: 1081px) {
  .page-home-rw #clients .rw-client-grid,
  .page-our-clients .about-style-client-section .rw-client-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
  }

  .page-home-rw #clients .rw-client-logo:nth-child(-n+7),
  .page-our-clients .about-style-client-section .rw-client-logo:nth-child(-n+7) {
    flex: 0 0 calc(100% / 7) !important;
    width: calc(100% / 7) !important;
  }

  .page-home-rw #clients .rw-client-logo:nth-child(n+8),
  .page-our-clients .about-style-client-section .rw-client-logo:nth-child(n+8) {
    flex: 0 0 calc(100% / 8) !important;
    width: calc(100% / 8) !important;
  }
}

/* RW_V142_HOME_HERO_TITLE_ALIGNMENT_AND_FEATURE_EYEBROW
   Restores the homepage hero title to the same serif weight, spacing, and
   cadence as the Macau's Leading feature heading, keeps the second hero line
   centered and scaled to fit under the first line, and removes the RW underline
   from the feature eyebrow while making the leading words white. */
.page-home-rw .rw-hero h1 {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--font-serif) !important;
  font-weight: 500 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.04em !important;
  text-align: center !important;
}

.page-home-rw .rw-hero h1 > span {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  font: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.page-home-rw .rw-hero h1 > span:nth-child(2) {
  font-size: 0.78em !important;
}

.section-kicker__white {
  color: #fff;
}

.section-kicker__underline {
  text-decoration: none !important;
}



/* RW_V143_ALLIANCE_COPY_ABOUT_SIGNATURE_AND_HOME_GOLD
   Refine the homepage feature eyebrow colors, brighten the selected gold words,
   and stack the About Us signature image above the Kevin Lui signature text. */
.page-home-rw .rw-hero-title-gold,
.page-home-rw .section-kicker__gold {
  color: #d0ad70 !important;
}

.page-home-rw .section-kicker__white {
  color: #d8d2c7 !important;
}

.page-about .signatures--with-image {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: fit-content !important;
  max-width: 170px !important;
  margin-left: auto !important;
  gap: 6px !important;
}

.page-about .signatures__image {
  flex: 0 0 auto !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 8px 10px !important;
  display: grid !important;
  place-items: center !important;
  justify-items: center !important;
  text-align: center !important;
  border: 0 !important;
  background: rgba(255,255,255,.045) !important;
}

.page-about .signatures__image img {
  max-width: 100% !important;
  max-height: 62px !important;
  object-fit: contain !important;
}

.page-about .signatures__text {
  width: 100% !important;
  flex: 0 0 auto !important;
  display: grid !important;
  justify-items: center !important;
  text-align: center !important;
}

@media (max-width: 720px) {
  .page-about .signatures--with-image {
    margin-left: 0 !important;
  }
}


/* RW_V144_PARTNER_CONTACT_SIGNATURE_BUTTON_LIGHTBOX_REFINEMENTS
   Partner ordering/link copy, contact map ratio, signature alignment, service-card centering,
   capability chart border cleanup, button underline cleanup, and full-screen CV dialogs. */
.partner-copy a,
.partner-copy a:visited {
  color: var(--accent-gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(208,173,112,.58);
  transition: color .2s ease, border-color .2s ease;
}

.partner-copy a:hover,
.partner-copy a:focus-visible {
  color: #f1cf8d;
  border-bottom-color: #f1cf8d;
}

.button,
a.button,
a.button:visited,
a.button:hover,
a.button:focus,
a.button:focus-visible,
button.button,
button.button:hover,
button.button:focus,
button.button:focus-visible {
  text-decoration: none !important;
}

.page-about .signatures--with-image {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 6px !important;
}

.page-about .signatures__image,
.page-about .signatures__text {
  width: 170px !important;
  max-width: 170px !important;
}

.page-about .signatures__text {
  justify-items: end !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.page-about .signatures__text span {
  white-space: nowrap !important;
}

.rw-contact-info-map-grid {
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr) !important;
  align-items: stretch !important;
}

.rw-contact-map {
  min-height: 360px !important;
}

.rw-contact-map iframe {
  min-height: 360px !important;
}

.rw-service-card {
  display: flex !important;
  min-height: 250px !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

.rw-capability-chart {
  border: 0 !important;
  box-shadow: 8px 8px 0 rgba(255,255,255,.24), 0 24px 70px rgba(0,0,0,.28) !important;
}

.rw-chart-bg {
  stroke: transparent !important;
  stroke-width: 0 !important;
}

.rw-cv-lightbox,
.project-lightbox.rw-cv-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
}

.page-home-rw .rw-hero__inner > p:not(.section-kicker),
.page-home-rw .rw-feature__content > .section-kicker {
  font-size: clamp(12px, 1.05vw, 15px) !important;
}

@media (max-width: 1080px) {
  .rw-contact-info-map-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  .page-about .signatures--with-image {
    margin-left: 0 !important;
    align-items: flex-start !important;
  }

  .page-about .signatures__text {
    justify-items: start !important;
    text-align: left !important;
  }
}

/* RW_V147_TEAM_FEATURED_LEADER_SCREENSHOT_LAYOUT
   Rework the Team page featured leader profile to follow the referenced
   portrait-and-text leadership layout while using RW's existing color theme. */
.page-team .team-featured-leader-section {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: clamp(42px, 6vw, 76px) 0 !important;
  background:
    radial-gradient(circle at 18% 42%, rgba(185,148,90,.18), transparent 34%),
    linear-gradient(115deg, rgba(29,32,36,.98) 0%, rgba(53,59,67,.96) 52%, rgba(36,39,45,.98) 100%);
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.page-team .team-featured-leader-section::before,
.page-team .team-featured-leader-section::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.page-team .team-featured-leader-section::before {
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 96px 96px;
  opacity: .22;
}

.page-team .team-featured-leader-section::after {
  right: 0;
  top: 0;
  bottom: 0;
  width: 38%;
  background: linear-gradient(90deg, transparent, rgba(200,25,39,.11));
}

.page-team .team-page-leadership-section {
  padding-top: clamp(58px, 6vw, 86px) !important;
}

.team-featured-leader {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(260px, 0.95fr) minmax(320px, 0.78fr);
  align-items: center;
  gap: clamp(34px, 6vw, 88px);
  min-height: clamp(430px, 40vw, 540px);
}

.team-featured-leader__photo {
  position: relative;
  align-self: stretch;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: clamp(420px, 38vw, 540px);
  margin: 0;
  overflow: hidden;
  background: linear-gradient(160deg, rgba(244,242,238,.08), rgba(17,23,34,.52));
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 28px 80px rgba(0,0,0,.34);
}

.team-featured-leader__photo::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 38%;
  background: linear-gradient(180deg, transparent, rgba(7,9,13,.42));
  z-index: 1;
  pointer-events: none;
}

.team-featured-leader__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(.2) contrast(1.03);
}

.team-featured-leader__content {
  max-width: 510px;
  justify-self: start;
}

.team-featured-leader__content h2 {
  margin: 0 0 8px;
  color: #f4f2ee;
  font-family: var(--font-serif);
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.team-featured-leader__content strong {
  display: block;
  margin-bottom: 22px;
  color: #d6b06d;
  font-size: clamp(15px, 1.25vw, 19px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .02em;
}

.team-featured-leader__content p {
  margin: 0;
  color: #d8d2c7;
  font-size: clamp(15px, 1vw, 17px);
  line-height: 1.78;
}

@media (max-width: 900px) {
  .team-featured-leader {
    grid-template-columns: 1fr;
    gap: 28px;
    min-height: 0;
  }

  .team-featured-leader__photo {
    min-height: 0;
    max-width: 560px;
    width: 100%;
    aspect-ratio: 4 / 3;
    justify-self: center;
  }

  .team-featured-leader__content {
    max-width: none;
    justify-self: stretch;
    text-align: left;
  }
}

/* RW_V148_TEAM_LEADERSHIP_TITLE_REORDER
   Place the Team page Our Leadership title at the top of the featured leader band. */
.page-team .team-featured-leader__heading {
  position: relative;
  z-index: 1;
  margin: 0 0 clamp(30px, 4vw, 52px) !important;
}

/* RW_V150_TEAM_PAGE_FOUR_CARD_GRID
   Keep the Team page's four remaining small leadership cards spanning the full row
   without changing the shared five-card homepage leadership layout. */
.page-team .team-page-leadership-section .rw-team-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 1080px) {
  .page-team .team-page-leadership-section .rw-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .page-team .team-page-leadership-section .rw-team-grid {
    grid-template-columns: 1fr !important;
  }
}
