/* ============================================================
   3V Partners — Home (index)
   Single stylesheet. Monochrome editorial theme.
   Fonts: Newsreader (serif) + Plus Jakarta Sans (sans).
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap");

:root {
  --ink: #09090a; /* page dark */
  --card: #161617;
  --line-card: rgba(255, 255, 255, 0.07);

  --white: #ffffff;
  --txt: #ffffff;
  --txt-card: #e8e5e1;
  --txt-muted: #8c8c8c;
  --txt-dim: #acacac;
  --txt-foot: #787878;
  --txt-b4: #b4b4b4;

  --on-light: #09090a;
  --on-light-2: #2a2a2a;
  --on-light-3: #444444;
  --on-light-meta: #868686;

  --line-dark: #262626;
  --line-light: #696969;
  --eyebrow-dark: #e6e6e6;

  --ff-serif: "Newsreader", Georgia, serif;
  --ff-sans: "Plus Jakarta Sans", system-ui, sans-serif;
  --container: 1300px;
  --padding: 0 20px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: var(--ff-sans);
  background: var(--ink);
  color: var(--txt);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img {
  display: block;
  max-width: 100%;
}
a {
  color: inherit;
  text-decoration: none;
}
p {
  margin: 0;
}

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 20px;
}

/* ---------- shared ---------- */
.eyebrow {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  margin: 0;
}
.eyebrow--dark {
  color: var(--eyebrow-dark);
}
.eyebrow--light {
  color: #000;
}
.eyebrow-row {
  display: flex;
  align-items: center;
  gap: 20px;
}
.eyebrow-row .line {
  width: 60px;
  height: 2px;
  flex: none;
}
.eyebrow-row .line--dark {
  background: var(--eyebrow-dark);
}
.eyebrow-row .line--black {
  background: #000;
}

.h-serif {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.34;
  margin: 0;
}

/* buttons — sharp rectangles */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  cursor: pointer;
  font-family: var(--ff-sans);
  font-weight: 500;
  letter-spacing: 0.05em;
  white-space: nowrap;
  transition: 0.25s ease;
  text-transform: capitalize;
}
.btn__arrow {
  width: 24px;
  height: 24px;
  transform: rotate(90deg);
}
.btn--white {
  background: #fff;
  color: var(--on-light);
  padding: 14px 22px 14px 28px;
  font-size: 15px;
}
.btn--white:hover {
  background: #e9e9e9;
}
.btn--outline-light {
  background: #111;
  color: #fff;
  border: 1px solid #9f9f9f;
  padding: 14px 23px;
  font-size: 15px;
}
.btn--outline-light:hover {
  background: #000;
}
.btn--ghost-dark {
  background: var(--ink);
  color: #fff;
  border: 1px solid #474747;
  padding: 9px 20px;
  font-size: 14px;
}
.btn--ghost-dark:hover {
  background: #1c1c1c;
}
.btn--white-bordered {
  background: #fff;
  color: var(--on-light);
  border: 1px solid #474747;
  padding: 9px 20px;
  font-size: 13px;
}
.btn--white-bordered:hover {
  background: #ececec;
}

.section {
  padding: 120px 0 100px;
}
.section--light {
  background: #fff;
  color: var(--on-light);
}
.section--dark {
  background: var(--ink);
}

/* ============================================================
   NAVBAR
   ============================================================ */
.nav {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 50;
}
.nav__inner {
  max-width: var(--container);
  margin-inline: auto;
  padding: 30px 20px 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.nav__logo {
  width: 117px;
  height: 50px;
}
.nav__menu {
  display: flex;
  align-items: center;
  gap: 30px;
}
.nav__link {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.7px;
  color: #fff;
}
.nav__link:hover {
  opacity: 0.75;
}
.nav__chev {
  width: 20px;
  height: 20px;
  transform: rotate(90deg);
}
.nav__utility {
  display: flex;
  align-items: center;
  gap: 14px;
}
.lang {
  font-size: 14px;
  letter-spacing: 0.7px;
  font-weight: 500;
  color: #fff;
}
.lang b {
  font-weight: 700;
}
.lang .sep {
  color: rgba(255, 255, 255, 0.5);
}
.lang__opt {
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: color 0.2s ease;
}
.lang__opt.is-active {
  color: #fff;
  font-weight: 700;
}
.lang__opt:hover {
  color: #fff;
}
.nav__divider {
  width: 1px;
  height: 20px;
  background: #505050;
}
.nav__burger {
  display: none;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 8px;
}
.nav__burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  margin: 5px 0;
  transition: 0.3s;
}

/* ---------- Dropdown mega-menu (Blackstone-style) ---------- */
.nav__item {
  position: static;
  display: inline-flex;
  align-items: center;
}
.nav__toggle {
  background: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
  padding: 0;
}
.nav__label {
  border-bottom: 2px solid transparent;
  padding-bottom: 3px;
  transition: border-color 0.25s ease;
}
.nav__item:hover > .nav__toggle,
.nav__item.is-open > .nav__toggle {
  opacity: 1;
}
.nav__item:hover > .nav__toggle .nav__label,
.nav__item.is-open > .nav__toggle .nav__label {
  border-bottom-color: #fff;
}
.nav__chev {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav__item.is-open > .nav__toggle .nav__chev {
  transform: rotate(270deg);
}
.nav__util-link {
  font-size: 14px;
  letter-spacing: 0.7px;
  font-weight: 500;
  color: #fff;
}
.nav__util-link:hover {
  opacity: 0.75;
}

/* full-width sliding panel (absolute to .nav so it scrolls away with the header) */
.nav__panel {
  position: absolute;
  top: 88px;
  left: 0;
  right: 0;
  z-index: 45;
  background: var(--ink);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-16px);
  pointer-events: none;
  transition:
    opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.45s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0.45s;
}
.nav__item.is-open > .nav__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition:
    opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav__panel-inner {
  max-width: var(--container);
  margin-inline: auto;
  padding: 26px 30px 48px;
}
/* divider line aligned to the nav content (inside the container, not full-bleed) */
.nav__panel-inner::before {
  content: "";
  display: block;
  height: 1px;
  background: rgba(255, 255, 255, 0.16);
  margin-bottom: 30px;
}
.nav__panel-eyebrow {
  font-size: 16px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 20px;
  font-weight: 600;
}
.nav__panel-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  max-width: 760px;
}
.nav__sub {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 8px 0 6px;
  font-family: var(--ff-sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.2px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.82);
  border-bottom: 1.5px solid transparent;
  opacity: 0;
  transform: translateY(18px);
}
.nav__sub:hover {
  color: #fff;
  border-bottom-color: #fff;
}
.nav__item.is-open > .nav__panel .nav__sub {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.55s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.25s ease;
}
.nav__item.is-open > .nav__panel .nav__sub:nth-child(1) {
  transition-delay: 0.06s;
}
.nav__item.is-open > .nav__panel .nav__sub:nth-child(2) {
  transition-delay: 0.12s;
}
.nav__item.is-open > .nav__panel .nav__sub:nth-child(3) {
  transition-delay: 0.18s;
}
.nav__item.is-open > .nav__panel .nav__sub:nth-child(4) {
  transition-delay: 0.24s;
}
.nav__item.is-open > .nav__panel .nav__sub:nth-child(5) {
  transition-delay: 0.3s;
}

/* dim scrim behind the panel */
.nav__scrim {
  position: fixed;
  inset: 88px 0 0 0;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 40;
  transition:
    opacity 0.45s ease,
    visibility 0s linear 0.45s;
}
.nav.has-drop .nav__scrim {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.45s ease;
}

@media (prefers-reduced-motion: reduce) {
  .nav__panel,
  .nav__item.is-open > .nav__panel,
  .nav__sub,
  .nav__item.is-open > .nav__panel .nav__sub {
    transition-duration: 0.01ms;
    transition-delay: 0s;
  }
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  background: var(--ink);
  padding-top: 241px;
  padding-bottom: 80px;
}
.eyebrow-row {
  max-width: var(--container);
  margin-inline: auto;
}
.hero__head {
  padding: var(--padding);
  max-width: var(--container);
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: center;
}
.hero__left {
  flex: 1 1 auto;
}
.hero__eyebrow {
  padding: var(--padding);
  margin-bottom: 60px;
}
.hero__eyebrow .line {
  background: var(--eyebrow-dark);
}
.hero__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  color: #fff;
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1.11;
  margin: 0;
}
.hero__title .strong {
  font-weight: 600;
}
.hero__title .indent {
  display: inline-block;
  padding-left: 188px;
}

/* hero entrance — Blackstone-style line reveal + fade-up */
.hero__line {
  display: block;
  overflow: hidden;
  padding: 0.08em 0 0.16em;
}
.hero__line-in {
  display: inline-block;
  transform: translateY(120%);
  animation: hero-rise 1s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.hero__line:nth-child(1) .hero__line-in {
  animation-delay: 0.15s;
}
.hero__line:nth-child(2) .hero__line-in {
  animation-delay: 0.32s;
}
@keyframes hero-rise {
  from {
    transform: translateY(120%);
  }
  to {
    transform: translateY(0);
  }
}
.hero__eyebrow {
  animation: hero-fade 0.9s ease both;
}
.hero__desc {
  animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) both 0.5s;
}
.hero__cta {
  animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) both 0.65s;
}
@keyframes hero-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes hero-fade-up {
  from {
    opacity: 0;
    transform: translateY(26px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero__line-in,
  .hero__eyebrow,
  .hero__desc,
  .hero__cta {
    animation: none;
    transform: none;
    opacity: 1;
  }
}

.hero__right {
  width: 522px;
  flex: none;
  padding-top: 5px;
}
.hero__desc {
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 24px;
  line-height: 1.33;
  color: #fff;
  margin-bottom: 40px;
}
.hero__cta {
  display: flex;
  align-items: center;
  gap: 0;
}
/* primary CTA — text + circular arrow (Figma 48:279); also reused as a form submit */
.hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  padding: 0 28px 0 0;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
}
.hero-cta__label {
  font-family: var(--ff-sans);
  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: 0.8px;
  text-transform: capitalize;
  color: #fff;
}
.hero-cta__circle {
  flex: none;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #050506;
  border: 2px solid #fff;
  border-radius: 60px;
  transition:
    background 0.25s ease,
    transform 0.25s ease;
}
.hero-cta__circle img {
  width: 20px;
  height: 20px;
  transform: rotate(180deg);
  transition: filter 0.25s ease;
}
.hero-cta:hover .hero-cta__circle {
  background: #fff;
  transform: translateX(3px);
}
.hero-cta:hover .hero-cta__circle img {
  filter: invert(1);
}
/* secondary CTA — left-divided text link (Figma 14:1099) */
.hero-cta-alt {
  display: inline-flex;
  align-items: center;
  padding: 14px 24px;
  border-left: 1px solid #9f9f9f;
  font-family: var(--ff-sans);
  font-weight: 500;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0.75px;
  text-transform: capitalize;
  color: #fff;
  transition: opacity 0.25s ease;
}
.hero-cta-alt:hover {
  opacity: 0.75;
}

.hero__video {
  max-width: var(--container);
  margin: 70px auto 0;
  padding: var(--padding);
}
.hero__video-inner {
  position: relative;
  background: #2d2d2d;
  overflow: hidden;
  aspect-ratio: 1260/576;
}
.hero__video-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__play {
  position: absolute;
  right: 40px;
  bottom: 40px;
  width: 86px;
  height: 86px;
  border-radius: 50%;
  background: #fff;
  border: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.25s;
}
.hero__play:hover {
  transform: scale(1.06);
}
.hero__play img {
  width: 28px;
  height: 28px;
}

/* hero — vision row below the video */
.hero__foot {
  max-width: var(--container);
  margin: 55px auto 0;
  padding: var(--padding);
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: flex-start;
}
.hero__foot-left {
  flex: 1 1 auto;
}
.hero__foot-title {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: 36px;
  line-height: 1.33;
  color: #fff;
  margin: 0;
  max-width: 510px;
}
.hero__foot-right {
  width: 522px;
  flex: none;
}
.hero__foot-desc {
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: -0.4px;
  color: #fff;
  margin: 0 0 30px;
}
.hero__watch {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.7px;
  color: #fff;
}
.hero__watch-icon {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: 0.25s ease;
}
.hero__watch:hover .hero__watch-icon {
  transform: scale(1.08);
}

/* hero — closing divider line (1260 × 1) */
.hero__divider {
  max-width: var(--container);
  margin: 60px auto 0;
  padding: var(--padding);
}
.hero__divider::before {
  content: "";
  display: block;
  height: 1px;
  background: var(--line-dark);
}

/* ============================================================
   VISION & MISSION (light)
   ============================================================ */
.vm {
  text-align: center;
}
.vm__eyebrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  margin-bottom: 56px;
}
.vm__eyebrow .bar {
  width: 60px;
  height: 2px;
  background: #000;
}
.vm__eyebrow p {
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 2.8px;
  color: #000;
}
.vm__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  color: #000;
  margin: 0 0 80px;
}
.vm__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  text-align: left;
}
.vm__line {
  height: 1px;
  background: var(--line-light);
  margin-bottom: 50px;
}
.vm__sub {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: 36px;
  line-height: 1.33;
  color: #000;
  margin-bottom: 44px;
}
.vm__text {
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 19px;
  line-height: 1.6;
  max-width: 490px;
  color: var(--on-light-2);
}
.vm__text.vm__full {
  max-width: 100%;
}
.vm__text p + p {
  margin-top: 10px;
}

/* ============================================================
   VALUES (dark) — banner + philosophy + accordion
   ============================================================ */
.values {
  position: relative;
}
.values__banner {
  position: relative;
  height: 536px;
  overflow: hidden;
}
.values__banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.values__banner .values__banner-logo {
  width: 117px;
  height: 50px;
}
.values__banner-logo {
  position: absolute;
  left: 20px;
  bottom: 20px;
  width: 117px;
  height: 50px;
}
.values__lower {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  position: relative;
  z-index: 2;
}
.values__text {
  flex: 1 1 0;
  padding-top: 90px;
  max-width: 430px;
}
.values__text .eyebrow-row {
  margin-bottom: 40px;
}
.values__heading {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 3.8vw, 52px);
  line-height: 1.34;
  color: #fff;
  margin: 0 0 40px;
  max-width: 253px;
}
.values__lead {
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  color: var(--txt-dim);
  max-width: 362px;
}

.values__card {
  width: 714px;
  flex: none;
  margin-top: -77px;
  background: var(--card);
  border: 1px solid var(--line-card);
  padding: 70px 50px 50px;
}
.value {
  border-top: 1px solid var(--line-card);
}
.value__row {
  display: flex;
  align-items: center;
  gap: 33px;
  padding: 30px 0;
  width: 100%;
  background: none;
  border: 0;
  text-align: left;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
}
.value__num {
  font-weight: 600;
  font-size: 13px;
  color: #686868;
  width: 20px;
  flex: none;
}
.value__name {
  flex: 1;
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.33;
  color: var(--txt-card);
  text-transform: capitalize;
}
.value__toggle {
  position: relative;
  width: 20px;
  height: 20px;
  flex: none;
}
.value__toggle::before,
.value__toggle::after {
  content: "";
  position: absolute;
  background: #fff;
}
.value__toggle::before {
  left: 4px;
  top: 9px;
  width: 11px;
  height: 1px;
}
.value__toggle::after {
  left: 9px;
  top: 4px;
  width: 1px;
  height: 11px;
  transition: opacity 0.25s;
}
.value.is-open .value__toggle::after {
  opacity: 0;
}
.value__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
  padding-left: 56px;
  padding-right: 40px;
}
.value.is-open .value__body {
  grid-template-rows: 1fr;
}
.value__body > div {
  overflow: hidden;
}
.value__text {
  font-size: 15px;
  line-height: 1.73;
  color: var(--txt-muted);
  padding: 0 0 30px;
}

/* ============================================================
   BRAND BAND (dark) — giant wordmark
   ============================================================ */
.brand {
  background: var(--ink);
  padding: 60px 0 120px;
  overflow: hidden;
}
.brand__divider {
  height: 1px;
  background: var(--line-dark);
}
.brand__marquee {
  margin: 90px 0 28px;
  width: 100%;
  overflow: hidden;
}
.brand__track {
  display: flex;
  width: max-content;
  animation: brand-scroll 30s linear infinite;
  will-change: transform;
}
.brand__word {
  flex: none;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(60px, 12vw, 230px);
  line-height: 1.1;
  color: #fff;
  white-space: nowrap;
  padding-right: 0.35em;
}
.brand__word .strong {
  font-weight: 600;
}
@keyframes brand-scroll {
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .brand__track {
    animation: none;
  }
}
.brand__caption {
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 16px;
  line-height: 2;
  color: #fff;
}

/* ============================================================
   SECTORS (light)
   ============================================================ */
.sectors__head {
  margin-bottom: 50px;
}
.sectors__eyebrow {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 50px;
}
.sectors__eyebrow .bar {
  width: 60px;
  height: 2px;
  background: #000;
}
.sectors__eyebrow p {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  color: #000;
}
.sectors__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  color: #000;
  margin: 0;
}
.sectors__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.sector__media {
  height: 400px;
  overflow: hidden;
  background: #161617;
  margin-bottom: 40px;
}
.sector__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.sector:hover .sector__media img {
  transform: scale(1.04);
}
.sector__line {
  height: 1px;
  background: var(--line-light);
  margin-bottom: 50px;
}
.sector__title {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.33;
  color: #000;
  margin: 55px 0 20px;
}
.sector__text {
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  color: var(--on-light-2);
  max-width: 555px;
}

/* ============================================================
   TEAM (dark)
   ============================================================ */
.team__head {
  margin-bottom: 60px;
}
.team__eyebrow {
  margin-bottom: 50px;
}
.team__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  color: #fff;
  margin: 0;
  line-height: 1.3;
  max-width: 660px;
}
.team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 70px 24px;
}
.member__photo {
  position: relative;
  aspect-ratio: 297/298;
  overflow: hidden;
  background: #414141;
  margin-bottom: 18px;
}
.member__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.member__photo.tcenter img {
  object-position: center;
}
.member__name {
  font-weight: 500;
  font-size: 19px;
  color: var(--txt-card);
  margin-bottom: 5px;
}
.member__role {
  font-size: 15px;
  line-height: 1.6;
  color: var(--txt-muted);
}

/* ============================================================
   PARTNERS (dark)
   ============================================================ */
.partners {
  background: var(--ink);
  padding: 0 0 80px;
}
.partners__divider {
  max-width: 1260px;
  margin: 0 auto 60px;
  height: 1px;
  background: var(--line-dark);
}
.partners__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 60px;
}
.partners__label .bar {
  width: 60px;
  height: 2px;
  background: var(--txt-b4);
  margin-bottom: 36px;
}
.partners__title {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--txt-b4);
}
.partners__soon {
  margin-top: 16px;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: #5c5c5c;
}

/* logo row — individual logos, constrained to the 977px grid */
.partners__logos {
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.partners__item {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.partners__item img {
  width: auto;
  max-width: 100%;
  object-fit: contain;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.partners__item img:hover {
  opacity: 1;
}
@media (max-width: 860px) {
  .partners__logos {
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px 48px;
  }
  .partners__item img {
    height: 34px;
  }
}

/* light variant (about.html) — white background to match the design */
.partners.light {
  background: #fff;
  padding-top: 80px;
}
.partners.light .partners__divider {
  display: none;
}
.partners.light .partners__label .bar {
  background: #09090a;
}
.partners.light .partners__title {
  color: #09090a;
}
.partners.light .partners__soon {
  color: #8a8a8a;
}
.partners.light .partners__item img {
  opacity: 1;
}

/* ============================================================
   NEWS (light)
   ============================================================ */
.news__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 60px;
  flex-wrap: wrap;
}
.news__eyebrow {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 26px;
}
.news__eyebrow .bar {
  width: 60px;
  height: 1px;
  background: #000;
}
.news__eyebrow p {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  color: #000;
  text-transform: uppercase;
}
.news__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  color: var(--on-light);
  margin: 0;
}
.news__title-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.news__soon {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: #888;
}
.news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.article__media {
  height: 330px;
  overflow: hidden;
  background: #383838;
  margin-bottom: 30px;
}
.article__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.article:hover .article__media img {
  transform: scale(1.04);
}
.article__meta {
  display: flex;
  gap: 4px;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.article__cat {
  color: var(--on-light-3);
}
.article__date {
  color: var(--on-light-meta);
}
.article__title {
  font-family: var(--ff-serif);
  font-weight: 300;
  font-size: 23px;
  line-height: 1.39;
  color: var(--on-light);
  padding-right: 30px;
  margin-top: 10px;
}

/* ============================================================
   CONTACT / CTA (dark)
   ============================================================ */
.contact__grid {
  display: grid;
  grid-template-columns: 1fr 511px;
  gap: 80px;
  align-items: start;
}
.contact__eyebrow {
  margin-bottom: 50px;
}
.contact__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.34;
  color: #fff;
  margin: 0;
  max-width: 535px;
}
.contact__form {
  display: flex;
  flex-direction: column;
}
.contact__form .field {
  margin-top: 28px;
}
.field {
  background: #131417;
  border-bottom: 1px solid #b1b1b1;
}
.field input {
  width: 100%;
  background: transparent;
  border: 0;
  outline: none;
  color: #fff;
  font-family: var(--ff-sans);
  font-size: 22px;
  line-height: 60px;
  padding: 0 24px;
}
.field input::placeholder {
  color: #fff;
  opacity: 1;
}
.contact__consent {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-top: 24px;
}
.contact__consent .box {
  width: 24px;
  height: 24px;
  border: 1px solid #fff;
  flex: none;
  cursor: pointer;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  position: relative;
}
.contact__consent .box:checked::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 2px;
  width: 7px;
  height: 13px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.contact__consent p {
  font-size: 14px;
  line-height: 1.71;
  color: #c9c9c9;
}
.contact__consent a {
  text-decoration: underline;
}
.contact__submit {
  margin-top: 32px;
  align-self: flex-start;
}

/* newsletter band */
.newsletter {
  background: var(--card);
  border: 1px solid var(--line-card);
  display: flex;
  align-items: center;
  gap: 70px;
  padding: 70px 50px 50px;
  margin-top: 120px;
}
.newsletter__intro {
  flex: 1 1 0;
}
.newsletter__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: 48px;
  line-height: 1;
  color: var(--txt-card);
  margin: 0 0 20px;
}
.newsletter__desc {
  font-size: 15px;
  line-height: 1.73;
  color: var(--txt-muted);
  max-width: 497px;
}
.newsletter__field {
  width: 511px;
  flex: none;
  background: var(--ink);
  border-bottom: 1px solid #757575;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
}
.newsletter__field input {
  flex: 1;
  background: transparent;
  border: 0;
  outline: none;
  color: #fff;
  font-size: 22px;
  line-height: 60px;
  font-family: var(--ff-sans);
}
.newsletter__field input::placeholder {
  color: #fff;
  opacity: 1;
}
.newsletter__field button {
  background: none;
  border: 0;
  cursor: pointer;
  width: 24px;
  height: 24px;
  flex: none;
}
.newsletter__field button img {
  width: 24px;
  height: 24px;
  transform: rotate(90deg);
}

/* ============================================================
   FOOTER (dark)
   ============================================================ */
.footer {
  background: var(--ink);
}
.footer__divider_full {
  margin: 0 auto;
  height: 1px;
  background: var(--line-dark);
}
.footer__divider {
  max-width: var(--container);
  margin: 0 auto;
  height: 1px;
  background: var(--line-dark);
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  padding: 80px 0 60px;
}
.footer__brand-logo {
  width: 117px;
  height: 50px;
  margin-bottom: 32px;
}
.footer__tagline {
  font-size: 14px;
  line-height: 1.71;
  letter-spacing: 0.7px;
  color: var(--txt-foot);
  max-width: 290px;
}
.footer__col h4 {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--txt-b4);
  margin: 0 0 24px;
}
.footer__col a,
.footer__col p {
  display: block;
  font-size: 14px;
  letter-spacing: 0.7px;
  color: var(--txt-foot);
  margin-bottom: 16px;
}
.footer__col a:hover {
  color: #fff;
}
.footer__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 24px 0 40px;
  font-size: 14px;
  letter-spacing: 0.7px;
  color: #aaa;
}
.footer__bar .links {
  display: flex;
  gap: 40px;
}
.footer__bar a:hover {
  color: #fff;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px) {
  .hero__head {
    flex-direction: column;
    gap: 30px;
  }
  .hero__right {
    width: 100%;
  }
  .hero__title .indent {
    padding-left: 0;
  }
  .hero__foot {
    flex-direction: column;
    gap: 24px;
  }
  .hero__foot-right {
    width: 100%;
  }
  .hero__foot-title {
    max-width: none;
  }
  .team__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .contact__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .contact__form,
  .newsletter__field {
    width: 100%;
  }
  .newsletter {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
  }
  .footer__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 860px) {
  :root {
    --navh: 64px;
  }
  .section {
    padding: 80px 0;
  }

  /* ---------- fixed top bar ---------- */
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: var(--ink);
    border-bottom: 1px solid var(--line-card);
  }
  .nav__inner {
    padding: 12px 20px;
    align-items: center;
  }
  .nav__logo {
    width: 94px;
    height: 40px;
    position: relative;
    z-index: 210;
  }
  .nav__burger {
    display: block;
    position: relative;
    z-index: 210;
  }

  /* ---------- slide-in panel ---------- */
  .nav__menu {
    display: flex;
    position: fixed;
    top: var(--navh);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 190;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 20px 24px 48px;
    background: var(--ink);
    overflow-y: auto;
    overscroll-behavior: contain;
    transform: translateX(100%);
    visibility: hidden;
    transition:
      transform 0.42s cubic-bezier(0.7, 0, 0.2, 1),
      visibility 0s linear 0.42s;
  }
  .nav__menu.is-open {
    transform: translateX(0);
    visibility: visible;
    transition: transform 0.42s cubic-bezier(0.7, 0, 0.2, 1);
  }

  .nav__link {
    justify-content: space-between;
    width: 100%;
    font-size: 19px;
    letter-spacing: 0.3px;
    padding: 22px 2px;
    border-bottom: 1px solid var(--line-card);
    opacity: 0;
    transform: translateY(10px);
  }
  .nav__menu.is-open .nav__link {
    opacity: 1;
    transform: none;
    transition:
      opacity 0.4s ease,
      transform 0.4s ease;
  }
  .nav__menu.is-open .nav__link:nth-child(1) {
    transition-delay: 0.12s;
  }
  .nav__menu.is-open .nav__link:nth-child(2) {
    transition-delay: 0.18s;
  }
  .nav__menu.is-open .nav__link:nth-child(3) {
    transition-delay: 0.24s;
  }
  .nav__link:hover {
    opacity: 1;
  }
  .nav__chev {
    width: 22px;
    height: 22px;
    transform: rotate(90deg);
    opacity: 0.7;
  }

  /* ---------- mobile dropdown (inline accordion) ---------- */
  .nav__item {
    display: block;
    width: 100%;
  }
  .nav__toggle {
    width: 100%;
  }
  .nav__item.is-open > .nav__toggle .nav__chev {
    transform: rotate(270deg);
  }
  .nav__menu.is-open .nav__item:nth-child(1) > .nav__toggle {
    transition-delay: 0.12s;
  }
  .nav__menu.is-open .nav__item:nth-child(2) > .nav__toggle {
    transition-delay: 0.18s;
  }
  .nav__menu.is-open .nav__item:nth-child(3) > .nav__toggle {
    transition-delay: 0.24s;
  }
  .nav__panel {
    position: static;
    background: none;
    border: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.42s cubic-bezier(0.7, 0, 0.2, 1);
  }
  .nav__item.is-open > .nav__panel {
    max-height: 520px;
    transition: max-height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .nav__panel-inner {
    max-width: none;
    margin: 0;
    padding: 2px 0 12px;
  }
  .nav__panel-eyebrow {
    display: none;
  }
  .nav__panel-list {
    max-width: none;
  }
  .nav__sub {
    font-family: var(--ff-sans);
    font-size: 16px;
    font-weight: 500;
    padding: 14px 8px 14px 16px;
    border: 0 !important;
    color: rgba(255, 255, 255, 0.78);
    opacity: 1;
    transform: none;
    transition: color 0.25s ease;
  }
  .nav__sub::after {
    display: none;
  }
  .nav__util-link {
    font-size: 16px;
    padding: 4px 0;
  }
  .nav__scrim {
    display: none;
  }

  .nav__utility {
    flex-direction: column;
    align-items: stretch;
    gap: 22px;
    margin-top: 36px;
    opacity: 0;
    transform: translateY(10px);
  }
  .nav__menu.is-open .nav__utility {
    opacity: 1;
    transform: none;
    transition:
      opacity 0.4s ease 0.3s,
      transform 0.4s ease 0.3s;
  }
  .nav__divider {
    display: none;
  }
  .lang {
    font-size: 16px;
  }
  .nav__utility .btn {
    width: 100%;
    padding: 16px 20px;
    font-size: 15px;
    justify-content: center;
  }

  /* ---------- hamburger → X ---------- */
  .nav__burger span {
    width: 26px;
    transform-origin: center;
  }
  .nav__burger.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .nav__burger.is-active span:nth-child(2) {
    opacity: 0;
  }
  .nav__burger.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  /* offset content for the fixed bar */
  .hero {
    padding-top: calc(var(--navh) + 36px);
  }

  /* lock page scroll while the panel is open */
  body.nav-open {
    overflow: hidden;
  }

  /* layout collapses */
  .vm__grid,
  .sectors__grid,
  .news__grid {
    gap: 80px;
    grid-template-columns: 1fr;
  }
  .values__lower {
    margin-top: 30px;
    flex-direction: column;
  }
  .values__card {
    width: 100%;
    margin-top: 24px;
  }
  .values__text {
    padding-top: 0;
    max-width: none;
  }
}
@media (max-width: 560px) {
  .team__grid {
    grid-template-columns: 1fr;
  }
  .footer__grid {
    grid-template-columns: 1fr;
  }
  .hero__cta {
    flex-wrap: wrap;
  }
  .newsletter,
  .values__card {
    padding: 32px 24px;
  }
}

/* back-to-top */
.to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 60;
  width: 48px;
  height: 48px;
  background: #fff;
  border: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: 0.3s;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}
.to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.to-top img {
  width: 24px;
  height: 24px;
}

/* ============================================================
   ABOUT PAGE (about.html) — all classes prefixed `about-`
   so they never collide with the index.html styles.
   ============================================================ */
.about-hero {
  position: relative;
  background: var(--ink);
  padding-top: 200px;
  padding-bottom: 0;
}
.about-hero__eyebrow {
  max-width: var(--container);
  margin: 0 auto 36px;
  padding: var(--padding);
  display: flex;
  align-items: center;
  gap: 20px;
  animation: hero-fade 0.9s ease both;
}
.about-hero__eyebrow p {
  margin: 0;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--eyebrow-dark);
}
.about-hero__eyebrow .line {
  width: 60px;
  height: 2px;
  flex: none;
  background: var(--eyebrow-dark);
}
.about-hero__head {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--padding);
}
.about-hero__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  color: #fff;
  font-size: clamp(32px, 4.2vw, 58px);
  line-height: 1.26;
  margin: 0;
  max-width: 1110px;
}
.about-hero__title .about-line {
  display: block;
  overflow: hidden;
  padding: 0.06em 0 0.14em;
}
.about-hero__title .about-line-in {
  display: inline-block;
  transform: translateY(120%);
  animation: hero-rise 1s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.about-hero__title .about-line:nth-child(1) .about-line-in {
  animation-delay: 0.15s;
}
.about-hero__title .about-line:nth-child(2) .about-line-in {
  animation-delay: 0.3s;
}
.about-hero__desc {
  margin: 40px 0 0 auto;
  max-width: 511px;
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 18px;
  line-height: 1.78;
  color: #d0d0d0;
  animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) both 0.45s;
}
.about-hero__banner {
  max-width: var(--container);
  margin: 60px auto 0;
  padding: var(--padding);
}
.about-hero__banner img {
  width: 100%;
  height: auto;
  display: block;
}
.about-hero__divider {
  max-width: var(--container);
  margin: 60px auto 0;
  padding: var(--padding);
}
.about-hero__divider::before {
  content: "";
  display: block;
  height: 1px;
  background: var(--line-dark);
}

/* core values (light) */
.about-values {
  background: #fff;
  color: var(--on-light);
  padding: 120px 0 100px;
}
.about-values__eyebrow {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}
.about-values__eyebrow p {
  margin: 0;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: #000;
}
.about-values__eyebrow .line {
  width: 60px;
  height: 2px;
  flex: none;
  background: #000;
}
.about-values__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.34;
  color: var(--on-light);
  margin: 0 0 64px;
}
.about-values__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 24px;
  row-gap: 64px;
}
.about-value:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}
.about-value:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}
.about-value:nth-child(3) {
  grid-column: 3;
  grid-row: 1;
}
.about-value:nth-child(4) {
  grid-column: 2;
  grid-row: 2;
}
.about-value:nth-child(5) {
  grid-column: 3;
  grid-row: 2;
}
.about-value__num {
  display: block;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.5px;
  color: #9b9b9b;
  margin-bottom: 18px;
}
.about-value__line {
  height: 1px;
  background: #dcdcdc;
  margin-bottom: 26px;
}
.about-value__title {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.3;
  color: var(--on-light);
  margin: 0 0 20px;
}
.about-value__desc {
  font-family: var(--ff-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.75;
  color: #5b5b5b;
}

@media (max-width: 860px) {
  .about-hero {
    padding-top: calc(var(--navh) + 36px);
  }
  .about-hero__desc {
    margin-left: 0;
  }
  .about-values {
    padding: 80px 0;
  }
  .about-values__grid {
    grid-template-columns: 1fr;
    row-gap: 48px;
  }
  /* let values flow naturally in one column */
  .about-value:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .about-hero__title .about-line-in,
  .about-hero__eyebrow,
  .about-hero__desc {
    animation: none;
    transform: none;
    opacity: 1;
  }
}

/* ============================================================
   INDUSTRIES PAGE (industries.html) — all classes prefixed
   `ind-` so they never collide with index/about styles.
   ============================================================ */
.ind-eyebrow {
  display: flex;
  align-items: center;
  gap: 20px;
}
.ind-eyebrow p {
  margin: 0;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
}
.ind-eyebrow .line {
  width: 60px;
  height: 2px;
  flex: none;
}
.ind-eyebrow--dark p {
  color: var(--eyebrow-dark);
}
.ind-eyebrow--dark .line {
  background: var(--eyebrow-dark);
}
.ind-eyebrow--light p {
  color: #050506;
}
.ind-eyebrow--light .line {
  background: #050506;
}

/* ---------- hero (dark) ---------- */
.ind-hero {
  position: relative;
  background: var(--ink);
  padding-top: 200px;
}
.ind-hero__eyebrow {
  max-width: var(--container);
  margin: 0 auto 40px;
  padding: var(--padding);
  animation: hero-fade 0.9s ease both;
}
.ind-hero__head {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--padding);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}
.ind-hero__title {
  flex: 1 1 auto;
  max-width: 640px;
  margin: 0;
  font-family: var(--ff-serif);
  font-weight: 400;
  color: #fff;
  font-size: clamp(34px, 4.6vw, 64px);
  line-height: 1.25;
  overflow: hidden;
  padding: 0.04em 0 0.14em;
}
.ind-hero__title-in {
  display: block;
  transform: translateY(110%);
  animation: hero-rise 1s cubic-bezier(0.16, 1, 0.3, 1) both 0.12s;
}
.ind-hero__desc {
  width: 511px;
  flex: none;
  margin: 0;
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: -0.4px;
  color: #fff;
  animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) both 0.4s;
}
.ind-hero__banner {
  max-width: var(--container);
  margin: 56px auto 0;
  padding: var(--padding);
}
.ind-hero__banner img {
  width: 100%;
  aspect-ratio: 1260/540;
  object-fit: cover;
  display: block;
}
.ind-hero__divider {
  max-width: var(--container);
  margin: 60px auto 0;
  padding: var(--padding);
}
.ind-hero__divider::before {
  content: "";
  display: block;
  height: 1px;
  background: var(--line-dark);
}

/* ---------- advisory (light) ---------- */
.ind-adv {
  background: #fff;
  color: #050506;
  padding: 120px 0 100px;
}
.ind-adv__eyebrow {
  margin-bottom: 28px;
}
.ind-adv__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}
.ind-adv__intro {
  flex: 1 1 auto;
}
.ind-adv__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(32px, 3.6vw, 52px);
  line-height: 1.34;
  color: #050506;
  margin: 0;
  max-width: 460px;
}
.ind-adv__logo {
  height: 60px;
  width: auto;
  margin-top: 36px;
}
.ind-adv__desc {
  width: 511px;
  flex: none;
  margin: 8px 0 0;
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: -0.4px;
  color: #333;
}
.ind-adv__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
  row-gap: 56px;
  margin-top: 60px;
}
.ind-media {
  aspect-ratio: 618/400;
  overflow: hidden;
  border: 1px solid var(--line-card);
}
.ind-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.ind-media:hover img {
  transform: scale(1.04);
}
.ind-svc {
  padding-right: 70px;
}
.ind-svc__line {
  height: 1px;
  background: #cfcfcf;
  margin-bottom: 40px;
}
.ind-svc__title {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.33;
  color: #050506;
  margin: 0 0 20px;
}
.ind-svc__desc {
  font-family: var(--ff-sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.88;
  color: #444;
  margin: 0;
}

/* ---------- funds (dark) ---------- */
.ind-fund {
  background: var(--ink);
  padding: 120px 0 100px;
}
.ind-fund__eyebrow {
  margin-bottom: 28px;
}
.ind-fund__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}
.ind-fund__intro {
  flex: 1 1 auto;
}
.ind-fund__title {
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.2;
  color: #fff;
  margin: 0;
}
.ind-fund__logo {
  height: 60px;
  width: auto;
  margin-top: 30px;
}
.ind-fund__desc {
  width: 511px;
  flex: none;
  margin: 8px 0 0;
  font-family: var(--ff-sans);
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: -0.4px;
  color: #fff;
}
.ind-fund__divider {
  height: 1px;
  background: #292929;
  margin: 64px 0;
}
.ind-fund__block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 62px;
  align-items: center;
}
.ind-fund__media {
  aspect-ratio: 618/750;
  overflow: hidden;
  background: #161617;
  border: 1px solid var(--line-card);
}
.ind-fund__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ind-fund__accent {
  display: block;
  width: 40px;
  height: 1px;
  background: #fff;
  margin-bottom: 52px;
}
.ind-fund__name {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.33;
  color: #fff;
  margin: 0 0 44px;
}
.ind-point + .ind-point {
  margin-top: 40px;
}
.ind-point__title {
  font-family: var(--ff-serif);
  font-weight: 600;
  font-size: 23px;
  line-height: 1.4;
  color: #fff;
  margin: 0 0 8px;
}
.ind-point__desc {
  font-family: var(--ff-sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.88;
  color: #dedede;
  margin: 0;
  max-width: 460px;
}

/* ---------- founder quote (light) ---------- */
.ind-quote {
  background: #fff;
  color: #050506;
  padding: 110px 0;
}
.ind-quote__inner {
  display: flex;
  align-items: flex-start;
  gap: 160px;
}
.ind-quote__portrait {
  width: 321px;
  flex: none;
  aspect-ratio: 321/462;
  overflow: hidden;
  background: #ece9e4;
}
.ind-quote__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ind-quote__body {
  flex: 1 1 auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.ind-quote__text {
  font-family: var(--ff-sans);
  font-weight: 400;
  font-size: 30px;
  line-height: 1.6;
  letter-spacing: -0.6px;
  color: #050506;
  margin: 0;
  max-width: 779px;
}
.ind-quote__attr {
  margin-top: 100px;
  padding-right: 100px;
  text-align: right;
}
.ind-quote__name {
  font-family: var(--ff-sans);
  font-weight: 500;
  font-size: 19px;
  color: #050506;
  margin: 0 0 2px;
}
.ind-quote__role {
  font-family: var(--ff-sans);
  font-weight: 400;
  font-size: 15px;
  color: #4d4d4d;
  margin: 0;
}

/* ---------- responsive ---------- */
@media (max-width: 980px) {
  .ind-hero__head,
  .ind-adv__head,
  .ind-fund__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
  }
  .ind-hero__title {
    max-width: none;
  }
  .ind-hero__desc,
  .ind-adv__desc,
  .ind-fund__desc {
    width: 100%;
  }
  .ind-adv__grid {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
  .ind-svc {
    padding-right: 0;
  }
  .ind-fund__block {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ind-fund__block--reverse .ind-fund__media {
    order: -1;
  }
  .ind-quote__inner {
    flex-direction: column;
    gap: 36px;
  }
  .ind-quote__attr {
    padding-top: 36px;
  }
}
@media (max-width: 860px) {
  .ind-hero {
    padding-top: calc(var(--navh) + 36px);
  }
  .ind-adv,
  .ind-fund,
  .ind-quote {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ind-hero__title-in,
  .ind-hero__eyebrow,
  .ind-hero__desc {
    animation: none;
    transform: none;
    opacity: 1;
  }
}

/* ============================================================
   NEWS / INSIGHTS LISTING (news-1.html)
   ============================================================ */

/* Light variant of header for inner pages with white body */
.nav--light {
  background: #fff;
}
.nav--light .nav__link {
  color: #000;
}
.nav--light .nav__chev {
  filter: invert(0);
}
body:has(.insights-hero) {
  background: #fff;
  color: var(--on-light);
}

/* Hero --------------------------------------------------- */
.insights-hero {
  padding: 170px 0 60px;
  background: #fff;
}
.insights-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 50px;
}
.insights-hero__eyebrow p {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--on-light-3);
}
.insights-hero__eyebrow .line {
  width: 60px;
  height: 2px;
  background: var(--on-light-3);
}
.insights-hero__title {
  margin: 0;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.25;
  letter-spacing: -0.5px;
  color: var(--on-light);
  max-width: 860px;
}

/* Featured ---------------------------------------------- */
.insights-featured {
  padding: 40px 0 110px;
  background: #fff;
}
.featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  background: #fff;
}
.featured__media {
  display: block;
  border: 1px solid var(--line-card);
  overflow: hidden;
  aspect-ratio: 618 / 517;
}
.featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.featured:hover .featured__media img {
  transform: scale(1.04);
}
.featured__body {
  background: #ebedef;
  padding: 50px 60px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.featured__top {
  height: 1px;
  background: #a6b3c1;
  width: 100%;
}
.featured__meta {
  display: flex;
  gap: 4px;
  align-items: center;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding-top: 10px;
}
.featured__cat {
  color: #222;
}
.featured__date {
  color: var(--on-light-meta);
}
.featured__title {
  margin: 0;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: 36px;
  line-height: 1.27;
  color: #000;
}
.featured__title a {
  color: inherit;
  transition: color 0.2s ease;
}
.featured__title a:hover {
  color: #4a4a4a;
}
.featured__desc {
  font-size: 17px;
  line-height: 1.76;
  color: var(--on-light-3);
}

/* Latest articles -------------------------------------- */
.insights-latest {
  padding: 0 0 80px;
  background: #fff;
}
.insights-latest__head {
  padding: 20px 0;
  border-top: 1px solid #dbdbdb;
}
.insights-latest__eyebrow p,
.insights-topics__eyebrow p {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--on-light-3);
}
.insights-latest__head + .insights-grid {
  border-top: 1px solid #dbdbdb;
  padding-top: 60px;
}

/* Article grid (3-up) --------------------------------- */
.insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 90px;
}
.insights-grid--bottom {
  padding-top: 90px;
  border-top: 1px solid #dbdbdb;
}
.insights-grid .article {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.insights-grid .article .article__media {
  display: block;
  height: 280px;
  margin-bottom: 0;
  overflow: hidden;
  background: var(--card);
}
.insights-grid .article .article__meta {
  margin-bottom: 0;
}
.insights-grid .article .article__title {
  margin: 0;
  padding-right: 0;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: 25px;
  line-height: 1.52;
  color: var(--on-light);
}
.insights-grid .article .article__title a {
  color: inherit;
  transition: color 0.2s ease;
}
.insights-grid .article .article__title a:hover {
  color: #4a4a4a;
}
.insights-grid .article__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Topics section -------------------------------------- */
.insights-topics {
  padding: 0 0 100px;
  background: #fff;
}
.insights-topics__head {
  display: grid;
  padding-top: 90px;
  border-top: 1px solid #dbdbdb;
  grid-template-columns: minmax(280px, 360px) 1fr;
  gap: 90px;
  align-items: flex-end;
  padding-bottom: 100px;
}
.insights-topics__eyebrow {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 60px;
}
.insights-topics__eyebrow .line {
  width: 60px;
  height: 2px;
  background: var(--on-light);
}
.insights-topics__title {
  margin: 0;
  max-width: 330px;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.2;
  color: var(--on-light);
}
.insights-topics__grid {
  display: grid;
  margin-top: 65px;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.topic {
  display: flex;
  flex-direction: column;
  gap: 16px;
  color: inherit;
}
.topic__num {
  font-weight: 600;
  font-size: 13px;
  color: #686868;
}
.topic__bar {
  display: block;
  height: 2px;
  background: #000;
}
.topic__label {
  padding-bottom: 20px;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--on-light-3);
}
.topic__thumb {
  display: block;
  aspect-ratio: 190 / 123;
  border: 1px solid var(--line-card);
  overflow: hidden;
}
.topic__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.topic:hover .topic__thumb img {
  transform: scale(1.05);
}

/* "Xem Thêm" button ----------------------------------- */
.insights-more {
  display: flex;
  justify-content: center;
  padding-top: 100px;
}
.insights-more__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.8px;
  color: var(--on-light);
  text-transform: capitalize;
}
.insights-more__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 2px solid var(--on-light);
  border-radius: 60px;
  background: #fff;
  transition:
    transform 0.3s ease,
    background 0.3s ease;
}
.insights-more__icon img {
  width: 20px;
  height: 20px;
  transform: rotate(180deg);
}
.insights-more__btn:hover .insights-more__icon {
  background: var(--on-light);
}
.insights-more__btn:hover .insights-more__icon img {
  filter: invert(1);
}

/* Footer-news (newsletter on dark) -------------------- */
.footer--news {
  background: var(--ink);
  color: #fff;
  padding-top: 100px;
}
.newsletter--news {
  background: transparent;
  border: 0;
  padding: 0 0 80px;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 511px;
  gap: 90px;
  align-items: start;
}
.newsletter__eyebrow {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 50px;
}
.newsletter__eyebrow p {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--eyebrow-dark);
}
.newsletter__eyebrow .line {
  width: 60px;
  height: 2px;
  background: var(--eyebrow-dark);
}
.newsletter--news .newsletter__title {
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.27;
  color: #fff;
  margin-bottom: 0;
}
.newsletter__form {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.newsletter__field--inline {
  width: 100%;
  background: #131417;
  border-bottom: 1px solid #b1b1b1;
  padding: 0 24px;
}
.newsletter__field--inline input {
  width: 100%;
  background: transparent;
  border: 0;
  outline: none;
  color: #fff;
  font-size: 22px;
  font-family: var(--ff-sans);
  line-height: 60px;
}
.newsletter__field--inline input::placeholder {
  color: #fff;
  opacity: 1;
}
.newsletter__consent {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-top: 10px;
  color: #c9c9c9;
  font-size: 14px;
  line-height: 1.71;
}
.newsletter__consent input[type="checkbox"] {
  flex: none;
  width: 24px;
  height: 24px;
  margin-top: 2px;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 1px solid #fff;
  cursor: pointer;
}
.newsletter__consent input[type="checkbox"]:checked {
  background: #fff;
}
.newsletter__consent a {
  color: #c9c9c9;
  text-decoration: underline;
}

/* Responsive ------------------------------------------ */
@media (max-width: 1100px) {
  .featured {
    grid-template-columns: 1fr;
  }
  .featured__media {
    aspect-ratio: 16/9;
  }
  .insights-grid {
    gap: 50px 40px;
  }
  .insights-topics__head {
    grid-template-columns: 1fr;
    gap: 50px;
    align-items: flex-start;
  }
  .insights-topics__grid {
    gap: 20px;
  }
  .newsletter--news {
    grid-template-columns: 1fr;
    gap: 50px;
  }
}
@media (max-width: 760px) {
  .insights-hero {
    padding: 50px 0 40px;
  }
  .insights-hero__eyebrow {
    margin-bottom: 30px;
  }
  .insights-featured {
    padding: 30px 0 70px;
  }
  .featured__body {
    padding: 36px 24px;
    gap: 22px;
  }
  .featured__title {
    font-size: 28px;
  }
  .insights-grid {
    grid-template-columns: 1fr;
    gap: 50px;
  }
  .insights-grid--bottom {
    padding-top: 60px;
  }
  .insights-topics {
    padding: 60px 0;
  }
  .insights-topics__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .insights-more {
    padding-top: 60px;
  }
  .footer--news {
    padding-top: 60px;
  }
  .newsletter--news {
    padding-bottom: 60px;
  }
}

/* ============================================================
   NEWS-2 / TOPIC LISTING (news-2.html)
   ============================================================ */

/* Topic hero — uppercase title */
.insights-hero__title--topic {
  text-transform: uppercase;
  letter-spacing: 0;
}

/* Topics section — alt variant without bottom card grid */
.insights-topics--alt .insights-topics__head {
  padding-bottom: 0;
}
.insights-topics--alt {
  padding-bottom: 120px;
}

/* Footer dark — simple variant (no newsletter band) */
.footer--news-simple {
  padding-top: 0;
}
.footer--news-simple .footer__divider_full {
  margin-top: 0;
}

@media (max-width: 760px) {
  .insights-topics--alt {
    padding-bottom: 60px;
  }
}

/* ============================================================
   POST DETAIL (post.html)
   ============================================================ */

/* Extend white-body trigger to post pages */
body:has(.post-header) {
  background: #fff;
  color: var(--on-light);
}

/* Post header — centered eyebrow + title */
.post-header {
  padding: 180px 0 50px;
  background: #fff;
  text-align: center;
}
.post-header__eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-bottom: 35px;
}
.post-header__eyebrow p {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--on-light-3);
}
.post-header__eyebrow .line {
  width: 60px;
  height: 2px;
  background: var(--on-light-3);
}
.post-header__title {
  margin: 0 auto;
  max-width: 832px;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(38px, 4.5vw, 64px);
  line-height: 1.25;
  color: var(--on-light);
  letter-spacing: -0.3px;
}

/* Post hero image */
.post-hero {
  padding: 30px 0 80px;
  background: #fff;
}
.post-hero__media {
  margin: 0;
  background: #2d2d2d;
  aspect-ratio: 1260 / 540;
  overflow: hidden;
}
.post-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Post body — meta sidebar + content */
.post-body {
  padding: 30px 0 100px;
  background: #fff;
}
.post-body__grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(0, 2.4fr);
  gap: 90px;
  align-items: flex-start;
}
.post-meta {
  position: sticky;
  top: 100px;
}
.post-meta__date {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--on-light-3);
}

/* Content typography */
.post-content {
  max-width: 832px;
}
.post-content p {
  max-width: 722px;
  margin: 0 0 30px;
  font-size: 17px;
  line-height: 32px;
  color: #222;
  font-weight: 400;
}
.post-content p:last-child {
  margin-bottom: 0;
}
.post-content .post-lead {
  font-weight: 600;
  margin-bottom: 30px;
}
.post-content a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.post-content a:hover {
  color: var(--on-light);
}
.post-figure {
  margin: 50px 0;
  width: 100%;
  aspect-ratio: 832 / 400;
  background: var(--card);
  border: 1px solid var(--line-card);
  overflow: hidden;
}
.post-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Related section ------------------------------------- */
.post-related {
  padding: 80px 0 120px;
  background: #fff;
  border-top: 1px solid #dbdbdb;
}
.post-related__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
  margin-bottom: 60px;
}
.post-related__title-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.post-related__title {
  margin: 0;
  font-family: var(--ff-serif);
  font-weight: 400;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.2;
  color: var(--on-light);
}
.post-related__soon {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: #888;
}
.post-related__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 9px 16px 9px 20px;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.65px;
  color: var(--on-light);
  background: #fff;
  border: 1px solid #474747;
  transition: background 0.2s ease;
}
.post-related__cta:hover {
  background: #f3f3f3;
}
.post-related__cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
}
.post-related__cta-icon img {
  width: 24px;
  height: 24px;
  transform: rotate(90deg);
}

/* Related grid — slightly taller media, smaller title than news listings */
.insights-grid--related .article .article__media {
  height: 330px;
}
.insights-grid--related .article .article__title {
  font-size: 23px;
  line-height: 32px;
  padding-right: 30px;
}

/* Responsive ------------------------------------------ */
@media (max-width: 1100px) {
  .post-body__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .post-meta {
    position: static;
  }
  .post-content {
    max-width: 100%;
  }
  .post-content p {
    max-width: 100%;
  }
  .post-related__head {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 760px) {
  .post-header {
    padding: 50px 0 30px;
  }
  .post-header__title {
    font-size: 32px;
    line-height: 1.25;
  }
  .post-hero {
    padding: 20px 0 40px;
  }
  .post-body {
    padding: 20px 0 60px;
  }
  .post-content p {
    font-size: 16px;
    line-height: 28px;
  }
  .post-figure {
    margin: 30px 0;
  }
  .post-related {
    padding: 60px 0 80px;
  }
  .insights-grid--related .article .article__media {
    height: 240px;
  }
  .ind-quote__portrait {
    width: 100%;
  }
}
