.hr8 {
  border-top: 1 px dashed #939393; /* 破線 */
}

.container {
  padding-top: 100px;
  padding-bottom: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 50px;
}

.box {
  width: 300px;
  height: auto;
  background-color: #92c5fd;
  animation: fadeIn linear both;
  animation-timeline: view();
  animation-range: entry 25% cover 50%;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    clip-path: inset(45% 20% 45% 20%);
  }

  to {
    opacity: 1;
    clip-path: inset(0% 0% 0% 0%);
  }
}

.footerFixed{
    min-height: 100vh; /* ←コンテンツの高さの最小値＝ブラウザの高さに指定 */
    position: relative;/* ←相対位置 */
    padding-bottom: 60px; /* ←フッターの高さを指定 */
    box-sizing: border-box;
    /* ↑ヘッダーやフッターを含むすべての要素の高さ＝min-height:100vhになるように指定 */
}

/*  Typo
----------------------------------------------- */

a:link, a:visited {
    text-decoration: underline;
    color: #EC4413;
}
a:active { text-decoration: underline; }
a:hover { text-decoration: none; }

h1 { font: bold 18px/140% "Trebuchet MS", Verdana, sans-serif; }
h2 { font: bold 14px/140% "Trebuchet MS", Verdana, sans-serif; }

p { font: 11px/140% Verdana, Geneva, Arial, Helvetica, sans-serif; }

/*  Layout
----------------------------------------------- */

body {
    background: #333333 ;
    padding: 35px 0 0 0;
    margin: 0;
    font: 11px/140% Verdana, Geneva, Arial, Helvetica, sans-serif;
}

#container {
    margin: 0 auto;
}

#container2 {
    width: 1160px;         /* ナビゲーションの幅を設定 */
    height: 100px;

    margin: 0 auto;
}


#header {
    padding: 17px;
}

#header h1,
#header a {
    padding: 0;
    font-family: "Helvetica", "Lucida Sans Unicode", Tahoma, Verdana, Arial, Helvetica, sans-serif;
    font-size: 30px;
    font-weight: normal;
    text-decoration: none;
    line-height: 1.3em;
    color: #666666;
    text-align: right;
}


#header a:hover { text-decoration: none; }

#logo {
    padding: 17px;
    margin-right: auto;    /* 右側の余白を自動調整 */
    text-align: left;    /* テキストを右寄せに */
    position: fixed;      /* ナビゲーションを固定 */
    top: 0;               /* 上部に固定 */
    left: 0;             /* 左端に固定 */
    width: 250px;         /* ナビゲーションの幅を設定 */
    box-sizing: border-box; /* 幅の計算をパディングを含めて行う */
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */
}

/* ナビゲーションのスタイル */


#navigation {
    padding: 17px;
    margin-left: auto;    /* 左側の余白を自動調整 */
    text-align: right;    /* テキストを右寄せに */
    position: fixed;      /* ナビゲーションを固定 */
    top: 0;               /* 上部に固定 */
    right: 0;             /* 右端に固定 */
    width: 500px;         /* ナビゲーションの幅を設定 */
    box-sizing: border-box; /* 幅の計算をパディングを含めて行う */
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */
}

/* ナビゲーションリストのスタイル */
ul.mainNav1,
ul.mainNav2 {
    margin: 0;
    padding: 0;
    list-style-type: none; /* 項目の前に表示される点を非表示に */
    white-space: nowrap;   /* 横並びで改行しないようにする */
}

/* リストアイテムを横並びにする */
ul.mainNav1 li,
ul.mainNav2 li {
    display: inline-block; /* 横並びにする */
    margin: 0;
    padding: 0;
}

/* リンクのスタイル */
ul.mainNav1 li a,
ul.mainNav2 li a {
    text-decoration: none;
    font: normal 16px/140% Verdana, Geneva, Arial, Helvetica, sans-serif;
    display: block;
    color: #fff;
    padding: 4px 10px 4px 10px;
}

/* ホバー時のスタイル */
ul.mainNav1 a:hover {
    border-bottom: 2px solid #fff;
    background: #EEE;
    color: black;
}

/* 現在のページのリンクを強調 */
ul.mainNav1 a.current { font-weight: bold; }

/* サイドバーのスタイル */
#sidebar {
 position: absolute;/* ←絶対位置 */
    bottom: 40px;
    padding-top: 10px;
}

/* コンテンツエリア */
#content {
    padding: 17px;
}

/* test*/
#black {  margin-left: -100px;

width: calc(100% + 200px); /
  background: black;
}

#black2 {
  padding-left: 80px;

  width: 100vw; /* ← 画面幅ぴったりに */
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(000, 000, 000, 0.562);
}

#black3 {
  padding-right: 80px;
    max-width: 1160px;         /* ナビゲーションの幅を設定 */
    margin: 0 auto;
}

#white {  margin-left: -100px;

width: calc(100% + 200px); /
  background: white;
}

#white2 {
  padding-left: 80px;

  width: 100vw; /* ← 画面幅ぴったりに */
  position: relative;
  left: 50%;
  transform: translateX(-50%);
    background: white;
}

#white3 {
  padding-right: 80px;
    max-width: 1160px;         /* ナビゲーションの幅を設定 */
    margin: 0 auto;
}

#whitehalf {  margin-left: -100px;

width: calc(100% + 200px); /
  background: rgba(255,255,255,0.3);
}

#whitehalf2 {
  padding-left: 80px;

  width: 100vw; /* ← 画面幅ぴったりに */
  position: relative;
  left: 50%;
  transform: translateX(-50%);
    background: rgba(255,255,255,0.3);
outline: solid;
}

#whitehalf3 {
  padding-right: 80px;
    max-width: 1160px;         /* ナビゲーションの幅を設定 */
    margin: 0 auto;
}

#blackhalf {  margin-left: -100px;

width: calc(100% + 200px); /
  background: rgba(0,0,0,0.3);
}

#blackhalf2 {
  padding-left: 80px;

  width: 100vw; /* ← 画面幅ぴったりに */
  position: relative;
  left: 50%;
  transform: translateX(-50%);
    background: rgba(0,0,0,0.3);
outline: solid;
}

#blackhalf3 {
  padding-right: 80px;
    max-width: 1160px;         /* ナビゲーションの幅を設定 */
    margin: 0 auto;
}

/* フッター */
#footer {
 position: absolute;/* ←絶対位置 */
    bottom: 0;
background: black;
    clear: both;
    margin-top: 10px;
    height: 35px;
}

#footer .gutter {
    height: 30px;
    padding: 35px 15px 0 90px;
}

#footer2 {

    width: 5000px;

float:left;
    padding: 10px;
}



/* コンテンツエリアの位置を調整 */
#container {
    margin-top: 80px; /* ナビゲーションの高さ分だけ下にスペースを作る */
}

/* もしナビゲーションが下に重ならない場合、その他の要素に対して上に詰めないように設定 */
#header, #content, #footer {
    margin-top: 0;
}


@media screen and (max-width: 768px) {
    #navigation {
                color: red !important;
;
    }

    #navigation a {
                color: red !important;

    }
}

/* 以下ハンバーガー */


@media screen and (max-width: 768px) {
    #navigation {
        display: none !important;
    }
}



/* ハンバーガーボタンはスマホだけ表示 */
.hamburger,
nav.globalMenuSp {
    display: none;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}

/* スマホの時だけ表示 */
@media screen and (max-width: 768px) {
    .hamburger,
    nav.globalMenuSp {
        display: block;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

    }
/*　ハンバーガーメニューボタン　*/
.hamburger {
  display : block;
  position: fixed;
  z-index : 3;
  right : 20px;
  top   : 20px;
  width : 42px;
  height: 42px;
  cursor: pointer;
  text-align: center;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}
.hamburger span {
  display : block;
  position: absolute;
  width   : 30px;
  height  : 2px ;
  left    : 6px;
  background : #BBBBBB;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition   : 0.3s ease-in-out;
  transition        : 0.3s ease-in-out;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}
}



.hamburger span:nth-child(1) {
  top: 10px;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}
.hamburger span:nth-child(2) {
  top: 20px;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}
.hamburger span:nth-child(3) {
  top: 30px;
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}

/* スマホメニューを開いてる時のボタン */
.hamburger.active span:nth-child(1) {
  top : 16px;
  left: 6px;
  background :#fff;
  -webkit-transform: rotate(-45deg);
  -moz-transform   : rotate(-45deg);
  transform        : rotate(-45deg);
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}

.hamburger.active span:nth-child(2),
.hamburger.active span:nth-child(3) {
  top: 16px;
  background :#fff;
  -webkit-transform: rotate(45deg);
  -moz-transform   : rotate(45deg);
  transform        : rotate(45deg);
    z-index: 9999;        /* 他のコンテンツの上に表示されるようにする */

}

nav.globalMenuSp {
  position: fixed;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh; /* ←画面全体の高さ */
  background: rgba(71,70,73,0.9); /* ←画面全体の半透明背景 */
  color: #fff;
  text-align: center;
  opacity: 0;
  display: none;
  transition: opacity .6s ease, visibility .6s ease;
  overflow-y: auto; /* ←メニュー項目が増えた場合のスクロール防止 */
    z-index: 11;        /* 他のコンテンツの上に表示されるようにする */


}

nav.globalMenuSp ul {
  margin: 0 auto;
  padding: 50px 20px; /* ←上下余白調整、任意 */
  max-width: 400px;   /* 必要なら幅制限 */
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}

nav.globalMenuSp ul li {
  list-style-type: none;
  padding: 0;
  width: 100%;
  transition: .4s all;
}
nav.globalMenuSp ul li:last-child {
  padding-bottom: 0;
}
nav.globalMenuSp ul li:hover{
  background :#ddd;
}

nav.globalMenuSp ul li a {
  display: block;
  color: #fff;
  padding: 1em 0;
  text-decoration :none;
font-size: 30px; 
}

/* クリックでjQueryで追加・削除 */
nav.globalMenuSp.active {
  opacity: 100;
  display: block;
}

#gradation {

backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px); /* Safari対応 */
    position: fixed;      /* ナビゲーションを固定 */
top: 0;
  width: 100vw;  /* ビューポート幅いっぱい */

z-index: 10;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3),rgba(0, 0, 0, 0.3),rgba(0, 0, 0, 0.3),rgba(0, 0, 0, 0.3),rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0));
    clear: both;
    height: 170px;
mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 1) 25%,
    rgba(0, 0, 0, 1) 50%,
    rgba(0, 0, 0, 1) 75%,
    rgba(0, 0, 0, 0) 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 1) 25%,
    rgba(0, 0, 0, 1) 50%,
    rgba(0, 0, 0, 1) 75%,
    rgba(0, 0, 0, 0) 100%
  );
}

  /* 以下アニメーション */
.block-wrapper {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.block-wrappercolumn {
  display: flex;
  flex-direction: column; /* ←これが重要！縦並びにする */
  align-items: center;     /* 中央揃え（任意） */
  gap: 0;    
}

.block {
  width: 300px;
  height: 300px;
  background-color: #B4A357;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transform: scale(0);
  transition: all 0.6s ease-out;
  border-radius: 50%; /* 円形にする */

}

.block.active {
  opacity: 1;
  transform: scale(1);
}

.square {
max-width: 600px;           /* 最大幅 */
  width: 100%;                /* 画面サイズに合わせて縮む */
  height: 300px;               /* 必要なら高さを自動に */
  background-color: #B4A357;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transform: scale(0);
  transition: all 0.6s ease-out;
  border-radius: 20px;
  padding: 20px;              /* 内容がはみ出さないように余白を調整 */
  box-sizing: border-box;     /* padding を width に含める */

}

.square2 {
width: 300px;           /* 最大幅 */
  height: 300px;               /* 必要なら高さを自動に */
  background-color: #B4A357;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transform: scale(0);
  transition: all 0.6s ease-out;
  border-radius: 20px;
  padding: 20px;              /* 内容がはみ出さないように余白を調整 */
  box-sizing: border-box;     /* padding を width に含める */

}

.squareleft {
  width: 600px;
  height: 200px;
  background-color: #ffffff;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-top-left-radius: 20px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 00px;
  border-bottom-left-radius: 20px;


}

.squareright {
  width: 600px;
  height: 200px;
  background-color: #B4A357;
  color: #fff;
  display: flex;

  justify-content: center;
  align-items: center;
  border-top-left-radius: 00px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
  border-bottom-left-radius: 0px;


}

.square.active {
  opacity: 1;
  transform: scale(1);
}



.square2.active {
  opacity: 1;
  transform: scale(1);
}



  /* テキストアニメーション */
p.effect {
    margin: 0;
    text-align: center;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.04rem;
}
p.effect span {
    display: inline-block;
    position: relative;
}
p.effect span,
p.effect span::after {
  animation-delay: var(--animation-delay, 2s); /* アニメーションの開始タイミング */
  animation-iteration-count: var(--iterations, 1); /* 再生される回数 */
  animation-duration: var(--duration, 800ms); /* 完了するまでの所要時間 */
  animation-fill-mode: both; /* 実行の前後 */
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1); /* タイミングの指定 */
}

p.effecp {
    margin: 0;
    text-align: center;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.04rem;
}
p.effecp span {
    display: inline-block;
    position: relative;
}
p.effecp span,
p.effecp span::after {
  animation-delay: var(--animation-delay, 2s); /* アニメーションの開始タイミング */
  animation-iteration-count: var(--iterations, 1); /* 再生される回数 */
  animation-duration: var(--duration, 800ms); /* 完了するまでの所要時間 */
  animation-fill-mode: both; /* 実行の前後 */
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1); /* タイミングの指定 */
}

p.effect.scroll-in span {
  --animation-delay: var(--delay, 0);
  --animation-duration: var(--duration, 800ms);
  --animation-iterations: var(--iterations, 1);
  position: relative;
  animation-name: clip-text;
  white-space: nowrap;
}
p.effect.scroll-in span::after {
  content: "";
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ffffff;
  transform: scaleX(0);
  transform-origin: 0 50%;
  pointer-events: none;
  animation-name: text-revealer;
}

p.effecp.green-in span {
  --animation-delay: var(--delay, 0);
  --animation-duration: var(--duration, 800ms);
  --animation-iterations: var(--iterations, 1);
  position: relative;
  animation-name: clip-text;
  white-space: nowrap;
}
p.effecp.green-in span::after {
  content: "";
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #b4a355;
  transform: scaleX(0);
  transform-origin: 0 50%;
  pointer-events: none;
  animation-name: text-revealer;
}

@keyframes clip-text {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes text-revealer {
  0%, 50% {
    transform-origin: 0 50%;
  }
  60%, 100% {
    transform-origin: 100% 50%;
  }
  60% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
  }
}

/* アニメーション初期状態（非表示・下にずらす） */
.effect {
  opacity: 0;
  transform: translateY(0px); /* 下にずらす。好みに応じて調整可 */
  transition: all 0.8s ease-out; /* フェードと移動を滑らかに */
}

/* スクロールで画面内に入ったらアニメーション開始（表示状態） */
.effect.scroll-in {
  opacity: 1;
  transform: translateY(0); /* 元の位置へ */
}

/* スクロールで画面内に入ったらアニメーション開始（表示状態） */
.effect.green-in {
  opacity: 1;
  transform: translateY(0); /* 元の位置へ */
}

/* 三角形*/


.triangle {
  background: #B4A357;
  height: calc(tan(60deg) * 60px / 2);
  width: 60px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);

}