@charset "utf-8";
/********************************/
/*         全体の定義           */
/********************************/
html,
body {
    height: 100%;
}
body {
    font-family: sans-serif;
    overflow-y: scroll;
    position: relative;
}
body {
    color: var(--true-kuro);
    background-color: var(--true-siro);
}
@media (max-width: 430px) {.pc {display: none;}}
@media (min-width: 431px) {.mb {display: none;}}
h1,
h2 {
    font-family: serif;
}
h1,
footer h2 {
    font-size: 2.0rem;
}
h1 a,
footer h2 a {
    text-decoration: none;
}
h1 a:link,
h1 a:visited,
footer h2 a:link,
footer h2 a:visited {
    color: var(--true-kuro);
}
/********************************/
/*           ヘッダー           */
/********************************/
header {
    width: 100%;
    background-color:  var(--true-siro);
}
@media (min-width: 431px) {
header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
}
}
.cs_header_fixed {
    width: 100%;
    border-bottom: solid 5px var(--color-dark);
    background-color: var(--color-pale);
    padding-bottom: 5px;
}
.cs_header_line {
    width: 100%;
    color: var(--true-siro);
    background-color: var(--color-dark);
}
.cs_header_line p {
    margin: 0 auto;
}
.cs_header {
    margin: 0 auto 5px;
}
.cs_header_sub a {
    text-decoration: none;
}
.cs_header_sub a:hover {
    text-decoration: underline;
}
.cs_header_etc {
    margin: 5px auto 5px;
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-end;
}
.cs_header_etc li {
    list-style:none;
    margin-left: 10px;
    margin-right: 10px;
}
@media (min-width: 1000px) {
.cs_header_line p,
.cs_header {
    width: 1000px;
}
.cs_header {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
}
.cs_header_etc {
    justify-content: flex-end;
}
}
@media (max-width: 999px) {
.cs_header_line p,
.cs_header {
    width: 95%;
}
.cs_header_sub {
    margin-top: 10px;
    text-align: center;
}
.cs_header_etc {
    justify-content: center;
}
}
@media (min-width: 845px) {
.cs_header_top {
    margin-top: -20px;
}
}
/*******************************/
/*    ホームページタイトル     */
/*******************************/
h1,
footer h2 {
    text-shadow: 
        var(--color-pale) 2px  0px, var(--color-pale) -2px  0px,
        var(--color-pale) 0px -2px, var(--color-pale)  0px  2px,
        var(--color-pale) 2px  2px, var(--color-pale) -2px  2px,
        var(--color-pale) 2px -2px, var(--color-pale) -2px -2px,
        var(--color-pale) 1px  2px, var(--color-pale) -1px  2px,
        var(--color-pale) 1px -2px, var(--color-pale) -1px -2px,
        var(--color-pale) 2px  1px, var(--color-pale) -2px  1px,
        var(--color-pale) 2px -1px, var(--color-pale) -2px -1px;
}

/********************************/
/*           メニュー           */
/********************************/
.cs_menu > ul {
    margin: 0 auto;
}
@media (min-width: 431px){
.cs_menu > ul {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
}
.cs_menu > ul > li {
    border-left: solid 1px var(--color-dark);
}
.cs_menu > ul > li:last-of-type {
    border-right: solid 1px var(--color-dark);
}
}
@media (max-width: 430px){
.cs_menu > ul {
    text-align: center;
}
}
.cs_menu > ul {
    margin-top: 5px;
    margin-bottom: 5px;
}
.cs_menu > ul > li {
    list-style:none;
    padding: 10px 15px;
    text-align: center;
    font-size: 1.1rem;
}
.cs_menu > ul > li > a {
    text-decoration: none;
}
.cs_menu > ul > li > a:link,
.cs_menu > ul > li > a:visited {
    color: var(--true-kuro);
}
.cs_menu > ul > li:hover {
    background-color: var(--color-pale);
}
/******* ドロップメニュー *******/
.cs_menu_drop {
    position: relative;
    cursor: pointer;
}
.cs_menu_drop > ul {
    list-style-type: none;
    display: block !important;
    position: absolute;
    visibility: hidden;
    opacity: 0;
    transition: top,visibility,opacity .2s ease;
    z-index: 30;
}
@media (min-width: 431px){
.cs_menu_drop:hover ul {
    top: 44px;
    left: -1px;
    min-width: calc(100% + 2px);
    visibility: visible;
    opacity: 1;
}
.cs_menu_drop > ul > li {
    border-left: solid 1px var(--color-dark);
    border-right: solid 1px var(--color-dark);
    white-space: nowrap;
}
.cs_menu_drop > ul > li:last-of-type {
    border-bottom: solid 1px var(--color-dark);
}
}
@media (max-width: 430px){
.cs_menu_active ul {
    top: 43px;
    left: 0px;
    width: 100%;
    visibility: visible;
    opacity: 1;
}
.cs_menu_drop > ul > li {
    text-align: center;
    border-top: solid 1px var(--color-pale);
    border-bottom: solid 1px var(--color-pale);
}
}
.cs_menu_drop > ul > li {
    font-size: 1.0rem;
    padding: 10px;
    background-color: var(--color-pale);
}
.cs_menu_drop ul li a {
    text-decoration: none;
}
.cs_menu_drop ul li a:link,
.cs_menu_drop ul li a:visited {
    color: var(--black2);
}
.cs_menu_drop ul li:hover {
    text-decoration: underline;
}
/********************************/
/*            メイン            */
/********************************/
.cs_main {
    margin: 0 auto;
}
@media (min-width: 1000px) {
.cs_main {
    width: 1000px;
}
}
@media (max-width: 999px) {
.cs_main {
    width: 95%;
}
}
/********************************/
/*           タイトル           */
/********************************/
.cs_main h2 {
    font-size: 1.6rem;
    font-weight: normal;
    padding: 7px 20px;
    border-top: solid 5px var(--color-dark);
    border-left: solid 1px var(--color-dark);
    border-right: solid 1px var(--color-dark);
    border-bottom: solid 1px var(--color-dark);
}
/********************************/
/*           新着情報           */
/********************************/
.cs_news {
    padding-bottom: 25px;
    margin-bottom: 25px;
    border-bottom: dotted 1px var(--true-kuro);
    line-height: 1.6;
}
.cs_news:last-of-type {
    border-bottom: none;
}
.cs_news_category,
.cs_news_date {
    white-space: nowrap;
}
.cs_news_category {
    font-weight: 900px;
}
.cs_news_date {
    color: var(--true-gray);
}
/********************************/
/*          上へボタン          */
/********************************/
#id_page_top{
    position: fixed;
    bottom: 30px;
    right: 25px;
    width: 50px;
    height: 35px;
    background-color: var(--color-dark);
    font-size: 1.5rem;
    text-align: center;
    cursor: pointer;
    z-index: 900;
    transform:translate3d(0,0,900);
    color: var(--true-siro);
    border: solid 1px var(--color-dark);
}
/********************************/
/*           フッター           */
/********************************/
footer {
    position: sticky;
    top: 100vh;
    margin-top: 30px;
    padding-top: 20px;
    width: 100%;
    background-color: var(--color-pale);
    border-top: solid 5px var(--color-dark);
}
@media (min-width: 1000px) {
.cs_footer {
    width: 1000px;
    margin: 0 auto;
}
}
@media (max-width: 999px) {
.cs_footer {
    width: 100%;
}
}
.cs_footer {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
}
.cs_copyright {
    color: var(--true-siro);
    background-color: var(--color-dark);
    text-align: center;
    font-size: 0.8rem;
    margin-top: 30px;
    padding-bottom: 5px;
}
