@charset "utf-8";

:root {
  --base-color: #ffffff;
  --main-color: #2ebee6;
  --accent-color: #ff9e67;
  --text-color: #333333;
  --base-font-family:
    "Noto Sans CJK JP", "Noto Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", Meiryo, sans-serif;
  /* SNSカラー */
  --sns-twitter: #1d9bf0;
  --sns-facebook: #1877f2;
  --sns-mastodon: #5358f2;
  --sns-hatena: #00a4de;
  --sns-line: #06c755;
  --sns-pocket: #ed4255;
  --sns-instagram: #833ab4;
  --sns-linkedin: #0077b5;
  --sns-github: #333333;
  /* フォントサイズ
   計算式 (16px + (18px - 16px) * ((100vw - 320px) / (1440 - 320)))
   calc([最小値] + ([最大値] - [最小値]) * ((100vw - [最小画面幅]) / ([最大画面幅] - [最小画面幅])));
  */
  --default-font-size: calc(16px + (18 - 16) * ((100vw - 320px) / (1600 - 320)));
}

body {
  font-size: var(--default-font-size);
  font-family: var(--base-font-family);
  color: var(--text-color);
}

a {
  color: var(--text-color);
  text-decoration: none;
  transition: All 0.2s ease;
}

a:hover {
  text-decoration: underline;
}

/* --------------------------------- トップ */

header .navbar-brand {
  font-weight: bolder;
}

/* Carousel */
.carousel-item {
  /* 画面の高さの30%に設定 */
  height: 40vh;
}

.carousel-caption {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.carousel-caption h2 {
  font-size: 2.5rem;
  color: white;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.carousel-caption p {
  font-size: 1.2rem;
  color: white;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

@media (max-width: 768px) {
  .carousel-item {
    /* モバイルでは画面の高さの20%に設定 */
    height: 18vh;
  }
}

/* イントロセクション */
.intro p,
.meeting p,
.recent p,
.content p,
.stork-result p,
.content li {
  text-align: justify;
  font-feature-settings: "palt";
  text-justify: inter-character;
  word-break: break-all;
  overflow-wrap: break-word;
  line-height: 1.6;
}

.meeting a,
.history a {
  text-decoration: none;
}

.history li:hover {
  border-left: 2px solid var(--text-color);
}

/* 新着カード */
.recent .card {
  transition: all 0.2s ease-in-out;
}

.recent .card:hover {
  box-shadow: 0 0 0.625rem rgba(0, 0, 0, 0.3);
}

.recent .card-img-top {
  object-fit: cover;
  width: 100%;
  max-height: 20vh;
}

/* --------------------------------- ページ */

/* ページカバーイメージの高さ */

.hero-image img {
  max-height: 15vh;
}

@media (max-width: 768px) {
  .hero-image img {
    max-height: 10vh;
  }
}

/* ページ見出し */
.page h1,
.page h2,
.page h3,
.page h4,
.page h5,
.page h6,
.article h1,
.article h2,
.article h3,
.article h4,
.article h5,
.article h6 {
  font-weight: bolder;
  font-feature-settings: "palt";
  line-height: 1.6;
  margin-top: 2.5rem;
}

.page h1,
.article h1 {
  font-size: 2.5rem;
  font-weight: bolder;
}

.page h2,
.article h2 {
  font-size: 1.5rem;
  font-weight: bolder;
}

.page h3,
.article h3 {
  font-size: 1.25rem;
}

.page h4,
.article h4 {
  font-size: 1.25rem;
}

.page h5,
.article h5 {
  font-size: 1.125rem;
}

.page h6,
.article h6 {
  font-size: 1rem;
}

/* ページ内の画像はレスポンシブ */
.page img,
.article img {
  max-width: 100%;
  height: auto;
  margin: 0.5rem;
}

.page strong,
.article strong {
  background: linear-gradient(transparent 60%, #e6ee9c 0%);
}

.page blockquote,
.article blockquote {
  position: relative;
  margin: 1.5em 0 1em 1em;
  padding: 2em 2em 1em 3em;
  color: #666;
  background-color: #fff;
  border: 2px solid #ccc;
  border-radius: 7px;
}

.page blockquote::before,
.article blockquote::before {
  font-family: "bootstrap-icons";
  content: "\F6B0";
  color: #999;
  background-color: #fff;
  font-size: 2.5rem;
  font-weight: bold;
  position: absolute;
  top: -0.4em;
  left: -0.4em;
}

.page q,
.article q {
  font-style: italic;
  background: #e0f2f1;
  margin: 0 0.2em;
}

.page ul,
.page ol,
.article ul,
.article ol {
  margin-bottom: 0.3rem;
}

.page ul li,
.page ol li,
.article ul li,
.article ol li {
  margin: 0.3rem;
}

.page dd,
.article dd {
  margin-left: 2rem;
}

.page pre,
.article pre {
  font-family: Monaco, Consolas, "Courier New", Courier, monospace, sans-serif;
  font-size: 0.9rem;
  color: #fff;
  background-color: #333;
  margin: 2em 1em;
  padding: 1em;
  white-space: pre-wrap;
}

.page table,
.article table {
  margin: 1em auto;
  border-collapse: collapse;
  border: 2px solid #ccc;
  max-width: 100%;
  font-size: 0.9rem;
}

.page th,
.article th {
  border: 1px solid #ccc;
  padding: 0.8em 0.5em;
  background: #eee;
  color: #666;
  white-space: nowrap;
  text-align: center;
}

.page td,
.article td {
  border: 1px solid #ccc;
  padding: 0.8em 0.5em;
}

/* --------------------------------- フッター */

.footer {
  font-size: var(--font-14px);
}

/* --------------------------------- 上に戻る */

/* 上に戻るボタン */
#backToTop {
  opacity: 0;
  position: fixed;
  bottom: 20px;
  right: 20px;
  padding: 5px 10px;
  background-color: var(--main-color);
  color: #ffffff;
  border: none;
  border-radius: 5px;
  transition: opacity 0.3s;
}

#backToTop.is_active {
  opacity: 0.7;
}
