:root {
    color: dimgray;
    font-family: "HG丸ｺﾞｼｯｸM-PRO", Arial, Helvetica, sans-serif;
}

body {
    margin: 10px 20px;
}

h1,
h2 {
    color: forestgreen;
}

h1 {
    font-size: 24px;
    font-weight: bold;
    padding-bottom: 24px;
}

h2 {
    font-size: 18px;
    font-weight: bold;
    padding-bottom: 18px;
}

h3 {
    font-size: 16px;
    font-weight: bold;
    padding-bottom: 5px;
}


a {
    color: olive;
    text-decoration-line: underline;
}

a:visited {
    color: #655d74;
}

a:active {
    color: darkorange;
}

.notice {
    color: #ff3300;
}

.small {
    font-size: 80%;
}

.bold {
    font-weight: bold;
}

ol>li {
    padding-bottom: 5px;
}

/* Section */
header {
    margin-top: 24px;

    >.headerTitle {
        padding-left: 1rem;
    }
}

.news {
    height: 420px;
    margin: 10px;

    >.notice {
        padding-left: 10px;
        padding-bottom: 15px;
    }

    >.news-list {
        padding-top: 10px;
        padding-bottom: 10px;
        padding-left: 20px;
        height: 80%;

        border: 1px solid gray;
        border-radius: 10px;

        >ol {
            overflow-y: scroll;
            padding-right: 10px;
            height: 100%;

            >li {
                border-bottom: 1px gray dashed;
                margin-bottom: 10px;
            }

            >li .news-title {
                font-weight: bold;
            }

            >li .news-desc {
                padding-left: 15px;
                padding-bottom: 10px;

                p {
                    margin-top: 5px;
                }
            }
        }
    }
}

.clubs,
.koen {
    padding-top: 15px;
    padding-bottom: 15px;

    >h2 {
        padding-top: 15px;
    }
}

.koen {
    >ol {
        padding-left: 15px;
    }

    p {
        padding-left: 15px;
        padding-top: 3px;
        padding-bottom: 3px;
    }
}

.clubs>ol {
    justify-content: space-evenly;
    align-content: stretch;
    align-items: start;
    justify-items: center;
    padding-top: 15px;
    padding-bottom: 15px;

    >li {
        word-break: keep-all;

        >.coach,
        .category,
        .place {
            font-size: 80%;
        }

        img{
            display: block;
            margin-left: auto;
            margin-right: auto;
        }
    }
}

.kyoukas {
    >.notice {
        padding-left: 15px;
        padding-bottom: 15px;
    }

    >h3 {
        text-decoration-line: underline;
    }

    >table {
        margin-left: 24px;
        margin-bottom: 15px;
        border-collapse: collapse;
    }

    >table th {
        text-align-last: justify;
    }

    >table * {
        padding-bottom: 5px;
        padding-left: 15px;
        line-height: 1.2;
    }
}

.members {
    >table {
        margin-left: 24px;
        margin-bottom: 15px;
        border-collapse: collapse;
    }

    >table th {
        text-align-last: justify;
    }

    >table * {
        padding-bottom: 5px;
        padding-left: 15px;
    }
}


/* Grid */

.grid-container {
    display: grid;
    grid-template-areas: "header"
        "main"
        "footer";
}

.grid-container-header {
    display: grid;
    grid-template-areas: "headerTitle headerContact";
    grid-template-columns: 3fr 2fr;
}

.headerTitle {
    grid-area: headerTitle;
}

.headerContact {
    grid-area: headerContact;
}

.grid-container-main {
    display: grid;
    grid-template-areas:
        "new new new img img"
        "rnk rnk fed lnk doc"
        "ken ken ken ken ken"
        "clb clb clb clb clb"
        "kyk kyk kyk kyk kyk"
        "mmb mmb mmb mmb mmb"
        "gig gig gig gig gig";
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    grid-template-rows: repeat(5, minmax(40px, auto));
    grid-gap: 10px;
}

.news {
    grid-area: new;
}

.images {
    grid-area: img;
    text-align: end;
}

.iceRinks {
    grid-area: rnk;
}

.federation {
    grid-area: fed;
}

.links {
    grid-area: lnk;
}

.koen {
    grid-area: ken;
}

.docs {
    grid-area: doc;
}

.clubs {
    grid-area: clb;
}

.kyoukas {
    grid-area: kyk;
}

.members {
    grid-area: mmb;
}

.iceRinks-grid-container {
    display: grid;
    grid-template-areas:
        "irimg irol"
        "irimg irnotice";
    grid-template-columns: 1fr 3fr;
    grid-template-rows: 1fr 1fr;
    column-gap: 3px;
}

.iceRinks-grid-container>img {
    display: block;
    grid-area: irimg;
    justify-self: center;
}

.iceRinks-grid-container>ol {
    grid-area: irol;
}

.iceRinks-grid-container>p.notice {
    grid-area: irnotice;
}

.federation li,
.links li,
.docs li {
    text-align: center;
}

.clubs ol {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.clubs li>img {
    display: block;
}

.gijiroku {
    grid-area: gig;

    >ol {
        padding-left: 15px;
        padding-bottom: 5px;
    }
}