/* Shell page: Counterpart header wrapped around the dashboard iframe.
 * Behaviour and values mirror counterpart.vc's INNER pages (Portfolio, About, News):
 *   - at the top of the page: white bar, colour logo, dark links, blue underline on the
 *     current tab (their .nav-link.black state)
 *   - once scrolled: sticky, translucent dark-grey bar with a backdrop blur, white logo,
 *     white links (their scrolled state, see .logo.white)
 * Fonts load from the same Webflow CDN the main site uses; Arial is the fallback. */

@font-face {
  font-family: "Interdisplay";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/68f7fdfd5e6ecd125a30faf9/68f7fdfd5e6ecd125a30fb42_InterDisplay-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "Interdisplay";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/68f7fdfd5e6ecd125a30faf9/68f7fdfd5e6ecd125a30fb43_InterDisplay-Medium.ttf") format("truetype");
}

:root {
  /* top-of-page state */
  --cp-nav-bg: #ffffff;
  --cp-nav-text: #0b0b0b;            /* counterpart.vc  --text-color */
  --cp-nav-current: #303191;         /* counterpart.vc  --primary-blue (underline on the current tab) */
  /* scrolled state */
  --cp-nav-bg-scrolled: rgba(0, 0, 0, .5);   /* reads as mid-grey over light content, like their site */
  --cp-nav-text-scrolled: #ffffff;
  --cp-nav-current-scrolled: #ffffff;
  /* shared */
  --cp-nav-hover: #65bae9;           /* counterpart.vc  --secondary-blue */
  --cp-primary-blue: #303191;
  --cp-menu-bg: #ffffff;             /* mobile dropdown panel */
  --cp-menu-text: #333333;
  --cp-page-bg: #ffffff;
  --cp-frame-bg: #f4f6f8;            /* dashboard's --background, shown until the frame paints */
  --cp-font: "Interdisplay", Arial, Helvetica, sans-serif;
}

html, body {
  margin: 0;
  padding: 0;
  background: var(--cp-page-bg);
}
body {
  font-family: var(--cp-font);
  -webkit-font-smoothing: antialiased;
}

/* ---- header ---------------------------------------------------------- */
.cp-nav {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--cp-nav-bg);
  transition: background-color .25s ease, box-shadow .25s ease;
}
.cp-nav.is-scrolled {
  background: var(--cp-nav-bg-scrolled);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .12);
}
/* width matches counterpart.vc's .main-container (85rem, 1.5rem side padding) so the
   logo and menu land where they do on the main site */
.cp-nav__inner {
  box-sizing: border-box;   /* Webflow is border-box globally; keeps the 85rem total, padding included */
  max-width: 85rem;
  margin: 0 auto;
  padding: 15px 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* logo swap */
.cp-nav__brand { display: flex; align-items: center; }
.cp-nav__logo { height: 2.75rem; width: auto; display: block; }
.cp-nav__logo--white { display: none; }
.cp-nav.is-scrolled .cp-nav__logo--color { display: none; }
.cp-nav.is-scrolled .cp-nav__logo--white { display: block; }

/* links */
.cp-nav__menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 2rem;
}
.cp-nav__menu a {
  color: var(--cp-nav-text);
  font-family: var(--cp-font);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 150%;
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 3px solid transparent;
  transition: color .25s, border-color .25s;
}
.cp-nav__menu a:hover { color: var(--cp-nav-hover); }
.cp-nav__menu a[aria-current="page"] { border-bottom-color: var(--cp-nav-current); }
.cp-nav__menu a:focus-visible {
  outline: 2px solid var(--cp-nav-hover);
  outline-offset: 4px;
  border-radius: 2px;
}

/* menu button (mobile only, see media query) */
.cp-nav__toggle {
  display: none;
  align-items: center;
  gap: .5rem;
  background: none;
  border: 0;
  color: var(--cp-nav-text);
  font: inherit;
  font-size: 1rem;
  padding: .5rem;
  cursor: pointer;
  transition: color .25s;
}
.cp-nav.is-scrolled .cp-nav__toggle { color: var(--cp-nav-text-scrolled); }
.cp-nav__toggle svg { display: block; }
.cp-nav__toggle .cp-nav__toggle-close { display: none; }
.cp-nav[data-open="true"] .cp-nav__toggle-open { display: none; }
.cp-nav[data-open="true"] .cp-nav__toggle-close { display: block; }

/* scrolled link colours apply to the inline desktop menu only; the mobile dropdown
   below is a white panel and keeps its dark text in both states */
@media (min-width: 992px) {
  .cp-nav.is-scrolled .cp-nav__menu a { color: var(--cp-nav-text-scrolled); }
  .cp-nav.is-scrolled .cp-nav__menu a:hover { color: var(--cp-nav-hover); }
  .cp-nav.is-scrolled .cp-nav__menu a[aria-current="page"] { border-bottom-color: var(--cp-nav-current-scrolled); }
}

/* ---- dashboard frame ------------------------------------------------- */
main { margin: 0; }
#cvc-dashboard {
  display: block;
  width: 100%;
  border: 0;
  min-height: 600px;
  background: var(--cp-frame-bg);
}
.cp-fallback {
  max-width: 1030px;
  margin: 0 auto;
  padding: 2rem 20px;
  font-size: 1.125rem;
  line-height: 150%;
  color: #1b1f28;
}
.cp-fallback a { color: var(--cp-primary-blue); }

/* ---- collapse to a menu button below 992px, like counterpart.vc ------- */
@media (max-width: 991px) {
  .cp-nav__inner { padding: 15px 1rem; }
  .cp-nav__toggle { display: inline-flex; }
  .cp-nav__menu {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--cp-menu-bg);
    box-shadow: 0 8px 50px rgba(0, 0, 0, .08);
  }
  .cp-nav[data-open="true"] .cp-nav__menu { display: block; }
  .cp-nav__menu ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    padding: 2rem 2rem 3rem;
  }
  .cp-nav__menu a {
    color: var(--cp-menu-text);
    font-size: 1.5rem;
    line-height: 146%;
    padding: 10px 5px;
    display: inline-block;
  }
  .cp-nav__menu a[aria-current="page"] { border-bottom-color: var(--cp-primary-blue); }
}
@media (max-width: 767px) {
  .cp-nav__inner { padding: .75rem 1rem; }
}
@media (max-width: 479px) {
  .cp-nav__logo { height: 1.75rem; }
  .cp-nav__menu ul { padding-left: 1.25rem; padding-right: 1.25rem; }
}
