@charset "UTF-8";

/* ========== Setting Section ========== */
/* --- CSS Variables --- */
:root {
    /* GridLayout */
     --margin-bothends: 60px;
     --width-side-left: 240px;
    --width-side-right: 240px;
       --height-header: 240px;
        --width-navipc: 840px;
}
/* PC */
@media screen and ( min-width: 1240px ) {
    :root {
        --margin-bothends: 120px;
    }
}
­/*
@madia min-width は (--width-navipc + --margin-bothends * 2) + 20px となる。
ただし、calc()は使えないので直接設定すること。
現状) 1100px = 840 + 120 * 2 + 20
*/

/* ========== box-sizing: border-box RESET ========== */
/*
*, *:before, *:after {
    -webkit-box-sizing: content-box;
       -moz-box-sizing: content-box;
         -o-box-sizing: content-box;
        -ms-box-sizing: content-box;
            box-sizing: content-box;
}
*/

/* ========== Mobile Adjustment ========== */
body {
    -webkit-text-size-adjust: 100% !important;
}
img {
    max-width: 100% !important;
    height: auto !important;
}
iframe {
    width: 100%;
}

/* ========== Common Section ========== */
/* List Tag  */
article ul,
article ol {
    margin: 0 0 0 25px;
}

/* Link Color */
a:link {    /* 未訪問 */
    color: #1d3994;
    text-decoration: none;
}
a:visited { /* 訪問済 */
    color: #1d3994;
    text-decoration: none;
}
a:hover {   /* マウスオーバ */
    color: #1d3994;
    text-decoration: none;
    opacity: 1.0;
}
a:active {  /* アクティブ */
    color: #f00;
    text-decoration: none;
}

strong a:link,
strong a:visited {
    color: #fff;
}

/* --- Pager --- */
nav.pager {
    margin: 15px 0;
    font-size: .9em;
    text-align: center;
}
nav.pager i {
    font-size: 1.4em;
    font-weight: bold;
    color: #c00;
}
nav.pager div a,
nav.pager div b {
    display: inline-block;
    width: 40px;
    height: 40px;
    margin: 2px;
    padding: 9px 0 0 0;
    border: 1px solid #666;
    border-radius: 50%;
    text-align: center;
}
nav.pager div b {
    background-color: #666;
    color: #fff;
}
nav.pager div a:link,
nav.pager div a:visited {
    color: #c00;
    text-decoration: none;
    font-weight: bold;
}

/* --- Date --- */
.sun { color: #c03; }
.sat { color: #09c; }

/* --- Overflow X Scroll --- */
.parent {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    white-space: nowrap;
}
.child {
    display: inline-block;
    margin-right: 1%;
    width: 19%;
    vertical-align: top;
    white-space: normal;
}


/* ========== Base Layout & Visual Section ========== */
/* Base */
html {
    margin: 0 auto;
    padding: 0;
    max-width: 100%;
    font-size: 62.5%;
}

body {
    margin: 0 auto;
    padding: 0;
    max-width: 100%;
    font-family: 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', sans-serif;
    /*font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', serif;*/
    font-size: 1.6rem; /* 16px */
    line-height: 1.5;
    line-break: strict;
    word-wrap: break-word;
    color: #000;
    background-color: #fff;
   /* background-image: url(img/back.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;*/
}

/* CSS Grid / Flexbox */
#wrapper {
    display: grid;
    grid-template-columns: 100%;
    grid-gap: 2px;
}

header, main, footer {
    display: flex;
    align-items: start;
    justify-content: center;
    grid-column: 1;
}

header {
    width: 100%;
    height: 50px;
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(0, 162, 144, 0.7);
    -webkit-backdrop-filter: contrast(2) blur(10px);
    text-align: center;
    z-index: 9997;
}
header h1 img {
    margin: 3px 0 0 0;
    width: 100px;
}
main {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 80px 0 0 0;
}
aside, article, footer { padding: .8em; }
aside, article, footer { padding: 0; }
aside#left {
    order: 2;
    width: 100%;
    background-color: #fff;
    padding: 3px 0;
    text-align: center;
}
article {
    order: 1;
    margin: 2px 0;
    width: 100%;
}
aside#right {
    order: 3;
    width: 100%;
    background-color: #ccc;
}
footer {
    padding: 10px;
    height: auto;
    background-color: #333;
    text-align: center;
}
footer section {
    text-align: left;
    color: #fff;
    margin: 30px 0;
    font-size: 1.4rem;
    line-height: 1.8;
}
footer section h3 {
    text-align: left;
}
footer small {
    color: #fff;
    font-size: 1.2rem;
    font-weight: bold;
}
footer small a:link,
footer small a:visited {
    color: #fff;
    text-decoration: none;
}
footer h3 {
    font-size: 1.6rem;
    text-align: center;
    color: #FD262E;
}
footer a:link,
footer a:visited {
    color: #CEE;
    text-decoration: none;
    font-weight: bold;
    border: 1px solid #CEE;
    padding: 5px 10px;
    margin: 3px 0;
    border-radius: 15px;
    display: block;
}

/* サイドカラム */
aside#left > a {
    display: block;
    margin: 5px 0;
}
#r_banner{
    display: none;
}
#spr_banner{
    display: block;
    margin-bottom: 10px;
}

#sg_banner img{
    display: none;
}
#spsg_banner img{
    display: block;
    margin-bottom: 10px;
}


@media screen and ( min-width: 840px ) {
    #r_banner{
        display: block;
    }
    #spr_banner{
        display: none;
    }

    #sg_banner img{
        display: block;
    }
    #spsg_banner img{
        display: none;
    }
}
/* 他コンテンツ誘導リンク */
nav#outside ul {
    margin: -5px 0 0 0;
    display: flex;
    height: 50px;
/*    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr;
    grid-column-gap: 0px;
    grid-row-gap: 0px;*/
}
nav#outside ul li {
    display: block;
    flex-basis: calc(100% / 3);
}
nav#outside a {
    display: block;
    padding: 10px 8px 8px 8px;
    height: 40px;
    color: #fff;
    font-size: 1.2rem;
    text-shadow: 1px 1px 0 #333;
    font-weight: bold;
    text-decoration: none;
    text-align: center;
}
nav#outside #deli {
    background: #FF0066;
    background: linear-gradient(to bottom, #FF0066 30%, #9E003F 100%);
}
nav#outside #caba {
    background: #3231B3;
    background: linear-gradient(to bottom, #3231B3 30%, #16164F 100%);
}
nav#outside #recr {
    background: #D6C700;
    background: linear-gradient(to bottom, #D6C700 30%, #756B00 100%);
}
nav#outside #ebook {
    background: #893700;
    background: linear-gradient(to bottom, #893700 30%, #421A00 100%);
}

/* SNSシェア */
footer nav#sns {
    position: absolute;
    right: 30px;
}
footer nav#sns ul {
    display: flex;
    justify-content: space-between;
    width: 175px;
}
footer nav#sns ul li {
    padding: 5px;
    border-radius: 50%;
    width: 40px;
    background-color: #fff;
}


/* ========== Heading Tag Section ========== */
/*
 * IE8以下とAndroid4.3以下用フォールバック と 可変フォントサイズを指定
 * 可変しきい値 = (最大小との差の1/10) / 0.559988800223996
 */
h1,h2,h3,h4,h5,h6 {
    font-weight: bold;
    line-height: 1.3;
}
h1 {
    font-size: 36px;
    font-size: calc( 2.4rem + ( (1vw - 0.64rem) * (1.2 / 0.56) ) ); /* 24~36px */
}
h2 {
    font-size: 24px;
    font-size: calc( 2.0rem + ( (1vw - 0.64rem) * (0.4 / 0.56) ) ); /* 20~24px */
}
h3 {
    font-size: 21px;
    font-size: calc( 1.8rem + ( (1vw - 0.64rem) * (0.3 / 0.56) ) ); /* 18~21px */
}
h4,h5,h6 {
    font-size: 18px;
    font-size: calc( 1.6rem + ( (1vw - 0.64rem) * (0.2 / 0.56) ) ); /* 16~18px */
}


/* PC */
@media screen and ( min-width: 840px ) {
    strong a:link,
    strong a:visited {
        color: #5B4939;
    }
    /* ========== WebFont Section ========== */
    @font-face {
        font-family: 'Noto Sans JP';
        font-style: normal;
        font-weight: 400;
        font-display: swap;
        src: local("Noto Sans CJK JP"),
             local("Noto Sans JP"),
             url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format('woff2'),
             url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format('woff'),
             url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format('opentype');
    }
    /*
    ::-webkit-scrollbar{
        width: 10px;
    }
    ::-webkit-scrollbar-track{
        background: #fff;
        border: none;
        border-radius: 10px;
        box-shadow: inset 0 0 2px #777;
    }
    ::-webkit-scrollbar-thumb{
        background: #ccc;
        border-radius: 10px;
        box-shadow: none;
    }
    */
    footer small br {
        display: none;
    }
    body {
        font-feature-settings: "palt";
        letter-spacing: 0.08rem;
        font-family: 'Noto Sans JP',
                    -apple-system, BlinkMacSystemFont, 'Helvetica Neue',
                    '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic',
                    'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN',
                    Arial, 'メイリオ', Meiryo, sans-serif;
/*        font-family: 'Noto Serif JP',
                     '游明朝', YuMincho, '游明朝 Medium', 'Yu Mincho Medium',
                     'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN',
                     'Palatino Linotype', 'HGS明朝E', 'メイリオ', Meiryo, serif;*/
        font-size: 1.8rem; /* 18px */
        line-height: 1.6;
        /* background-image: url(img/back.jpg);
        background-repeat: no-repeat;
        background-position: center center;
        background-attachment: fixed;
        background-size: cover;*/
    }
    #wrapper {
        grid-template-columns: var(--margin-bothends) auto var(--margin-bothends);
    }
    header {
        grid-column: 1 / 4;
        position: relative;
        height: var(--height-header);
        /*background-color: #fff;*/
        background-image: url(img/back_header1.jpg);
        background-repeat: no-repeat;
        background-position: center 55%;
        background-size: cover;
    }
    header h1 img {
        position: absolute;
        top: 25px;
        left: 120px;
        width: 280px;
        filter: drop-shadow( 0 0 5px rgba(255, 255, 255, 1) );
    }
    main {
        grid-column: 1 / 4;
        margin: 30px 0 0 0;

        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: stretch;
        /* for CSS Grid
        display: grid;
        grid-template-columns: 120px calc(100% - 244px) 120px;
        grid-gap: 2px;*/
    }
/* for CSS Grid
    article, aside {
        display: flex;
        align-items: start;
        justify-content: center;
        height: 100%;
    }*/
    aside#left {
        /* for CSS Grid
        grid-column: 1;*/
        flex-basis: var(--width-side-left);
        order: 1;
    }
    article {
        order: 2;
        /* for CSS Grid
        grid-column: 2;
        justify-content: left;*/
        flex-basis: calc( 85% - var(--width-side-left) );
        /*background-color: #f00;*/
        /*flex-basis: calc( 100% - ( var(--width-side-left) + var(--width-side-right) ) );*/
    }
    aside#right {
        /*grid-column: 3;*/
        flex-basis: var(--width-side-right);
    }
    footer {
        grid-column: 1 / 4;
        height: auto;
    }
    footer div {
        width: 1280px;
        margin: 0 auto;
    }
    footer nav li {
        margin: 0 0 0 10px;
        display: inline-block;
    }
    footer a:link,
    footer a:visited {
        margin: 0;
        padding: 0;
        display: inline;
        text-decoration: underline;
        border: 0;
    }
    footer footer small {
        width: 1280px;
        margin: 0 auto;
    }


    /* 他コンテンツ誘導リンク */
    nav#outside {
        position: absolute;
        top: 0;
        right: var(--margin-bothends);
        z-index: 9999;
    }
    nav#outside ul {
        margin: 0;
    }
    nav#outside li a {
        width: 120px;
        border-radius: 0 0 10px 10px;
    }

    h1 { font-size: 3.6rem; }
    h2 { font-size: 2.4rem; }
    h3 { font-size: 2.1rem; }
    h4,h5,h6 { font-size: 1.8rem; }
}

/* 横幅640px以下 */
@media screen and (max-width: 640px) {
    h1 { font-size: 2.4rem; }
    h2 { font-size: 2.0rem; }
    h3 { font-size: 1.8rem; }
    h4,h5,h6 { font-size: 1.6rem; }
}



/* ========== Navigation Section ========== */
/* Moving */
#wrapper {
    transition: transform .6s cubic-bezier(0.215, 0.61, 0.355, 1);
}

#globalTgl:checked ~ #wrapper { transform: translateX(255px); }
#globalTgl:checked ~ label[for="searchTgl"] { transform: translateX(48px); }
#globalTgl:checked ~ label[for="underTgl"] { transform: translateX(-48px); }
#globalTgl:checked ~ .openglobal {
    /*background: indianRed;*/
    transform: translateX(255px);
    background-size: 48px;
    background-image:url(img/btn_close.png);
}
#globalTgl:checked ~ .openglobal span { transform: scaleX(0); }
#globalTgl:checked ~ .openglobal::before { transform: rotate(45deg); }
#globalTgl:checked ~ .openglobal::after { transform: rotate(-45deg); }
#globalTgl:checked ~ .closeglobal {
    pointer-events: auto;
    -webkit-backdrop-filter: contrast(2) blur(15px);
    z-index: 9997;
}
#globalTgl:checked ~ #global { transform: none; }

#searchTgl:checked ~ #wrapper { transform: translateX(-255px); }
#searchTgl:checked ~ label[for="globalTgl"] { transform: translateX(-48px); }
#searchTgl:checked ~ label[for="underTgl"] { transform: translateX(-48px); }
#searchTgl:checked ~ .opensearch {
    /*background: indianRed;*/
    transform: translateX(-255px);
    background-size: 48px;
    background-image:url(img/btn_close.png);
}
#searchTgl:checked ~ .opensearch span { transform: scaleX(0); }
#searchTgl:checked ~ .opensearch::before { transform: rotate(45deg); }
#searchTgl:checked ~ .opensearch::after { transform: rotate(-45deg); }
#searchTgl:checked ~ .closesearch {
    pointer-events: auto;
    background: rgba(0,0,0,.3);
}
#searchTgl:checked ~ #search { transform: none; }


#underTgl:checked ~ #wrapper { transform: translateX(-255px); }
#underTgl:checked ~ label[for="globalTgl"] { transform: translateX(-48px); }
#underTgl:checked ~ label[for="searchTgl"] { transform: translateX(48px); }
#underTgl:checked ~ .openunder {
    background: indianRed;
    transform: translateY(-250px);
}
#underTgl:checked ~ .openunder span { transform: scaleX(0); }
#underTgl:checked ~ .openunder::before { transform: rotate(45deg); }
#underTgl:checked ~ .openunder::after { transform: rotate(-45deg); }
#underTgl:checked ~ .closeunder {
    pointer-events: auto;
    background: rgba(0,0,0,.3);
}
#underTgl:checked ~ #under { transform: none; }


/* Toggle Button */
input[id$="Tgl"] {
    display: none;
}
label[for$="Tgl"] {
    cursor: pointer;
    position: fixed;
    z-index: 9998;
}
label[for="globalTgl"] {
    top: 0;
    left: 0;
}
label[for="searchTgl"] {
    top: 0;
    right: 0;
}
label[for="underTgl"] {
    bottom: 0;
    left: 0;
    display: none;
}
label.openglobal[class^="open"] {
    z-index: 9998;
    width: 48px;
    height: 48px;
    /*background: lightSeaGreen;*/
    background-size: 48px;
    background-image:url(img/btn_refine.png);
    transition: background .8s, transform .8s cubic-bezier(0,1.01,.1,1);
}

label[class^="open"] {
    z-index: 9998;
    width: 48px;
    height: 48px;
    background-color: #0D867E;
    transition: background .8s, transform .8s cubic-bezier(0,1.01,.1,1);
}
/*
label[class^="open"] span,
label[class^="open"]::before,
label[class^="open"]::after {
    content: "";
    position: absolute;
    top: calc(50% - 1px);
    left: 30%;
    width: 40%;
    border-bottom: 2px solid white;
    transition: transform .6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
*/
label[class^="open"]::before { transform: translateY(-8px); }
label[class^="open"]::after  { transform: translateY(8px); }
label[class^="close"] {
    z-index: 9998;
    width: 100%;
    height: 100%;
    pointer-events: none;
    transition: background .6s;
}

/* Output */
#global, #search {
    z-index: 9999;
    position: fixed;
    width: 255px;
    height: 100%;
    margin: 0;
    padding: 0;
    background: rgba(32, 178, 170, 1.0);
    transition: transform .8s cubic-bezier(0,1.01,.1,1);
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
}
#global {
    top: 0;
    left: 0;
    transform: translateX(-100%);
}
#search {
    top: 0;
    right: 0;
    transform: translateX(100%);
}

#under {
    z-index: 9999;
    position: fixed;
    overflow: auto;
    width: 100%;
    height: 250px;
    margin: 0;
    padding: 0;
    background: rgba(64, 64, 64, 1);
    transition: transform .8s cubic-bezier(0,1.01,.1,1);
    -webkit-overflow-scrolling: touch;
}
#under {
    bottom: 0;
    left: 0;
    transform: translateY(250px);
}

/* --- Global Navigation --- */
#global li:not(:first-child),
#search li:not(:first-child) {
    border-top: 1px dashed #fff;
}

nav#global ul {
    display: flex;
    flex-direction: column;
    /*align-items: center;*/
/*    background: url(img/navi_sp.png) no-repeat;
    background-size: 510px 352px;
    background-position-x: left;*/
}

nav#global ul li {
    align-self: stretch;
    position: relative;
}

nav#global ul li time {
    position: absolute;
    top: 3px;
    right: 15px;
    padding: 1px 10px;
    color: #fff;
    background-color: #e00;
    font-size: 1.2rem;
    font-weight: bold;
    border-radius: 15px;
}

nav#global ul li a {
    display: block;
    height: 44px;
    padding: 12px 0 0 0;
/*    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;*/
}

nav#global ul li a:link,
nav#global ul li a:visited {
    color: #fff;
    font-weight: bold;
}

/*
nav#global ul li a.active,
nav#global ul li a:focus,
nav#global ul li a:hover {
    background: url(img/navi_sp.png) no-repeat;
    background-size: 510px 352px;
}

nav#global ul li:nth-of-type(1) a.active,
nav#global ul li:nth-of-type(1) a:focus,
nav#global ul li:nth-of-type(1) a:hover { background-position: right calc(-44px * 0); }

nav#global ul li:nth-of-type(2) a.active,
nav#global ul li:nth-of-type(2) a:focus,
nav#global ul li:nth-of-type(2) a:hover { background-position: right calc(-44px * 1); }

nav#global ul li:nth-of-type(3) a.active,
nav#global ul li:nth-of-type(3) a:focus,
nav#global ul li:nth-of-type(3) a:hover { background-position: right calc(-44px * 2); }

nav#global ul li:nth-of-type(4) a.active,
nav#global ul li:nth-of-type(4) a:focus,
nav#global ul li:nth-of-type(4) a:hover { background-position: right calc(-44px * 3); }

nav#global ul li:nth-of-type(5) a.active,
nav#global ul li:nth-of-type(5) a:focus,
nav#global ul li:nth-of-type(5) a:hover { background-position: right calc(-44px * 4); }

nav#global ul li:nth-of-type(6) a.active,
nav#global ul li:nth-of-type(6) a:focus,
nav#global ul li:nth-of-type(6) a:hover { background-position: right calc(-44px * 5); }

nav#global ul li:nth-of-type(7) a.active,
nav#global ul li:nth-of-type(7) a:focus,
nav#global ul li:nth-of-type(7) a:hover { background-position: right calc(-44px * 6); }

nav#global ul li:nth-of-type(8) a.active,
nav#global ul li:nth-of-type(8) a:focus,
nav#global ul li:nth-of-type(8) a:hover { background-position: right calc(-44px * 7); }
*/

/* --- for TopicPath/Breadcrumb --- */
/* Simple */
#topicpath {
    position: absolute;
    top: 50px;
    left: 0;
    width: 100%;
    height: auto;
    padding: 5px;
    text-align: center;
    font-size: 1.0rem;
    font-weight: bold;
    line-height: 1.8;
    background: rgba(164, 238, 233, 1.0);
}
#topicpath ol li                    { display: inline; }
#topicpath ol li:before             { content: " > "; }
#topicpath ol li:first-child:before { content: ""; }

/* PC */
@media screen and ( min-width: 840px ) {
    [for="globalTgl"],
    [for="searchTgl"] {
        display: none;
    }

    #global {
        position: absolute;
        top: calc( var(--height-header) - 50px );
        left: 0;
        width: 100%;
        height: 50px;
        overflow: hidden;
        background: rgba(32, 178, 170, 1.0);
        transform: translateX(0%);
        transition: transform 0s cubic-bezier(0,1,0,1);
    }

    #topicpath {
        padding: 5px;
        position: absolute;
        top: var(--height-header);
        left: 0;
        height: 30px;
        font-size: 1.4rem;
    }

    #global li:not(:first-child),
    #search li:not(:first-child) {
        border: 0;
        border-left: 1px dashed #fff;
    }

    nav#global ul {
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
/*        background: url(img/navi_pc.png) no-repeat;
        background-size: var(--width-navipc) 100px;
        background-position-x: center;*/
    }

    nav#global ul li {
        font-size: 1.3rem;
        flex-basis: 105px;
        align-self: stretch;
        position: relative;
    }

    nav#global ul li a {
        height: 50px;
/*        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;*/
    }
/*
    nav#global ul li a.active,
    nav#global ul li a:focus,
    nav#global ul li a:hover {
        background: url(img/navi_pc.png) no-repeat;
        background-size: var(--width-navipc) 100px;
    }

    nav#global ul li:nth-of-type(1) a.active,
    nav#global ul li:nth-of-type(1) a:focus,
    nav#global ul li:nth-of-type(1) a:hover { background-position: calc(-120px * 0) -50px; }

    nav#global ul li:nth-of-type(2) a.active,
    nav#global ul li:nth-of-type(2) a:focus,
    nav#global ul li:nth-of-type(2) a:hover { background-position: calc(-120px * 1) -50px; }

    nav#global ul li:nth-of-type(3) a.active,
    nav#global ul li:nth-of-type(3) a:focus,
    nav#global ul li:nth-of-type(3) a:hover { background-position: calc(-120px * 2) -50px; }

    nav#global ul li:nth-of-type(4) a.active,
    nav#global ul li:nth-of-type(4) a:focus,
    nav#global ul li:nth-of-type(4) a:hover { background-position: calc(-120px * 3) -50px; }

    nav#global ul li:nth-of-type(5) a.active,
    nav#global ul li:nth-of-type(5) a:focus,
    nav#global ul li:nth-of-type(5) a:hover { background-position: calc(-120px * 4) -50px; }

    nav#global ul li:nth-of-type(6) a.active,
    nav#global ul li:nth-of-type(6) a:focus,
    nav#global ul li:nth-of-type(6) a:hover { background-position: calc(-120px * 5) -50px; }

    nav#global ul li:nth-of-type(7) a.active,
    nav#global ul li:nth-of-type(7) a:focus,
    nav#global ul li:nth-of-type(7) a:hover { background-position: calc(-120px * 6) -50px; }
*/

}