/* Custom header navigation — Elise Rahbek
   Colors/fonts pull from Elementor's own global CSS variables so the menu
   stays in sync automatically if the Kit's brand colors are ever changed. */

.crm-nav {
  --crm-ink: var(--e-global-color-text, #26261F);
  --crm-olive: var(--e-global-color-primary, #3D4A2E);
  --crm-terracotta: var(--e-global-color-secondary, #B4623F);
  --crm-cream: var(--e-global-color-bg_cream, #FBF8F3);
  --crm-sand: var(--e-global-color-surface_sand, #EFEAE0);
  --crm-on-dark: var(--e-global-color-on_dark_text, #F7F3EC);
  font-family: 'Public Sans', sans-serif;
  position: relative;
}

.crm-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.crm-item {
  position: relative;
}

.crm-item > a {
  display: block;
  padding: 10px 14px;
  color: var(--crm-ink);
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
  position: relative;
  transition: color 0.2s ease;
}

/* Animated underline that grows from the center on hover/focus */
.crm-item > a::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 4px;
  height: 2px;
  background: var(--crm-terracotta);
  transition: left 0.25s ease, right 0.25s ease;
}

.crm-item > a:hover,
.crm-item > a:focus-visible {
  color: var(--crm-terracotta);
}

.crm-item > a:hover::after,
.crm-item > a:focus-visible::after {
  left: 10px;
  right: 10px;
}

/* Current page: persistent underline + terracotta */
.crm-item.crm-current > a {
  color: var(--crm-terracotta);
  font-weight: 600;
}

.crm-item.crm-current > a::after {
  left: 10px;
  right: 10px;
}

/* Dropdown caret for items with children */
.crm-caret {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-left: 5px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.2s ease;
  vertical-align: middle;
  opacity: 0.7;
}

.crm-item.crm-open > a .crm-caret,
.crm-item:hover > a .crm-caret {
  transform: rotate(225deg) translateY(1px);
}

/* Desktop dropdown panel */
.crm-submenu {
  list-style: none;
  margin: 0;
  padding: 22px 24px;
  position: absolute;
  top: 100%;
  left: 0;
  transform: translateY(8px);
  min-width: 620px;
  background: var(--crm-cream);
  border-radius: 14px;
  box-shadow: 0 18px 40px -12px rgba(38, 38, 31, 0.22), 0 2px 8px rgba(38, 38, 31, 0.06);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 32px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 200;
}

.crm-item:hover > .crm-submenu,
.crm-item:focus-within > .crm-submenu,
.crm-item.crm-open > .crm-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.crm-submenu li a {
  display: block;
  padding: 13px 20px;
  border-radius: 8px;
  color: var(--crm-ink);
  font-size: 15px;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

.crm-submenu li a:hover,
.crm-submenu li a:focus-visible {
  background: var(--crm-sand);
  color: var(--crm-terracotta);
}

.crm-submenu li a.crm-current {
  color: var(--crm-terracotta);
  font-weight: 600;
  background: var(--crm-sand);
}

/* Mobile toggle button (hidden on desktop).
   !important: theme reset.css sets [type="button"] to display:inline-block
   with the same specificity and loads after this stylesheet. */
.crm-toggle {
  display: none !important;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  margin-left: auto;
}

.crm-toggle-bar {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--crm-ink);
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease;
}

.crm-toggle[aria-expanded="true"] .crm-toggle-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.crm-toggle[aria-expanded="true"] .crm-toggle-bar:nth-child(2) {
  opacity: 0;
}
.crm-toggle[aria-expanded="true"] .crm-toggle-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.crm-submenu-toggle {
  /* !important: see .crm-toggle note above — same reset.css conflict. */
  display: none !important;
}

/* ---------- Mobile / tablet (below the site's 1340px menu breakpoint) ---------- */
@media (max-width: 1339px) {
  .crm-toggle {
    /* Theme reset.css targets [type="button"] with equal specificity and
       loads after this stylesheet, so it wins the cascade without !important. */
    display: flex !important;
  }

  .crm-menu {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(360px, 86vw);
    height: 100vh;
    background: var(--crm-cream);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 90px 8px 40px;
    box-shadow: -20px 0 50px rgba(38, 38, 31, 0.18);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
    z-index: 9999;
  }

  .crm-nav.crm-menu-open .crm-menu {
    transform: translateX(0);
  }

  .crm-nav.crm-menu-open::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(38, 38, 31, 0.35);
    z-index: 9998;
  }

  .crm-item > a {
    padding: 15px 14px;
    font-size: 17px;
    border-bottom: 1px solid var(--crm-sand);
  }

  .crm-item > a::after {
    display: none;
  }

  .crm-item.crm-current > a {
    background: var(--crm-sand);
  }

  .crm-item-behandlinger {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }

  .crm-item-behandlinger > a {
    flex: 1;
    border-bottom: none;
  }

  .crm-submenu-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: none;
    background: transparent;
    color: var(--crm-ink);
    cursor: pointer;
    border-bottom: 1px solid var(--crm-sand);
    flex-shrink: 0;
  }

  .crm-submenu-toggle .crm-caret {
    margin-left: 0;
  }

  .crm-item.crm-open .crm-submenu-toggle .crm-caret {
    transform: rotate(225deg) translateY(1px);
  }

  .crm-submenu {
    position: static;
    transform: none;
    min-width: 0;
    width: 100%;
    flex: 0 0 100%;
    order: 3;
    grid-template-columns: 1fr;
    box-shadow: none;
    border-radius: 0;
    background: var(--crm-sand);
    padding: 4px 0;
    max-height: 0;
    opacity: 1;
    visibility: visible;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }

  .crm-item.crm-open .crm-submenu {
    max-height: 900px;
  }

  .crm-submenu li a {
    padding: 12px 28px;
    border-radius: 0;
    font-size: 15.5px;
  }

  .crm-submenu li a.crm-current {
    background: transparent;
    border-left: 3px solid var(--crm-terracotta);
    padding-left: 25px;
  }

  body.crm-lock-scroll {
    overflow: hidden;
  }
}
