/* module-local class for menu button (works with CSS Modules) */

.SideMenu_menuButton__WzEGx, button.SideMenu_SideMenu_menuButton__WzEGx__lf9pz {
  letter-spacing: .3em;
  color: #a6894a;
  cursor: pointer;
  pointer-events: auto;
  background: 0 0;
  border: 1px solid #a6894a;
  padding: .5rem 1rem;
  font-size: 0.675rem;
  transition: color .3s, border-color .3s;
}

.SideMenu_menuButton__WzEGx:hover {
  color: #635328;
  border-color: #635328;
}

.SideMenu_menuOverlay__9TJzY {
  position: absolute;
  top: 100%;
  right: 0; 
  min-width: 220px;
  background: none;
  border: none;
  border-radius: 4px;
  box-shadow: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  z-index: 1000;
  pointer-events: auto;
  margin-top: 8px;
}

.SideMenu_menuOverlay__9TJzY.SideMenu_isOpen__h5nvg {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.SideMenu_menuContent__omZXz {
  padding: 1rem 0;
  position: relative;
}

.SideMenu_decorativeLine__MgkDX {
  position: absolute;
  top: -8px;
  right: 0px;
  width: 1px;
  height: 110%;
  background-color: #A6894A;
  transform-origin: top;
  transform: scaleY(0);
  transition: transform 0.4s cubic-bezier(0.86, 0, 0.07, 1);
}

.SideMenu_decorativeLine__MgkDX::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #A6894A;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.SideMenu_decorativeLine__MgkDX.SideMenu_isOpen__h5nvg {
  transform: scaleY(1);
}

.SideMenu_decorativeLine__MgkDX.SideMenu_isOpen__h5nvg::after {
  opacity: 1;
  transition-delay: 0.2s;
}

.SideMenu_menuList__kdoq9 {
  list-style: none;
  margin: 0;
  padding: 0;
}

.SideMenu_menuItem__BXmsW {
  border-bottom: none;
  text-align: right;
  padding-right: 0rem;
}

.SideMenu_menuLink__2n0uL {
  font-size: 0.875rem;
  letter-spacing: 0.2em;
  color: #A6894A;
  text-decoration: none;
  display: block;
  padding: 0.75rem 1.5rem;
  transition: color 0.3s ease, background-color 0.3s ease;
  font-weight: 400;
  position: relative; /* for the hover indicator pseudo-element */
}

/* hover:before indicator (dot) integrated from provided CSS */
.SideMenu_menuLink__2n0uL:hover::before {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  background: #a68849;
  border-radius: 100px;
  top: 50%;
  transform: translate(-300%, -50%);
}
/* ヘッダー表示・非表示のアニメーション */
.Header_headerVisible__XLXcl {
  /* Visible: fade in and slide down slightly for a soft appearance */
  display: block;
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1), transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.Header_headerHidden__Mvb2D {
  /* Hidden: keep in document flow (fixed) but invisible and slightly lifted */
  display: block;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-14px);
  pointer-events: none;
  transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1), transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
/* section--dark時のヘッダーメニュー色 */
.Header_headerDark__eHfK7 .Header_navLink__Q_hTB {
  color: #000;
}
/* ヘッダーコンテナ */
.Header_container__L4JQR {
  width: 90%;
  max-width: inherit;
}

/* フッター内右上のナビゲーション */
.Header_headerNav__RHyrj {
  z-index: 10;
  flex-direction: column;
  gap: 1rem;
  display: flex;
  /* position: absolute; */
  /* top: 2rem; */
  /* keep the nav block aligned to the right, but allow items inside to align independently */
  right: 0;
  align-items: flex-end; /* place each link box at the right edge */
}

/* ナビゲーションリンク */
/* ヘッダーのテキスト色はCSS変数で制御 */
.Header_navLink__Q_hTB {
  color: var(--header-text-color, #A6894A);
  font-size: 0.875rem;
  letter-spacing: 0.3em;
  text-decoration: none;
  transition: opacity 0.3s ease;
  display: flex;
  align-items: center;
  /* make link a fixed-width row so text stays left and arrow stays at the same x position */
  width: 193px;
  justify-content: space-between; /* text left, icon right */
  font-weight: bold;
  gap: 0;
}

.Header_navLink__Q_hTB:hover {
  opacity: 0.8;
}

/* 矢印アイコン */
.Header_arrowIcon__n1OrM {
  width: 1rem;
  height: 1rem;
  margin-left: 0;
}

/* Responsive: on small screens let links size naturally and keep text/icon spacing */
@media (max-width: 768px) {
  .Header_headerNav__RHyrj {
    align-items: flex-end;
  }
  .Header_navLink__Q_hTB {
    width: auto;
    justify-content: flex-start;
    gap: 1em;
  }
  .Header_arrowIcon__n1OrM {
    margin-left: 0.25rem;
  }
}

/* RSVEロゴ */
.Header_rsveLogoImg__Obahg {
  width: 100px;
  height: auto;
}
/* フッター三角形 */
.Footer_footerTriangle__fz1ip {
  border-bottom: 220px solid #e5e0d2;
  border-left: 130px solid #0000;
  border-right: 130px solid #0000;
}

/* 三角形コンテナ */
.Footer_triangleContainer__75N6M {
  position: absolute;
  top: inherit;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
}

/* ロゴコンテナ */
.Footer_logoContainer__H9pbR {
  position: absolute;
  top: 70%;
  left: 50%;
  width: 40%;
  transform: translate(-50%, -50%);
}

/* フッターコンテナ */
.Footer_footerContainer__0uLcn {
  width: 100%;
  margin: 0 auto;
  padding: 0 10rem;
  bottom: 0;
  position: absolute;
}

/* コピーライトテキスト */
.Footer_copyrightText__ZGqLn {
  color: white !important;
  font-size: 0.875rem;
  text-align: right;
}

/* ナビゲーションコンテナ */
.Footer_navContainer__5l47D {
  margin: 0 10rem;
  padding: 0;
  z-index: 1;
  position: relative;
  padding-top: 5rem;
}

/* Mobile adjustments to match attached design */
@media (max-width: 767px) {
  /* ensure footer minimum height on SP */
  footer#Footer_footer-section__25kLC {
    min-height: 300px;
  }
  .Footer_navContainer__5l47D {
    margin: 0;
    padding: 0;
    position: absolute;
    top: 0.9rem;
    right: 1rem;
    z-index: 3;
    padding-top: 0;
  }

  /* make nav links smaller and inline with small arrow */
  .Footer_navContainer__5l47D a {
    color: white;
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    gap: 0.2rem;
    opacity: 0.95;
    width: 100%;
    justify-content: space-between;
    letter-spacing: 0.1em;
  }

  .Footer_navContainer__5l47D svg {
    width: 0.9rem;
    height: 0.9rem;
  }

  .Footer_triangleContainer__75N6M {
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
  }

  .Footer_footerTriangle__fz1ip {
    border-bottom: 140px solid #e5e0d2;
    border-left: 80px solid transparent;
    border-right: 80px solid transparent;
  }

  .Footer_logoContainer__H9pbR {
    position: absolute;
    top: 69%;
    left: 50%;
    width: 60%;
    transform: translate(-50%, -50%);
  }

  /* target the rendered img inside next/image */
  .Footer_logoContainer__H9pbR img {
    width: 4.2rem;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  .Footer_footerContainer__0uLcn {
    width: 100%;
    padding: 0;
    position: absolute;
    bottom: 0.5rem;
  }

  /* remove extra bottom padding on inner block */
  .Footer_footerContainer__0uLcn .relative.w-full.pb-8 {
    padding-bottom: 0 !important;
  }

  .Footer_copyrightText__ZGqLn {
    color: white;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: right;
    padding-right: 1rem;
  }
}

/* Tablet adjustments (768px - 1024px) to avoid layout break on TB */
@media (min-width: 768px) and (max-width: 1024px) {
  /* reduce large horizontal paddings used on desktop */
  .Footer_navContainer__5l47D {
    margin: 0 3rem;
    padding-top: 2.5rem;
    position: relative;
    top: auto;
    right: auto;
    z-index: 2;
  }

  .Footer_navContainer__5l47D a {
    /* keep desktop-style nav but slightly smaller */
    color: white;
    font-size: 0.95rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    opacity: 0.95;
    letter-spacing: 0.06em;
  }

  .Footer_triangleContainer__75N6M {
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
  }

  .Footer_footerTriangle__fz1ip {
    border-bottom: 200px solid #e5e0d2;
    border-left: 100px solid transparent;
    border-right: 100px solid transparent;
  }

  .Footer_logoContainer__H9pbR {
    position: absolute;
    top: 68%;
    left: 50%;
    width: 50%;
    transform: translate(-50%, -50%);
  }

  .Footer_logoContainer__H9pbR img {
    width: 5.2rem;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  .Footer_footerContainer__0uLcn {
    width: 100%;
    padding: 0 3rem;
    position: absolute;
    bottom: 1rem;
  }

  .Footer_footerContainer__0uLcn .Footer_relative__bkVqw.Footer_w-full__qcpZe.Footer_pb-8___EkfR {
    padding-bottom: 0;
  }

  .Footer_copyrightText__ZGqLn {
    font-size: 0.9rem;
    padding-right: 0.75rem;
  }
}
