:root{
  --c0:#f2f4f7; --c1:#e4e5e7; --c2:#c5c8d1; --c3:#a3a9bb; --c4:#878fa8;
  --c5:#757e9c; --c6:#6c7698; --c7:#5b6585; --c8:#505977; --c9:#282e40;

  --ink:#0b1220; --muted: var(--c7); --surface:#ffffff;
  --radius: 2px;

  --headline: "Tiempos Headline Light","Tiempos Headline","Newsreader","Georgia","Times New Roman",serif;
  --body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  --tracking-tight: -0.01em;
}

html, body { background: var(--surface); color: var(--ink); font-family: var(--body); }
.is-muted { color: var(--muted); }
.has-shadow-soft { box-shadow: 0 10px 30px rgba(16,24,40,.06); }

.title, .section-title, .navbar-item.is-brand {
  font-family: var(--headline);
  font-weight: 500;
  letter-spacing: var(--tracking-tight);
}

.section.is-roomy { padding-top: 6rem; padding-bottom: 6rem; }
.section.is-roomier { padding-top: 8.5rem; padding-bottom: 8.5rem; }
.hero.is-roomy-hero .hero-body { padding-top: 6.5rem; padding-bottom: 6.5rem; }

.box, .button, .input, .select select, .card, .notification, .navbar, .tabs, .tag {
  border-radius: var(--radius) !important;
}

/* Buttons */
.button { font-weight: 700; letter-spacing: .2px; font-family: var(--body); }
.button.is-accent { background: var(--c9); border-color: var(--c9); color: #fff; }
.button.is-accent:hover { filter: brightness(1.03); }
.button.is-accent.is-outlined{ background: transparent; border: 1px solid var(--c9); color: var(--c9); }
.button.is-hero-light{
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(255,255,255,.85);
  color: var(--c9);
  font-weight: 800;
}
.button.is-hero-light:hover{ background: #fff; color: var(--c9); }

/* Topbar */
.topbar { background: var(--c0); border-bottom: 1px solid var(--c1); }
.topbar a { color: var(--c9); text-decoration: underline; }

/* Topbar: stack nicely on mobile */
.topbar-level{
  flex-wrap: wrap;
  gap: .5rem;
}

@media (max-width: 768px){
  .topbar-level{
    display: block; /* stacks left and right */
  }
  .topbar-level .level-right{
    margin-top: .35rem;
    text-align: left;
  }
  .topbar-level .level-left p{
    max-width: 60ch;
  }
}

/* Navbar */
.navbar{ background: #fff; border-bottom: 1px solid var(--c1); }
.navbar-item, .navbar-link{
  color: var(--ink) !important;
  font-family: var(--body);
  font-weight: 600;
}
.navbar-item:hover, .navbar-link:hover { color: var(--c9) !important; background: transparent; }

/* Hero (default: landing hero image) */
.hero.is-luxe { position: relative; color: #fff; overflow: hidden; }
.hero.is-luxe::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1469474968028-56623f02e42e.webp");
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}
.hero.is-luxe .hero-body{ position:relative; }
.hero.is-luxe .title, .hero.is-luxe .subtitle { color:#fff; }
.hero-kicker{
  color: rgba(255,255,255,.88);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .75rem;
  font-family: var(--body);
  font-weight: 600;
}
.hero-title{ line-height: 1.05; }

/* Eyebrow */
.section-eyebrow{
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: .75rem;
  color: var(--c8);
  font-weight: 700;
  font-family: var(--body);
}

/* Proof */
.proof-row{ border-top: 1px solid var(--c1); border-bottom: 1px solid var(--c1); background: #fff; }
.proof-pill{
  border: 1px solid var(--c1);
  padding: 10px 12px;
  border-radius: var(--radius);
  color: var(--c8);
  background: #fff;
  font-size: .9rem;
  font-family: var(--body);
}

/* Value */
.value-panel{ border: 1px solid var(--c1); background: #fff; }
.value-panel .has-text-weight-bold,
.value-panel .has-text-weight-semibold { color: var(--ink); }
.value-panel .has-text-weight-semibold { font-weight: 700; }
.value-panel .has-text-weight-bold { font-weight: 800; }
.value-list{ border-top: 1px solid var(--c1); margin-top: 1.25rem; padding-top: 1.25rem; }
.value-item{ display:flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--c1); }
.value-item:last-child{ border-bottom: 0; }
.value-dot{ width: 10px; height: 10px; margin-top: 7px; background: var(--c9); border-radius: var(--radius); flex: 0 0 auto; }

/* Who we serve */
.section.is-accent-bg{ background: var(--c9); color: #fff; }
.section.is-accent-bg .section-eyebrow{ color: rgba(255,255,255,.80); }
.section.is-accent-bg .title, .section.is-accent-bg .subtitle { color:#fff; }
.section.is-accent-bg .subtitle{ opacity:.88; }

.equal-height .column { display: flex; }
.equal-height .column > .box { width: 100%; }

.serve-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 1.1rem;
  min-height: 130px;
  box-shadow: none !important;
}
.serve-card .is-muted{ color: rgba(255,255,255,.80) !important; }

/* Platform */
.platform-grid .box{ border: 1px solid var(--c1); background: #fff; }
.platform-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width: 34px; height: 34px;
  border: 1px solid var(--c2);
  color: var(--c9);
  font-weight: 800;
  border-radius: var(--radius);
  background: var(--c0);
  font-family: var(--body);
}
.platform-grid p.has-text-weight-bold{
  color: var(--ink) !important;
  font-weight: 800 !important;
}

/* Security */
.security-wrap{
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #131b30 0%, #0f1526 100%);
  color: rgba(255,255,255,.92);
}
.security-wrap::before,
.security-wrap::after{
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  will-change: transform;
}
.security-wrap::before{
  width: 70vw; height: 70vw;
  max-width: 1100px; max-height: 1100px;
  right: -22%; top: -60%;
  background: radial-gradient(circle, rgba(96,108,146,.80) 0%, rgba(80,89,119,.34) 40%, transparent 66%);
  animation: sec-drift-a 14s ease-in-out infinite alternate;
}
.security-wrap::after{
  width: 60vw; height: 60vw;
  max-width: 900px; max-height: 900px;
  left: -24%; bottom: -55%;
  background: radial-gradient(circle, rgba(134,108,140,.62) 0%, rgba(110,90,114,.24) 40%, transparent 66%);
  animation: sec-drift-b 17s ease-in-out infinite alternate;
}
.security-wrap > .container{ position: relative; z-index: 1; }
@keyframes sec-drift-a{
  from{ transform: translate3d(0, 0, 0) scale(1); }
  to{ transform: translate3d(-34%, 30%, 0) scale(1.3); }
}
@keyframes sec-drift-b{
  from{ transform: translate3d(0, 0, 0) scale(1); }
  to{ transform: translate3d(36%, -30%, 0) scale(1.25); }
}
@media (prefers-reduced-motion: reduce){
  .security-wrap::before, .security-wrap::after{ animation: none; }
}
.security-wrap .section-eyebrow{ color: rgba(255,255,255,.75); }
.security-wrap .title, .security-wrap .subtitle{ color:#fff; }
.security-wrap .subtitle{ opacity:.88; }
.security-surface{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
  padding: 28px;
}
.security-statement{
  border-left: 3px solid rgba(255,255,255,.35);
  padding-left: 14px;
  margin-top: 16px;
  color: rgba(255,255,255,.88);
}
.security-metrics{
  margin-top: 22px;
  border-top: 1px solid rgba(255,255,255,.14);
  padding-top: 18px;
}
.security-metric{ padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.10); }
.security-metric:last-child{ border-bottom: 0; }
.security-metric-title{ color:#fff; font-weight: 800; }
.security-metric-desc{ color: rgba(255,255,255,.78); font-size: .92rem; }

.audit-hero{
  margin-top: 2.5rem;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  padding: 28px;
}
.audit-hero .audit-mini{ box-shadow: none !important; }

/* Innovation */
.innovation-wrap{
  background: var(--c0);
  border-top: 1px solid var(--c1);
  border-bottom: 1px solid var(--c1);
}

/* FAQ */
.faq-wrap{ background: #fff; border-top: 1px solid var(--c1); }
.faq-list{ border-top: 1px solid var(--c1); }
.faq-item{ border-bottom: 1px solid var(--c1); }
.faq-item summary{
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 1.15rem 0;
  color: var(--ink);
  font-weight: 600;
}
.faq-item summary::-webkit-details-marker{ display: none; }
.faq-item summary::after{
  content: "+";
  color: var(--c8);
  font-weight: 400;
  font-size: 1.1rem;
  line-height: 1;
  flex: 0 0 auto;
  transition: transform .18s ease;
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item summary:hover{ color: var(--c9); }
.faq-item > p{
  margin: 0;
  padding: 0 2rem 1.35rem 0;
  color: var(--muted);
  font-size: .95rem;
  max-width: 72ch;
}

/* Closing section */
.closing-section{
  padding: 0 !important;
  margin: 0 !important;
  border-top: 1px solid var(--c1);
  background: #fff;
}
.closing-grid{ margin: 0 !important; }
.closing-image{
  position: relative;
  min-height: 560px;
  height: 100%;
  overflow: hidden;
}
.closing-image::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1564081727837-1ab9d67c41f9.webp");
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}
.closing-content{
  padding: 3.5rem;
  padding-left: 4.75rem;
}

/* Footer */
.footer.is-luxe-footer{ background: var(--c9); color: rgba(255,255,255,.88); }
.footer.is-luxe-footer a{ color: rgba(255,255,255,.92); text-decoration: underline; }
.footer-hr{ background: rgba(255,255,255,.18); height:1px; border:0; }

.footer .button.is-accent.is-outlined{
  border-color: rgba(255,255,255,.86) !important;
  color: rgba(255,255,255,.95) !important;
  background: transparent !important;
  text-decoration: none !important;
}
.footer .button.is-accent.is-outlined:hover{
  background: rgba(255,255,255,.10) !important;
}

/* ===== Apple-like reveal animations (site-wide) ===== */
.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 900ms cubic-bezier(.2,.8,.2,1),
    transform 900ms cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}
.reveal.is-revealed{
  opacity: 1;
  transform: translateY(0);
}
.reveal[data-delay]{ transition-delay: var(--delay, 0ms); }

@media (prefers-reduced-motion: reduce){
  .reveal, .reveal.is-revealed{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================================================
   Multi-Family Offices page additions (keeps new images)
   ========================================================= */

/* MFO hero image override (same gradient, new photo) */
.hero.is-luxe.hero--mfo::before{
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1480350376518-4575ee35bf49.webp");
}
/* Soft band section used in MFO reporting */
.section--soft-band{
  background: var(--c0);
  border-top: 1px solid var(--c1);
  border-bottom: 1px solid var(--c1);
}

/* Eyebrow color on dark bands */
.section-eyebrow.on-dark{ color: rgba(255,255,255,.78); }

/* Image panels with luxe gradient overlay */
.image-panel{
  position: relative;
  overflow: hidden;
  min-height: 440px;
  border: 1px solid var(--c1);
  background: #fff;
}
.image-panel::before{
  content:"";
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}
.image-panel.is-luxe::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(40,46,64,.86) 0%, rgba(40,46,64,.55) 40%, rgba(40,46,64,.18) 100%);
  pointer-events:none;
}

/* MFO images (panels #2, #3, #4) */
.img-accounts::before{
  background-image: url("/static/img/hero/photo-1430417934865-589b63ad5c00.webp");
}
.img-reporting::before{
  background-image: url("/static/img/hero/photo-1520699894975-334692f3a636.webp");
}
.img-portal::before{
  background-image: url("/static/img/hero/photo-1556922340-19e175199d3d.webp");
}

/* Feature boxes used on MFO page */
.feature-box{
  border: 1px solid var(--c1);
  background:#fff;
}
.feature-title{ color: var(--ink); font-weight: 800; }
.tiny{ font-size: .9rem; color: var(--c7); }

/* Dark band section used on MFO page */
.band{
  background: var(--c9);
  color: #fff;
}
.band .title, .band .subtitle{ color:#fff; }
.band .subtitle{ opacity:.9; }
.band-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: none !important;
  color:#fff;
}
.band-card .tiny{ color: rgba(255,255,255,.80); }


/* =========================================================
   Institutions page additions (minimal)
   ========================================================= */

.hero.is-luxe.hero--inst::before{
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1520699894975-334692f3a636.webp");
}

/* One supporting image panel */
.img-inst-hero::before{
  background-image: url("/static/img/hero/photo-1556922340-19e175199d3d.webp");
}

/* =========================================================
   Single Family Offices page additions
   ========================================================= */

/* Hero image override (luxe gradient + new photo) */
.hero.is-luxe.hero--sfo::before{
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1529678407585-55ac0053aa47.webp");
}

/* Supporting panels */
.img-sfo-overview::before{
  background-image: url("/static/img/hero/photo-1546623260-d9f5243d82d0.webp");
}
.img-sfo-reporting::before{
  background-image: url("/static/img/hero/photo-1698007877694-4b8520c94e93.webp");
}
.img-sfo-security::before{
  background-image: url("/static/img/hero/photo-1562065540-efa93744ed71.webp");
}

/* Lightweight metric cards (Masttro-style, Mosaiq minimal) */
.metric-box{
  border: 1px solid var(--c1);
  background: #fff;
  padding: 1.25rem;
}
.metric-number{
  font-family: var(--headline);
  font-weight: 600;
  letter-spacing: var(--tracking-tight);
  margin-bottom: .35rem;
  font-size: 1.25rem;
  color: var(--ink);
}
.metric-label{
  font-size: .92rem;
  color: var(--c7);
}


/* =========================================================
   Who we serve – instant hover (snappy) + no arrows
   ========================================================= */

/* Remove any arrow elements or old styles */
.serve-arrow{ display:none !important; }
.serve-link::before,
.serve-link::after{ content: none !important; }

/* Make the card feel immediate */
.serve-link{
  text-decoration: none !important;
  cursor: pointer;

  /* key: remove slow easings */
  transition: none !important;

  /* Make it feel clickable even without animation */
  -webkit-tap-highlight-color: transparent;
}

/* Instant hover state (no animated interpolation) */
.serve-link:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.34);
  box-shadow: 0 10px 22px rgba(0,0,0,.20);
}

/* Optional: instant text change */
.serve-link:hover .is-muted{
  color: rgba(255,255,255,.92) !important;
}

/* Instant focus state */
.serve-link:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 2px rgba(255,255,255,.22),
    0 10px 22px rgba(0,0,0,.20);
}


/* =========================================================
   Solutions mega menu – refined & compact (Mosaiq style)
   ========================================================= */

/* Remove Bulma caret */
.solutions-mega .navbar-link::after{
  display: none !important;
}

.solutions-mega__dropdown{
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Smaller panel */
.solutions-mega__panel{
  width: 760px;
  background: #ffffff;
  border: 1px solid var(--c1);
  box-shadow: 0 14px 36px rgba(16,24,40,.10);
  padding: 1.6rem 1.75rem;
  border-radius: var(--radius);
}

/* Card link */
.solutions-mega__item{
  display: block;
  text-decoration: none !important;
  padding: .85rem .9rem;
  border-radius: var(--radius);
  border: 1px solid transparent;

  /* Snappy */
  transition: background-color 60ms linear,
              border-color 60ms linear;
}

/* Title: MUCH smaller, same typography as site */
.solutions-mega__title{
  font-family: var(--headline);
  font-weight: 500;
  letter-spacing: var(--tracking-tight);
  font-size: 1.15rem;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: .25rem;
}

/* Description: subtle, quiet */
.solutions-mega__desc{
  color: #4a4a4a;
  font-size: .9rem;
  line-height: 1.45;
  max-width: 32ch;
  font-weight: 300;
}

/* Hover: barely there, instant */
.solutions-mega__item:hover{
  background: var(--c0);
  border-color: var(--c1);
}

/* Align dropdown under logo / nav start */
.solutions-mega .navbar-dropdown{
  left: 0;
}

/* Mobile */
@media (max-width: 1023px){
  .solutions-mega__panel{
    width: calc(100vw - 2rem);
    padding: 1.25rem;
  }
}



/* =========================================================
   Login page (matches Mosaiq landing)
   ========================================================= */

.login-hero{
  position: relative;
  overflow: hidden;
  background: #fff;
}

/* same luxe gradient language as landing */
.login-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1469474968028-56623f02e42e.webp");
  background-size: cover;
  background-position: center;
  pointer-events: none;
}

.login-card{
  position: relative;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--c1);
  border-radius: var(--radius);
  padding: 2.25rem;
  box-shadow: 0 18px 50px rgba(16,24,40,.10);
  overflow: hidden;
}

.login-noise{
  position:absolute;
  inset:0;
  background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQI12NgYGAAAAAEAAEHBZ1MAAAAAElFTkSuQmCC');
  opacity: .08;
  mix-blend-mode: overlay;
  pointer-events:none;
}

.login-logo{
  height: 56px;
  width: auto;
  display: inline-block;
  border-radius: 999px;
}

.login-title{
  font-family: var(--headline);
  letter-spacing: var(--tracking-tight);
  color: var(--ink);
}

.login-input{
  border-radius: var(--radius) !important;
  border: 1px solid var(--c1);
  box-shadow: none !important;
  height: 2.75rem;
  font-family: var(--body);
}

.login-input:focus{
  border-color: var(--c3);
  box-shadow: 0 0 0 2px rgba(40,46,64,.08) !important;
}

.login-button{
  height: 2.75rem;
  border-radius: var(--radius) !important;
  font-weight: 800;
}

@media (max-width: 768px){
  .login-card{ padding: 1.75rem; }
}


/* Login notifications + link (shared look) */
.login-note{
  border: 1px solid var(--c1);
  color: var(--ink);
  border-radius: var(--radius);
  padding: .9rem 1rem;
  box-shadow: none;
}

.login-link{
  color: var(--c9);
  text-decoration: underline;
  font-weight: 600;
}
.login-link:hover{
  color: var(--ink);
}



/* =========================
   Fix: Language dropdown background
   ========================= */

/* If you have any global navbar-dropdown styling, override it for Language */
.navbar .lang-menu .navbar-dropdown{
  background: #fff !important;
  border: 1px solid var(--c1) !important;
  box-shadow: 0 14px 36px rgba(16,24,40,.10) !important;
  padding: .35rem 0 !important;
  min-width: 180px;
}

/* Ensure language items are readable */
.navbar .lang-menu .navbar-dropdown .navbar-item{
  color: var(--ink) !important;
  background: transparent !important;
  font-weight: 600;
  font-size: .95rem;
}

/* Hover feels snappy + matches site */
.navbar .lang-menu .navbar-dropdown .navbar-item:hover{
  background: var(--c0) !important;
  color: var(--c9) !important;
}

/* Optional: consistent radius with your design */
.navbar .lang-menu .navbar-dropdown{
  border-radius: var(--radius) !important;
}


/* ===== Burger: 3 lines + clean X on active ===== */
.navbar-burger.is-forced-dark{
  width: 3.25rem;
  height: 3.25rem;
  position: relative;
  background-color: #ffffff00;
}

.navbar-burger.is-forced-dark span{
  position: absolute;
  left: 50%;
  width: 18px;
  height: 2px;
  background-color: #0b1220;
  border-radius: 1px;
  opacity: 1;
  transform: translateX(-50%);
  transition: transform 160ms ease, opacity 160ms ease, top 160ms ease;
}

/* 3-line positions */
.navbar-burger.is-forced-dark span:nth-child(1){ top: calc(50% - 6px); }
.navbar-burger.is-forced-dark span:nth-child(2){ top: 50%; }
.navbar-burger.is-forced-dark span:nth-child(3){ top: calc(50% + 6px); }

/* Override Bulma's default active transforms */
.navbar-burger.is-forced-dark.is-active span:nth-child(1){
  top: 50%;
  transform: translateX(-50%) rotate(45deg);
}
.navbar-burger.is-forced-dark.is-active span:nth-child(2){
  opacity: 0;
}
.navbar-burger.is-forced-dark.is-active span:nth-child(3){
  top: 50%;
  transform: translateX(-50%) rotate(-45deg);
}


/* ===== Ensure BOTH strokes of the X render (override Bulma) ===== */
.navbar .navbar-burger.is-forced-dark.is-active span{
  opacity: 1 !important;
}

/* Top stroke */
.navbar .navbar-burger.is-forced-dark.is-active span:nth-child(1){
  top: 50% !important;
  transform: translateX(-50%) rotate(45deg) !important;
}

/* Hide middle stroke */
.navbar .navbar-burger.is-forced-dark.is-active span:nth-child(2){
  opacity: 0 !important;
}

/* Bottom stroke */
.navbar .navbar-burger.is-forced-dark.is-active span:nth-child(3){
  top: 50% !important;
  transform: translateX(-50%) rotate(-45deg) !important;
}

/* Mobile navbar background */
@media screen and (max-width: 1023px) {
  .navbar-menu.is-active {
    background-color: var(--bg, #ffffff);
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
  }
}

@media screen and (max-width: 1023px) {
  .navbar-item.has-dropdown.is-hoverable .navbar-dropdown {
    display: none;
  }

  .navbar-item.has-dropdown.is-active .navbar-dropdown {
    display: block;
  }
}


/* =========================
   Connect with us
   ========================= */
.connect-wrap{ background:#fff; }

.connect-card{
  border: 1px solid var(--c1);
  background: #fff;
  padding: 1.25rem;
}

.connect-label{
  font-family: var(--body);
  font-weight: 700;
  color: var(--ink);
  font-size: .9rem;
}

.connect-input,
.connect-textarea,
.connect-select{
  border: 1px solid var(--c1) !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ink);
}

.connect-input::placeholder,
.connect-textarea::placeholder{
  color: var(--c7);
  opacity: 1;
}

.connect-select select:invalid,
.connect-select select option[disabled]{
  color: var(--c7);
}

.connect-textarea{ resize: vertical; }

.connect-checkbox{
  font-size: .92rem;
  color: var(--ink);
}

.connect-submit{
  letter-spacing: .2px;
}

.connect-note{
  border: 1px solid var(--c1);
  background: var(--c0);
  color: var(--ink);
}

.connect-wrap .section-title{
  color: var(--ink);
  font-weight: 600;
}

.connect-side-title{
  font-family: var(--headline);
  letter-spacing: var(--tracking-tight);
  color: var(--ink);
  font-weight: 600;
}

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

.connect-list li{
  display: flex;
  gap: .6rem;
  align-items: flex-start;
  padding: .45rem 0;
}

.connect-bullet{
  width: 8px;
  height: 8px;
  margin-top: .55rem;
  background: var(--c9);
  border-radius: var(--radius);
  flex: 0 0 auto;
}

.connect-link{
  color: var(--c9);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.connect-hr{
  border: 0;
  height: 1px;
  background: var(--c1);
  margin: 1.25rem 0;
}

/* Mobile layout: keep it calm */
@media (max-width: 768px){
  .connect-card{ padding: 1rem; }
}

/* =========================================================
   Connections pages (custodian feeds, data rooms, WLLT)
   ========================================================= */

/* Hero image overrides (luxe gradient + photo, one per page) */
.hero.is-luxe.hero--conn-feeds::before{
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1556922340-19e175199d3d.webp");
}
.hero.is-luxe.hero--conn-rooms::before{
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1430417934865-589b63ad5c00.webp");
}
.hero.is-luxe.hero--conn-wllt::before{
  background-image:
    linear-gradient(90deg, rgba(40,46,64,.90) 0%, rgba(40,46,64,.64) 45%, rgba(40,46,64,.34) 100%),
    url("/static/img/hero/photo-1562065540-efa93744ed71.webp");
}

/* Logo band: continuous right-to-left marquee, soft fade at both edges */
.logo-marquee-band{
  background: #fff;
  border-top: 1px solid var(--c1);
  border-bottom: 1px solid var(--c1);
  padding: 3rem 0 3.25rem;
}
.logo-marquee{
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 14%, #000 86%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 14%, #000 86%, transparent);
}
.logo-marquee__track{
  display: flex;
  width: max-content;
  animation: logo-marquee-scroll 48s linear infinite;
}
/* Two identical groups; shifting the track by -50% loops seamlessly */
.logo-marquee__group{
  display: flex;
  align-items: center;
  gap: 4.5rem;
  padding-right: 4.5rem;
}
.logo-marquee img{
  height: 34px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .58;
  mix-blend-mode: multiply;
}
@keyframes logo-marquee-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .logo-marquee__track{ animation: none; }
}
@media (max-width: 768px){
  .logo-marquee__group{ gap: 2.5rem; padding-right: 2.5rem; }
  .logo-marquee img{ height: 26px; max-width: 110px; }
}

/* Numbered process steps */
.process-step{
  border: 1px solid var(--c1);
  background: #fff;
  padding: 1.6rem 1.5rem;
  height: 100%;
}
.process-step__num{
  font-family: var(--headline);
  font-weight: 400;
  font-size: 2rem;
  line-height: 1;
  color: var(--c3);
}
.process-step .feature-title{ margin-top: .9rem; }

/* Convergence diagram (data rooms page): sources flowing into Mosaiq */
.conn-flow-band{
  background: #fff;
  border-top: 1px solid var(--c1);
  border-bottom: 1px solid var(--c1);
  padding: 3rem 0 2.5rem;
}
.conn-flow{
  display: block;
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
}
.conn-flow__line{ stroke: var(--c2); stroke-width: 1; fill: none; }
.conn-flow__node{ fill: var(--c4); }
.conn-flow__hub{ fill: #fff; stroke: var(--c2); stroke-width: 1; }
.conn-flow__label{ fill: var(--c7); font-family: var(--body); font-size: 15px; }
.conn-flow__brand{
  fill: var(--ink);
  font-family: var(--headline);
  font-weight: 400;
  font-size: 15px;
  letter-spacing: -.02em;
}
.conn-flow__dot{ fill: var(--c8); }
@media (prefers-reduced-motion: reduce){
  .conn-flow__dot{ display: none; }
}
@media (max-width: 768px){
  .conn-flow__label{ font-size: 22px; }
  .conn-flow__brand{ font-size: 20px; }
}

/* Air between titles and subtitles (Bulma pulls them together with a negative margin) */
.title:not(.is-spaced) + .subtitle{ margin-top: .75rem; }


/* =========================================================
   Navbar over the hero: transparent until the hero scrolls past, then solid
   ========================================================= */
.site-header .logo--light{ display: none; }
.navbar-item.is-brand .logo{
  width: 150px;
  height: 1.75rem;
  object-fit: contain;
  object-position: left center;
}

body.has-overlay-header .site-header{
  position: sticky;
  top: 0;
  height: 0;
  z-index: 40;
}
body.has-overlay-header .navbar{
  transition: background-color 200ms ease, border-color 200ms ease;
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar{
  background: transparent;
  border-bottom-color: rgba(255,255,255,.16);
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-start > .navbar-item,
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-start > .navbar-item > .navbar-link,
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-end > .navbar-item > .navbar-link{
  color: #fff !important;
  background: transparent !important;
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-start > .navbar-item:hover,
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-start > .navbar-item:hover > .navbar-link,
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-end > .navbar-item:hover > .navbar-link{
  color: rgba(255,255,255,.72) !important;
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-end .button.is-accent{
  background: transparent;
  border-color: rgba(255,255,255,.7);
  color: #fff;
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-end .button.is-accent:hover{
  background: #fff;
  border-color: #fff;
  color: var(--c9);
  filter: none;
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .navbar-burger.is-forced-dark span{
  background-color: #fff;
}
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .logo--dark{ display: none; }
body.has-overlay-header .site-header:not(.is-scrolled):not(.is-open):not(.has-open-menu) .logo--light{ display: block; }

@media screen and (max-width: 1023px){
  body.has-overlay-header .navbar-menu.is-active{
    max-height: calc(100vh - 3.25rem);
    overflow-y: auto;
  }
}

/* Landing hero: fills the viewport below the announcement bar, content anchored low */
.hero.is-luxe.hero--full{
  min-height: calc(100vh - var(--topbar-h, 43px));
  min-height: calc(100svh - var(--topbar-h, 43px));
}
.hero.is-luxe.hero--full .hero-body{
  display: flex;
  align-items: flex-end;
  padding-top: 10rem;
  padding-bottom: 10.5rem;
}
.hero.is-luxe.hero--full .hero-body > .container{ width: 100%; }

/* Sections focused after an in-page scroll: no focus ring */
main section[tabindex="-1"]:focus{ outline: none; }

/* =========================================================
   Mega menus: full-width panel under the navbar, titled
   ========================================================= */
.solutions-mega__heading{
  font-family: var(--headline);
  font-weight: 400;
  letter-spacing: var(--tracking-tight);
  font-size: 1.5rem;
  line-height: 1.15;
  color: var(--ink);
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--c1);
}

@media screen and (min-width: 1024px){
  .site-header .navbar > .container{ position: static; }
  .navbar-item.solutions-mega{ position: static; }

  .solutions-mega__dropdown{
    position: absolute;
    left: 0; right: 0; top: 100%;
    width: 100%;
    display: block !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity 160ms ease, transform 160ms ease, visibility 0s linear 160ms;
  }
  .solutions-mega:hover > .solutions-mega__dropdown,
  .solutions-mega:focus-within > .solutions-mega__dropdown{
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    transition-delay: 0s;
  }

  .solutions-mega__panel{
    width: auto;
    border: 0;
    border-bottom: 1px solid var(--c1);
    border-radius: 0;
    box-shadow: 0 28px 40px -28px rgba(16,24,40,.22);
    padding: 2.25rem 0 2.75rem;
  }
  .solutions-mega__item{ margin: 0 -.9rem; }

  .solutions-mega > .navbar-link{ position: relative; }
  .solutions-mega:hover > .navbar-link,
  .solutions-mega:focus-within > .navbar-link{ background: transparent !important; }
  .solutions-mega > .navbar-link::before{
    content: "";
    position: absolute;
    left: .75rem; right: .75rem; bottom: .85rem;
    height: 1px;
    background: currentColor;
    opacity: 0;
    transition: opacity 120ms ease;
  }
  .solutions-mega:hover > .navbar-link::before,
  .solutions-mega:focus-within > .navbar-link::before{ opacity: 1; }

  .site-header.has-open-menu .navbar{ border-bottom-color: transparent; }
}

/* =========================================================
   Who we serve: white panel over a photograph
   ========================================================= */
.who-wrap{
  position: relative;
  background-image:
    linear-gradient(rgba(40,46,64,.22), rgba(40,46,64,.22)),
    url("/static/img/hero/photo-1444065707204-12decac917e8.webp");
  background-size: cover;
  background-position: center 60%;
}
.who-panel{
  max-width: 920px;
  background: #fff;
  border: 1px solid var(--c1);
  border-radius: var(--radius);
  padding: 2.5rem 2.5rem 1.25rem;
  box-shadow: 0 24px 48px rgba(16,24,40,.18);
}
.who-panel .subtitle{ margin-bottom: 1.5rem; }
.who-list{ border-top: 1px solid var(--c1); }
.who-item{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--c1);
  color: var(--ink);
  text-decoration: none !important;
}
.who-item:last-child{ border-bottom: 0; }
.who-item__title{
  font-family: var(--headline);
  font-weight: 500;
  letter-spacing: var(--tracking-tight);
  font-size: 1.15rem;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: .2rem;
  transition: color 80ms linear;
}
.who-item__desc{
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.45;
  font-weight: 300;
  max-width: 42ch;
}
.who-item__more{
  flex: 0 0 auto;
  font-size: .85rem;
  font-weight: 600;
  color: var(--c8);
  white-space: nowrap;
  transition: color 80ms linear;
}
.who-item:hover .who-item__title,
.who-item:hover .who-item__more{ color: var(--c9); }

@media (max-width: 768px){
  .who-panel{ padding: 1.75rem 1.5rem .75rem; }
  .who-item{ flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* =========================================================
   Security card: controls panel with a verification loop
   ========================================================= */
.sec-panel{
  --sec-ok: #8fb5a8;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 6px;
  background: rgba(255,255,255,.04);
  padding: 1.1rem 1.4rem 1.2rem;
}
.sec-row{
  position: relative;
  display: grid;
  grid-template-columns: 18px minmax(0,1fr) 18px;
  align-items: center;
  column-gap: .9rem;
  padding: .95rem 0;
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.sec-row:last-child{ border-bottom: 0; }
.sec-row__node{
  position: relative;
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.4);
  transition: border-color .3s ease;
}
.sec-row__node::after{
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: var(--sec-ok);
  opacity: 0;
  transform: scale(0);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
}
.sec-row.is-checking .sec-row__node{ border-color: rgba(255,255,255,.75); }
.sec-row.is-verified .sec-row__node{ border-color: rgba(143,181,168,.8); }
.sec-row.is-verified .sec-row__node::after{ opacity: 1; transform: scale(1); }
.sec-row__title{ display: block; color: #fff; font-weight: 600; font-size: .95rem; line-height: 1.25; }
.sec-row__desc{ display: block; color: rgba(255,255,255,.70); font-size: .875rem; line-height: 1.4; margin-top: .15rem; }
.sec-row__check{
  width: 18px; height: 18px;
  color: var(--sec-ok);
  opacity: 0;
  transform: scale(.6);
  transition: opacity .3s ease, transform .35s cubic-bezier(.2,.8,.2,1);
}
.sec-row.is-verified .sec-row__check{ opacity: 1; transform: none; }
.sec-row__bar{ position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; overflow: hidden; }
.sec-row__bar > span{
  display: block;
  height: 100%;
  background: rgba(143,181,168,.75);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s ease, opacity .4s ease;
}
.sec-row.is-checking .sec-row__bar > span{ transform: scaleX(1); transition: transform 1.2s cubic-bezier(.4,0,.2,1); }
.sec-row.is-verified .sec-row__bar > span{ transform: scaleX(1); opacity: .35; }

@media (prefers-reduced-motion: reduce){
  .sec-panel, .sec-panel *, .sec-panel *::after{ transition: none !important; }
}

/* Hero scroll cue: three dots lighting up downward */
.hero-cue{
  position: absolute;
  left: 50%;
  bottom: 1.75rem;
  transform: translateX(-50%);
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  padding: .5rem;
  transition: opacity .3s ease;
}
.hero-cue span{
  width: 4px; height: 4px;
  border-radius: 50%;
  background: #fff;
  opacity: .3;
  animation: hero-cue 2.1s ease-in-out infinite;
  animation-delay: calc(var(--i) * 220ms);
}
@keyframes hero-cue{ 0%, 100%{ opacity: .3; } 35%{ opacity: 1; } }
.hero--full.is-scrolled .hero-cue{ opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce){
  .hero-cue span{ animation: none; opacity: .7; }
}
