body {
  font-family: 'Dancing Script', cursive;
  color: #333;
  overflow-x: hidden; }

.submenu.open-up {
  top: auto;
  bottom: 100%;
  transform: translateY(-10px); }

.menu-container {
  background-color: #fff;
  position: relative;
  z-index: 100; }

.menu-toggle-button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  background-color: #d4af37;
  color: #fff;
  position: fixed;
  top: 15px;
  right: 15px;
  z-index: 110;
  cursor: pointer;
  border-radius: 5px; }
  @media (min-width: 768px) {
  .menu-toggle-button {
    display: none; } }

.main-menu-container {
  position: fixed;
  top: 0;
  right: -100%;
  width: 280px;
  height: 100vh;
  background-color: #fff;
  box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
  transition: right 0.3s ease-in-out;
  z-index: 150;
  overflow-y: auto;
  padding-top: 70px; }
  @media (min-width: 768px) {
  .main-menu-container {
    position: static;
    width: auto;
    height: auto;
    right: auto;
    box-shadow: none;
    overflow: visible;
    padding-top: 0; } }

body.menu-open .main-menu-container {
  right: 0; }

.main-menu {
  list-style: none;
  margin: 0;
  padding: 0; }
  .main-menu > li {
    position: relative;
    border-bottom: 1px solid #f8f9fa; }
    .main-menu > li a {
      display: block;
      padding: 15px 20px;
      color: #333;
      text-decoration: none;
      font-weight: 500;
      transition: all 0.3s ease; }
      .main-menu > li a:hover {
        background-color: #fdfbf4;
        color: #d4af37; }
    .main-menu > li.active > a {
      color: #d4af37;
      font-weight: 600; }

.has-submenu .submenu-toggle-button {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 100%;
  cursor: pointer; }
  .has-submenu .submenu-toggle-button::after {
    content: "\25B6";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    color: #999;
    transition: transform 0.3s ease, color 0.3s ease; }
  .has-submenu.open > .submenu-toggle-button::after {
    transform: translateY(-50%) rotate(90deg);
    color: #d4af37; }
  .has-submenu .submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    background: #fff;
    display: none; }
  .has-submenu .submenu li a {
    padding: 12px 40px;
    font-weight: 400; }
    .has-submenu .submenu li a:hover {
      background-color: #f8f9fa;
      color: #d4af37; }
  .has-submenu.open > .submenu {
    display: block; }

@media (min-width: 768px) {
  .main-menu {
    display: flex; }
    .main-menu > li {
      border-bottom: none;
      margin-right: 20px; }
      .main-menu > li > a {
        position: relative;
        overflow: hidden;
        transition: color 0.3s ease; }
        .main-menu > li > a::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 0;
          width: 100%;
          height: 3px;
          background-color: #e2c876;
          transform: translateX(-100%);
          transition: transform 0.4s ease-out; }
        .main-menu > li > a::before {
          content: '';
          position: absolute;
          top: 0;
          right: 0;
          width: 100%;
          height: 3px;
          background-color: #e2c876;
          transform: translateX(100%);
          transition: transform 0.4s ease-out; }
      .main-menu > li:hover > a::after {
        transform: translateX(0); }
      .main-menu > li:hover > a {
        color: #e2c876; }
      .main-menu > li.active {
        background-color: #fdfbf4; }
        .main-menu > li.active > a {
          color: #d4af37; }
          .main-menu > li.active > a::after {
            transform: translateX(0); }
      .main-menu > li .submenu-toggle-button {
        display: none; }
      .main-menu > li .submenu {
        position: absolute;
        top: 100%;
        left: 0;
        min-width: 220px;
        border: 1px solid #f8f2df;
        border-radius: 5px;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        display: block;
        visibility: hidden;
        opacity: 0;
        transform: translateY(10px);
        transition: transform 0.2s ease, opacity 0.2s ease, visibility 0s 0.2s;
        z-index: 100; }
      .main-menu > li:hover > .submenu {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        transition-delay: 0s; }
      .main-menu > li .submenu .has-submenu {
        position: relative; }
        .main-menu > li .submenu .has-submenu > .submenu {
          top: 0;
          left: 100%;
          transform: translateY(0); }
      .main-menu > li .submenu .has-submenu:hover > .submenu {
        visibility: visible;
        opacity: 1;
        transform: translateX(0); } }

@media (max-width: 767px) {
  .has-submenu {
    position: relative; }
    .has-submenu > .submenu-toggle-button {
      position: absolute;
      top: 0;
      right: 10px;
      width: 40px;
      height: 39px;
      cursor: pointer; }
      .has-submenu > .submenu-toggle-button::after {
        content: "\25B6";
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 14px;
        color: #999;
        transition: transform 0.3s ease, color 0.3s ease; }
    .has-submenu.open > .submenu-toggle-button::after {
      transform: translateY(-50%) rotate(90deg);
      color: #d4af37; }
    .has-submenu > .submenu {
      display: none;
      background: #fff;
      border-top: 1px solid #f8f9fa; }
      .has-submenu > .submenu li a {
        padding: 12px 20px; }
    .has-submenu.open > .submenu {
      display: block; }

  .submenu .has-submenu > .submenu-toggle-button {
    right: 10px; }

  .submenu .submenu .has-submenu > .submenu-toggle-button {
    right: 20px; }

  .submenu .submenu .submenu .has-submenu > .submenu-toggle-button {
    right: 30px; } }
