/* styles.css */

/* リンクのリセット */
h1, h2, h3, h4, h5 {
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-size: 100%;
  line-height: 1;
}

/* ベース設定 */
body {
  margin: 0;
  font-family: Arial, sans-serif;
}

/* メインビジュアル共通 */
.main-visual {
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-top: 0;
}

.concept-section {
  padding: 5rem 1rem;
  margin-bottom: 0;
  text-align: center;
  background-color: #f2f6fc;
  display: block;
margin-bottom: -1px; /* ←追加：margin collapse 対策 */
}

.concept-box {
  display: inline-block;
  padding: 2rem 2rem 3rem 2rem;
  font-size: 5rem;
  font-weight: bold;
  color: #00367f;
  font-family: 'Noto Sans JP', sans-serif;
  position: relative;
  background-repeat: no-repeat;
  background-position: top, right, bottom, left;
}

.concept-box p {
  margin: 0;
  line-height: 1.5;
  position: relative;
}


*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

.btn-engine-start,
.btn-engine-start *,
.btn-engine-start *::before,
.btn-engine-start *::after {
  box-sizing: border-box;
}

.btn,
a.btn,
button.btn {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

/* 外側：背景セクション */
.btn-engine-start-section {
  width: 100%;
  padding: 80px 0; /* 背景に高さを持たせる */
  margin: 0px auto;
  background: url("img/engine.jpg") no-repeat center center;
  background-size: cover;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 内側：これまで通りの円形ボタン */
.btn-engine-start {
  position: relative;
  width: 145px;
  height: 145px;
  font-size: 62.5%; 
  border-radius: 50%;
  background: -webkit-linear-gradient(
    315deg,
    white 0%,
    white 22%,
    #ddd 44%,
    #a5a5a5 52%,
    black 100%
  );
  background: linear-gradient(
    135deg,
    white 0%,
    white 22%,
    #ddd 44%,
    #a5a5a5 52%,
    black 100%
  );
  -webkit-box-shadow: 0 3px 12px rgba(0, 0, 0, 0.3);
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.3);
}

.btn-engine-start:before {
  position: absolute;
  top: 7.5px;
  left: 7.5px;
  display: block;
  width: 130px;
  height: 130px;
  content: "";
  border-radius: 50%;
  background: #515151;
  background: -webkit-linear-gradient(
    -45deg,
    #515151 0%,
    #515151 19%,
    #ededed 50%,
    white 77%,
    white 100%
  );
  background: -webkit-linear-gradient(
    315deg,
    #515151 0%,
    #515151 19%,
    #ededed 50%,
    white 77%,
    white 100%
  );
  background: linear-gradient(
    135deg,
    #515151 0%,
    #515151 19%,
    #ededed 50%,
    white 77%,
    white 100%
  );
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#515151', endColorstr='#ffffff', GradientType=1);
}

.btn-engine-start:hover a.btn-engine-start-in:before {
  top: 20px;
  background: #ffd700; /* 黄色 (ゴールド) */
  -webkit-box-shadow: 0 0 6px rgba(255, 0, 0, 0.6);
  box-shadow: 0 0 6px rgba(255, 0, 0, 0.6);
}

.btn-engine-start:hover a.btn-engine-start-in {
  padding: 37px 0 0;
  color: #ffcccc; /* 発光時は淡い赤系 */
  -webkit-box-shadow: inset 0 1px 1px black, 0 1px 2px rgba(0, 0, 0, 0.5);
  box-shadow: inset 0 1px 1px black, 0 1px 2px rgba(0, 0, 0, 0.5);
  text-shadow: 0 0 6px rgba(255, 0, 0, 0.6), 0 0 6px rgba(255, 0, 0, 0.6);
}

a.btn-engine-start-in {
  font-size: 14px;
  line-height: 1.2;
  position: absolute;
  top: 18px;
  left: 18px;
  width: 109px;
  height: 109px;
  padding: 35px 0 0;
  color: #fff;
  border-radius: 50%;
  background: #b22222;
  background: -webkit-linear-gradient(
    135deg,
    #b22222 0%,   /* ファイアブリック */
    #8b0000 46%,  /* ダークレッド */
    #660000 70%,  /* 深い赤 */
    #3b0000 100%  /* ワイン系の黒赤 */
  );
  background: linear-gradient(
    135deg,
    #b22222 0%,
    #8b0000 46%,
    #660000 70%,
    #3b0000 100%
  );
  -webkit-box-shadow: inset 0 2px 2px white, 0 2px 4px rgba(0, 0, 0, 0.5);
  box-shadow: inset 0 2px 2px white, 0 2px 4px rgba(0, 0, 0, 0.5);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b22222', endColorstr='#3b0000', GradientType=1);
}

a.btn-engine-start-in:before {
  position: absolute;
  top: 18px;
  left: calc(50% - 13px);
  width: 26px;
  height: 8px;
  content: "";
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  border-radius: 10px;
  background: #550000; /* インジケータバーも赤系に */
}

a.btn-engine-start-in span {
  font-size: 10px;
}

/* お問い合わせセクション全体 */
.contact-section {
  width: 100%;
  background-color: #f0f0f0; /* グレー背景 */
  padding: 60px 0;           /* 上下余白を広めに */
  text-align: center;        /* 中央寄せ */
}

/* 提示いただいたボタンデザイン */
.button-1 {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 250px;
  margin: 0 auto;
  padding: 1em 2em;
  overflow: hidden;
  border: none;
  border-radius: 5px;
  background-color: #d01b1b;
  color: #fff;
  font-weight: 600;
  font-size: 1em;
  text-decoration: none;   /* aタグなので下線を消す */
  cursor: pointer;
}

.button-1::before {
  display: block;
  position: absolute;
  top: -50%;
  left: -30%;
  transform: rotate(30deg);
  width: 70px;
  height: 100px;
  content: '';
  background-image: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 1) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  background-image: -webkit-gradient(
    linear,
    left bottom,
    right bottom,
    color-stop(0%, rgba(255, 255, 255, 0)),
    color-stop(50%, rgba(255, 255, 255, 1)),
    color-stop(100%, rgba(255, 255, 255, 0))
  );
  animation: animation-button-1 2s infinite linear;
}

@keyframes animation-button-1 {
  17% {
    left: 120%;
  }
  100% {
    left: 120%;
  }
}

.button-1::after {
  transform: rotate(45deg);
  width: 5px;
  height: 5px;
  margin-left: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  content: '';
}

.button-1:hover {
  background-color: #c00b0b;
}

/* ENGINE SOUND ボタンのパルス演出 */
.btn-engine-start::before,
.btn-engine-start::after {
  content: none !important;
  animation: none !important;
  border: none !important;
}

/* 内側の赤ボタンの周りにだけ波紋を出す（2本分） */
a.btn-engine-start-in {
  position: absolute;   /* 既存 */
  overflow: visible;    /* はみ出すリングを見せる */
  z-index: 2;           /* テキストより下/上はお好みで */
}

/* 1本目のリング：:after を使用 */
a.btn-engine-start-in::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  margin: auto;
  width: 109px;                /* 赤ボタンと同サイズ */
  height: 109px;
  border: 2px solid rgba(255, 0, 0, 0.6);
  border-radius: 50%;
  pointer-events: none;
  z-index: 3;                  /* 赤い面より上に出す */
  animation: pulsate 1.5s linear infinite;
}

/* 2本目のリング：中の <span> をリングにする */
a.btn-engine-start-in > span {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  margin: auto;
  width: 109px;
  height: 109px;
  border: 3px solid rgba(255, 0, 0, 0.6);
  border-radius: 50%;
  pointer-events: none;
  z-index: 3;
  animation: pulsate 1.5s linear infinite;
  animation-delay: 1s;         /* ずらして交互に */
  /* テキストとしての “span” は使っていないので、文字は出さない */
  font-size: 0; line-height: 0;
}

/* 波紋アニメーションの初期透明状態 */
a.btn-engine-start-in::after,
a.btn-engine-start-in > span {
  opacity: 0; /* 初期は透明 */
  border-color: rgba(255, 0, 0, 0); /* 初期は赤を消す */
}

/* 波紋アニメーション */
@keyframes pulsate {
  0% {
    transform: scale(1);
    opacity: 0.2;
    border-color: rgba(255, 0, 0, 0.2);
    box-shadow: 0 0 10px rgba(255, 0, 0, 0.2);   /* 弱いぼかし */
  }
  50% {
    transform: scale(1.6);
    opacity: 0.85;
    border-color: rgba(255, 0, 0, 0.85);
    box-shadow: 0 0 30px rgba(255, 0, 0, 0.85);  /* 中盤で強めに発光 */
  }
  100% {
    transform: scale(2.7);
    opacity: 0;
    border-color: rgba(255, 0, 0, 0);
    box-shadow: 0 0 30px rgba(255, 0, 0, 0);    /* 消える時はぼかしもゼロ */
  }
}



/* フッター全体 */
.site-footer {
  width: 100%;
  min-height: 200px; /* 高さはお好みで */
  background: linear-gradient(to bottom, #000000, #b22222); /* 黒→赤のグラデーション */
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 60px 0px 20px 0px;
  color: #fff;
}

/* フッター内コンテンツ中央寄せ */
.footer-content {
  text-align: center;
}

/* ロゴ */
.footer-logo {
  max-width: 125px;   /* ロゴの大きさは調整 */
  height: auto;
  margin-bottom: 10px;
}

/* コピーライト */
.footer-copy {
  font-size: 14px;
  color: #FFF;
}



/* PC表示 */
@media (min-width: 1025px) {

  .main-visual {
    width: 100%;
aspect-ratio: 15 / 7;
    background-image: url('img/main-visual-pc.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;  
}

  .concept-box {
    --x-gradient: linear-gradient(90deg, #00367f 0 50px, transparent 0 calc(100% - 50px), #00367f calc(100% - 50px));
    --y-gradient: linear-gradient(#00367f 0 50px, transparent 0 calc(100% - 50px), #00367f calc(100% - 50px));
    background-image: var(--x-gradient), var(--y-gradient), var(--x-gradient), var(--y-gradient);
    background-size: 100% 3px, 3px 100%, 100% 3px, 3px 100%;
  }

}

/* タブレット表示 */
@media (min-width: 769px) and (max-width: 1024px) {
  /* ハンバーガーメニューを表示 */
  .menu-toggle {
    display: block;
  }

  .main-visual {
  aspect-ratio: 15 / 7;
    background-image: url('img/main-visual-tab.jpg');
    background-size: cover;
    background-position: center;
  }

  .concept-box {
    --x-gradient: linear-gradient(90deg, #00367f 0 20px, transparent 0 calc(100% - 20px), #00367f calc(100% - 20px));
    --y-gradient: linear-gradient(#00367f 0 20px, transparent 0 calc(100% - 20px), #00367f calc(100% - 20px));
    background-image: var(--x-gradient), var(--y-gradient), var(--x-gradient), var(--y-gradient);
    background-size: 100% 3px, 3px 100%, 100% 3px, 3px 100%;
    padding: 2rem 2rem 2.5rem 2rem;
    font-size: 3rem;
 }

}



/* モバイル表示 */
@media (max-width: 768px) {

  .main-visual {
  aspect-ratio: 9 / 16;
    background-image: url('img/main-visual-sp.jpg');
  }

  .concept-box {
    --x-gradient: linear-gradient(90deg, #00367f 0 20px, transparent 0 calc(100% - 20px), #00367f calc(100% - 20px));
    --y-gradient: linear-gradient(#00367f 0 20px, transparent 0 calc(100% - 20px), #00367f calc(100% - 20px));
    background-image: var(--x-gradient), var(--y-gradient), var(--x-gradient), var(--y-gradient);
    background-size: 100% 3px, 3px 100%, 100% 3px, 3px 100%;
    padding: 1rem 1rem;
    font-size: 2.5rem;
 }


}