



@media only screen and (max-width: 480px) {




.top-hero{
  /* ここで“固定が解けるタイミング”を決める（例：1.7画面分 固定） */
  --bg-hold: 180vh;
  --hero-vh: 100vh; /* fallback */

  position: relative;
  color: #fff;
}


/* hero 全体を最初は少し隠す */
.top-hero {
  opacity: 0;
  transform: translateY(0px);
  transition:
    opacity 1.2s ease,
    transform 1.2s ease;
}

/* 表示状態 */
.top-hero.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* 背景を「stickyで保持する」ための枠
   高さが大事：この高さが終わると sticky が解けて背景も一緒に流れる */
.hero-bg-wrap{
  height: var(--bg-hold);
  position: relative;
  z-index: 0;
}

/* sticky背景本体 */
.hero-bg-sticky{
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

/* 背景画像セット（重ねる） */
.top-hero-bgset{
  position: absolute;
  inset: 0;
}

/* 背景画像（重ねてフェード） */
.top-hero-bg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;

  opacity: 0;
  transition: opacity 1.2s ease;
  will-change: opacity;
}

.top-hero-bg.is-active{
  opacity: 1;
}

/* 既存のstickyを成立させるため念のため */
.hero-bg-sticky{
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

/* overlayは最前面 */
.top-hero-bg-over{
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
  opacity: 0.75;
  background-color: #082752;
  pointer-events: none;
}

/* 動きを減らす設定の人は切替しない前提（JSも止める） */
@media (prefers-reduced-motion: reduce) {
  .top-hero-bg{ transition: none !important; }
}

/* 前面コンテンツ（背景の上） */
.hero-fore{
  position: relative;
  z-index: 1;
  margin-top: calc(var(--bg-hold) * -1);
  /* ↑ 背景枠の上に前面を重ねる */
}

/* 1画面目：h1中央 */
.hero-screen{
  height: var(--hero-vh);
  display: grid;
  place-items: center;
  padding: 0 24px;
}

.hero-h1{
  margin: 0;
  text-align: left;
  line-height: 1.8;
  letter-spacing: .02em;
  font-size: 30px;
  color:#bbab83;
  font-weight: 500;
}

.hero-h1 span{
	display: block;
}

.hero-h1 span.hero-h1-en{
  display: block;
  margin-top: 27px;
	font-family: "Libre Baskerville", serif;
  font-size: 18px;
  font-weight: 400;
  color: #fff;
}

/* lead：2画面目に自然に出す */
.hero-lead{
  max-width: 100%;
  margin: 0 auto;
  padding: 90px 24px 0px;
  font-size: 18px;
  line-height: 2.7;
  text-align: left;

  /* ふわっと出す（任意） */
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .7s ease;
}

.hero-lead.is-visible{
  opacity: 1;
  transform: translateY(0);
}







.top-sec{
	width: 90%;
	margin:60px auto;
	text-align: left;
}

.top-h2{
	font-size:24px;
	font-weight: 600;
	padding: 0;
	margin: 0 0 24px 0;
	text-align: left;
}

.top-h2 span{
	display: block;
	font-family: "Libre Baskerville", serif;
	font-size:16px;
	font-weight: 400;
	color: #bbab83;
	margin-top: 12px;
}


.top-h2-reason{
	font-size:24px;
	font-weight: 600;
	padding: 0;
	margin: 0 0 24px 0;
	text-align: left;
}

.top-h2-reason span{
	display: block;
	font-family: "Libre Baskerville", serif;
	font-size:16px;
	font-weight: 400;
	color: #fff;
	margin-top: 12px;
}

.to-more{
	display: block;
	width: 180px;
	height: 36px;
	color:#fff;
	background: #bbab83;
	text-align: center;
	border-radius: 9px;
	font-size: 14px;
	font-weight: 600;
	padding: 7px 0 0 0;
	margin-top: 21px;
	transition: 0.35s ease;
}






/*======================================

	maker
	
========================================*/

.top-sec-maker{
	margin-top: 390px;
}

.top-maker{
	width: 90%;
	margin: 0 auto;
}

.maker-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 9px;
  margin-top: 45px;
}

.maker-card{
	margin-bottom: 36px;
	text-align: center;
}

.maker-emblem{
	margin-bottom: 15px;
}

.maker-name{
	font-size: 13px;
}





/*======================================

	reason
	
========================================*/

/* =========================
   全体レイアウト
========================= */

.top-reason {
  width: 100vw;
  margin-top: 75px;

  display: block;
  grid-template-columns:
    calc(50vw + 36px)
    calc(500px - 36px)
    calc(50vw - (500px - 36px));

  overflow: hidden;
}

/* =========================
   左：写真4枚
========================= */

.photo-left {
  width: 100%;
  height: 100%;
}

.photo-left-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.photo-left-image {
  width: 100%;
  height: 150;
  object-fit: cover;
  display: block;
}

/* =========================
   中央：テキスト
========================= */

.top-reason-content {
  width: 100%;
  display: flex;
  align-items: center;
  background: #d6e0e5;
}

.top-reason-content-inner {
  width: 100%;
  padding: 36px 24px; /* お好みで */
  text-align: left;
}

/* =========================
   右：写真2枚
========================= */

.photo-right {
  width: 100%;
  height: 100%;
}

.photo-right-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.photo-right-image {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
}

/* =========================
   微調整（任意）
========================= */

.photo-left-image,
.photo-right-image {
  backface-visibility: hidden;
}


.reason-footer{
	display: flex;
	justify-content: center;
	margin: 0px 0 0 0;
	padding: 0;
}

/*======================================

	records
	
========================================*/
.top-records{
	width: 100%;
	margin: 0 auto 0 auto;	
}

.records-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 30px;
}

.records-card{
	margin-bottom: 21px;
}

.records-thumb{
	width: 100%;
	margin-bottom: 12px;
}


.records-thumb img{
	width: 100%;
}

.records-date{
	font-size: 13px;
	color: #333;
}

.records-title{
	font-size: 13px;
	color: #333;
}

.records-footer{
	display: flex;
	justify-content: center;
}


/*======================================

	records
	
========================================*/
.top-news{
	width: 100%;
	margin: 0 auto 60px auto;	
}

.news-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 30px;
}

.news-card{
	margin-bottom: 21px;
	background: #f3f3f3;
	text-align: left;
}

.news-thumb{
	width: 100%;
	margin-bottom: 12px;
}


.news-thumb img{
	width: 100%;
}

.news-date{
	font-size: 11px;
	color: #bbab83;
	padding: 0 9px;
	margin-top: 12px;
}

.news-title{
	font-size: 14px;
	color: #333;
	padding: 0 12px 12px 12px;
}








}/*//end  max-width: 480px ///////////////////////*/







@media only screen and (min-width: 481px) {


.top-hero{
  /* ここで“固定が解けるタイミング”を決める（例：1.7画面分 固定） */
  --bg-hold: 180vh;
  --hero-vh: 100vh; /* fallback */

  position: relative;
  color: #fff;
}


/* hero 全体を最初は少し隠す */
.top-hero {
  opacity: 0;
  transform: translateY(0px);
  transition:
    opacity 1.2s ease,
    transform 1.2s ease;
}

/* 表示状態 */
.top-hero.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* 背景を「stickyで保持する」ための枠
   高さが大事：この高さが終わると sticky が解けて背景も一緒に流れる */
.hero-bg-wrap{
  height: var(--bg-hold);
  position: relative;
  z-index: 0;
}

/* sticky背景本体 */
.hero-bg-sticky{
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

/* 背景画像セット（重ねる） */
.top-hero-bgset{
  position: absolute;
  inset: 0;
}

/* 背景画像（重ねてフェード） */
.top-hero-bg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;

  opacity: 0;
  transition: opacity 1.2s ease;
  will-change: opacity;
}

.top-hero-bg.is-active{
  opacity: 1;
}

/* 既存のstickyを成立させるため念のため */
.hero-bg-sticky{
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

/* overlayは最前面 */
.top-hero-bg-over{
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
  opacity: 0.75;
  background-color: #082752;
  pointer-events: none;
}

/* 動きを減らす設定の人は切替しない前提（JSも止める） */
@media (prefers-reduced-motion: reduce) {
  .top-hero-bg{ transition: none !important; }
}

/* 前面コンテンツ（背景の上） */
.hero-fore{
  position: relative;
  z-index: 1;
  margin-top: calc(var(--bg-hold) * -1);
  /* ↑ 背景枠の上に前面を重ねる */
}

/* 1画面目：h1中央 */
.hero-screen{
  height: var(--hero-vh);
  display: grid;
  place-items: center;
  padding: 0 24px;
}

.hero-h1{
  margin: 0;
  text-align: center;
  line-height: 1.3;
  letter-spacing: .02em;
  font-size: 45px;
  color:#bbab83;
  font-weight: 500;
}



.hero-h1 span.hero-h1-en{
  display: block;
  margin-top: 27px;
	font-family: "Libre Baskerville", serif;
  font-size: 21px;
  font-weight: 400;
  color: #fff;
 
}

/* lead：2画面目に自然に出す */
.hero-lead{
  max-width: 980px;
  margin: 0 auto;
  padding: 160px 24px 140px;
  font-size: 20px;
  line-height: 3.6;

  /* ふわっと出す（任意） */
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .7s ease;
}

.hero-lead.is-visible{
  opacity: 1;
  transform: translateY(0);
}

.hero-lead span{
	display: block;
}






.top-sec{
	width: 100%;
	margin-top: 90px;
}

.top-h2{
	font-size:30px;
	font-weight: 600;
	padding: 0;
	margin: 0 0 24px 0;
	text-align: center;
}

.top-h2 span{
	display: block;
	font-family: "Libre Baskerville", serif;
	font-size:18px;
	font-weight: 400;
	color: #bbab83;
	margin-top: 12px;
}


.top-h2-reason{
	font-size:30px;
	font-weight: 600;
	padding: 0;
	margin: 0 0 24px 0;
	text-align: left;
}

.top-h2-reason span{
	display: block;
	font-family: "Libre Baskerville", serif;
	font-size:18px;
	font-weight: 400;
	color: #fff;
	margin-top: 12px;
}

.to-more{
	display: block;
	width: 180px;
	height: 48px;
	color:#fff;
	background: #bbab83;
	text-align: center;
	border-radius: 15px;
	font-size: 14px;
	font-weight: 600;
	padding: 13px 0 0 0;
	margin-top: 45px;
	transition: 0.35s ease;
}

.to-more:hover{
	color:#fff;
	background: #dbd3c0;
}




/*======================================

	maker
	
========================================*/

.top-sec-maker{
	margin-top: 390px;
}

.top-maker{
	width: 1000px;
	margin: 0 auto;
}

.maker-grid{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 9px;
  margin-top: 60px;
}

.maker-card{
	margin-bottom: 60px;
}

.maker-emblem{
	margin-bottom: 15px;
}

.maker-name{
	font-size: 13px;
}





/*======================================

	reason
	
========================================*/

/* =========================
   全体レイアウト
========================= */

.top-reason {
  width: 100vw;
  height: 460px;
  margin-top: 75px;

  display: grid;
  grid-template-columns:
    calc(50vw + 36px)
    calc(500px - 36px)
    calc(50vw - (500px - 36px));

  overflow: hidden;
}

/* =========================
   左：写真4枚
========================= */

.photo-left {
  width: 100%;
  height: 100%;
}

.photo-left-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.photo-left-image {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
}

/* =========================
   中央：テキスト
========================= */

.top-reason-content {
  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;
  background: #d6e0e5;
}

.top-reason-content-inner {
  width: 100%;
  padding: 0 66px; /* お好みで */
  text-align: left;
}

/* =========================
   右：写真2枚
========================= */

.photo-right {
  width: 100%;
  height: 100%;
}

.photo-right-grid {
  display: grid;
  grid-template-rows: repeat(2, 1fr);
}

.photo-right-image {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
}

/* =========================
   微調整（任意）
========================= */

.photo-left-image,
.photo-right-image {
  backface-visibility: hidden;
}


.reason-footer{
	display: flex;
	flex-direction: row-reverse;
	margin: -21px 0 0 0;
	padding: 0;
}

/*======================================

	records
	
========================================*/
.top-records{
	width: 1000px;
	margin: 0 auto 0 auto;	
}

.records-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 60px;
}

.records-card{
	margin-bottom: 21px;
}

.records-thumb{
	width: 100%;
	margin-bottom: 12px;
}


.records-thumb img{
	width: 100%;
}

.records-date{
	font-size: 13px;
	color: #333;
}

.records-title{
	font-size: 13px;
	color: #333;
}

.records-footer{
	display: flex;
	justify-content: center;
}


/*======================================

	records
	
========================================*/
.top-news{
	width: 1000px;
	margin: 0 auto 90px auto;	
}

.news-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 60px;
}

.news-card{
	margin-bottom: 21px;
	background: #f3f3f3;
	text-align: left;
}

.news-thumb{
	width: 100%;
	margin-bottom: 12px;
}


.news-thumb img{
	width: 100%;
}

.news-date{
	font-size: 13px;
	color: #bbab83;
	padding: 0 9px;
	margin-top: 12px;
}

.news-title{
	font-size: 15px;
	color: #333;
	padding: 0 12px 12px 12px;
}



}/*//end  min-width: 481px ///////////////////////*/











