/*
 * common.css
 * コンポーネント以外で使用する共通スタイル
 */
html {
  overflow-y: scroll;
  scroll-behavior: smooth;
}

button {
  /* ボタンリセット */
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

html._noSmooth {
  scroll-behavior: auto;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  width: 100%;
  word-wrap: break-word;
  overflow-wrap: break-word;
  color: rgba(0, 0, 0, 1);
}

.Center {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25rem;
  max-width: 77.5rem;
  position: relative;
}
.s .Center {
  padding: 0 5.333vw;
}

img {
  width: 100%;
}

a {
  cursor: pointer;
  transition: 0.2s;
  color: inherit;
  text-decoration: none;
}

a:hover {
  cursor: pointer;
  opacity: 0.7;
}

/* 背景アニメーション用 */

@keyframes moveRotate {
  0% {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.1);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}

@keyframes moveVertical {
  0% {
    transform: translateY(0%);
  }
  50% {
    transform: translateY(50%);
  }
  100% {
    transform: translateY(100%);
  }
}

._rippleBg {
  /* radial-gradient用CSS変数 初期値 */
  --circle-size: 90%;
  --base-color1: #003c8f;
  --base-color2: #5696f0;
  --color1: #4384e0ad;
  --color2: #003c8fe6;
  --color3: #56b6e973;
  --blend: hard-light;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  overflow: hidden;
  /* ベースの背景色 */
  background: linear-gradient(90deg, var(--base-color1), var(--base-color2));
}

._rippleBg .rippleItem {
  position: absolute;
  border-radius: 50%;
  width: var(--circle-size);
  height: var(--circle-size);
  mix-blend-mode: var(--blend);
  filter: blur(50px);
}

._rippleBg .rippleItem._num1 {
  left: 0;
  top: 0;
  background: radial-gradient(var(--color3));
  animation: moveRotate 15s ease infinite;
  transform-origin: calc(50% - 200px);
}

._rippleBg .rippleItem._num2 {
  left: 0;
  bottom: 0;
  background: radial-gradient(var(--color2));
  animation: moveRotate 20s ease infinite alternate-reverse;
  transform-origin: 50%;
}

._rippleBg .rippleItem._num3 {
  right: 0;
  top: 0;
  background: radial-gradient(var(--color1));
  animation: moveRotate 15s ease infinite;
  transform-origin: calc(50% + 200px);
}

#wpadminbar {
  background-color: rgb(0, 0, 0, 0.5);
  /* 下部で固定する */
  position: fixed !important;
  left: 0 !important;
  top: auto !important;
  bottom: 0 !important;
}

/* 同意バナープラグイン */

#cookie-notice .cookie-notice-container {
  display: flex;
  flex-direction: column;
}

.cookie-settings-revoke {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ヘッダー余白 */
main {
  margin-top: 12.5rem /* 200px (基準16px) */;
}

.s main {
  margin-top: 6.25rem /* 100px (基準16px) */;
}

main._bgWhite {
  margin-top: 0;
  padding-top: 12.5rem /* 200px (基準16px) */;
}

main._bgSingle {
  margin-top: 0;
  padding-top: 12.5rem /* 200px (基準16px) */;
}

.s main._bgSingle {
  margin-top: 0;
  padding-top: 5rem /* 80px (基準16px) */;
}

.s main._bgWhite {
  margin-top: 0;
  padding-top: 6.25rem /* 100px (基準16px) */;
}

main.TopPage {
  margin-top: 0;
}

.cn-text-container {
  display: block;
  max-width: 40.625rem /* 650px (基準16px) */;
  margin: 0 auto;
  text-align: center;
}

.s .cn-text-container {
  text-align: left;
}

.cn-text-container a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cn-buttons-container {
  display: block;
  margin-top: 0.625rem /* 10px (基準16px) */;
}
