:root {
    --background-color: #f2f8f8;
    --font-color: #304060;
    --border-color: #66ccdd;
}

body {
    background-color         : var(--background-color);  /* 背景の色 */
    font-size                : 13px;       /* 文字サイズ */
    color                    : var(--font-color);  /* 文字の色 */
    display: flex;
    justify-content: center;
    align-items: center;
    margin                   : 5px;	       /* 上下左右からのスペース */
	-webkit-text-size-adjust : 100%;       /* 横にした時の文字サイズ自動調整 */
	-moz-text-size-adjust    : 100%;       /* Chrome,Safari */
	-ms-text-size-adjust     : 100%;       /* EgdeMobile */
	text-size-adjust         : 100%;       /* firefox */
    font-family              : 'Yu Gothic', 'Hiragino Kaku Gothic Pro', Meiryo, Arial, sans-serif;	/* フォント */
}
#header {
    width: 80%;
    height: 100%;
    text-align: center;
    line-height: 40px;
    font-size: 18px;
}
@media (max-width: 768px) {
    /* タブレット用のスタイル */
    #header {
        width: 100%;
        font-size: 14px;
    }
}
@media (max-width: 480px) {
    /* スマートフォン用のスタイル */
    #header {
        width: 100%;
        font-size: 12px;
    }
}
/* リンク関係 */
a:link{color:#304060;}	   /* リンクの色 */
a:visited{color:#304060;} /* クリック済みリンクの色 */
a:hover{color:#888888;}   /* カーソル選択時のリンクの色 */
a:active{color:#888888;}  /* リンクのアクティブ時の色(クリックして離すまで) */
a{text-decoration:none;}    /* リンクの下線を無し */
p {
	line-height: 1.5; /* 1行の高さ */
}
#main {
    width: 80%;
    height: 100%;
    text-align: center;
}
@media (max-width: 768px) {
    /* タブレット用のスタイル */
    #main {
        width: 100%;
    }
}
@media (max-width: 480px) {
    /* スマートフォン用のスタイル */
    #main {
        width: 100%;
    }
}
#main h1 {
	position      : relative;	             /* 相対位置 */
  	padding       : 0.3em 0 0.3em 0; /* 上 右 下 左アイコン分のスペース*/
  	line-height   : 1.6;                     /* 行高*/
  	color         : var(--font-color);               /* 文字色*/
  	border-top    : dotted 1px var(--border-color);    /* 上線 */
  	border-bottom : dotted 1px var(--border-color);    /* 下線 */
  	background    : var(--background-color);               /* 背景色 */
    font-size     : 20px;
}
#main h2 {
    position: relative;
    display: inline-block;
    padding: 0 55px;
}
  
#main h2:before, h2:after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 45px;
    height: 2px;
    border-top: solid 1px black;
    border-bottom: solid 1px black;
}
#main h2:before {
    left:0;
}
#main h2:after {
    right: 0;
}
@media (max-width: 768px) {
    /* タブレット用のスタイル */
    #main h1 {
        width: 100%;
        font-size: 16px;
    }
}
@media (max-width: 480px) {
    /* スマートフォン用のスタイル */
    #main h1 {
        width: 100%;
        font-size: 16px;
    }
}
.container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    width: 80%;
}
.toggleCheckboxesContainer  {
    text-align: center;
    width: 80%;
}
.checkboxes {
    width: 100%;
    margin: 20px 0 20px 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 1行に3つの列を作成 */
    gap: 10px; /* チェックボックス間の余白を設定 */
}
.red {
    color: #d41948;
}
@media (max-width: 768px) {
    /* タブレット用のスタイル */
    .checkboxes {
        width: 90%;
        grid-template-columns: repeat(1, 1fr); /* 1行に3つの列を作成 */
    }
}
@media (max-width: 480px) {
    /* スマートフォン用のスタイル */
    .checkboxes {
        width: 90%;
        grid-template-columns: repeat(1, 1fr); /* 1行に3つの列を作成 */
    }
}
.textinput {
    text-align: center;
    margin-bottom: 20px;
    width: 90%;
}
.search-result {
    text-align: center;
    margin-bottom: 20px;
    width: 90%;
}
.table-container {
    display: flex; /* フレックスに統一 */
    justify-content: center;
    align-items: center;
    width: 100%;
}
table {
    border-collapse: collapse;
    width: 60%;
    table-layout: fixed;
}
@media (max-width: 768px) {
    /* タブレット用のスタイル */
    table {
        width: 100%;
    }
}
@media (max-width: 480px) {
    /* スマートフォン用のスタイル */
    table {
        width: 100%;
    }
}
table, th, td {
    border: 1px solid black;
}
th, td {
    padding: 10px;
    text-align: center;
}
.hidden {
    display: none;
}
img {
    max-width: 100%; /* 親要素の幅に応じて調整 */
    height: auto;    /* アスペクト比を維持 */
    display: block;  /* 画像下の余白を防ぐ */
    border-radius: 8px; /* 丸みを追加（オプション） */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 軽い影を追加 */
    margin: auto;
}