body {
    font-family: "Hiragino Kaku Gothic Pro", "Meiryo", "Open Sans", "PingFang SC", "Microsoft YaHei", sans-serif; /* Clean sans-serif font for body text */
    background-color: #f4f4f4; /* Light grey background */
    color: #333; /* Dark text for readability */
    margin: 0;
    padding: 0;
}

h2.title {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #e74c3c; /* Red color for headings */
    text-transform: uppercase;
}

p {
    font-size: 16px;
    line-height: 1.7;
    color: #333;
    margin-bottom: 20px;
}

a {
    text-decoration: none;
}

/* Navbar Styles */

.navbar {
    background-color: #000; /* Black navbar */
    padding: 15px 30px;
}

.navbar .navbar-brand {
    display: flex;
    align-items: center;
}

.navbar .navbar-brand img {
    height: 40px;
    margin-right: 10px;
}

.navbar .navbar-brand .title {
    font-family: 'Merriweather', serif; /* Serif font for the brand title */
    font-size: 24px;
    color: #fff; /* White text for contrast */
	text-align: center;
}

.navbar-nav .nav-link {
    color: #bdc3c7; /* Light grey links */
    font-size: 16px;
    transition: color 0.3s ease;
}

.navbar-nav .nav-link:hover {
    color: #e74c3c; /* Red color on hover */
}

.navbar-nav .nav-item.active .nav-link {
    color: #fff;
    background-color: #e74c3c; /* Red background for active item */
}

.navbar-toggler-icon {
    width: 30px;  /* Adjust the width */
    height: 30px; /* Adjust the height */
    background-image: url('/common/image/menu_icon.png'); /* Replace with the path to your image */
    background-size: contain;  /* Makes sure the image is contained within the span */
    background-repeat: no-repeat; /* Prevents the image from repeating */
}

/* Sidebar Styles */
.col-md-4 {
    background-color: #fff;
    padding: 20px;
    border-right: 1px solid #ecf0f1;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
}

.col-md-4 .nav-link {
    font-size: 16px;
    padding: 8px 0;
    color: #e74c3c; /* Red color for sidebar links */
    transition: color 0.3s ease;
}

.col-md-4 .nav-link:hover {
    color: #c0392b; /* Darker red on hover */
}

/* Content Styles */
.container {
    margin-top: 40px;
    padding-left: 30px;
    padding-right: 30px;
}

article {
    background-color: #fff;
    border-radius: 8px;
    padding: 25px;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
    margin-bottom: 40px;
}

article h2 {
    font-size: 28px;
    font-weight: bold;
    color: #e74c3c; /* Red color for article headings */
    margin-bottom: 20px;
}

article p {
    font-size: 16px;
    color: #333;
    margin-bottom: 20px;
}

article hr {
    margin: 25px 0;
    border-top: 2px solid #e74c3c; /* Red border for separation */
}

/* Footer Styles */
.navbar.fixed-bottom {
    background-color: #000;
    border-top: 2px solid #e74c3c; /* Red top border */
    padding: 15px 0;
}

.navbar.fixed-bottom .navbar-nav .nav-link {
    color: #bdc3c7;
    font-size: 16px;
}

.navbar.fixed-bottom .navbar-nav .nav-link:hover {
    color: #fff;
}

.navbar.fixed-bottom .navbar-nav .nav-item.active .nav-link {
    color: #fff;
    background-color: #e74c3c;
}

/* Media Queries for Responsiveness */
@media (max-width: 767px) {
    .col-md-4 {
        display: none; /* Hide sidebar on smaller screens */
    }

    .container {
        padding-left: 15px;
        padding-right: 15px;
    }

    article {
        margin-bottom: 20px;
    }

    .navbar .navbar-brand .title {
        font-size: 18px;
    }

    .navbar-nav .nav-link {
        font-size: 14px;
    }
}

.responsive-image {
  max-width: 100%;
  height: auto;
}

.header {
  background-image: url('/common/image/keyboad.jpg'); /* 画像のURLを指定 */
  background-size: cover;        /* 画像をヘッダー全体に広げる */
  background-position: center;   /* 画像を中央に配置 */
  background-repeat: no-repeat;  /* 画像の繰り返しを防止 */
  height: 300px;                 /* ヘッダーの高さを指定（必要に応じて調整） */
  display: flex;
  flex-direction: column;
  justify-content: center;      /* 垂直方向にコンテンツを中央揃え */
  align-items: center;          /* 水平方向にコンテンツを中央揃え */
  color: white;                 /* テキストの色 */
  text-align: center;           /* テキストを中央揃え */
}

.header h1 {
  margin: 0;                     /* タイトルのマージンを削除 */
  font-size: 2.5rem;             /* フォントサイズを調整 */
}

.header nav ul {
  list-style-type: none;         /* リストスタイルを削除 */
  padding: 0;
}

.header nav ul li {
  display: inline-block;         /* リストアイテムを横並びに */
  margin: 0 15px;                /* アイテム間のマージン */
}

.header nav ul li a {
  color: white;                  /* リンクの色 */
  text-decoration: none;         /* リンクの下線を削除 */
  font-size: 1.2rem;             /* リンクのフォントサイズ */
}

.header nav ul li a:hover {
  text-decoration: underline;    /* ホバー時に下線を表示 */
}

.header {
  background-image: url('/common/image/keyboad.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 250px;            /* ヘッダーの最小高さを設定 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: white;
  text-align: center;
}

.header {
  position: relative;
  background-image: url('/common/image/keyboad.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 300px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  text-align: center;
}

.header::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4); /* 黒いオーバーレイ（透明度 40%） */
  z-index: 1;
}

.header nav {
  position: relative;
  z-index: 5; /* オーバーレイの上にタイトルを表示 */
  width: 100%;
}

.header nav.navbar.bg-dark  {
  position: absolute;
  top: 0;
  left: 0;
}

.header h1 {
  position: relative;
  font-family: 'Merriweather', serif;
  z-index: 3; /* オーバーレイの上にタイトルを表示 */
  padding-top: 35px;
  font-size: 38px;
}

.navbar-nav {
  position: sticky;
  top: 20px;
  z-index: 1000;
}

#navbars {
    z-index: 9999;

}