@font-face {
  font-family: "CDX Bricolage";
  src: url("../fonts/BricolageGrotesque-VariableFont_opsz.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "CDX Albert";
  src: url("../fonts/AlbertSans-VariableFont_wght.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --cdx2-ink: #1a0836;
  --cdx2-paper: #f6f1fc;
  --cdx2-paper-2: #ebe3f5;
  --cdx2-white: #fff;
  --cdx2-orange: #7d2cff;
  --cdx2-muted: #7b6a98;
  --cdx2-ease: cubic-bezier(.32, .72, 0, 1);
}

.cdx2-header,
.cdx2-header *,
.cdx2-menu,
.cdx2-menu * { box-sizing: border-box; }

.cdx2-header a,
.cdx2-menu a { color: inherit; text-decoration: none; }

.cdx2-header {
  position: fixed;
  z-index: 10020;
  top: clamp(.75rem, 2vw, 1.5rem);
  left: 50%;
  width: min(calc(100% - clamp(1rem, 3vw, 3rem)), 1480px);
  min-height: 68px;
  padding: .55rem .55rem .55rem clamp(1rem, 2.4vw, 2rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-radius: 999px;
  color: var(--cdx2-white);
  transform: translateX(-50%);
  transition: color .3s var(--cdx2-ease), background-color .3s var(--cdx2-ease), box-shadow .3s var(--cdx2-ease);
  pointer-events: auto !important;
}

html body.cdx2-body .cdx2-header,
body .cdx2-header { z-index: 10020 !important; }
body .cdx2-header-actions,
body .cdx2-contact-link,
body .cdx2-menu-button { pointer-events: auto !important; }

.cdx2-header.is-scrolled,
.cdx2-header.menu-is-open {
  color: var(--cdx2-ink);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 18px 60px rgba(26, 8, 54, .12), inset 0 0 0 1px rgba(26, 8, 54, .06);
  backdrop-filter: blur(16px);
}

.cdx2-logo {
  font-family: "CDX Bricolage", sans-serif;
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  font-weight: 650;
  line-height: 1;
  letter-spacing: -.055em;
}

.cdx2-header-actions { display: flex; align-items: center; gap: .65rem; }

.cdx2-contact-link,
.cdx2-menu-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  border: 0;
  border-radius: 999px;
  padding: .35rem .38rem .35rem 1.3rem;
  cursor: pointer;
  touch-action: manipulation;
  font-family: "CDX Albert", sans-serif;
  font-size: .83rem;
  font-weight: 680;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: transform .3s var(--cdx2-ease), background-color .3s var(--cdx2-ease), color .3s var(--cdx2-ease);
}

.cdx2-contact-link { color: var(--cdx2-ink); background: #e2d2ff; }

.cdx2-menu-button {
  min-width: 126px;
  padding-right: .5rem;
  color: var(--cdx2-white);
  background: var(--cdx2-ink);
}

.cdx2-icon-circle,
.cdx2-menu-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 50%;
}

.cdx2-icon-circle { display: grid; place-items: center; background: rgba(255,255,255,.55); }
.cdx2-icon-circle svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cdx2-menu-mark { position: relative; display: block; background: rgba(125, 44, 255, .24); }
.cdx2-menu-mark i { position: absolute; left: 12px; width: 18px; height: 1.5px; background: currentColor; transition: transform .3s var(--cdx2-ease), top .3s var(--cdx2-ease); }
.cdx2-menu-mark i:first-child { top: 17px; }
.cdx2-menu-mark i:last-child { top: 24px; }
.cdx2-menu-button[aria-expanded="true"] .cdx2-menu-mark i:first-child { top: 21px; transform: rotate(45deg); }
.cdx2-menu-button[aria-expanded="true"] .cdx2-menu-mark i:last-child { top: 21px; transform: rotate(-45deg); }

.cdx2-menu {
  position: fixed;
  z-index: 10010;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 7rem 1rem 1rem;
  color: var(--cdx2-ink);
  background: rgba(242, 237, 249, .98);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s var(--cdx2-ease), visibility 0s linear .3s;
}

body .cdx2-menu { z-index: 10010 !important; }

.cdx2-menu.is-open { visibility: visible; opacity: 1; pointer-events: auto; transition-delay: 0s; }
.cdx2-menu-inner { width: min(100%, 1040px); max-height: calc(100dvh - 8rem); display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; overflow-y: auto; }
.cdx2-menu-label { margin: 0 0 1.3rem; font: 720 .74rem/1.2 "CDX Albert", sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.cdx2-menu-label::before { content: ""; display: inline-block; width: 2rem; height: 1px; margin-right: .8rem; vertical-align: middle; background: #7d2cff; }
.cdx2-menu-nav { grid-row: 2; display: flex; flex-direction: column; }
.cdx2-menu-nav a { display: flex; align-items: center; gap: 1.3rem; min-height: 62px; padding: .25rem .2rem; border-bottom: 1px solid rgba(26,8,54,.12); font: 440 clamp(2.5rem, 6vw, 5rem)/.95 "CDX Bricolage", sans-serif; letter-spacing: -.045em; transition: color .25s var(--cdx2-ease), transform .25s var(--cdx2-ease), background-color .25s var(--cdx2-ease); }
.cdx2-menu-nav a span { width: 1.7rem; flex: 0 0 1.7rem; font: 700 .67rem/1 "CDX Albert", sans-serif; letter-spacing: .08em; }
.cdx2-menu-nav .codara-arrow-icon { width: 22px; height: 22px; margin-left: auto; opacity: .55; }
.cdx2-menu-nav a[aria-current="page"] { color: #7d2cff; }
.cdx2-menu-meta { grid-column: 2; grid-row: 2; min-height: 310px; display: flex; align-items: flex-end; padding: 1.5rem; border-radius: 8px; color: #fff; background: #1a0836; }
.cdx2-menu-meta a { width: 100%; min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border-radius: 7px; color: var(--cdx2-ink); background: #b4efcf; font: 700 .92rem/1.2 "CDX Albert", sans-serif; }
.cdx2-menu-meta .codara-arrow-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; padding: 11px; color: #fff; background: #4b1687; }
html.cdx2-menu-open { overflow: hidden !important; }

body.cdx2-body .cdx2-menu-meta a {
  color: #190733;
  background: #e4d5ff;
  border: 1px solid rgba(131, 46, 255, .22);
  box-shadow: 0 12px 30px rgba(25, 7, 51, .18);
}

body.cdx2-body .cdx2-menu-meta .codara-arrow-icon {
  color: #fff;
  background: #5a1d9a;
}

@media (hover:hover) and (pointer:fine) {
  .cdx2-contact-link:hover, .cdx2-menu-button:hover { transform: translateY(-2px); }
  .cdx2-menu-nav a:hover { color: #7d2cff; transform: translateX(.35rem); background: rgba(255,255,255,.46); }
  body.cdx2-body .cdx2-menu-meta a:hover {
    color: #fff;
    background: #7d2cff;
    border-color: #7d2cff;
  }
}

.cdx2-contact-link:focus-visible,
.cdx2-menu-button:focus-visible,
.cdx2-menu a:focus-visible { outline: 3px solid #7d2cff; outline-offset: 4px; }

@media (max-width: 767px) {
  html body.cdx2-body .cdx2-header,
  .cdx2-header {
    top: .5rem;
    width: calc(100% - 1rem);
    min-height: 58px;
    padding: .35rem .35rem .35rem .9rem;
    transform: none !important;
  }
  .cdx2-logo { font-size: 1.2rem; }
  .cdx2-contact-link { display: none; }
  .cdx2-menu-button { min-width: 108px; min-height: 48px; padding: .3rem .3rem .3rem .95rem; gap: .65rem; font-size: .72rem; }
  .cdx2-menu-mark { width: 38px; height: 38px; flex-basis: 38px; }
  .cdx2-menu-mark i { left: 11px; width: 16px; }
  .cdx2-menu { padding: 5.5rem .75rem .75rem; place-items: stretch; }
  .cdx2-menu-inner { width: 100%; max-height: calc(100dvh - 6.25rem); grid-template-columns: 1fr; gap: 1.25rem; align-content: start; padding: 1.25rem; border-radius: 8px; background: rgba(255,255,255,.78); }
  .cdx2-menu-label { margin-bottom: .5rem; }
  .cdx2-menu-nav { grid-row: auto; }
  .cdx2-menu-nav a { min-height: 54px; font-size: clamp(2.2rem, 12vw, 3.35rem); }
  .cdx2-menu-meta { grid-column: 1; grid-row: auto; min-height: auto; padding: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cdx2-header, .cdx2-header *, .cdx2-menu, .cdx2-menu * { transition-duration: .01ms !important; }
}
