/* ============================================================
   Lotus Capital Partners — Inner-page components
   Reuses tokens from header.css. Headings = Oswald, body = Goldman Sans.
   Spacing rhythm: 128px/40px desktop, 80px/24px mobile. White / --paper-tint alternation.
   ============================================================ */

/* ---------------- Page hero (compact, deep navy) ---------------- */
.page-hero {
  position: relative;
  background: linear-gradient(135deg, #0a1626 0%, #102542 52%, var(--lotus-blue-dark) 100%);
  color: #fff;
  overflow: hidden;
}
.page-hero.has-image { background: #0a1626; }
.page-hero.has-image .page-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .62;
}
.page-hero.has-image::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8,15,27,.34) 0%, rgba(8,15,27,.55) 55%, rgba(8,15,27,.8) 100%);
}
/* News page: tighter space above each section heading (client request) */
#news .section-inner,
#as-featured-in .section-inner,
#recognition .section-inner { padding-top: 54px; }
@media (max-width: 760px) {
  #news .section-inner,
  #as-featured-in .section-inner,
  #recognition .section-inner { padding-top: 40px; }
}
/* News hero — bright: full-strength photo, flat 30% black scrim only */
.page-hero--bright.has-image .page-hero-bg { opacity: 1; }
.page-hero--bright.has-image::after { background: rgba(0, 0, 0, .30); }
/* Capital Placement hero — a bit lighter: brighter photo, softer scrim */
.page-hero--light.has-image .page-hero-bg { opacity: .78; }
.page-hero--light.has-image::after {
  background: linear-gradient(180deg, rgba(8,15,27,.24) 0%, rgba(8,15,27,.40) 55%, rgba(8,15,27,.64) 100%);
}
.page-hero-inner {
  position: relative; z-index: 1;
  max-width: var(--maxw); margin: 0 auto;
  padding: calc(var(--header-h) + 120px) 40px 104px;
}
.page-eyebrow {
  font-family: var(--sans);
  font-size: 12px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.72);
  margin: 0 0 20px;
}
.page-title {
  font-family: "Oswald", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  font-size: clamp(46px, 6.4vw, 84px);
  line-height: 1.02;
  letter-spacing: .005em;
  margin: 0;
  max-width: 18ch;
}
.page-hero-lede {
  font-family: var(--sans);
  font-size: clamp(17px, 1.5vw, 21px);
  line-height: 1.55;
  color: rgba(255,255,255,.9);
  margin: 22px 0 0;
  max-width: 60ch;
}
@media (max-width: 768px) {
  .page-hero-inner { padding: calc(var(--header-h) + 72px) 24px 64px; }
}

/* ---------------- Generic section ---------------- */
.section { background: #fff; }
.section--tint { background: var(--paper-tint); }
.section-inner { max-width: var(--maxw); margin: 0 auto; padding: 128px 40px; }
.section-head { max-width: 820px; margin: 0 0 56px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
.section-head.center .prose,
.section-head.center .prose p { margin-left: auto; margin-right: auto; }
.section-h2 {
  font-family: "Oswald", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  font-size: 56px; line-height: 1.08; letter-spacing: .005em;
  color: rgba(0,0,0,.95);
  margin: 0 0 20px; text-wrap: balance;
}
.section-h3 {
  font-family: "Oswald", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400; font-size: 34px; line-height: 1.12; letter-spacing: .005em;
  color: rgba(0,0,0,.95); margin: 0 0 14px;
}
.prose p {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-weight: 400; font-size: 18px; line-height: 28px;
  color: rgba(0,0,0,.8); margin: 0 0 18px; max-width: 68ch;
}
.prose p:last-child { margin-bottom: 0; }
.lead { font-size: 21px !important; line-height: 32px !important; color: rgba(0,0,0,.86) !important; }
@media (max-width: 768px) {
  .section-inner { padding: 80px 24px; }
  .section-h2 { font-size: 40px; }
  .section-h3 { font-size: 26px; }
}

/* ---------------- Feature / value cards ---------------- */
.cards { display: grid; gap: 24px; }
.cards.cols-2 { grid-template-columns: repeat(2, 1fr); }
.cards.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cards.cols-4 { grid-template-columns: repeat(4, 1fr); }
.card-feature {
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  padding: 34px 30px; transition: box-shadow .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);
}
.section--tint .card-feature { background: #fff; }
.card-feature:hover { box-shadow: 0 14px 40px rgba(10,22,38,.08); transform: translateY(-3px); border-color: #d6dae2; }
.card-num {
  font-family: "Oswald", sans-serif; font-weight: 500; font-size: 30px;
  color: var(--lotus-blue); line-height: 1; display: block; margin-bottom: 16px;
}
.card-feature h3 {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 19px; font-weight: 600; letter-spacing: .01em;
  color: var(--ink); margin: 0 0 12px;
}
.card-feature p {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15.5px; line-height: 1.62; color: var(--ink-soft); margin: 0;
}
@media (max-width: 980px) { .cards.cols-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 1040px) { .cards.cols-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .cards.cols-2, .cards.cols-3 { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .cards.cols-4 { grid-template-columns: 1fr; } }

/* ============ Our Edge — capabilities ledger + outcome dossiers ============ */
.edge { position: relative; background: var(--paper-tint); overflow: hidden; }
.edge-watermark {
  position: absolute; top: -70px; right: -90px; width: 460px; color: var(--lotus-blue);
  opacity: .05; pointer-events: none; z-index: 0;
}
.edge-watermark svg { width: 100%; height: auto; display: block; }
.edge .section-inner { position: relative; z-index: 1; }
.edge-eyebrow { color: var(--lotus-blue); margin-bottom: 46px; }

/* --- capabilities: asymmetric aside + two-column ledger --- */
.edge-cap { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 64px; align-items: start; margin: 0; }
.edge-cap-title {
  font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400;
  font-size: clamp(34px, 3.4vw, 50px); line-height: 1.04; letter-spacing: .004em;
  color: var(--ink); margin: 0;
}
.edge-cap-accent { display: block; width: 64px; height: 3px; background: var(--lotus-blue); margin: 24px 0 22px; }
.edge-cap-kicker { font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 300; font-size: 21px; letter-spacing: .01em; color: var(--lotus-blue); margin: 0; }
.edge-cap-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 44px; }
.edge-cap-item {
  position: relative; display: flex; align-items: center; gap: 18px;
  padding: 20px 10px; border-top: 1px solid var(--line);
}
.edge-cap-list > .edge-cap-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
.edge-cap-ico {
  flex: none; width: 50px; height: 50px; border-radius: 13px;
  display: grid; place-items: center; background: #fff;
  border: 1px solid var(--line); color: var(--lotus-blue);
  box-shadow: 0 3px 10px rgba(10,22,38,.04);
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.edge-cap-ico svg { width: 25px; height: 25px; }
.edge-cap-label {
  flex: 1; font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.28; color: var(--ink); letter-spacing: .005em;
}
.edge-cap-n { font-family: "Oswald", sans-serif; font-weight: 400; font-size: 15px; color: var(--lotus-blue); opacity: .4; letter-spacing: .04em; }
.edge-cap-item:hover .edge-cap-ico { background: var(--lotus-blue); color: #fff; border-color: var(--lotus-blue); transform: translateY(-2px); }
.edge-cap-item:hover .edge-cap-n { opacity: .85; }

/* --- outcomes: dossier cards with ghost index --- */
.edge-out-head { text-align: center; margin: 0 0 48px; }
.edge-out-title { font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400; font-size: clamp(30px, 3vw, 42px); letter-spacing: .004em; color: var(--ink); margin: 0 0 10px; }
.edge-out-note { font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--lotus-blue); margin: 0; }
.edge-out-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.edge-card {
  position: relative; overflow: hidden; background: #fff;
  border: 1px solid var(--line); border-radius: 16px; padding: 34px 26px 30px;
  box-shadow: 0 2px 10px rgba(10,22,38,.04);
  transition: box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.edge-card::before {
  content: ""; position: absolute; top: 0; left: 0; height: 3px; width: 100%;
  background: linear-gradient(90deg, var(--lotus-blue), #9fb6e2);
  transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease);
}
.edge-card-n {
  position: absolute; top: 12px; right: 18px;
  font-family: "Oswald", sans-serif; font-weight: 500; font-size: 62px; line-height: 1;
  color: var(--lotus-blue); opacity: .08; pointer-events: none;
}
.edge-card-title {
  position: relative; font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400;
  font-size: 22px; line-height: 1.14; letter-spacing: .005em; color: var(--ink);
  margin: 6px 0 15px; padding-right: 34px;
}
.edge-card-desc { position: relative; font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 14.5px; line-height: 1.62; color: var(--ink-soft); margin: 0; }
.edge-card:hover { box-shadow: 0 18px 44px rgba(10,22,38,.12); transform: translateY(-5px); border-color: #cdd6e6; }
.edge-card:hover::before { transform: scaleX(1); }
.edge-card:hover .edge-card-n { opacity: .16; }

@media (max-width: 1000px) {
  .edge-cap { grid-template-columns: 1fr; gap: 34px; margin-bottom: 80px; }
  .edge-out-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .edge-cap-list { grid-template-columns: 1fr; }
  .edge-cap-list > .edge-cap-item:nth-last-child(-n+2) { border-bottom: none; }
  .edge-cap-list > .edge-cap-item:last-child { border-bottom: 1px solid var(--line); }
  .edge-out-grid { grid-template-columns: 1fr; }
  .edge-watermark { width: 300px; top: -40px; right: -70px; }
}

/* ---------------- Stat row ---------------- */
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.stat-block { border-top: 2px solid var(--lotus-blue); padding-top: 22px; }
.stat-fig {
  font-family: "Oswald", sans-serif; font-weight: 500; font-size: clamp(44px, 5vw, 64px);
  line-height: 1; letter-spacing: .005em; color: var(--ink); margin: 0 0 8px;
}
.stat-label {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15px; line-height: 1.5; color: var(--ink-soft); margin: 0;
}
@media (max-width: 768px) { .stats { grid-template-columns: 1fr; gap: 24px; } }

/* ---------------- Numbered process ---------------- */
.process { display: grid; gap: 0; }
.process-step {
  display: grid; grid-template-columns: 88px 1fr; gap: 28px;
  padding: 32px 0; border-top: 1px solid var(--line);
}
.process-step:last-child { border-bottom: 1px solid var(--line); }
.process-num {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 46px;
  line-height: 1; color: var(--lotus-blue); letter-spacing: .01em;
}
.process-body h3 {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 24px;
  letter-spacing: .005em; color: var(--ink); margin: 0 0 12px;
}
.process-body ul { margin: 0; padding-left: 20px; }
.process-body li {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); margin: 0 0 7px;
}
.process-body p {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); margin: 0;
}
@media (max-width: 640px) {
  .process-step { grid-template-columns: 1fr; gap: 10px; }
  .process-num { font-size: 36px; }
}

/* Our Approach — wider, centered intro */
#our_approach .section-head { max-width: 960px; }
#our_approach .section-head .prose p { max-width: 82ch; }
/* branded tint so the Approach section carries some colour, not flat white */
#our_approach {
  position: relative; overflow: hidden;
  background:
    radial-gradient(56% 68% at 5% 1%, rgba(58,90,156,.11), transparent 60%),
    radial-gradient(52% 62% at 100% 100%, rgba(33,153,232,.09), transparent 62%),
    linear-gradient(180deg, #f7f9fc 0%, #eef2f8 58%, #e8eef6 100%);
}
#our_approach .section-inner { position: relative; z-index: 1; }

/* ============ Debt Placement Process — alternating timeline ============ */
.tl { position: relative; max-width: 1000px; margin: 8px auto 0; }
.tl::before {
  content: ""; position: absolute; left: 50%; transform: translateX(-50%);
  top: 22px; bottom: 22px; width: 2px;
  background: linear-gradient(180deg, var(--lotus-blue) 0%, var(--lotus-blue-dark) 100%);
  opacity: .5;
}
.tl-step {
  display: grid; grid-template-columns: 1fr 66px 1fr;
  column-gap: 30px; align-items: start; margin-bottom: 26px;
}
/* keep node + card on the SAME grid row (auto-placement pushes col-1 cards
   to a new row because the node in col 2 is placed first) */
.tl-step > * { grid-row: 1; }
.tl-step:last-child { margin-bottom: 0; }
.tl-node {
  grid-column: 2; justify-self: center; align-self: start; margin-top: 8px; z-index: 1;
  width: 62px; height: 62px; border-radius: 50%;
  background: #fff; border: 2px solid var(--lotus-blue);
  display: grid; place-items: center;
  box-shadow: 0 4px 14px rgba(58,90,156,.14);
  transition: background .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.tl-num {
  font-family: "Oswald", sans-serif; font-weight: 500; font-size: 24px;
  line-height: 1; color: var(--lotus-blue); letter-spacing: .01em;
  transition: color .3s var(--ease);
}
.tl-step:nth-child(odd)  .tl-card { grid-column: 1; }
.tl-step:nth-child(even) .tl-card { grid-column: 3; }
.tl-card {
  position: relative;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 24px 28px; box-shadow: 0 2px 10px rgba(10,22,38,.04);
  transition: box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
/* (connector nub removed — numbers float on the spine) */
.tl-card h3 {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 23px;
  letter-spacing: .005em; color: var(--ink); margin: 0 0 14px;
  padding-bottom: 13px; border-bottom: 1px solid var(--line);
}
.tl-card ul { margin: 0; padding: 0; list-style: none; }
.tl-card li {
  position: relative; padding-left: 20px;
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 9px;
}
.tl-card li:last-child { margin-bottom: 0; }
.tl-card li::before {
  content: ""; position: absolute; left: 2px; top: 7px;
  width: 7px; height: 7px; background: var(--lotus-blue);
  transform: rotate(45deg); border-radius: 1px; opacity: .85;
}
/* hover: light up the node + lift the card */
.tl-step:hover .tl-node { background: var(--lotus-blue); border-color: var(--lotus-blue); transform: scale(1.06); }
.tl-step:hover .tl-num { color: #fff; }
.tl-step:hover .tl-card { box-shadow: 0 16px 40px rgba(10,22,38,.12); transform: translateY(-3px); border-color: #cdd6e6; }
.tl-step:hover .tl-card::before { background: var(--lotus-blue); }
@media (max-width: 860px) {
  .tl { max-width: 640px; }
  .tl::before { left: 31px; }
  .tl-step { grid-template-columns: 62px 1fr; column-gap: 22px; align-items: start; margin-bottom: 20px; }
  .tl-node { grid-column: 1; width: 56px; height: 56px; }
  .tl-num { font-size: 22px; }
  .tl-step:nth-child(odd) .tl-card, .tl-step:nth-child(even) .tl-card { grid-column: 2; }
  .tl-card::before { display: none; }
}

/* ---------------- Checklist (services) ---------------- */
.checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 40px; }
.checklist li {
  position: relative; padding-left: 34px;
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: var(--ink-soft);
}
.checklist li::before {
  content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px;
  background: var(--lotus-blue);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;
  border-radius: 4px;
}
@media (max-width: 700px) { .checklist { grid-template-columns: 1fr; } }

/* ---------------- Tag pills ---------------- */
.pills { display: flex; flex-wrap: wrap; gap: 12px; }
.pill {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--sans);
  font-size: 14.5px; font-weight: 500; letter-spacing: .005em;
  color: var(--lotus-blue-dark);
  /* brand-blue glass: tinted pane + blur, with a white inner highlight for the lens edge */
  background: linear-gradient(180deg, rgba(58, 90, 156, .20), rgba(58, 90, 156, .10));
  border: 1px solid rgba(58, 90, 156, .32);
  border-radius: 999px;
  padding: 10px 18px;
  -webkit-backdrop-filter: blur(12px) saturate(150%);
          backdrop-filter: blur(12px) saturate(150%);
  box-shadow: 0 6px 18px rgba(58, 90, 156, .10), inset 0 1px 0 rgba(255, 255, 255, .65);
  transition: background .28s var(--ease), border-color .28s var(--ease),
              box-shadow .28s var(--ease), transform .28s var(--ease);
}
.pill:hover {
  background: linear-gradient(180deg, rgba(58, 90, 156, .24), rgba(58, 90, 156, .12));
  border-color: rgba(58, 90, 156, .42);
  box-shadow: 0 10px 24px rgba(58, 90, 156, .16), inset 0 1px 0 rgba(255, 255, 255, .75);
  transform: translateY(-2px);
}
.pill-ico { width: 18px; height: 18px; flex: 0 0 auto; color: var(--lotus-blue); }

/* staggered entrance, left to right, once the row scrolls into view */
.pills .pill { opacity: 0; transform: translateX(-28px); }
.pills.in .pill {
  animation: pill-in .62s cubic-bezier(.22, .61, .36, 1) forwards;
  animation-delay: calc(var(--i, 0) * 85ms);
}
@keyframes pill-in {
  from { opacity: 0; transform: translateX(-28px); }
  to   { opacity: 1; transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .pills .pill { opacity: 1; transform: none; }
  .pills.in .pill { animation: none; }
}

/* ---------------- Testimonials (larger 2-up layout, prominent logo on top) ---------------- */
/* row-major grid (not CSS columns) so the reading order across each row
   matches the old site's top-to-bottom sequence */
.tgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }   /* default stretch = the two cards in each row share the same height */
.tcard {
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 40px 40px 32px; margin: 0;
}
.tlogo { height: 76px; margin: 0 0 16px; }
.tlogo img { height: 76px; width: auto; display: block; }
.tquote {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 16.5px; line-height: 1.72; color: rgba(0,0,0,.82); margin: 0;
}
.tcard figcaption { padding: 0 0 16px; border-bottom: 1px solid var(--line); margin: 0 0 18px; }
.tname {
  font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 500; font-size: 25px;
  letter-spacing: .035em; text-transform: uppercase; color: var(--lotus-blue); margin: 0; line-height: 1.15;
}
.trole {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 14.5px; font-style: italic; font-weight: 400; color: var(--ink-soft); margin: 6px 0 0;
}
@media (max-width: 720px) { .tgrid { grid-template-columns: 1fr; } }

/* ---------------- News list ---------------- */
.newslist { border-top: 1px solid var(--line); }
.news-row {
  display: grid; grid-template-columns: 1fr auto; gap: 16px 40px; align-items: baseline;
  padding: 24px 0; border-bottom: 1px solid var(--line);
  text-decoration: none; transition: padding-left .2s var(--ease);
}
a.news-row:hover { padding-left: 10px; }
.news-h {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 19px; font-weight: 500; line-height: 1.34; color: var(--ink);
}
a.news-row:hover .news-h { color: var(--lotus-blue); }
.news-meta {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 13.5px; color: var(--ink-soft); white-space: nowrap; letter-spacing: .01em;
}
@media (max-width: 640px) { .news-row { grid-template-columns: 1fr; gap: 6px; } .news-meta { white-space: normal; } }

/* recognition cards */
/* Recognition — award cards with imagery */
.rec-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.rec-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.rec-card:hover { box-shadow: 0 18px 44px rgba(10,22,38,.1); transform: translateY(-4px); border-color: #cdd6e6; }
.rec-media {
  background: var(--paper-tint); border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: center;
  padding: 26px; height: 280px; box-sizing: border-box; overflow: hidden;
}
.rec-media img { max-width: 100%; max-height: 228px; width: auto; height: auto; object-fit: contain; border-radius: 8px; }
.rec-body { padding: 28px 30px 30px; border-top: 3px solid var(--lotus-blue); }
.rec-body h3 {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 22px; line-height: 1.24;
  letter-spacing: .005em; color: var(--ink); margin: 0 0 12px;
}
.rec-body p {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15px; line-height: 1.62; color: var(--ink-soft); margin: 0;
}
@media (max-width: 860px) { .rec-cards { grid-template-columns: 1fr; } .rec-media { height: 220px; } }

/* As Featured In — press logo wall (4-up) */
.logo-wall.logo-wall--press { grid-template-columns: repeat(4, 1fr); }
.logo-wall.logo-wall--press .logo-cell { min-height: 108px; }
.logo-wall.logo-wall--press .logo-cell img { max-height: 64px; max-width: 86%; }   /* client: logos fill their blocks (sources also cropped) */
.logo-wall.logo-wall--press .logo-cell img[src*="rebusiness"] { max-height: 76px; }   /* compact stacked mark reads small — give it a step more */
@media (max-width: 900px) { .logo-wall.logo-wall--press { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .logo-wall.logo-wall--press { grid-template-columns: 1fr 1fr; } }

/* ---------------- Charity grid (Giving Back) ---------------- */
.charity-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.charity {
  display: flex; flex-direction: column; text-decoration: none; overflow: hidden;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  transition: box-shadow .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);
}
.charity:hover { box-shadow: 0 18px 48px rgba(10,22,38,.1); transform: translateY(-4px); border-color: #d6dae2; }
.charity-cover { position: relative; aspect-ratio: 16 / 10; background: var(--paper-tint); }
.charity-clip { position: absolute; inset: 0; overflow: hidden; display: block; }
.charity-cover .cover {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .6s var(--ease);
}
.charity:hover .charity-cover .cover { transform: scale(1.04); }
.charity-logo {
  position: absolute; left: 22px; bottom: -26px; z-index: 2;
  height: 58px; padding: 9px 16px; background: #fff; border-radius: 10px;
  border: 1px solid var(--line); box-shadow: 0 10px 26px rgba(10,22,38,.16);
  display: flex; align-items: center;
}
.charity-logo img { max-height: 100%; max-width: 150px; object-fit: contain; display: block; }
.charity-body { padding: 44px 26px 28px; }
.charity--nologo .charity-body { padding-top: 24px; }
.charity h3 {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 22px; letter-spacing: .005em;
  color: var(--ink); margin: 0 0 6px; transition: color .25s var(--ease);
}
.charity:hover h3 { color: var(--lotus-blue); }
.charity .charity-url {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: "Goldman Sans", sans-serif; font-size: 13px; font-weight: 500; color: var(--lotus-blue);
}
.charity .charity-url::after { content: "\2197"; font-size: 12px; opacity: .7; }
.charity p {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15px; line-height: 1.6; color: var(--ink-soft); margin: 14px 0 0;
}
@media (max-width: 760px) {
  .charity-grid { grid-template-columns: 1fr; }
  .charity-logo { height: 52px; left: 18px; bottom: -24px; }
  .charity-body { padding: 40px 20px 24px; }
}

/* ---------------- FAQ accordion ---------------- */
/* ============ FAQs — two-column tinted accordion ============
   Their old version put the questions in two columns of tinted cards that flipped
   to white with a blue key line when open. Same idea here, on the site's own type
   and square corners, using native <details> so it works without JS. */
.faq--split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 26px;
  align-items: start;
  margin-top: 44px;
}
.faq-col { display: flex; flex-direction: column; gap: 14px; }
.faq-item {
  background: #e7eefa;
  border: 1px solid transparent;
  transition: background .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease);
}
.faq-item:hover { background: #dfe9f8; }
.faq-item[open] {
  background: #fff;
  border-color: var(--lotus-blue);
  box-shadow: 0 12px 32px rgba(10, 22, 38, .09);
}
.faq-item summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: flex-start; gap: 14px;
  padding: 22px 52px 22px 22px;
  position: relative;
  font-family: var(--sans);
  font-size: 16px; font-weight: 600; line-height: 1.45;
  color: var(--lotus-blue);
  transition: color .28s var(--ease);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item[open] summary { color: #1c74c4; }
.faq-n {
  flex: 0 0 auto;
  font-family: "Oswald", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400; font-size: 19px; line-height: 1.25;
  color: var(--lotus-blue); opacity: .55;
}
.faq-item[open] .faq-n { opacity: 1; color: #1c74c4; }
/* + / – control */
.faq-item summary::after {
  content: ""; position: absolute; right: 20px; top: 26px;
  width: 15px; height: 15px;
  background:
    linear-gradient(currentColor, currentColor) center/100% 2px no-repeat,
    linear-gradient(currentColor, currentColor) center/2px 100% no-repeat;
  transition: transform .3s var(--ease);
}
/* plus -> minus; spin a half turn so it animates but lands horizontal */
.faq-item[open] summary::after {
  transform: rotate(180deg);
  background: linear-gradient(currentColor, currentColor) center/100% 2px no-repeat;
}
.faq-answer { padding: 0 22px 22px; overflow: hidden; }  /* clipped so the height animation reads cleanly */
.faq-answer p, .faq-answer li {
  font-family: var(--sans);
  font-size: 15.5px; line-height: 25px; color: rgba(0, 0, 0, .78);
}
.faq-answer ul { margin: 0; padding-left: 22px; list-style: disc; }
.faq-answer li { padding-bottom: 8px; }
.faq-answer li::marker { color: var(--lotus-blue); }
@media (max-width: 900px) {
  .faq--split { grid-template-columns: 1fr; gap: 14px; }
}

/* ---------------- Contact ---------------- */
.contact-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 72px; align-items: start; }
.contact-info .ci-item { margin: 0 0 28px; }
.contact-info .ci-label {
  font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: var(--lotus-blue); margin: 0 0 8px;
}
.contact-info .ci-value {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 19px; color: var(--ink);
}
.contact-info a.ci-value { text-decoration: none; border-bottom: 1px solid var(--line); }
.contact-info a.ci-value:hover { color: var(--lotus-blue); }
.cform { display: grid; gap: 18px; }
.cform .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cform label { display: block; font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--ink); margin: 0 0 7px; letter-spacing: .01em; }
.cform input, .cform select, .cform textarea {
  width: 100%; font-family: "Goldman Sans", sans-serif; font-size: 16px; color: var(--ink);
  padding: 13px 15px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.cform input:focus, .cform select:focus, .cform textarea:focus {
  outline: none; border-color: var(--lotus-blue); box-shadow: 0 0 0 3px rgba(58,90,156,.12);
}
.cform textarea { min-height: 140px; resize: vertical; }
.cform .btn-submit {
  justify-self: start; font-family: var(--sans); font-size: 16px; font-weight: 500;
  color: #fff; background: var(--lotus-blue); border: 1px solid var(--lotus-blue);
  padding: 14px 30px; border-radius: 8px; cursor: pointer;
  transition: background .2s ease, transform .15s ease;
}
.cform .btn-submit:hover { background: var(--lotus-blue-dark); }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; gap: 44px; } .cform .row2 { grid-template-columns: 1fr; } }

/* ---------------- CTA band ---------------- */
.cta-band { background: var(--lotus-blue); color: #fff; }   /* solid — no gradient clash with the footer */
.cta-band-inner { max-width: var(--maxw); margin: 0 auto; padding: 92px 40px; text-align: center; }
.cta-band h2 {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: clamp(34px, 4vw, 52px);
  letter-spacing: .005em; margin: 0 0 18px;
}
.cta-band p { font-family: var(--sans); font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.88); margin: 0 auto 30px; max-width: 56ch; }
.cta-band .cta-btn {
  display: inline-flex; align-items: center; gap: 12px; font-family: var(--sans); font-size: 16px;
  color: var(--lotus-blue); background: #fff; border: 1px solid #fff; padding: 14px 28px; text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.cta-band .cta-btn:hover { background: transparent; color: #fff; }
@media (max-width: 768px) { .cta-band-inner { padding: 64px 24px; } }

/* ---------------- Newsletter month grid ---------------- */
.month-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.month-cell {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 17px; letter-spacing: .04em;
  color: var(--ink); text-decoration: none; text-align: center;
  border: 1px solid var(--line); border-radius: 8px; padding: 18px 10px; background: #fff;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.month-cell:hover { border-color: var(--lotus-blue); color: #fff; background: var(--lotus-blue); }

/* generic two-column split (text + media) */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.split img { width: 100%; height: auto; border-radius: 12px; display: block; }
.split .overview-figure { border-radius: 0; width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto; }

/* hand-drawn arrow emerging from the end of the "…3 factors:" sentence toward the Lotus Solutions figure.
   Like the old site: position:absolute with offsets left auto so it sits at the static position
   (right after the text), then nudged up/right via transform. */
.arrow-right { position: relative; }
.arrow-right::after {
  content: "";
  position: absolute;
  width: 260px; height: 59px;
  background: url("../assets/capital/arrow_point.png?v=1") no-repeat left center / contain;
  opacity: .38;
  transform: translate(20px, -37px);
  pointer-events: none;
}
@media (max-width: 980px) { .arrow-right::after { display: none; } }

/* ---------------- Media section: bg image + glass cards ---------------- */
.section--media { position: relative; background: #0a1626; overflow: hidden; color: #fff; }
.section--media .media-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .92; }
.section--media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,15,27,.45) 0%, rgba(8,15,27,.37) 26%, rgba(8,15,27,.2) 54%, rgba(8,15,27,.04) 80%, rgba(8,15,27,0) 100%); }
.section--media .section-inner { position: relative; z-index: 1; }
.section--media .section-eyebrow { color: #9fb6e2; }
.section--media .section-h2 { color: #fff; }
.section--media .prose p { color: rgba(255,255,255,.86); }
.section--media .prose .lead { color: #fff !important; font-size: 18px !important; line-height: 28px !important; }
.section--media .card-feature { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.section--media .card-feature:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.3); }
.section--media .card-feature h3 { color: #fff; }
.section--media .card-feature p { color: rgba(255,255,255,.8); }

/* "Why We're Different" (Restructuring) — show the photo clean: no scrim,
   legibility carried by a dark tint on the glass cards instead. */
#why-were-different .media-bg { opacity: 1; }
#why-were-different::after { background: none; }
/* keep the cards to the left ~60% so the boardroom photo shows on the right */
#why-were-different .cards { max-width: 60%; }
@media (max-width: 980px) { #why-were-different .cards { max-width: none; } }
#why-were-different .card-feature {
  border-radius: 0;
  background: linear-gradient(180deg, rgba(46, 72, 133, .82), rgba(24, 42, 82, .88));   /* brand-blue glass (matches homepage Our Business cards) */
  border: 1px solid rgba(255, 255, 255, .22);
  -webkit-backdrop-filter: blur(18px) saturate(130%); backdrop-filter: blur(18px) saturate(130%);
  box-shadow: 0 18px 40px -22px rgba(4, 10, 20, .5), inset 0 1px 0 rgba(255, 255, 255, .2);
}
#why-were-different .card-feature:hover {
  background: linear-gradient(180deg, rgba(54, 84, 152, .86), rgba(30, 50, 96, .92));
  border-color: rgba(255, 255, 255, .34);
}
#why-were-different .section-h2 {
  text-shadow: 0 2px 22px rgba(5, 12, 22, .9), 0 2px 6px rgba(5, 12, 22, .7), 0 0 42px rgba(5, 12, 22, .55);
}
#why-were-different .section-eyebrow { text-shadow: 0 1px 10px rgba(5, 12, 22, .8); }

/* "Our Capital Placement Practice" (Debt Placement) — new blue glass cards */
#our_debt_placement_practices .card-feature {
  background: linear-gradient(180deg, rgba(46, 72, 133, .82), rgba(24, 42, 82, .88));   /* brand-blue glass */
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 0;   /* square edges */
  -webkit-backdrop-filter: blur(18px) saturate(130%); backdrop-filter: blur(18px) saturate(130%);
  box-shadow: 0 18px 40px -22px rgba(4, 10, 20, .5), inset 0 1px 0 rgba(255, 255, 255, .2);
}
#our_debt_placement_practices .card-feature:hover {
  background: linear-gradient(180deg, rgba(54, 84, 152, .86), rgba(30, 50, 96, .92));
  border-color: rgba(255, 255, 255, .34);
}
/* Ken Burns: the photo slowly zooms and sharpens from a soft blur as it scrolls
   through the viewport (CSS scroll-driven; static slight zoom where unsupported) */
#our_debt_placement_practices .media-bg {
  transform-origin: 50% 42%;
  will-change: transform, filter;
}
@keyframes cp-kenburns {
  0%   { transform: scale(1.04); filter: blur(6px); }
  32%  { filter: blur(0px); }
  100% { transform: scale(1.20); filter: blur(0px); }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    #our_debt_placement_practices .media-bg {
      animation: cp-kenburns linear both;
      animation-timeline: view();
      animation-range: cover 0% cover 100%;
    }
  }
}

.vp-icon { width: 36px; height: 36px; display: block; color: #aebfdd; margin: 0 0 18px; }
/* Practice cards use the original site's icons, recolored to white */
#our_debt_placement_practices img.vp-icon {
  width: 46px; height: 46px; object-fit: contain;
  filter: brightness(0) invert(1);
  margin: 0 0 16px;
}

.practice-facts { display: flex; flex-wrap: wrap; gap: 48px; margin: 0 0 48px; }
.practice-facts > div { display: flex; flex-direction: column; gap: 5px; }
.fact-label { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #9fb6e2; }
.fact-value { font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400; font-size: 27px; letter-spacing: .01em; color: #fff; }

.vp-label { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #9fb6e2; margin: 0 0 26px; }

/* ---------------- Our Approach — two columns with graphics ---------------- */
.approach-themes { display: grid; gap: 104px; margin-top: 40px; }
.approach-theme { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: center; }
/* divider centered in the gap between the two approach themes */
.approach-theme + .approach-theme { position: relative; }
.approach-theme + .approach-theme::before {
  content: ""; position: absolute; left: 0; right: 0; top: -52px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--line) 14%, var(--line) 86%, transparent);
}
.approach-text { min-width: 0; }
.approach-figure {
  width: 100%; height: auto; display: block; margin: 0;
  border-radius: 16px; background: #fff;
  border: 1px solid var(--line); box-shadow: 0 14px 46px rgba(10,22,38,.09);
}
.approach-col-title {
  font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400;
  font-size: 30px; letter-spacing: .005em; color: var(--ink);
  margin: 0 0 26px; padding-bottom: 20px; border-bottom: 1px solid var(--line);
}
.approach-points { display: grid; gap: 24px; }
.ap-point { display: grid; grid-template-columns: 38px 1fr; gap: 14px; align-content: start; }
.ap-num { font-family: "Oswald", sans-serif; font-weight: 400; font-size: 23px; color: var(--lotus-blue); line-height: 1.1; }
.approach-points h4 { font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 17px; font-weight: 600; color: var(--ink); margin: 0 0 7px; }
.approach-points p { font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
@media (max-width: 860px) {
  .approach-themes { gap: 56px; }
  .approach-theme { grid-template-columns: 1fr; gap: 32px; }
  .approach-theme + .approach-theme::before { top: -28px; }
}
@media (max-width: 860px) { .split { grid-template-columns: 1fr; gap: 32px; } }

/* ============ Deal detail pages ============ */
.deal-facts { display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 40px; }
/* when the facts are the only thing in their section (nothing follows them),
   drop the trailing margin so top/bottom padding stay equal, and tighten the
   section so the row of cards doesn't float in a sea of white space */
.deal-facts--solo { margin-bottom: 0; }
.deal-page .section:has(.deal-facts--solo) .section-inner {
  padding-top: 36px; padding-bottom: 36px;
  max-width: 1200px;   /* narrower than the page's 1440px band so the four
                           cards don't float in wide gutters on big screens */
}
.deal-fact {
  flex: 1 1 210px; min-width: 0;
  background: linear-gradient(180deg, rgba(46,72,133,.88), rgba(20,38,78,.94));   /* brand-blue glass */
  border: 1px solid rgba(255,255,255,.22); border-radius: 0;   /* square corners */
  box-shadow: 0 18px 40px -22px rgba(4,10,20,.5), inset 0 1px 0 rgba(255,255,255,.2);
  padding: 24px 24px; display: flex; flex-direction: column; gap: 9px; justify-content: center;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease);
}
.deal-fact:hover {
  background: linear-gradient(180deg, rgba(54,84,152,.9), rgba(26,46,92,.95));
  transform: translateY(-3px); border-color: rgba(255,255,255,.34);
  box-shadow: 0 26px 52px -24px rgba(4,10,20,.6), inset 0 1px 0 rgba(255,255,255,.24);
}
.deal-fact-value {
  font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 500;
  font-size: clamp(26px, 2.4vw, 36px); line-height: 1.1; letter-spacing: .005em; color: #fff;
}
.deal-fact-label {
  font-family: var(--sans); font-size: 13px; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: #9fb6e2;
}
/* ---- compact deal-page rhythm + split hero with the featured image ---- */
.deal-hero .page-hero-inner {
  display: grid; grid-template-columns: minmax(300px, 420px) 1fr;
  gap: 48px; align-items: center;
  /* the header is in normal flow on deal pages, so no header clearance —
     equal breathing room above and below the content */
  padding: 30px 40px 30px;
}
.deal-hero-media img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block;
  border-radius: 12px; border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 26px 52px -24px rgba(0,0,0,.65);
}
.deal-hero .page-eyebrow { margin-bottom: 10px; }
.deal-hero .page-title { font-size: clamp(36px, 4.2vw, 54px); }
.deal-hero .page-hero-lede { margin-top: 8px; }
@media (max-width: 800px) {
  .deal-hero .page-hero-inner {
    grid-template-columns: 1fr; gap: 22px;
    padding: 26px 24px 30px;
  }
}
.deal-page .section-inner { padding: 60px 40px; }
.deal-page .deal-cs { gap: 44px; }
.deal-page .deal-footer { margin-top: 28px; padding-top: 20px; }
.deal-footer .deal-back-link { margin-top: 16px; }
/* story: Challenges + Solutions stacked on the left, image grid on the right.
   The section gets a branded wash (radials + a faint ring) instead of flat grey. */
.deal-page #deal-story {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 88% 10%, transparent 190px, rgba(58,90,156,.08) 192px, rgba(58,90,156,.08) 195px, transparent 197px),
    radial-gradient(circle at 6% 96%, transparent 130px, rgba(33,153,232,.07) 132px, rgba(33,153,232,.07) 134px, transparent 136px),
    radial-gradient(58% 72% at 2% 0%, rgba(58,90,156,.13), transparent 60%),
    radial-gradient(52% 64% at 100% 100%, rgba(33,153,232,.11), transparent 62%),
    linear-gradient(168deg, #eef3fa 0%, #e6edf7 55%, #ecf1f9 100%);
}
.deal-page #deal-story .section-inner { position: relative; z-index: 1; }
.deal-story-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: 52px; align-items: start; }
.deal-story-text .deal-cs-col + .deal-cs-col { margin-top: 34px; }
.deal-media-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.deal-media-grid img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block;
  border-radius: 12px; border: 1px solid var(--line);
  box-shadow: 0 12px 30px -16px rgba(10,22,38,.25);
}
.deal-media-grid img:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
@media (max-width: 900px) {
  .deal-story-split { grid-template-columns: 1fr; gap: 36px; }
}
.deal-nav-strip .section-inner { padding: 28px 40px !important; }
/* content-light deals: centered media + back link, no split column */
.deal-media-full { max-width: 1040px; margin: 0 auto; }
.deal-media-full .deal-footer { text-align: center; border-top: none; max-width: none; margin-top: 30px; padding-top: 0; }
.deal-media-full .deal-back-link { margin-top: 0; }
@media (max-width: 768px) { .deal-page .section-inner { padding: 44px 24px; } }
/* overview / narrative */
.deal-overview { max-width: 860px; margin: 8px 0 0; }
.deal-overview .prose p.lead { font-size: 21px !important; line-height: 32px !important; color: rgba(0,0,0,.86) !important; }
.deal-overview .prose p { margin: 0 0 18px; }
.deal-overview .prose p:last-child { margin-bottom: 0; }
.deal-cs { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.deal-cs-col .section-eyebrow { margin-bottom: 18px; }
.deal-cs-col .prose p { font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.72; color: var(--ink-soft); margin: 0 0 16px; }
.deal-cs-col .prose p:last-child { margin-bottom: 0; }
.deal-footer { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--line); max-width: 900px; }
.deal-footer p { font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 12px; font-style: italic; }
.deal-footer p:last-child { margin-bottom: 0; }
@media (max-width: 800px) { .deal-cs { grid-template-columns: 1fr; gap: 40px; } }

.deal-gallery { display: flex; flex-direction: column; align-items: center; gap: 26px; }
.deal-gallery img {
  max-width: min(100%, 1040px); max-height: 760px; width: auto; height: auto;
  display: block; border-radius: 16px; border: 1px solid var(--line);
  box-shadow: 0 10px 34px rgba(10,22,38,.08);
}
.deal-nav { margin-top: 52px; }
.deal-back-link {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--sans); font-size: 15px; font-weight: 600;
  color: var(--lotus-blue); text-decoration: none;
  border-bottom: 1px solid transparent; padding-bottom: 2px;
  transition: color .2s ease, border-color .2s ease;
}
.deal-back-link:hover { color: var(--lotus-blue-dark); border-color: var(--lotus-blue-dark); }
@media (max-width: 640px) {
  .deal-gallery { grid-template-columns: 1fr; }
  .deal-gallery img { height: 320px; }
}

/* ============ Legal pages (Terms / Privacy) ============ */
.legal { max-width: 860px; }
.legal h2 {
  font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400;
  font-size: 30px; letter-spacing: .005em; color: var(--ink);
  margin: 54px 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line);
}
.legal h2:first-child { margin-top: 0; }
.legal p, .legal li {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.72; color: var(--ink-soft); margin: 0 0 16px;
}
.legal ul { margin: 0 0 18px; padding-left: 24px; }
.legal li { margin-bottom: 9px; }
.legal strong { color: var(--ink); font-weight: 600; }
.legal a { color: var(--lotus-blue); border-bottom: 1px solid rgba(58,90,156,.35); transition: color .2s ease, border-color .2s ease; }
.legal a:hover { color: var(--lotus-blue-dark); border-color: var(--lotus-blue-dark); }

/* ============ M&A — Our Work ============ */
#our-work .section-head { margin-bottom: 0; }

/* ============ M&A — Strategic Specialties icon tiles ============ */
.ma-spec-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 20px; }
.ma-spec {
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 36px 20px 32px; text-align: center;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.ma-spec-ico {
  width: 56px; height: 56px; border-radius: 15px; margin: 0 auto 18px;
  display: grid; place-items: center;
  background: var(--paper-tint); border: 1px solid var(--line); color: var(--lotus-blue);
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.ma-spec-ico svg { width: 27px; height: 27px; }
.ma-spec-ico img { width: 32px; height: 32px; object-fit: contain; display: block; }
.ma-spec h3 {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.3; letter-spacing: .005em;
  color: var(--ink); margin: 0;
}
.ma-spec:hover { box-shadow: 0 16px 40px rgba(10,22,38,.1); transform: translateY(-4px); border-color: #cdd6e6; }
.ma-spec:hover .ma-spec-ico { background: var(--lotus-blue); border-color: var(--lotus-blue); color: #fff; transform: scale(1.05); }
/* glass variant when the tiles sit on a media (image) section */
.section--media .ma-spec {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.section--media .ma-spec h3 { color: #fff; }
.section--media .ma-spec-ico {
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.28); color: #dfe8f6;
}
.section--media .ma-spec:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.3); box-shadow: 0 18px 44px rgba(4,10,20,.35); }
.section--media .ma-spec:hover .ma-spec-ico { background: var(--lotus-blue); border-color: var(--lotus-blue); color: #fff; }
@media (max-width: 1020px) { .ma-spec-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 640px) { .ma-spec-grid { grid-template-columns: 1fr 1fr; gap: 14px; } }
@media (max-width: 400px) { .ma-spec-grid { grid-template-columns: 1fr; } }

/* ============ M&A — Transaction Advisory Services ledger ============ */
.svc-ledger {
  list-style: none; margin: 0 auto; padding: 0; max-width: 1120px;
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  column-gap: 64px; row-gap: 0;
}
.svc-item {
  display: grid; grid-template-columns: 46px 1fr; gap: 16px; align-items: start;
  padding: 21px 8px; border-top: 1px solid var(--line);
}
.svc-num {
  font-family: "Oswald", sans-serif; font-weight: 400; font-size: 21px; line-height: 1.2;
  color: var(--lotus-blue); opacity: .5; letter-spacing: .04em;
  transition: opacity .3s var(--ease);
}
.svc-item p {
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); margin: 2px 0 0;
}
.svc-item:hover .svc-num { opacity: 1; }
.svc-ledger > .svc-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
@media (max-width: 800px) {
  .svc-ledger { grid-template-columns: 1fr; }
  .svc-ledger > .svc-item:nth-last-child(2) { border-bottom: none; }
  .svc-ledger > .svc-item:last-child { border-bottom: 1px solid var(--line); }
}

/* ============ Careers ============ */
.careers-open h3 {
  font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400;
  font-size: 27px; color: var(--ink); margin: 0 0 14px; padding-bottom: 13px; border-bottom: 1px solid var(--line);
}
.careers-positions { list-style: none; margin: 0 0 18px; padding: 0; }
.careers-positions li {
  position: relative; padding: 11px 0 11px 24px; border-bottom: 1px solid var(--line);
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 600; color: var(--ink);
}
.careers-positions li::before {
  content: ""; position: absolute; left: 3px; top: 50%; margin-top: -4px;
  width: 8px; height: 8px; background: var(--lotus-blue); transform: rotate(45deg); border-radius: 1px;
}
.careers-open p a { color: var(--lotus-blue); border-bottom: 1px solid rgba(58,90,156,.35); }
.careers-cta {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 8px;
  font-family: var(--sans); font-size: 14px; font-weight: 600; letter-spacing: .02em;
  color: #fff; background: var(--lotus-blue); border-radius: 999px; padding: 13px 26px;
  text-decoration: none; transition: background .25s var(--ease), transform .25s var(--ease);
}
.careers-cta:hover { background: var(--lotus-blue-dark); transform: translateY(-2px); }
.careers-apply { text-align: center; margin-top: 46px; }



/* ============ Lenders & Servicers — drifting bubble field ============
   Modernised take on the old site's floating circles. Theirs drifted each circle
   left and teleported it back with an opacity blink; this uses two identical sets
   on one track, so the loop is genuinely seamless. Positions were packed on a
   horizontal torus, meaning nothing collides across the wrap seam either. */
.bubble-field {
  position: relative;
  width: 100vw; max-width: 100vw;
  margin-left: calc(50% - 50vw);
  height: clamp(400px, 39vw, 560px);
  overflow: hidden;
  margin-top: 44px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.bubble-field::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(42% 60% at 24% 34%, rgba(58,90,156,.10), transparent 70%),
    radial-gradient(38% 55% at 76% 64%, rgba(33,153,232,.10), transparent 70%);
}
.bubble-track {
  display: flex;
  width: max-content;
  height: 100%;
  animation: bub-drift 70s linear infinite;
}
.bubble-set {
  position: relative;
  flex: 0 0 100vw; width: 100vw; height: 100%;
  list-style: none; margin: 0; padding: 0;
}
@keyframes bub-drift {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-100vw, 0, 0); }
}
.bub {
  position: absolute;
  left: var(--x); top: var(--y);
  width: calc(var(--s) * clamp(70px, 7.2vw, 112px));
  aspect-ratio: 1;
  /* the bob lives on the <li>; the lens scales on .bub-in so the two transforms
     never fight each other */
  animation: bub-bob calc(7s + var(--d) * 1.1s) ease-in-out calc(var(--d) * -.8s) infinite;
}
.bub-in {
  display: grid; place-items: center;
  width: 100%; height: 100%;
  border-radius: 50%;
  background: var(--bg, #fff);
  box-shadow:
    0 10px 26px rgba(10, 22, 38, .10),
    0 0 0 1px rgba(10, 22, 38, .05),
    0 0 34px -6px color-mix(in srgb, var(--glow) 55%, transparent);
  /* --p is the proximity value (0..1) written by the pointer script */
  /* scale is eased frame-by-frame in JS (see restructuring-ui.js); no CSS
     transition on transform, otherwise the two fight and the swell stutters */
  transform: scale(calc(1 + var(--p, 0) * 1));
  transition: box-shadow .22s var(--ease);
  will-change: transform;
}
.bub img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bub--dark .bub-in {
  box-shadow: 0 12px 30px rgba(10,22,38,.20), 0 0 0 1px rgba(255,255,255,.06),
              0 0 38px -8px color-mix(in srgb, var(--glow) 60%, transparent);
}
@keyframes bub-bob {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(0, -11px, 0); }
}
/* nearest bubbles swell toward the pointer but never stop drifting */
.bub { z-index: calc(1 + var(--p, 0) * 3); }
@media (prefers-reduced-motion: reduce) {
  .bubble-track, .bub { animation: none; }
  .bub-in { transition: none; }
}
@media (max-width: 760px) {
  .bubble-field { height: clamp(340px, 70vw, 430px); }
  /* 48s over one viewport was ~8px/s on a phone, which reads as frozen —
     roughly double the drift so the motion is actually visible */
  .bubble-track { animation-duration: 22s; }
  /* 28 bubbles per set is a crowded overlap on a phone — keep every 2nd, a touch
     smaller. Their inline positions were tuned for a wide canvas and clump at
     phone width, so re-space the kept ones evenly across the loop on a three-band
     high/mid/low zigzag (both sets get identical positions, which the seamless
     -100vw drift requires). */
  .bubble-set .bub:nth-child(even),
  .bubble-set .bub:nth-child(n+29) { display: none; }   /* keep odds 1-27: the 14 re-spaced below */
  .bub { width: calc(var(--s) * clamp(46px, 12vw, 58px)); }
  .bubble-set .bub:nth-child(1)  { --x: 1%  !important; --y: 14% !important; }
  .bubble-set .bub:nth-child(3)  { --x: 8%  !important; --y: 44% !important; }
  .bubble-set .bub:nth-child(5)  { --x: 15% !important; --y: 64% !important; }
  .bubble-set .bub:nth-child(7)  { --x: 22% !important; --y: 10% !important; }
  .bubble-set .bub:nth-child(9)  { --x: 29% !important; --y: 38% !important; }
  .bubble-set .bub:nth-child(11) { --x: 36% !important; --y: 60% !important; }
  .bubble-set .bub:nth-child(13) { --x: 43% !important; --y: 16% !important; }
  .bubble-set .bub:nth-child(15) { --x: 50% !important; --y: 46% !important; }
  .bubble-set .bub:nth-child(17) { --x: 57% !important; --y: 66% !important; }
  .bubble-set .bub:nth-child(19) { --x: 64% !important; --y: 8%  !important; }
  .bubble-set .bub:nth-child(21) { --x: 71% !important; --y: 40% !important; }
  .bubble-set .bub:nth-child(23) { --x: 78% !important; --y: 58% !important; }
  .bubble-set .bub:nth-child(25) { --x: 85% !important; --y: 20% !important; }
  .bubble-set .bub:nth-child(27) { --x: 92% !important; --y: 50% !important; }
}

/* ============ Our Process — two-column layout (matches their prior design) ============
   Their original used .process-point / .title-line / hr.line1-4 with the step number
   as a ::before. Rebuilt here on the site's own type: Oswald numerals, Goldman Sans
   body, brand navy rules. */
.proc-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 54px 72px;
  margin-top: 52px;
}
.proc-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 34px;
}
.proc-title {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: right;
  color: var(--lotus-blue-dark);
  margin: 0;
}
.proc-rule {
  flex: 0 0 auto;
  width: 115px; height: 9px;
  background: var(--lotus-blue-dark);
}
.proc-num {
  position: absolute;
  right: 6px; bottom: calc(100% - 34px);
  font-family: "Oswald", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
  color: var(--lotus-blue-dark);
}
.proc-list {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}
.proc-list li {
  position: relative;
  padding: 0 0 11px 20px;
  font-family: var(--sans);
  font-size: 15.5px;
  line-height: 25px;
  letter-spacing: .035em;
  color: rgba(0, 0, 0, .78);
}
.proc-list li::before {
  content: "";
  position: absolute;
  left: 2px; top: 10px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--lotus-blue);
}
@media (max-width: 900px) {
  .proc-grid { grid-template-columns: 1fr; gap: 42px; }
}
@media (max-width: 560px) {
  /* stack it: number, then title, then the rule as an underline accent —
     the inline title+rule row overflows once the title wraps */
  .proc-head { display: flex; flex-direction: column; align-items: flex-start; padding-top: 0; }
  .proc-num { position: static; order: -1; margin-bottom: 2px; }
  .proc-title { text-align: left; font-size: 15px; }
  .proc-rule { display: block; width: 64px; height: 7px; margin-top: 12px; }
}

/* ============ Client / lender logo wall + marquee ============ */
.logo-wall {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px;
}
.logo-cell {
  display: grid; place-items: center;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 26px 22px; min-height: 116px;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.logo-cell:hover { box-shadow: 0 12px 30px rgba(10,22,38,.08); transform: translateY(-3px); border-color: #cdd6e6; }
.logo-cell img { max-width: 100%; max-height: 58px; width: auto; height: auto; object-fit: contain; display: block; }
@media (max-width: 1040px) { .logo-wall { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 760px)  { .logo-wall { grid-template-columns: repeat(3, 1fr); gap: 12px; } .logo-cell { padding: 20px 16px; min-height: 96px; } .logo-cell img { max-height: 46px; } }
@media (max-width: 460px)  { .logo-wall { grid-template-columns: repeat(2, 1fr); } }

/* flex variant so an incomplete last row of logos centers instead of hanging left */
.logo-wall--center { display: flex; flex-wrap: wrap; justify-content: center; align-content: flex-start; }
.logo-wall--center .logo-cell { flex: 0 0 calc((100% - 5 * 14px) / 6 - 1px); }
@media (max-width: 1040px) { .logo-wall--center .logo-cell { flex-basis: calc((100% - 3 * 14px) / 4 - 1px); } }
@media (max-width: 760px)  { .logo-wall--center .logo-cell { flex-basis: calc((100% - 2 * 12px) / 3 - 1px); } }
@media (max-width: 460px)  { .logo-wall--center .logo-cell { flex-basis: calc((100% - 1 * 12px) / 2 - 1px); } }

/* auto-scrolling marquee */
.logo-marquee { position: relative; overflow: hidden; margin-top: 48px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.logo-track { display: flex; width: max-content; gap: 18px; animation: logo-scroll 150s linear infinite; }
/* Testimonials logo bar — two full-bleed rows scrolling in opposite directions.
   The 19 supplied logos are pre-normalised onto identical 440x160 canvases, so the
   images are sized by WIDTH here; using max-height would undo that normalisation. */
.logo-marquee--testi {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
}
.logo-marquee--a { margin-top: 44px; }
.logo-marquee--b { margin-top: 16px; }
.logo-marquee--testi .logo-track { animation-duration: 109s; gap: 16px; }
/* row B holds 9 logos vs 10, so a shorter duration keeps both rows at the same px/sec */
.logo-marquee--b .logo-track { animation-direction: reverse; animation-duration: 98s; }
.logo-marquee--testi .logo-cell { width: 232px; min-height: 108px; padding: 16px 14px; }
.logo-marquee--testi .logo-cell img { width: 100%; height: auto; max-height: none; }
@media (max-width: 760px) {
  .logo-marquee--testi .logo-cell { width: 176px; min-height: 88px; padding: 12px 10px; }
  .logo-marquee--testi .logo-track { animation-duration: 73s; }
  .logo-marquee--b .logo-track { animation-duration: 65.7s; }
}
/* Testimonials — Lenders & Sponsors: tighter vertical rhythm (client: too much
   light-blue space above/below the logo bars; halve it, title hugs the sliders) */
#lenders-sponsors .section-inner { padding-top: 54px; padding-bottom: 54px; }
#lenders-sponsors .section-head { margin-bottom: 0; }
#lenders-sponsors .logo-marquee--a { margin-top: 28px; }
@media (max-width: 760px) {
  #lenders-sponsors .section-inner { padding-top: 40px; padding-bottom: 40px; }
}
.logo-marquee:hover .logo-track { animation-play-state: paused; }
.logo-track .logo-cell { flex: 0 0 auto; width: 220px; min-height: 128px; }
@keyframes logo-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 9px)); } }
@media (prefers-reduced-motion: reduce) { .logo-track { animation: none; } }

/* ============ Stages of your CMBS loan — lifecycle flow ============ */
.cmbs { background: #fff; }
.cmbs-flow { position: relative; }
.cmbs-track {
  position: absolute; top: 27px; left: 12.5%; right: 12.5%;
  height: 3px; background: var(--line); border-radius: 2px; overflow: hidden;
}
.cmbs-track-fill {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #5fbf86 0%, #d8a657 38%, #cd6f5f 66%, var(--lotus-blue) 100%);
  transform: scaleX(0); transform-origin: left;
}
.cmbs-in .cmbs-track-fill { transform: scaleX(1); transition: transform 1.6s var(--ease) .2s; }
.cmbs-stages {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 26px;
}
.cmbs-stage { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.cmbs-dot {
  position: relative; z-index: 1;
  width: 56px; height: 56px; border-radius: 50%; flex: none;
  display: grid; place-items: center; background: #fff;
  border: 2.5px solid; margin-bottom: 22px;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.cmbs-dot svg { width: 26px; height: 26px; }
.cmbs-s1 .cmbs-dot { border-color: #5fbf86; color: #3f9c66; }
.cmbs-s2 .cmbs-dot { border-color: #d8a657; color: #b3812f; }
.cmbs-s3 .cmbs-dot { border-color: #cd6f5f; color: #b25341; }
.cmbs-s4 .cmbs-dot { border-color: var(--lotus-blue); color: var(--lotus-blue); }
.cmbs-stage:hover .cmbs-dot { transform: translateY(-4px) scale(1.07); box-shadow: 0 10px 24px rgba(10,22,38,.14); }
.cmbs-card {
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 26px 22px 24px; width: 100%; flex: 1;
  border-top: 3px solid; position: relative;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}
.cmbs-s1 .cmbs-card { border-top-color: #5fbf86; }
.cmbs-s2 .cmbs-card { border-top-color: #d8a657; }
.cmbs-s3 .cmbs-card { border-top-color: #cd6f5f; }
.cmbs-s4 .cmbs-card { border-top-color: var(--lotus-blue); }
.cmbs-stage:hover .cmbs-card { box-shadow: 0 16px 38px rgba(10,22,38,.1); transform: translateY(-3px); }
.cmbs-num { font-family: "Oswald", sans-serif; font-weight: 400; font-size: 15px; letter-spacing: .1em; color: var(--ink-soft); opacity: .55; display: block; margin-bottom: 8px; }
.cmbs-card h3 { font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 400; font-size: 23px; letter-spacing: .005em; color: var(--ink); margin: 0 0 10px; }
.cmbs-card p { font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
/* staggered entrance (JS adds cmbs-prep before viewport, cmbs-in on reveal) */
.cmbs-prep .cmbs-stage { opacity: 0; transform: translateY(18px); }
.cmbs-in .cmbs-stage { opacity: 1; transform: none; transition: opacity .6s var(--ease), transform .6s var(--ease); }
.cmbs-in .cmbs-s1 { transition-delay: .1s; }
.cmbs-in .cmbs-s2 { transition-delay: .45s; }
.cmbs-in .cmbs-s3 { transition-delay: .8s; }
.cmbs-in .cmbs-s4 { transition-delay: 1.15s; }
@media (prefers-reduced-motion: reduce) {
  .cmbs-prep .cmbs-stage { opacity: 1; transform: none; }
  .cmbs-track-fill { transform: scaleX(1); }
}
@media (max-width: 940px) {
  .cmbs-stages { grid-template-columns: 1fr; gap: 18px; }
  .cmbs-track { display: none; }
  .cmbs-stage { flex-direction: row; text-align: left; align-items: flex-start; gap: 18px; }
  .cmbs-dot { margin-bottom: 0; width: 50px; height: 50px; }
}

/* ============ Negotiated outcomes — distinct navy band ============ */
.edge-dark {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0a1626 0%, #102542 52%, var(--lotus-blue-dark) 100%);
}
.edge-dark::before {
  content: ""; position: absolute; top: -180px; right: -140px; width: 560px; height: 560px;
  background: radial-gradient(circle, rgba(58,90,156,.35) 0%, rgba(58,90,156,0) 70%);
  pointer-events: none;
}
.edge-dark .section-inner { position: relative; z-index: 1; }
.edge-dark .section-eyebrow { color: #9fb6e2; }
.edge-dark .edge-out-head { margin-bottom: 52px; }
.edge-dark .edge-out-title { color: #fff; margin: 0; }
.edge-dark .edge-card {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: none;
}
.edge-dark .edge-card-title { color: #fff; }
.edge-dark .edge-card-desc { color: rgba(255,255,255,.78); }
.edge-dark .edge-card-n { color: #fff; opacity: .1; }
.edge-dark .edge-card:hover { background: rgba(255,255,255,.11); border-color: rgba(255,255,255,.32); box-shadow: 0 18px 44px rgba(4,10,20,.4); transform: translateY(-5px); }
.edge-dark .edge-card:hover .edge-card-n { opacity: .18; }

/* rec-card as a link (CMS recognition url) */
a.rec-card { color: inherit; text-decoration: none; }
a.rec-card .rec-body h3 { transition: color .2s ease; }
a.rec-card:hover .rec-body h3 { color: var(--lotus-blue); }

/* ============ News — magazine grid (full-bleed images, overlaid titles) ============ */

/* ============================================================================
   Cover-flow carousel — Debt Placement Process
   Base (no JS): cards tile as a responsive grid. With .cf-ready (JS on), the
   cards become an interactive 3D cover flow. ========================================= */
.coverflow { position: relative; margin-top: 46px; }
.cf-viewport { position: relative; }
/* clip the 3D fan so a peeking side card never causes horizontal scroll on mobile
   (the 3D cards escape the section's own overflow:hidden); vertical padding keeps
   the active card's shadow from being cut */
.cf-ready .cf-viewport { overflow: hidden; padding: 34px 0; margin: -34px 0; }
.cf-stage { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

.cf-card {
  background: #fff; border-radius: 20px; overflow: hidden;
  box-shadow: 0 30px 64px -34px rgba(10,22,38,.5), 0 2px 8px rgba(10,22,38,.06);
  backface-visibility: hidden;
}
.cf-media { height: 200px; overflow: hidden; background: linear-gradient(160deg,#12294a,#0a1626); }
.cf-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ease); }
.cf-content { padding: 18px 22px 22px; }
.cf-step { display: block; font-family: var(--sans); font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--lotus-blue); margin: 0 0 8px; }
.cf-title { font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 500; font-size: 23px; line-height: 1.12; color: var(--ink); margin: 0 0 13px; }
.cf-list { list-style: none; margin: 0; padding: 0; }
.cf-list li { position: relative; padding-left: 17px; font-family: "Goldman Sans", Helvetica, Arial, sans-serif; font-size: 13.5px; line-height: 1.5; color: var(--ink-soft); margin-bottom: 7px; }
.cf-list li:last-child { margin-bottom: 0; }
.cf-list li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--lotus-blue); }

.cf-arrow, .cf-dots { display: none; }

/* --- interactive cover flow (JS adds .cf-ready) --- */
.cf-ready .cf-stage { display: block; height: 712px; perspective: 2100px; transform-style: preserve-3d; }
.cf-ready .cf-card {
  position: absolute; top: 18px; left: 50%; width: 540px; height: 668px;
  margin-left: -270px; cursor: pointer;
  transition: transform .6s cubic-bezier(.22,.61,.36,1), opacity .5s ease, box-shadow .4s ease;
  transform-origin: center center; will-change: transform, opacity;
}
.cf-ready .cf-media { height: 372px; }
.cf-ready .cf-content { padding: 26px 38px 30px; }
.cf-ready .cf-step { font-size: 13px; margin: 0 0 11px; }
.cf-ready .cf-title { font-size: 33px; margin: 0 0 18px; }
.cf-ready .cf-list li { font-size: 16.5px; line-height: 1.55; padding-left: 22px; margin-bottom: 10px; }
.cf-ready .cf-list li::before { top: 10px; width: 7px; height: 7px; }
.cf-ready .cf-card:not(.is-active) { box-shadow: 0 22px 50px -30px rgba(10,22,38,.5); }
.cf-ready .cf-card.is-active { box-shadow: 0 44px 80px -34px rgba(10,22,38,.62), 0 0 0 1px rgba(46,72,133,.08); }
.cf-ready .cf-card:hover .cf-media img { transform: scale(1.05); }

.cf-ready .cf-arrow {
  position: absolute; top: 46%; transform: translateY(-50%); z-index: 60;
  width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line);
  background: #fff; color: var(--lotus-blue); font-size: 26px; line-height: 1;
  display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 14px 32px -14px rgba(10,22,38,.4); transition: transform .2s, box-shadow .2s, background .2s, color .2s;
}
.cf-ready .cf-prev { left: 6px; }
.cf-ready .cf-next { right: 6px; }
.cf-ready .cf-arrow:hover { background: var(--lotus-blue); color: #fff; transform: translateY(-50%) scale(1.07); }
.cf-ready .cf-arrow:active { transform: translateY(-50%) scale(.97); }

.cf-ready .cf-dots { display: flex; justify-content: center; gap: 10px; margin-top: 30px; }
.cf-dot { width: 28px; height: 6px; border-radius: 999px; border: 0; background: #cfd6e2; cursor: pointer; padding: 0; transition: background .25s, width .25s; }
.cf-dot.is-active { background: var(--lotus-blue); width: 40px; }

@media (max-width: 980px) { .cf-stage { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px) {
  /* smaller media + type and a taller card so the title + bullets aren't cropped */
  .cf-ready .cf-stage { height: 636px; }
  .cf-ready .cf-card { width: 316px; height: 596px; margin-left: -158px; }
  .cf-ready .cf-media { height: 208px; }
  .cf-ready .cf-content { padding: 20px 24px 24px; }
  .cf-ready .cf-step { font-size: 12px; margin: 0 0 8px; }
  .cf-ready .cf-title { font-size: 24px; margin: 0 0 12px; }
  .cf-ready .cf-list li { font-size: 14.5px; line-height: 1.5; margin-bottom: 8px; padding-left: 20px; }
  .cf-ready .cf-arrow { width: 44px; height: 44px; font-size: 22px; }
}
@media (max-width: 560px) { .cf-stage { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .cf-ready .cf-card { transition: opacity .3s ease; } }

/* Debt Placement Process — soft brand-tinted backdrop with faint rings + glows */
.dp-process {
  position: relative;
  overflow: hidden;                 /* the wide 3D fan never spills into page scroll */
  background:
    radial-gradient(circle at 90% 6%, transparent 250px, rgba(58,90,156,.06) 252px, rgba(58,90,156,.06) 254px, transparent 256px),
    radial-gradient(circle at 90% 6%, transparent 196px, rgba(58,90,156,.045) 198px, rgba(58,90,156,.045) 200px, transparent 202px),
    radial-gradient(58% 70% at 10% 2%, rgba(58,90,156,.10), transparent 60%),
    radial-gradient(54% 66% at 94% 104%, rgba(33,153,232,.09), transparent 62%),
    linear-gradient(180deg, #f6f8fb 0%, #eef2f7 60%, #e9eef5 100%);
}

/* Practice facts as two glass circles, floated to the right of the title */
#our_debt_placement_practices .section-inner { position: relative; }
.practice-orbs { position: absolute; top: 150px; right: 4px; z-index: 3; display: flex; gap: 24px; }
/* Outer ring holds the CIRCULAR drop shadow. The backdrop-filter lives on the inner
   .orb-glass (clipped to the circle with overflow:hidden), because backdrop-filter on
   the same element as a shadow leaks a rectangular halo in Chromium. */
.orb {
  position: relative;
  width: 178px; height: 178px; border-radius: 50%;
  box-shadow: 0 22px 48px -22px rgba(6,14,28,.55);
}
.orb-glass {
  position: absolute; inset: 0; border-radius: 50%;
  -webkit-clip-path: circle(50%); clip-path: circle(50%);   /* clips backdrop-filter to the circle; overflow/border-radius alone don't in Chromium */
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 18px;
  background: linear-gradient(158deg, rgba(46,72,133,.52), rgba(15,31,64,.64));
  -webkit-backdrop-filter: blur(10px) saturate(135%); backdrop-filter: blur(10px) saturate(135%);
  border: 1px solid rgba(255,255,255,.42);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28);
}
.orb-label { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.82); margin-bottom: 9px; }
.orb-value { font-family: "Oswald", "Helvetica Neue", Arial, sans-serif; font-weight: 500; font-size: 23px; line-height: 1.08; color: #fff; }

@media (max-width: 1040px) {
  .practice-orbs { position: static; margin: 6px 0 42px; }
}
@media (max-width: 420px) {
  .practice-orbs { gap: 16px; }
  .orb { width: 150px; height: 150px; }
  .orb-value { font-size: 20px; }
}

/* ===== Entrance reveals (Capital Placement page) — JS adds .rv + a variant, then .rv-in
   Each element type gets its own motion so the page doesn't just fade up uniformly. ===== */
.rv {
  opacity: 0; will-change: opacity, transform, clip-path;
  transition: opacity .8s cubic-bezier(.22,.61,.36,1),
              transform .85s cubic-bezier(.22,.61,.36,1),
              clip-path .9s cubic-bezier(.22,.61,.36,1);
}
.rv-up    { transform: translateY(32px); }
.rv-left  { transform: translateX(-52px); }
.rv-right { transform: translateX(52px); }
.rv-rise  { transform: translateY(44px) scale(.955); }
.rv-pop   { transform: scale(.8); }
.rv-tilt  { transform: perspective(1100px) rotateX(15deg) translateY(42px); transform-origin: 50% 100%; }
.rv-clip  { transform: translateY(14px); -webkit-clip-path: inset(0 0 105% 0); clip-path: inset(0 0 105% 0); }
/* pop + tilt get a gentle overshoot for extra life */
.rv-pop, .rv-tilt { transition-timing-function: cubic-bezier(.34,1.4,.64,1); }
/* settled state — negative insets so the clip rect sits OUTSIDE the box and never
   crops descenders (the "y"/"p" tails) or the title's text-shadow. rv-clip still
   animates its top-down wipe into this end state. */
.rv.rv-in { opacity: 1; transform: none; -webkit-clip-path: inset(-30% -30% -45% -30%); clip-path: inset(-30% -30% -45% -30%); }
@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none; }
}

/* ============ Testimonials page ============ */
/* Lenders & Sponsors — soft brand-tinted backdrop so the white logo cards pop */
#lenders-sponsors {
  position: relative; overflow: hidden;
  background:
    radial-gradient(58% 80% at 2% 0%, rgba(58,90,156,.12), transparent 60%),
    radial-gradient(58% 80% at 98% 100%, rgba(33,153,232,.10), transparent 62%),
    radial-gradient(circle at 88% 12%, transparent 210px, rgba(58,90,156,.05) 212px, rgba(58,90,156,.05) 214px, transparent 216px),
    linear-gradient(180deg, #eef2f8 0%, #e7ecf5 62%, #e3e9f3 100%);
}

/* Testimonial cards — brand blue glass with white type.
   No backdrop-filter: the gradient is near-opaque so the blur is invisible, and
   backdrop-filter on the same element leaves the box-shadow corners square (Chromium). */
.tcard {
  background: linear-gradient(180deg, rgba(46,72,133,.9), rgba(19,37,76,.95));
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 24px 52px -26px rgba(4,10,20,.55), inset 0 1px 0 rgba(255,255,255,.2);
}
.tname { color: #fff; }
.trole { color: rgba(255,255,255,.78); }
.tquote { color: rgba(255,255,255,.9); }
.tcard figcaption { border-bottom-color: rgba(255,255,255,.24); }
/* each logo sits on its own white chip so it stays legible on the blue card */
.tlogo {
  /* one exact chip height for every testimonial, whatever the logo's own shape */
  height: 100px; box-sizing: border-box; margin: 0 0 20px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; border-radius: 12px; padding: 16px 22px;
  box-shadow: 0 6px 18px -8px rgba(4,10,20,.5);
}
.tlogo img { max-height: 68px; max-width: 240px; width: auto; height: auto; display: block; object-fit: contain; }
/* Certes + Mack: identical rendered height at every width (client request).
   Mack's lockup is 4.46:1, so the shared height is capped by what fits Mack. */
.tlogo img[src*="sunder-jambunathan"],
.tlogo img[src*="mack"] { height: 46px; max-height: none; max-width: none; }
@media (min-width: 900px) {
  .tlogo img[src*="sunder-jambunathan"],
  .tlogo img[src*="mack"] { height: 56px; }
}
@media (min-width: 1200px) {
  .tlogo img[src*="sunder-jambunathan"],
  .tlogo img[src*="mack"] { height: 62px; }
}
/* tighten the space above the testimonial cards (empty head removed) */
#testi-grid .section-inner { padding-top: 72px; }

/* Testimonial card — the same slow always-on edge shimmer as the Our Process cards,
   plus a gentle hover expand for readability. (After .rv so the hover transform wins.) */
.tcard { position: relative; transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .5s cubic-bezier(.22,.61,.36,1), box-shadow .45s ease; }
.tcard:hover {
  transform: scale(1.035);
  box-shadow: 0 44px 84px -30px rgba(4,10,20,.72), inset 0 1px 0 rgba(255,255,255,.24);
  z-index: 5;
}
@property --tshim { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.tcard::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px;
  background: conic-gradient(from var(--tshim),
    rgba(159, 182, 226, .10) 0deg,
    rgba(33, 153, 232, .90) 40deg,
    rgba(159, 182, 226, .10) 90deg,
    rgba(159, 182, 226, .10) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: tcard-shimmer 7s linear infinite;
  pointer-events: none;
}
/* stagger so the cards don't all pulse in unison */
.tcard:nth-child(2n)::before { animation-delay: -1.75s; }
.tcard:nth-child(3n)::before { animation-delay: -3.5s; }
.tcard:nth-child(4n)::before { animation-delay: -5.25s; }
@keyframes tcard-shimmer { to { --tshim: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .tcard:hover { transform: none; }
  .tcard::before { animation: none; }
}

/* ============================================================================
   M&A Advisory page — applying the site's design language
   ========================================================================== */
/* Our Work — split layout: copy beside a framed boardroom photo, soft brand bg */
#our-work {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 92% 8%, transparent 220px, rgba(58,90,156,.06) 222px, rgba(58,90,156,.06) 224px, transparent 226px),
    radial-gradient(56% 74% at 4% 2%, rgba(58,90,156,.10), transparent 60%),
    radial-gradient(54% 66% at 98% 104%, rgba(33,153,232,.08), transparent 62%),
    linear-gradient(180deg, #f7f8fb 0%, #eef2f7 62%, #e9eef5 100%);
}
.ourwork-split { display: grid; grid-template-columns: 1.02fr .98fr; gap: 60px; align-items: center; }
#our-work .section-head { margin-bottom: 0; }
.ourwork-media img {
  /* natural aspect, no crop — the full tower shows; box hugs the image so the
     radius + shadow stay tight */
  width: auto; max-width: 100%; height: auto; max-height: 560px;
  margin: 0 auto;
  border-radius: 18px; display: block;
  box-shadow: 0 34px 70px -32px rgba(10,22,38,.55), inset 0 1px 0 rgba(255,255,255,.14);
}
@media (max-width: 900px) { .ourwork-split { grid-template-columns: 1fr; gap: 36px; } }
/* M&A page: halve each section's top/bottom spacing */
#our-work .section-inner,
#strategic-specialties .section-inner,
#our-transaction-advisory-services .section-inner { padding-top: 64px; padding-bottom: 64px; }
@media (max-width: 760px) {
  #our-work .section-inner,
  #strategic-specialties .section-inner,
  #our-transaction-advisory-services .section-inner { padding-top: 40px; padding-bottom: 40px; }
}

/* Strategic Specialties — brand blue-glass tiles, white icons, shimmer edge,
   and a slow Ken Burns on the photo behind them */
/* live market video behind the tiles (poster image is the fallback) */
#strategic-specialties .media-bg { transform-origin: 50% 42%; }
#strategic-specialties .media-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
  transform: scale(1.06);                 /* hide the blurred edges */
  filter: blur(2px) brightness(.92) saturate(1.05);   /* subdue the ticker text -> ambient */
}
/* an even, brand-navy wash so the tiles read cleanly and the footage stays cohesive */
#strategic-specialties::after {
  background:
    linear-gradient(180deg, rgba(8,15,27,.55) 0%, rgba(8,15,27,.5) 45%, rgba(8,15,27,.64) 100%),
    linear-gradient(90deg, rgba(20,42,84,.34), rgba(12,26,58,.34));
}
@media (prefers-reduced-motion: reduce) { #strategic-specialties .media-video { display: none; } }
#strategic-specialties .ma-spec {
  position: relative;
  background: linear-gradient(180deg, rgba(46,72,133,.82), rgba(20,38,78,.9));
  -webkit-backdrop-filter: blur(16px) saturate(130%); backdrop-filter: blur(16px) saturate(130%);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 22px 48px -24px rgba(4,10,20,.5), inset 0 1px 0 rgba(255,255,255,.2);
}
#strategic-specialties .ma-spec h3 { color: #fff; }
#strategic-specialties .ma-spec-ico { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.34); color: #fff; }
#strategic-specialties .ma-spec:hover { background: linear-gradient(180deg, rgba(54,84,152,.86), rgba(26,46,92,.92)); border-color: rgba(255,255,255,.34); box-shadow: 0 30px 60px -26px rgba(4,10,20,.6); }
#strategic-specialties .ma-spec:hover .ma-spec-ico { background: var(--lotus-blue); border-color: var(--lotus-blue); color: #fff; }
/* shimmer edge (same effect as Our Process / testimonials) */
#strategic-specialties .ma-spec::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px;
  background: conic-gradient(from var(--tshim),
    rgba(159,182,226,.10) 0deg, rgba(33,153,232,.90) 40deg, rgba(159,182,226,.10) 90deg, rgba(159,182,226,.10) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: tcard-shimmer 7s linear infinite; pointer-events: none;
}
#strategic-specialties .ma-spec:nth-child(2n)::before { animation-delay: -1.75s; }
#strategic-specialties .ma-spec:nth-child(3n)::before { animation-delay: -3.5s; }
#strategic-specialties .ma-spec:nth-child(5n)::before { animation-delay: -5.25s; }
@media (prefers-reduced-motion: reduce) { #strategic-specialties .ma-spec::before { animation: none; } }

/* Transaction Advisory — a narrower blue-glass BENTO: each service is an icon
   beside its text, tiles vary in width, and the last spans the full row. */
#our-transaction-advisory-services {
  position: relative; overflow: hidden;
  background:
    radial-gradient(58% 74% at 0% 0%, rgba(58,90,156,.10), transparent 60%),
    radial-gradient(58% 74% at 100% 100%, rgba(33,153,232,.08), transparent 62%),
    linear-gradient(180deg, #eef2f8 0%, #e7ecf5 100%);
}
#our-transaction-advisory-services .svc-ledger {
  display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 168px; gap: 22px;
  max-width: 1120px; margin: 0 auto;
}
#our-transaction-advisory-services .svc-item {
  grid-column: span 3;                            /* default: two roomy cards per row */
  display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center;
  padding: 26px 30px; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(46,72,133,.86), rgba(19,37,76,.92));
  -webkit-backdrop-filter: blur(14px) saturate(130%); backdrop-filter: blur(14px) saturate(130%);
  box-shadow: 0 24px 50px -26px rgba(4,10,20,.55), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
/* bento rhythm: two TALL feature tiles anchor the grid; 4,5,6 are a medium trio */
#our-transaction-advisory-services .svc-item:nth-child(4),
#our-transaction-advisory-services .svc-item:nth-child(5),
#our-transaction-advisory-services .svc-item:nth-child(6) { grid-column: span 2; }
#our-transaction-advisory-services .svc-item:nth-child(1),
#our-transaction-advisory-services .svc-item:nth-child(7) {
  grid-column: span 3; grid-row: span 2;
  grid-template-columns: 1fr; align-content: center; gap: 22px; padding: 36px 38px;
}
#our-transaction-advisory-services .svc-item:nth-child(1) p,
#our-transaction-advisory-services .svc-item:nth-child(7) p { font-size: 19px; line-height: 1.5; color: #fff; }
#our-transaction-advisory-services .svc-item:hover { transform: translateY(-6px); border-color: rgba(255,255,255,.4); box-shadow: 0 38px 70px -28px rgba(4,10,20,.65); }
.svc-ico {
  width: 62px; height: 62px; border-radius: 17px; display: grid; place-items: center;
  background: linear-gradient(160deg, #dceafd, #b6cff4); color: #1c3d72;
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 10px 22px -10px rgba(4,10,20,.55);
  transition: transform .3s var(--ease);
}
.svc-ico svg { width: 32px; height: 32px; display: block; }
#our-transaction-advisory-services .svc-item:nth-child(1) .svc-ico,
#our-transaction-advisory-services .svc-item:nth-child(7) .svc-ico { width: 80px; height: 80px; border-radius: 22px; }
#our-transaction-advisory-services .svc-item:nth-child(1) .svc-ico svg,
#our-transaction-advisory-services .svc-item:nth-child(7) .svc-ico svg { width: 42px; height: 42px; }
#our-transaction-advisory-services .svc-item:hover .svc-ico { transform: scale(1.06) rotate(-3deg); }
#our-transaction-advisory-services .svc-item p { color: rgba(255,255,255,.92); font-size: 15.5px; line-height: 1.5; margin: 0; }
@media (max-width: 1020px) {
  #our-transaction-advisory-services .svc-ledger { grid-template-columns: repeat(2, 1fr); grid-auto-rows: auto; }
  #our-transaction-advisory-services .svc-item,
  #our-transaction-advisory-services .svc-item:nth-child(1),
  #our-transaction-advisory-services .svc-item:nth-child(4),
  #our-transaction-advisory-services .svc-item:nth-child(5),
  #our-transaction-advisory-services .svc-item:nth-child(6),
  #our-transaction-advisory-services .svc-item:nth-child(7) { grid-column: span 1; grid-row: auto; grid-template-columns: auto 1fr; align-content: initial; padding: 24px 26px; }
  #our-transaction-advisory-services .svc-item:nth-child(1) .svc-ico,
  #our-transaction-advisory-services .svc-item:nth-child(7) .svc-ico { width: 62px; height: 62px; border-radius: 17px; }
  #our-transaction-advisory-services .svc-item:nth-child(1) p,
  #our-transaction-advisory-services .svc-item:nth-child(7) p { font-size: 15.5px; }
}
@media (max-width: 620px) { #our-transaction-advisory-services .svc-ledger { grid-template-columns: 1fr; } }

/* M&A hero — lighter still than page-hero--light, with a text-shadow so the white
   title stays legible over the brighter photo */
.page-hero--airy.has-image .page-hero-bg { opacity: .92; }
.page-hero--airy.has-image::after {
  background: linear-gradient(180deg, rgba(8,15,27,.12) 0%, rgba(8,15,27,.26) 55%, rgba(8,15,27,.48) 100%);
}
.page-hero--airy .page-eyebrow { color: rgba(255,255,255,.9); text-shadow: 0 1px 10px rgba(6,12,22,.55); }
.page-hero--airy .page-title,
.page-hero--airy .page-hero-lede { text-shadow: 0 2px 24px rgba(6,12,22,.62), 0 1px 4px rgba(6,12,22,.5); }

/* Hero background motion — the same slow arrival zoom + gentle breathe used on the
   Restructuring hero, now on every image hero across the site (home uses a video
   and has no .page-hero, so it is naturally excluded). */
.page-hero.has-image .page-hero-bg {
  animation: hero-arrive 4s cubic-bezier(.16,.55,.25,1) both, hero-breathe 26s ease-in-out 4s infinite;
}
@keyframes hero-arrive { from { transform: scale(1.14); } to { transform: scale(1.02); } }
@keyframes hero-breathe { 0%, 100% { transform: scale(1.02); } 50% { transform: scale(1.07); } }
@media (prefers-reduced-motion: reduce) {
  .page-hero.has-image .page-hero-bg { animation: none; transform: none; }
}

/* Contact — a soft brand-tinted backdrop and light-blue icon chips on the info */
.contact-section {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 90% 8%, transparent 210px, rgba(58,90,156,.06) 212px, rgba(58,90,156,.06) 214px, transparent 216px),
    radial-gradient(56% 72% at 3% 0%, rgba(58,90,156,.12), transparent 60%),
    radial-gradient(54% 66% at 100% 104%, rgba(33,153,232,.09), transparent 62%),
    linear-gradient(180deg, #f6f8fb 0%, #eef2f7 60%, #e9eef5 100%);
}
.contact-info .ci-item { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; margin: 0 0 20px; }
/* decorative lotus in the empty space under the contact details, stem to the footer */
.contact-section .contact-grid { position: relative; }
.contact-info, .cform { position: relative; z-index: 1; }
.contact-lotus {
  position: absolute; left: 6%; bottom: -455px;
  width: clamp(280px, 26vw, 336px); height: auto; z-index: 0;
  pointer-events: none; -webkit-user-select: none; user-select: none;
  filter: drop-shadow(0 22px 30px rgba(20,40,80,.16));
}
@media (max-width: 860px) { .contact-lotus { display: none; } }
.ci-ico {
  width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center;
  background: linear-gradient(160deg, #dceafd, #b6cff4); color: #1c3d72;
  border: 1px solid rgba(255,255,255,.6); box-shadow: 0 10px 22px -10px rgba(4,10,20,.4);
}
.ci-ico svg { width: 24px; height: 24px; display: block; }

/* On phones the horizontal-slide reveals would translate past the viewport and
   cause a sideways scroll — reveal them vertically instead. */
@media (max-width: 640px) {
  .rv-left, .rv-right { transform: translateY(30px); }
}

/* ============================================================
   News & Recognition — colour + life
   ============================================================ */
/* Recognition: soft light wash instead of flat white */
#recognition {
  position: relative;
  background:
    radial-gradient(50% 60% at 0% 0%, rgba(58,90,156,.08), transparent 60%),
    radial-gradient(48% 58% at 100% 6%, rgba(33,153,232,.06), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%);
}
/* As Featured In: brand-blue feature band with white-glass logo cards */
#as-featured-in {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #16264a 0%, #1d3159 52%, #16294e 100%);
}
#as-featured-in::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(42% 60% at 12% 0%, rgba(64,110,190,.34), transparent 62%),
    radial-gradient(46% 66% at 100% 100%, rgba(33,153,232,.20), transparent 60%);
}
#as-featured-in .section-inner { position: relative; z-index: 1; }
#as-featured-in .section-h2 { color: #fff; }
#as-featured-in .section-eyebrow { color: #9fb6e2; text-shadow: 0 1px 10px rgba(5,12,22,.5); }
#as-featured-in .prose p { color: rgba(255,255,255,.84); }
#as-featured-in .logo-cell {
  background: #fff;
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 20px 40px -22px rgba(4,10,20,.6), inset 0 1px 0 rgba(255,255,255,.9);
}
#as-featured-in .logo-cell:hover {
  background: #fff; border-color: rgba(255,255,255,.85); transform: translateY(-4px);
  box-shadow: 0 28px 52px -22px rgba(4,10,20,.7);
}
/* News: gentle blue-tinted light, distinct from the default grey */
#news {
  background:
    radial-gradient(50% 60% at 100% 0%, rgba(58,90,156,.08), transparent 60%),
    linear-gradient(180deg, #eef2f8 0%, #f4f7fb 100%);
}

/* ============================================================
   Giving Back — colour + life
   ============================================================ */
/* Responsibility: a soft blue-tinted panel so it reads distinctly from the
   lighter Social Impact section below it. */
#responsibility {
  position: relative; overflow: hidden;
  background:
    radial-gradient(62% 72% at 6% 0%, rgba(46,72,133,.16), transparent 60%),
    radial-gradient(56% 66% at 100% 100%, rgba(33,153,232,.14), transparent 62%),
    linear-gradient(165deg, #e9eff9 0%, #dfe8f5 100%);
}
/* right-side decor: the site's dashed-ring motif cresting the edge, with a
   smaller solid ring inside it (centering via margins so rotate can own transform) */
#responsibility::before,
#responsibility::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
#responsibility::before {
  width: 420px; height: 420px; right: -120px; top: 50%; margin-top: -210px;
  border: 1.5px dashed rgba(58, 90, 156, .34);
  animation: resp-ring-turn 80s linear infinite;
}
#responsibility::after {
  width: 260px; height: 260px; right: -40px; top: 50%; margin-top: -130px;
  border: 1px solid rgba(33, 153, 232, .28);
}
@keyframes resp-ring-turn { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #responsibility::before { animation: none; } }
@media (max-width: 760px) {
  #responsibility::before { width: 240px; height: 240px; right: -80px; margin-top: -120px; }
  #responsibility::after  { width: 150px; height: 150px; right: -30px; margin-top: -75px; }
}
#responsibility .section-inner { position: relative; z-index: 1; padding-top: 54px; padding-bottom: 54px; }
#responsibility .section-head { margin-bottom: 0; }   /* the head is this section's only content — its trailing margin was dead space */
@media (max-width: 760px) {
  #responsibility .section-inner { padding-top: 40px; padding-bottom: 40px; }
}
/* Social Impact: near-white gallery — the tonal shift separates it from above. */
#social-impact {
  position: relative;
  background:
    radial-gradient(46% 58% at 100% 0%, rgba(58,90,156,.05), transparent 60%),
    linear-gradient(180deg, #fbfcfe 0%, #f6f8fc 100%);
}
#social-impact .section-inner { padding-top: 66px; }

/* ============================================================
   Press Releases — pill download buttons at the foot of News
   ============================================================ */
.press-kit { margin-top: 60px; padding-top: 44px; border-top: 1px solid rgba(58,90,156,.18); }
.press-kit .section-eyebrow { margin-bottom: 18px; }
.press-kit-btns { display: flex; flex-wrap: wrap; gap: 14px; }
.pr-btn {
  display: inline-flex; align-items: center; gap: 11px;
  padding: 15px 24px 15px 18px; border-radius: 999px;
  background: #fff; border: 1px solid #cdd6e6;
  font-family: "Goldman Sans", Helvetica, Arial, sans-serif;
  font-size: 15px; font-weight: 600; letter-spacing: .005em;
  color: var(--lotus-blue); text-decoration: none;
  box-shadow: 0 12px 26px -16px rgba(10,22,38,.28);
  transition: background .25s var(--ease), color .25s var(--ease),
              border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.pr-btn .pr-ico {
  width: 34px; height: 34px; border-radius: 50%; flex: 0 0 auto;
  display: grid; place-items: center;
  background: linear-gradient(160deg, #dceafd, #b6cff4); color: #1c3d72;
  transition: background .25s var(--ease), color .25s var(--ease);
}
.pr-btn:hover {
  background: var(--lotus-blue); border-color: var(--lotus-blue); color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -16px rgba(10,22,38,.45);
}
.pr-btn:hover .pr-ico { background: rgba(255,255,255,.16); color: #fff; }
@media (max-width: 640px) {
  .press-kit { margin-top: 44px; padding-top: 34px; }
  .press-kit-btns { flex-direction: column; align-items: stretch; }
  .pr-btn { justify-content: flex-start; }
}
