/* 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;
}
@media (max-width: 767px) {
  .ProductSection_registration-btn-wrap__vqIF6 {
    width: 100% !important;
    max-width: 330px;
    margin: 0 auto;
    box-sizing: border-box;
  }
  .ProductSection_registration-btn-wrap__vqIF6 .ProductSection_rsve-primary-btn__1dG8v {
    width: 100%;
    min-width: 0;
    max-width: 330px;
    margin: 0 auto;
    display: block;
    padding-left: 0;
    padding-right: 0;
    font-size: 1.1rem;
    letter-spacing: 0.13em;
    box-sizing: border-box;
  }
  .ProductSection_registration-btn-wrap__vqIF6 .ProductSection_registration-lead__xs1Lu {
    width: 100%;
    max-width: 330px;
    margin: 0 auto;
    text-align: center;
  }
}
/* 三角形コンテナ - 境界線にピッタリ合わせる */
.ProductSection_triangleContainer__NImQD {
  position: absolute;
  left: 50%;
  top: -80px;
  transform: translateX(-50%);
  z-index: 30; /* keep the triangle/title above the sticky stage */
}

/* 三角形のスタイル */
.ProductSection_triangle__ypeTj {
  border: 96px solid #0000;
  border-top: 146px solid #967c39;
}

/* PRODUCTSラベルのスタイル */
.ProductSection_productsLabel__f7hit {
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.1em;
}

/* セクションタイトル（FLOW PANTS）のスタイル */
.ProductSection_sectionTitle__bchio {
  font-size: 2.3rem;
  color: var(--brand-color-primary);
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  /* overlay the title on top of the sticky image stage */
  position: absolute;
  top: 12rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 60; /* above triangle (30) and stage (10) */
  padding: 0.25rem 0.5rem;
  background: transparent;
  margin: 0;
  width: auto;
  white-space: nowrap;
}

/* Override the top padding of the container */
.ProductSection_containerPad__0A2eu {
  padding-top: 60vh !important;
}

/* 最大幅の設定 */
.ProductSection_maxWidth__2YxYt {
  max-width: 70rem;
}

/* 上部ボーダーライン */
.ProductSection_topBorder__EdO0t {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-top: 1px solid var(--brand-color-primary);
}

.ProductSection_productsWrapper__w9aMh {
  position: relative;
  /* add top padding so the sticky stage doesn't overlap the triangle/title */
  padding-top: 140px;
}

.ProductSection_stage__sSFNg {
  position: sticky;
  /* use viewport units so the sticky top is calculated relative to the viewport
     which keeps the stage visually centered even if ancestor heights vary */
  top: 50vh;
  transform: translateY(-50%);
  z-index: 10;
  /* ensure stage takes full container width so image keeps original size */
  width: 100%;
  pointer-events: none;
}

.ProductSection_track__Xuzid {
  display: block;
}

.ProductSection_trackItem__LEvp1 {
  width: 100%;
}

.ProductSection_trackSpacer__tM8X_ {
  /* reduce spacer height to lower required scroll distance between slides */
  height: 35vh; /* reduced from 50vh for faster transitions */
}

/* make the first spacer shorter for faster initial transition */
.ProductSection_trackItem__LEvp1:first-child .ProductSection_trackSpacer__tM8X_ {
  height: 2vh;
}

/* make the 4th spacer (WR_0017.webp) longer to display it more */
.ProductSection_trackItem__LEvp1:nth-child(4) .ProductSection_trackSpacer__tM8X_ {
  height: 120vh;
}

/* unique class for product detail block (image + description) */
.ProductSection_productDetail__rhVkb {
  /* spacing between slideshow and product detail */
  margin-top: 1.25rem;
}

.ProductSection_stage__sSFNg img {
  display: block;
  margin: 0 auto;
}

/* slideshow image sizing: keep aspect ratio with large display */
.ProductSection_stage__sSFNg img {
  max-width: 100%;
  height: 90vh;
  max-height: 1200px;
  width: auto;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
  margin: 0 auto;
}
/* プロダクト説明テキスト */
.ProductSection_productDescription__1q588 {
  font-size: 16px;
  line-height: 1.8em;
  color: #3e3a39;
  font-weight: 500;
}

.ProductSection_productDescription__1q588 p {
  margin-bottom: 0.8em;
}

.ProductSection_productDescription__1q588 p:last-child {
  margin-bottom: 0;
}

/* Tablet fixes: prevent slideshow image from being cut off */
@media (min-width: 768px) and (max-width: 1024px) {
  .ProductSection_stage__sSFNg img {
    max-width: 100%;
    height: 90vh;
    max-height: 1000px;
    width: auto;
    -o-object-fit: contain;
       object-fit: contain;
  }
}

/* Mobile fixes: prevent slideshow image from overflowing horizontally on small viewports */
@media (max-width: 767px) {
  /* removed overflow-x: hidden on .productsWrapper because it prevents
     position:sticky from working in some mobile browsers / layouts.
     If horizontal overflow occurs, images are constrained via
     `.stage img { max-width:100%; max-height:90vh; width:auto }` instead. */

  /* keep the sticky stage vertically centered like on desktop */
  .ProductSection_stage__sSFNg {
    /* same change for mobile: use 50vh to reliably center within the viewport */
    top: 50vh;
    transform: translateY(-50%);
    overflow: hidden;
  }

  .ProductSection_stage__sSFNg img {
    /* SP表示時は画像全体を表示しつつ、横スクロールを防ぐ */
    /* max-height: 500px; */
    height: 80vh;
    width: auto;
    max-width: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center;
       object-position: center;
    margin: 0 auto;
    display: block;
  }

  /* match desktop spacer sizing so scroll distances and switching feel consistent */
  .ProductSection_trackSpacer__tM8X_ {
    height: 35vh;
  }
  
  /* Mobile-specific product description tweaks requested */
  .ProductSection_productDescription__1q588 {
    font-size: 0.7rem;
    font-weight: normal;
    line-height: 1.8em;
  }
}
/* TOPページ専用: TOPICS padding 8rem */
.HomeNewsList_topicsPadding8rem__arH9I {
  padding-top: 8rem !important;
  padding-bottom: 8rem !important;
}
/* TOPページ専用: TOPICSエリアpadding調整 */
.HomeNewsList_topicsPadding8rem__arH9I {
  padding-top: 8rem !important;
  padding-bottom: 8rem !important;
}
/* TOPページ専用: ニュースセクション強制白背景 */
.HomeNewsList_topicsWhiteBg__az8uB {
  background: #fff !important;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  z-index: 0;
}
/* TOPページ専用: ニュースセクション白背景 */
.HomeNewsList_whiteBgSection__Kr27d {
  background: #fff;
}
/* TOPページ専用: ニュースセクション白背景 */
.HomeNewsList_bgWhiteSection__Lyt8b {
  background: #fff;
  border-radius: 1.5rem;
  box-shadow: 0 2px 16px 0 rgba(166,137,74,0.04);
}

@media (max-width: 600px) {
  .HomeNewsList_flex__XWDnN.HomeNewsList_items-center__7MG2I.HomeNewsList_gap-8__EG_Ui.HomeNewsList_mb-8__CQKyD {
    margin-bottom: 0.5rem !important;
  }
  /* 強制的にSP時.newsCardの幅を100%に */
  .HomeNewsList_HomeNewsList_newsCard__szVAY__9pRtp {
    width: 100% !important;
  }
  .HomeNewsList_topicsMoreBtn__NpHPj {
    font-size: 1.28rem !important;
    padding: 1.1rem 2.7rem !important;
    min-width: 140px;
    border-width: 2px;
    letter-spacing: 0.18em;
  }


  .HomeNewsList_HomeNewsList_newsCard__szVAY__9pRtp {
    width: 100%;
}
}



/* ニュースカードレイアウト */

.HomeNewsList_newsCardList__MFoYL {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 2rem;
}
@media (max-width: 1024px) {
  .HomeNewsList_newsCardList__MFoYL {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .HomeNewsList_newsCardList__MFoYL {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .HomeNewsList_newsCard__szVAY {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0.5rem 0.5rem 1.2rem 0.5rem;
    box-sizing: border-box;
  }
  .HomeNewsList_newsCardImage__sAFmk {
    height: 120px;
    border-radius: 0.5rem;
  }
  .HomeNewsList_newsCardMeta__1aLnE {
    padding: 0.7rem 1rem 0 1rem;
  }
  .HomeNewsList_newsCardTitle__qliFf {
    font-size: 0.98rem;
  }
  .HomeNewsList_newsDate__U4dHR {
    font-size: 0.82rem;
  }
  .HomeNewsList_newsSectionTitle__vY8eC {
    font-size: 1.15rem;
  }
}


.HomeNewsList_newsCard__szVAY {
  width: 320px;
  background: #fff;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 0 1.5rem 0;
  margin-left: 0;
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1), box-shadow 0.3s cubic-bezier(0.4,0,0.2,1);
  border-bottom: 1px solid #977d392e;
}
.HomeNewsList_newsCard__szVAY:hover {
  transform: scale(1.03);
  box-shadow: 0 6px 24px 0 rgba(166,137,74,0.13);
}

.HomeNewsList_newsCardImageLink__7pw4C {
  width: 100%;
  display: block;
  overflow: hidden;
}
.HomeNewsList_newsCardImage__sAFmk {
  width: 100%;
  height: 180px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  background: #f3f3f3;
}
.HomeNewsList_newsCardImagePlaceholder__dGbeT {
  width: 100%;
  height: 180px;
  background: #f3f3f3;
  border-radius: 0;
}
.HomeNewsList_newsCardMeta__1aLnE {
  padding: 1rem 1.5rem 0 1.5rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.HomeNewsList_newsCardTitle__qliFf {
  font-size: 1.1rem;
  font-weight: bold;
  color: var(--brand-color-primary);
  margin-top: 0.5rem;
  text-decoration: none;
  transition: opacity 0.2s;
}
.HomeNewsList_newsCardTitle__qliFf:hover {
  opacity: 0.7;
}
/* newsセクションulのpadding/marginをグローバルでリセット */
/* #news > div > div:nth-child(2) > ul のpadding-leftリセット */
#HomeNewsList_news__G67CZ > div > div:nth-child(2) > ul {
  padding-left: 0 !important;
}
/* .border-t ul のpadding-leftリセット */
.HomeNewsList_border-t__BUF5y ul {
  padding-left: 0 !important;
}
/* TOPページnewsセクションulのpadding/marginリセット */
#HomeNewsList_news__G67CZ ul {
  margin-left: 0 !important;
  padding-left: 0 !important;
}
/* ニュースセクション */
.HomeNewsList_newsSection__fgi03 {
  padding: 5rem 0;
}

/* ニュースセクションタイトル */
.HomeNewsList_newsSectionTitle__vY8eC {
  color: var(--brand-color-primary);
  letter-spacing: .1em;
  font-size: 2.1rem;
  font-weight: bold;
  margin: 1rem 0 1rem 0;
}

/* ニュース日付 */
.HomeNewsList_newsDate__U4dHR {
  color: var(--brand-color-primary);
}

/* ニュースタイトル */
.HomeNewsList_newsTitle__3ev0S {
  color: var(--brand-color-primary);
}

.HomeNewsList_newsTitle__3ev0S:hover {
  color: var(--brand-color-primary);
  opacity: 0.8;
}

/* ニュースアイテムの表示制御 */
.HomeNewsList_newsItem__6Au2n:nth-child(4),
.HomeNewsList_newsItem__6Au2n:nth-child(5) {
  display: none;
}

@media (max-width: 600px) {
  .HomeNewsList_flex__XWDnN.HomeNewsList_items-center__7MG2I.HomeNewsList_gap-8__EG_Ui.HomeNewsList_mb-8__CQKyD {
    margin-bottom: 0.5rem !important;
  }

      .HomeNewsList_HomeNewsList_newsCard__szVAY__9pRtp {
    width: 100%;
  }
}
/* フッター三角形 */
.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;
  }
}
