.dgn-shell {
  position: sticky;
  top: 0;
  z-index: 80;
  border-bottom: 1px solid var(--line, #d9d2c0);
  background: rgba(241, 236, 226, .96);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.dgn-shell *,
.dgn-shell *::before,
.dgn-shell *::after { box-sizing: border-box; }

.dgn-wrap {
  width: min(calc(100% - 44px), 1180px);
  min-height: 66px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.dgn-logo {
  flex: none;
  color: var(--ink, #2b2b2b);
  font-family: var(--head, "Plus Jakarta Sans", sans-serif);
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.02em;
  text-decoration: none;
}

.dgn-logo i { color: var(--coral, #e07a5f); font-style: normal; }

.dgn-desktop { display: none; align-items: center; gap: 3px; }

.dgn-desktop > a,
.dgn-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  min-height: 42px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  color: var(--muted, #6c6a63);
  font-family: var(--body, "DM Sans", sans-serif);
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  vertical-align: middle;
  white-space: nowrap;
  cursor: pointer;
}

.dgn-desktop > a:hover,
.dgn-desktop > a[aria-current="page"],
.dgn-trigger:hover,
.dgn-trigger[aria-expanded="true"] {
  background: rgba(15, 61, 74, .07);
  color: var(--petrol, #0f3d4a);
}

.dgn-trigger::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin: 0 0 3px 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .18s ease;
}

.dgn-trigger[aria-expanded="true"]::after { transform: translateY(3px) rotate(225deg); }

.dgn-dropdown { position: relative; }

.dgn-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  display: none;
  min-width: 292px;
  padding: 8px;
  border: 1px solid var(--line, #d9d2c0);
  border-radius: 16px;
  background: var(--card, #faf7f0);
  box-shadow: 0 18px 46px rgba(43, 43, 43, .15);
}

.dgn-dropdown:last-of-type .dgn-panel { left: auto; right: 0; }
.dgn-dropdown.is-open .dgn-panel { display: grid; }

.dgn-panel a {
  padding: 10px 13px;
  border-radius: 10px;
  color: var(--ink, #2b2b2b);
  font-family: var(--body, "DM Sans", sans-serif);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.dgn-panel a:hover,
.dgn-panel a[aria-current="page"] {
  background: var(--sand, #e7e1d3);
  color: var(--petrol, #0f3d4a);
}

.dgn-panel span {
  display: block;
  margin-top: 3px;
  color: var(--muted, #6c6a63);
  font-size: 11.75px;
  font-weight: 400;
}

.dgn-cta {
  padding-inline: 17px !important;
  border-radius: 999px !important;
  background: var(--petrol, #0f3d4a) !important;
  color: #fbf9f2 !important;
  font-family: var(--head, "Plus Jakarta Sans", sans-serif) !important;
  font-weight: 700 !important;
}

.dgn-cta:hover { background: var(--petrol-soft, #16505f) !important; }

.dgn-secondary {
  padding-inline: 15px !important;
  border-color: rgba(15, 61, 74, .25) !important;
  color: var(--petrol, #0f3d4a) !important;
}

.dgn-secondary:hover,
.dgn-secondary[aria-current="page"] {
  border-color: rgba(15, 61, 74, .42) !important;
  background: rgba(15, 61, 74, .07) !important;
}

.dgn-menu-toggle {
  width: 44px;
  height: 44px;
  flex: none;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink, #2b2b2b);
  cursor: pointer;
}

.dgn-menu-toggle:hover { background: rgba(15, 61, 74, .07); }

.dgn-menu-toggle span,
.dgn-menu-toggle span::before,
.dgn-menu-toggle span::after {
  display: block;
  width: 24px;
  height: 2px;
  border-radius: 3px;
  background: currentColor;
  transition: transform .2s ease, opacity .2s ease;
}

.dgn-menu-toggle span { position: relative; }
.dgn-menu-toggle span::before,
.dgn-menu-toggle span::after { content: ""; position: absolute; left: 0; }
.dgn-menu-toggle span::before { top: -7px; }
.dgn-menu-toggle span::after { top: 7px; }
.dgn-menu-toggle[aria-expanded="true"] span { background: transparent; }
.dgn-menu-toggle[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
.dgn-menu-toggle[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg); }

.dgn-mobile {
  display: none;
  max-height: calc(100vh - 66px);
  overflow-y: auto;
  padding: 10px max(22px, calc((100% - 1136px) / 2)) 24px;
  border-top: 1px solid var(--line, #d9d2c0);
  background: var(--bg, #f1ece2);
}

.dgn-mobile.is-open { display: grid; }
.dgn-mobile-group { margin: 15px 0 4px; color: var(--coral-deep, #b0512f); font-family: var(--head, "Plus Jakarta Sans", sans-serif); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.dgn-mobile-group:first-child { margin-top: 4px; }

.dgn-mobile a {
  padding: 10px 2px;
  border-radius: 8px;
  color: var(--ink, #2b2b2b);
  font-family: var(--body, "DM Sans", sans-serif);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.dgn-mobile a:hover,
.dgn-mobile a[aria-current="page"] { color: var(--petrol, #0f3d4a); background: rgba(15, 61, 74, .06); }
.dgn-mobile .dgn-mobile-secondary { margin-top: 10px; border: 1px solid rgba(15, 61, 74, .25); text-align: center; color: var(--petrol, #0f3d4a); }
.dgn-mobile .dgn-mobile-cta { margin-top: 14px; text-align: center; background: var(--petrol, #0f3d4a); color: #fbf9f2; }

#kanaele { scroll-margin-top: 82px; }

.dgn-shell :focus-visible { outline: 3px solid var(--coral-bright, #ff8370); outline-offset: 2px; }

@media (min-width: 1100px) {
  .dgn-desktop { display: flex; }
  .dgn-menu-toggle { display: none; }
  .dgn-mobile { display: none !important; }
}

@media (max-width: 420px) {
  .dgn-wrap { width: min(calc(100% - 32px), 1180px); }
  .dgn-mobile { padding-inline: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .dgn-trigger::after,
  .dgn-menu-toggle span,
  .dgn-menu-toggle span::before,
  .dgn-menu-toggle span::after { transition: none; }
}
