@charset "UTF-8"; html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
}

article {
    width: 100%;
    max-width: 800px;
    margin: 0px auto;
    padding: 80px 0 25px;
}

/* h1 {
    font-size: 22px;
    text-align: center;
    margin: 0 0 20px;
} */
h1 {
  position: relative;
  padding: 0px 0 21px;
  text-align: center;
  margin: 0 0 40px;
  font-size: 24px;
}

h1:before {
  position: absolute;
  bottom: 0px;
  left: calc(50% - 30px);
  width: 60px;
  height: 4px;
  content: '';
  border-radius: 2px;
  background: #f00;
}

/* 詳細設定ここから */
.cp_box *, .cp_box *:before, .cp_box *:after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.cp_box {
    position: relative;
    /* border: 1px solid #ccc; */
}

.cp_box label {
    position: absolute;
    z-index: 1;
    bottom: 0;
    width: 100%;
    height: 80px;
    /* グラデーションの高さ */
    cursor: pointer;
    text-align: center;
    /* 以下グラデーションは背景を自身のサイトに合わせて設定してください */
    background: linear-gradient(to bottom, rgba(250, 252, 252, 0) 0%, rgba(250, 252, 252, 0.95) 90%);
}

.cp_box input:checked + label {
    background: inherit;
    /* 開いた時にグラデーションを消す */
}

.cp_box label:after {
    position: absolute;
    z-index: 2;
    bottom: -15px;
    left: 50%;
    content: '▼ 詳細';
    transform: translate(-50%, 0);
    background-color: #ddd;
    font-size: 12px;
    padding: 5px 8px;
    border: 1px solid #bbb;
    font-weight: bold;
}

.cp_box input {
    display: none;
}

.cp_box .cp_container {
    overflow: hidden;
    height: 170px;
    /* 開く前に見えている部分の高さ */
    transition: all 0.5s;
}

.cp_box input:checked + label {
    /* display: none ; 閉じるボタンを消す場合解放 */
}

.cp_box input:checked + label:after {
    content: '閉じる ▲';
}

.cp_box input:checked ~ .cp_container {
    height: auto;
    /* 閉じるボタンのbottomからの位置 */
    transition: all 0.5s;
}

.kara {
    opacity: 0;
}

/* 詳細設定ここまで */
.SBS {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
}

.SBS .kanjiBox {
    width: 31%;
    margin: 0px 0 25px;
}

table {
    border-collapse: collapse;
    width: 100%;
    font-size: 12px;
    border: 1px solid #ddd;
}

.kanjiBoxImg td {
    width: 50%;
    border-bottom: 1px solid #ddd;
    padding: 0;
}

td {
    padding: 5px;
    vertical-align: top;
}

.kanjiBoxImg td img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

.kanjiBoxImg td:first-of-type {
    border-right: 1px solid #ddd;
}

.kanjiBoxTit td {
    font-size: 14px;
    background-color: #ddd;
    font-weight: bold;
}

.kanjiBoxShitei02 td {
    font-size: 14px;
    color: #f00;
    font-weight: bold;
}

.kanjiBoxShitei03 td {
    text-align: right;
}

.kanjiBoxSample01 td {
    font-size: 14px;
    background-color: #ddd;
    font-weight: bold;
}

navi div {
    margin: 0 0 20px;
}

h2 {
    text-align: center;
    font-size: 36px;
    border-bottom: 1px dotted #ddd;
    margin: 0px 0 30px;
}

h2 span {
    font-size: 16px;
    font-weight: normal;
}

nav {
    width: 100%;
    max-height: 50px;
    max-width: 800px;
    background-color: #000;
    color: #fff;
    opacity: 0.7;
    font-size: 20px;
    position: fixed;
    z-index: 999999;
    transform: translateX(-50%);
    left: 50%;
}

nav a {
    color: #fff;
    text-decoration: none;
}

nav a:hover {
    color: #f00;
}

.SBS03 {
    display: flex;
    align-items: stretch;
}

.SBS03 a {
    display: block;
    padding: 10px 0;
    width: 8%;
    box-sizing: border-box;
    text-align: center;
    border-right: 1px dotted #666;
    font-size: 18px;
}

.SBS03 .pcON {
    margin: 0;
    font-size: 16px;
    text-align: center;
    box-sizing: border-box;
    padding: 10px;
    width: 20%;
    line-height: 1.9;
    border-right: 1px dotted #666;
    border-left: 1px solid #666;
}

nav .spON {
    display: none;
}

.intro {
    /* margin: 0; */
}

footer p {
    max-width: 800px;
    margin: 5px auto;
    text-align: center;
    font-size: 10px;
    color: #666;
}

.kanjiBoxImg p {
    margin: 0;
    color: #fff;
    background-color: #444;
    padding: 2px 0;
    text-align: center;
}

.kanjiBoxImg p:nth-child(2){
    background-color:transparent;
    color: #f00;
    text-align: left;
    font-size: 14px;
    font-weight:bold;
    margin: 0 5px;
}

.kanjiBoxSample02 td {
    padding-bottom: 20px;
}
.kanjiBoxSample02_02 td {
    padding-bottom: 5px;
}

.contBox{
    padding: 50px 0 0;
}
footer {
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: #fff;
}
.intro p:last-of-type{
    color: #f00;
    border: 1px dashed #f00;
    padding: 15px 20px;
    margin: 0;
}

/* スマホ表示ここから */
@media screen and (max-width: 700px) {
    .intro{
        font-size:14px;
    }
    .intro p:last-of-type{
        padding: 5%;
    }
    article {
        padding: 100px 5% 5%;
        box-sizing: border-box;
    }

    .SBS {
        flex-direction: column;
    }

    .cp_box,.kanjiBox {
        width: 100% !important;
        max-width: 300px;
        margin: 0 auto 30px !important;
    }

    .cp_box .cp_container {
        height: 200px;
        /* 開く前に見えている部分の高さ */
    }

    nav .spON {
        margin: 0;
        font-size: 14px;
        padding: 7px 10px;
        border-bottom: 1px dotted #666;
    }

    .SBS03 a {
        flex: 1;
        font-size: 15px;
    }

    nav {
        width: 100%;
        max-height: 80px;
        left: 0;
        transform: translateX(0);
    }

    .kara {
        display: none;
    }
    .contBox{
    padding: 80px 0 0;
}
}

@media screen and (max-width: 700px) {
    .pcON {
        display:none;
    }

    .spON {
        display: block !important;
    }
}

/* スマホ表示ここまで */

