/* Header styles extracted from home.css */
#main-header,
#et-top-navigation {
  font-family: 'Noto Sans Japanese', sans-serif;
}

#top-header .container {
  font-family: 'Noto Sans Japanese', sans-serif;
}

.et_slide_in_menu_container,
.et_slide_in_menu_container .et-search-field {
  font-family: 'Noto Sans Japanese', sans-serif;
}

#header-placeholder,
#page-container > #et-boc > #header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2000;
  background: #ffffff;
}

#page-container > #et-boc > #et-main-area {
  padding-top: var(--site-header-height, 90px);
}

.et_pb_section_0_tb_header.et_pb_section {
  padding-top: 0px;
  padding-bottom: 0px;
}

.et_pb_section_0_tb_header {
  position: static;
  top: auto;
  background: #ffffff;
  z-index: 1000;
  box-shadow: 0px 2px 18px 0px rgba(0, 0, 0, 0.1);
}

.et_pb_sticky.et_pb_section_0_tb_header {
  box-shadow: 0px 5px 80px rgba(0, 0, 0, 0.1) !important;
}

.et_pb_row_0_tb_header,
body #page-container .et-db #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,
body.et_pb_pagebuilder_layout.single #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,
body.et_pb_pagebuilder_layout.single.et_full_width_page #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row {
  max-width: 100%;
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}

.et_pb_code_0_tb_header,
.et_pb_code_1_tb_header {
  padding-top: 0px;
  padding-bottom: 0px;
  margin-top: 0px !important;
  margin-bottom: 0px !important;
}

.et_pb_image_0_tb_header .et_pb_image_wrap img {
  max-height: 60px;
  width: auto;
}

.et_pb_image_0_tb_header {
  text-align: left;
  margin-left: 0;
}

.et_pb_menu_0_tb_header.et_pb_menu ul li a {
  font-family: 'Albert Sans', Helvetica, Arial, Lucida, sans-serif;
  text-transform: uppercase;
  font-size: 16px;
  color: #383838 !important;
  letter-spacing: 1px;
}

/* Active menu link (desktop) — color only */
.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li a.active {
  color: #accf4e !important;
}

.et_pb_menu_0_tb_header {
  padding-top: 28px;
  padding-right: 22px;
  margin-bottom: 0px !important;
}

.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li a {
  padding-bottom: 30px;
}

.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul.sub-menu {
  border-width: 2px;
  border-radius: 5px;
  left: auto !important;
  padding: 0;
  right: 0;
  width: 200px;
}

.et_pb_menu_0_tb_header .et_pb_menu_inner_container>.et_pb_menu__logo-wrap,
.et_pb_menu_0_tb_header .et_pb_menu__logo-slot {
  width: 50%;
  max-width: 100%;
}

.et_pb_menu_0_tb_header .et_mobile_nav_menu {
  position: relative;
}

.et_pb_menu_0_tb_header .mobile_nav .mobile_menu_bar:before {
  content: "\2630";
  font-family: sans-serif !important;
  font-size: 29px;
  color: #accf4e;
}

@media only screen and (min-width: 981px) {
  .et_pb_row_0_tb_header,
  body #page-container .et-db #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,
  body.et_pb_pagebuilder_layout.single #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,
  body.et_pb_pagebuilder_layout.single.et_full_width_page #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row {
    width: 100%;
  }

  .et_pb_column_0_tb_header {
    display: flex;
    align-items: center;
  }

  .et_pb_menu_0_tb_header {
    width: 55%;
  }
}

@media only screen and (max-width: 980px) {
  .et_pb_row_0_tb_header.et_pb_row {
    padding-left: 0px !important;
    width: 94% !important;
  }

  .et_pb_column_0_tb_header {
    display: flex;
    flex-direction: column-reverse;
    justify-content: center;
  }

  .et_pb_menu_0_tb_header {
    padding-top: 10px;
    padding-right: 0px;
    padding-bottom: 15px;
    width: 50%;
    position: absolute !important;
    top: 5px;
    right: 0px;
    transform: none !important;
  }

  body.logged-in.admin-bar .et_pb_menu_0_tb_header {
    top: 5px;
  }
}

/* Mobile Menu Dropdown Styles */
.mobile-menu-sidebar {
  position: fixed;
  right: 0;
  width: 200px;
  background-color: #accf4e;
  z-index: 100;
  transform-origin: top;
  transform: scaleY(0);
  opacity: 0;
  visibility: hidden;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out, visibility 0.3s ease-out;
  padding: 15px 0;
  box-shadow: -2px 5px 15px rgba(0, 0, 0, 0.1);
}

.mobile-menu-sidebar.active {
  transform: scaleY(1);
  opacity: 1;
  visibility: visible;
}

.mobile-menu-sidebar .mobile-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mobile-menu-sidebar .mobile-menu-list li {
  padding: 15px 25px;
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.3s ease;
}

.mobile-menu-sidebar.active .mobile-menu-list li {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delay for list items */
.mobile-menu-sidebar.active .mobile-menu-list li:nth-child(1) {
  transition-delay: 0.1s;
}

.mobile-menu-sidebar.active .mobile-menu-list li:nth-child(2) {
  transition-delay: 0.15s;
}

.mobile-menu-sidebar.active .mobile-menu-list li:nth-child(3) {
  transition-delay: 0.2s;
}

.mobile-menu-sidebar.active .mobile-menu-list li:nth-child(4) {
  transition-delay: 0.25s;
}

.mobile-menu-sidebar.active .mobile-menu-list li:nth-child(5) {
  transition-delay: 0.3s;
}

.mobile-menu-sidebar .mobile-menu-list li a {
  color: #fff;
  font-size: 16px;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: 500;
  letter-spacing: 2px;
  font-family: 'Albert Sans', sans-serif;
  display: block;
  transition: color 0.3s ease;
}

/* Active menu link (mobile sidebar) */
.mobile-menu-sidebar .mobile-menu-list li a.active {
  color: #2f3844; /* dark text for contrast on green background */
  background: none;
}

@media only screen and (max-width: 980px) {
  /* On small screens (mobile/tablet) active link should be white for contrast */
  .mobile-menu-sidebar .mobile-menu-list li a.active {
    color: #ffffff !important;
  }
}

.mobile-menu-sidebar .mobile-menu-list li a:hover {
  color: rgba(255, 255, 255, 0.7);
}

/* Hide mobile menu entirely on desktop screens to prevent resize bugs */
@media only screen and (min-width: 981px) {
  .mobile-menu-sidebar {
    display: none !important;
  }
}

/* Ensure mobile sidebar is positioned relative to the viewport (flush to right edge)
   and does not get trapped by transformed ancestors. */
@media only screen and (max-width: 980px) {
  .mobile-menu-sidebar {
    top: 0;
    right: 0;
    box-sizing: border-box;
    padding-right: 0;
  }
}