/* V30 stable master menu.
   Single source menu CSS. Do not add separate menu CSS files. */

.ml-menu-master-v28,
.ml-menu-master-v28 *{
  box-sizing:border-box !important;
  border-radius:0 !important;
}

.ml-menu-master-v28{
  position:sticky !important;
  top:0 !important;
  width:100% !important;
  height:72px !important;
  min-height:72px !important;
  max-height:72px !important;
  z-index:2147483000 !important;
  isolation:isolate !important;
  overflow:visible !important;
  margin:0 !important;
  padding:0 !important;
  background:#06142f !important;
  background-image:linear-gradient(135deg,#06142f 0%,#09265b 100%) !important;
  border-bottom:1px solid rgba(255,255,255,.16) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.30) !important;
}

.ml-menu-master-inner-v28{
  width:100% !important;
  max-width:1180px !important;
  height:72px !important;
  margin:0 auto !important;
  padding:0 24px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
}

.ml-menu-master-logo-v28{
  width:232px !important;
  min-width:232px !important;
  max-width:232px !important;
  height:44px !important;
  display:flex !important;
  align-items:center !important;
  flex:0 0 232px !important;
  line-height:0 !important;
  text-decoration:none !important;
}

.ml-menu-master-logo-v28 img{
  display:block !important;
  width:232px !important;
  height:34px !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:none !important;
}

.ml-menu-master-desktop-v28{
  height:44px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:6px !important;
  margin-left:auto !important;
  overflow:visible !important;
}

.ml-menu-master-desktop-v28 a,
.ml-menu-master-drop-v28 button{
  height:44px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 10px !important;
  color:#ffffff !important;
  background:transparent !important;
  border:1px solid transparent !important;
  text-decoration:none !important;
  font-family:inherit !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  opacity:.92 !important;
}

.ml-menu-master-desktop-v28 a:hover,
.ml-menu-master-drop-v28:hover button,
.ml-menu-master-drop-v28.is-open button{
  opacity:1 !important;
  color:#ffffff !important;
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(255,255,255,.18) !important;
}

.ml-menu-master-drop-v28{
  position:relative !important;
  height:44px !important;
  overflow:visible !important;
}

.ml-menu-master-drop-v28 button::after{
  content:"⌄" !important;
  margin-left:7px !important;
  color:#4ee3ff !important;
  font-weight:950 !important;
}

.ml-menu-master-panel-v28{
  position:absolute !important;
  top:calc(100% + 10px) !important;
  left:0 !important;
  min-width:300px !important;
  display:none !important;
  padding:10px !important;
  background:#06142f !important;
  background-image:
    radial-gradient(circle at 88% 0%, rgba(78,227,255,.16), transparent 34%),
    linear-gradient(135deg,#06142f 0%,#09265b 100%) !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:0 30px 90px rgba(0,0,0,.72) !important;
  z-index:2147483001 !important;
}

.ml-menu-master-drop-v28:hover .ml-menu-master-panel-v28,
.ml-menu-master-drop-v28:focus-within .ml-menu-master-panel-v28,
.ml-menu-master-drop-v28.is-open .ml-menu-master-panel-v28{
  display:block !important;
}

.ml-menu-master-panel-v28 a{
  width:100% !important;
  min-height:46px !important;
  height:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  padding:0 13px !important;
  color:#ffffff !important;
  background:transparent !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  text-decoration:none !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1.25 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.55) !important;
}

.ml-menu-master-panel-v28 a:hover{
  background:rgba(78,227,255,.13) !important;
  color:#ffffff !important;
}

.ml-menu-master-panel-v28 a:last-child{
  border-bottom:0 !important;
}

.ml-menu-master-cta-v28{
  height:44px !important;
  min-width:118px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 15px !important;
  color:#06142f !important;
  background:#ffffff !important;
  border:1px solid #ffffff !important;
  text-decoration:none !important;
  font-size:14px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}

.ml-menu-master-toggle-v28{
  display:none !important;
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.24) !important;
  cursor:pointer !important;
  align-items:center !important;
  justify-content:center !important;
}

.ml-menu-master-toggle-v28 span,
.ml-menu-master-toggle-v28 span::before,
.ml-menu-master-toggle-v28 span::after{
  width:20px !important;
  height:2px !important;
  background:#ffffff !important;
  display:block !important;
  position:relative !important;
  content:"" !important;
}

.ml-menu-master-toggle-v28 span::before{
  position:absolute !important;
  top:-7px !important;
  left:0 !important;
}

.ml-menu-master-toggle-v28 span::after{
  position:absolute !important;
  top:7px !important;
  left:0 !important;
}

.ml-menu-master-mobile-v28{
  display:none !important;
}

/* Dark shield under mobile menu, so white hero image never ruins contrast */
body.ml-menu-master-open{
  overflow:hidden !important;
}

body.ml-menu-master-open::before{
  content:"" !important;
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:68px !important;
  bottom:0 !important;
  background:rgba(3,10,24,.88) !important;
  z-index:2147482999 !important;
  pointer-events:none !important;
}

/* Hero/image sections must never cover menu */
.hero,
.ml-laskuri-hero-v22,
.ml-laskuri-hero-image-v22,
.ml-laskuri-hero-card-v22,
.ml-smart-calculator-v25,
.ml-ai-summary-v24{
  z-index:auto !important;
}

@media(max-width:1080px){
  .ml-menu-master-logo-v28{
    width:205px !important;
    min-width:205px !important;
    max-width:205px !important;
    flex-basis:205px !important;
  }

  .ml-menu-master-logo-v28 img{
    width:205px !important;
    height:auto !important;
  }

  .ml-menu-master-desktop-v28 a,
  .ml-menu-master-drop-v28 button{
    padding:0 7px !important;
    font-size:13px !important;
  }

  .ml-menu-master-cta-v28{
    min-width:106px !important;
    padding:0 11px !important;
    font-size:13px !important;
  }
}

@media(max-width:900px){
  .ml-menu-master-v28{
    height:68px !important;
    min-height:68px !important;
    max-height:68px !important;
  }

  .ml-menu-master-inner-v28{
    height:68px !important;
    padding:0 18px !important;
  }

  .ml-menu-master-logo-v28{
    width:205px !important;
    min-width:205px !important;
    max-width:205px !important;
    flex-basis:205px !important;
  }

  .ml-menu-master-logo-v28 img{
    width:205px !important;
  }

  .ml-menu-master-desktop-v28,
  .ml-menu-master-cta-v28{
    display:none !important;
  }

  .ml-menu-master-toggle-v28{
    display:inline-flex !important;
  }

  .ml-menu-master-mobile-v28{
    position:fixed !important;
    top:68px !important;
    left:0 !important;
    right:0 !important;
    height:calc(100vh - 68px) !important;
    overflow:auto !important;
    display:none !important;
    padding:18px 18px 34px !important;
    background:#06142f !important;
    background-image:
      radial-gradient(circle at 84% 5%, rgba(78,227,255,.18), transparent 34%),
      linear-gradient(135deg,#06142f 0%,#09265b 58%,#0d438f 100%) !important;
    border-top:1px solid rgba(255,255,255,.18) !important;
    box-shadow:0 34px 90px rgba(0,0,0,.68) !important;
    z-index:2147483001 !important;
  }

  body.ml-menu-master-open .ml-menu-master-mobile-v28{
    display:block !important;
  }

  .ml-menu-master-mobile-v28 div{
    margin:0 0 14px !important;
    padding:14px !important;
    background:rgba(255,255,255,.065) !important;
    border:1px solid rgba(255,255,255,.14) !important;
  }

  .ml-menu-master-mobile-v28 strong{
    display:block !important;
    margin:0 0 8px !important;
    color:#4ee3ff !important;
    font-size:12px !important;
    font-weight:950 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
  }

  .ml-menu-master-mobile-v28 a{
    min-height:52px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    color:#ffffff !important;
    background:transparent !important;
    text-decoration:none !important;
    font-size:17px !important;
    font-weight:900 !important;
    border-bottom:1px solid rgba(255,255,255,.14) !important;
    text-shadow:0 1px 2px rgba(0,0,0,.55) !important;
  }

  .ml-menu-master-mobile-v28 a::after{
    content:"→" !important;
    color:#4ee3ff !important;
    font-weight:950 !important;
  }

  .ml-menu-master-mobile-v28 .mobile-cta{
    margin-top:14px !important;
    justify-content:center !important;
    background:#ffffff !important;
    color:#06142f !important;
    border-bottom:0 !important;
    text-shadow:none !important;
  }

  .ml-menu-master-mobile-v28 .mobile-cta::after{
    display:none !important;
  }
}

@media(max-width:380px){
  .ml-menu-master-logo-v28{
    width:184px !important;
    min-width:184px !important;
    max-width:184px !important;
    flex-basis:184px !important;
  }

  .ml-menu-master-logo-v28 img{
    width:184px !important;
  }
}

/* V32 logo/menu click-zone fix.
   Logo must not toggle menu. Toggle must not overlap logo. */

.ml-menu-master-v28{
  contain:none !important;
  overflow:visible !important;
}

.ml-menu-master-inner-v28{
  position:relative !important;
  overflow:visible !important;
}

.ml-menu-master-logo-v28{
  position:relative !important;
  z-index:2147483004 !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
  -webkit-tap-highlight-color:transparent !important;
}

.ml-menu-master-logo-v28 img{
  pointer-events:none !important;
}

.ml-menu-master-toggle-v28{
  position:relative !important;
  z-index:2147483005 !important;
  flex:0 0 44px !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
  -webkit-tap-highlight-color:transparent !important;
}

.ml-menu-master-mobile-v28{
  z-index:2147483002 !important;
}

.ml-menu-master-desktop-v28,
.ml-menu-master-cta-v28{
  position:relative !important;
  z-index:2147483003 !important;
}

/* Important: no invisible overlay can catch logo clicks */
.ml-menu-master-v28::before,
.ml-menu-master-v28::after,
.ml-menu-master-inner-v28::before,
.ml-menu-master-inner-v28::after{
  pointer-events:none !important;
}

/* Mobile: keep logo and button separated */
@media(max-width:900px){
  .ml-menu-master-inner-v28{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 44px !important;
    align-items:center !important;
    gap:12px !important;
  }

  .ml-menu-master-logo-v28{
    width:min(232px, calc(100vw - 92px)) !important;
    min-width:0 !important;
    max-width:232px !important;
    flex:initial !important;
  }

  .ml-menu-master-logo-v28 img{
    width:100% !important;
    max-width:205px !important;
    height:auto !important;
  }

  .ml-menu-master-toggle-v28{
    grid-column:2 !important;
    justify-self:end !important;
  }

  .ml-menu-master-mobile-v28{
    top:68px !important;
    left:0 !important;
    right:0 !important;
    transform:none !important;
  }
}

@media(max-width:380px){
  .ml-menu-master-logo-v28{
    width:calc(100vw - 92px) !important;
    max-width:184px !important;
  }

  .ml-menu-master-logo-v28 img{
    max-width:184px !important;
  }
}

/* V33 header identity lock.
   Same menu must render identically on home and all subpages. */

header.ml-menu-master-v28[data-ml-shared-menu="v33"],
header.ml-menu-master-v28[data-ml-shared-menu="v33"] *{
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  box-sizing:border-box !important;
  border-radius:0 !important;
}

/* Stop page-specific CSS from making the CTA thicker/different */
header.ml-menu-master-v28[data-ml-shared-menu="v33"] a.ml-menu-master-cta-v28{
  width:126px !important;
  min-width:126px !important;
  max-width:126px !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:0 !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#ffffff !important;
  color:#06142f !important;
  border:1px solid #ffffff !important;
  text-decoration:none !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:none !important;
  transform:none !important;
}

/* Desktop menu exact same typography everywhere */
header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-desktop-v28 > a,
header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-drop-v28 > button{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:0 10px !important;
  margin:0 !important;
  font-size:14px !important;
  font-weight:850 !important;
  line-height:1 !important;
  color:#ffffff !important;
  background:transparent !important;
  border:1px solid transparent !important;
  box-shadow:none !important;
  transform:none !important;
}

/* Logo must always be identical */
header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-logo-v28{
  width:232px !important;
  min-width:232px !important;
  max-width:232px !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:0 !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-logo-v28 img{
  width:232px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  display:block !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:none !important;
  opacity:1 !important;
  transform:none !important;
}

/* Header dimensions identical */
header.ml-menu-master-v28[data-ml-shared-menu="v33"]{
  height:72px !important;
  min-height:72px !important;
  max-height:72px !important;
  padding:0 !important;
  margin:0 !important;
}

header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-inner-v28{
  height:72px !important;
  min-height:72px !important;
  max-height:72px !important;
}

/* Attached dropdown: same on home and subpages */
header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-panel-v28{
  top:100% !important;
  margin-top:0 !important;
  background:#06142f !important;
  background-image:linear-gradient(135deg,#06142f 0%,#09265b 100%) !important;
  color:#ffffff !important;
}

/* Mobile identity */
@media(max-width:900px){
  header.ml-menu-master-v28[data-ml-shared-menu="v33"]{
    height:68px !important;
    min-height:68px !important;
    max-height:68px !important;
  }

  header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-inner-v28{
    height:68px !important;
    min-height:68px !important;
    max-height:68px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 44px !important;
    gap:12px !important;
  }

  header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-logo-v28{
    width:min(205px, calc(100vw - 92px)) !important;
    min-width:0 !important;
    max-width:205px !important;
  }

  header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-logo-v28 img{
    width:100% !important;
    max-width:205px !important;
    height:auto !important;
  }

  header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-toggle-v28{
    width:44px !important;
    min-width:44px !important;
    max-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    grid-column:2 !important;
    justify-self:end !important;
  }

  header.ml-menu-master-v28[data-ml-shared-menu="v33"] .ml-menu-master-mobile-v28{
    top:68px !important;
  }
}
