@charset "UTF-8";

/* 全体的なフォント設定と基本スタイル */
body {
    margin: 0;
    color: #333;
    text-align: center;
    background-color: #FDFDFD;
    background-position: top;
    background-repeat: repeat-x;
    font-family: 'Helvetica Neue', Arial, sans-serif; /* 読みやすいフォントを追加 */
    line-height: 1.6; /* 全体の行間を調整 */
}

p {
    line-height: 1.6; /* 段落の行間 */
    font-size: 1rem; /* rem単位で設定 */
}

p.notes {
    font-style: italic;
    color: #666; /* 色を少し抑える */
}

p.commentary {
    padding-left: 20px;
    border-left: 3px solid #eee; /* コメントに軽微な装飾 */
    color: #555;
}

#page {
    width: 100%;
    margin: 0 auto;
    text-align: left;
}

/* ヘッダーの改善 */
#header {
    height: 70px;
    margin: 0;
    border-top: 1px solid #FFFFFF;
    background-color: #2f4f4f; /* 暗めの背景色で視認性向上 */
    color: #FFFFFF;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); /* 軽微な影を追加 */
}

#sitename {
    margin: 20px 0 0;
    font-size: 1.8rem; /* 大きくして目立たせる */
    font-weight: bold;
    color: #ecf0f1; /* 明るい色でコントラストを出す */
    border-bottom: none; /* 下線を削除、代わりに影で区別 */
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); /* テキストに影を追加 */
}

#menu {
    display: block;
    width: 100%;
}

.clear {
    clear: both;
}

.image_right {
    float: right;
}

img.variable {
    width: 400px;
    max-width: 80%; /* レスポンシブ対応 */
    height: auto;
}

/* ドロップダウンメニューの改善 */
.dropmenu {
    list-style-type: none;
    width: 100%;
    margin: 5px auto 10px;
    padding: 0;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); /* 影を追加 */
}

.dropmenu:before,
.dropmenu:after {
    content: "";
    display: table;
}

.dropmenu:after {
    clear: both;
}

.dropmenu li {
    position: relative;
    width: 25%;
    float: left;
    margin: 0;
    padding: 0;
    text-align: center;
    background: #34495e; /* 背景色を落ち着かせる */
    transition: background-color 0.3s ease; /* ホバー時のアニメーション */
}

.dropmenu li a {
    display: block;
    margin: 0;
    padding: 10px 0;
    background: #34495e; /* 背景色を落ち着かせる */
    color: #fff;
    text-decoration: none;
    transition: background-color 0.3s ease, color 0.3s ease; /* ホバー時のアニメーション */
}

.dropmenu li div {
    display: block;
    margin: 0;
    padding: 10px 0;
    background: #7f8c8d; /* より落ち着いたグレー */
    color: #fff; /* 文字色を白に */
    text-decoration: none;
}

.dropmenu li ul {
    list-style: none;
    position: absolute;
    z-index: 9999;
    top: 100%;
    left: 0;
    margin: 0;
    padding: 0;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); /* サブメニューにも影 */
}

.dropmenu li ul li {
    width: 100%;
}

.dropmenu li ul li a {
    padding: 10px 4px 4px 10px;
    border-top: 1px solid #2c3e50; /* 区切り線を濃くする */
    background: #4a627a; /* サブメニューの背景色 */
    text-align: left;
    white-space: nowrap;
}

.dropmenu li:hover>a {
    background: #1abc9c; /* 鮮やかな色に */
    color: #fff;
}

.dropmenu li a:hover {
    background: #16a085; /* さらに濃い色に */
    color: #fff;
}

/* menu display */
#normal li ul {
    display: none;
}

#normal li:hover ul {
    display: block;
}

#contents {
    padding: 20px; /* 余白を増やす */
    margin: 0;
}

#main {
    margin: 0 0 30px; /* 下の余白を増やす */
}

.photo_top {
    float: right;
}

.photo {
    margin: 0 0 20px 10px;
    float: right;
}

.photo_left {
    float: left;
    margin: 0 10px;
}

/* 見出しのスタイルの調整 */
#main h1 {
    padding: 0;
    margin: 0 0 20px; /* 下の余白を追加 */
    color: #2980b9; /* 青系の色に */
    font-size: 2.2rem;
    border-bottom: 2px solid #eee; /* 軽い下線を追加 */
    padding-bottom: 10px;
}

#main h2 {
    clear: both;
    padding: 8px 0 8px 15px; /* パディングを増やす */
    margin: 2.5em 0 1.5em; /* 余白を増やす */
    border-left: 8px solid #3498db; /* ボーダーを太く、色を変更 */
    background-color: #f8f8f8; /* 背景色をより薄く */
    color: #2c3e50; /* 文字色を濃く */
    font-size: 1.8rem;
}

#main h3 {
    clear: both;
    padding: 5px 0 5px 10px; /* パディングを増やす */
    margin: 2em 0 1em;
    border-left: 5px solid #27ae60; /* ボーダーを太く、色を変更 */
    background-color: #fafffa;
    color: #333; /* 文字色を濃く */
    font-size: 1.5rem;
}

#main h3.subtitle {
    clear: both;
    padding: 3px 0 3px 40px;
    border-left: none;
    border-bottom: solid 1px #2ecc71; /* 色を変更 */
    background-color: #ecf0f1; /* 背景色を落ち着かせる */
    color: #2c3e50; /* 文字色を濃く */
}

#main h4 {
    color: #2f4f4f;
    font-size: 1.2rem;
    margin-top: 1.5em;
}

.little-article {
    display: block;
    margin: 0 20px 15px; /* 下の余白を増やす */
}

article#news {
	clear: both;
    width: 100%;
    display: block;
    padding: 5px 5px 5px; /* パディングを増やす */
    margin: 0;
    border-top: 1px solid #ccc; /* ボーダーの色を調整 */
    background-color: #f9f9f9; /* 背景色を追加 */
}

#news .news_item ul li {
    line-height: 1.8; /* 行間を広げる */
    list-style-type: disc; /* リストのスタイルを明確に */
    margin-left: 20px;
}

#links {
    display: block;
    padding: 20px 10px 40px; /* パディングを増やす */
    background: #e0e0e0; /* 背景色を調整 */
    clear: both;
    margin: 0;
    border-top: 1px solid #bbb; /* ボーダーの色を調整 */
    text-align: left;
}

#links ul {
    list-style: none;
    background: #e0e0e0;
}

#links li {
    position: relative;
    background: #e0e0e0;
    width: 30%;
    float: left;
    margin: 0;
    padding: 0;
    text-align: left;
    line-height: 1.5;
}

#links a {
    color: #2980b9; /* 青系の色に */
    text-decoration: none; /* デフォルトの下線を削除 */
}

#links a:hover {
    color: #3498db; /* ホバー色を変更 */
    text-decoration: underline; /* ホバーで下線を表示 */
}

#underNavi {
    clear: both;
    margin: 0;
    border-top: 1px solid #999999;
    text-align: center;
    padding: 10px 0; /* パディングを追加 */
}

#footer {
    padding: 15px 0; /* パディングを増やす */
    border-top: 2px solid #bbb; /* ボーダーの色を調整 */
    color: #FFFFFF;
    text-align: center;
    background-color: #2c3e50; /* ヘッダーと同じ色に */
}

.title {
    padding: 0 0 0 15px; /* パディングを調整 */
    margin: 0 0 25px; /* マージンを調整 */
    border-left: 25px solid #3498db; /* ボーダーを太く、色を変更 */
}

p.label {
    width: 200px;
    margin-left: 30px;
    padding: 8px; /* パディングを増やす */
    color: #2980b9; /* 色を調整 */
    background-color: #eaf2f8; /* 背景色を調整 */
    border-left: 1px solid #3498db; /* 色を調整 */
    border-right: 1px solid #3498db; /* 色を調整 */
    text-align: center;
    border-radius: 5px; /* 角を丸める */
}

/* リンク全般のスタイル調整 */
a:link,
a:visited {
    color: #27ae60; /* 緑系の色に */
    font-weight: bold;
    text-decoration: none; /* デフォルトの下線を削除 */
}

a:active {
    color: #1abc9c;
}

a:hover {
    color: #2ecc71; /* ホバー色を変更 */
    text-decoration: underline; /* ホバーで下線を表示 */
}

/* pタグ内のリンクスタイル調整 */
p a:link,
p a:visited {
    color: #3498db; /* 青系の色に */
    font-weight: bold;
    text-decoration: none;
}

p a:active {
    color: #2980b9;
}

p a:hover {
    color: #87cefa; /* ホバー色を変更 */
    text-decoration: underline;
}

/* Retina */
@media screen and (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 2dppx) {
    p {
        line-height: 1.7;
        font-size: 1.1rem;
    }

    #header {
        height: 60px;
    }

    img.variable {
        width: 320px;
    }

    .dropmenu li {
        width: 50%;
    }

    div.photo_left {
        float: left;
    }

    #main h2 {
        border-left: 12px solid #3498db; /* 太さを調整 */
    }

    #main h3 {
        border-left: 7px solid #27ae60; /* 太さを調整 */
    }

    #news {
        padding: 10px 10px 15px;
    }

    #news .news_item ul li {
        line-height: 2.0;
    }

    #links li {
        width: 50%;
    }

    #footer {
        font-size: 0.9rem;
    }

    .photo {
        margin: 0 0 20px;
    }
}

/* * - 640px */
@media screen and (max-width: 640px) {
    p {
        line-height: 1.5;
        font-size: 0.9rem;
    }

    #sitename {
        margin: 10px 0 0;
        font-size: 1.5rem;
    }

    .dropmenu li {
        width: 100%;
    }

    img.variable {
        width: 100%; /* フル幅に */
    }

    .photo {
        float: none;
        margin: 0 0 10px;
        width: 100%; /* フル幅に */
    }

    #main h2 {
        border-left: 10px solid #3498db;
        font-size: 1.3rem;
        padding: 5px 0 5px 10px;
    }

    #main h3 {
        border-left: 6px solid #27ae60;
        font-size: 1.1rem;
        padding: 5px 0 5px 8px;
    }

    #news {
        padding: 10px 5px 15px;
        width: 100%; /* フル幅に */
    }

    .news_item ul {
        line-height: 1.8;
        font-size: 1rem;
    }

    #links ul {
        line-height: 1.6;
    }

    #links li {
        width: 100%;
    }

    #links a {
        line-height: 1.5;
    }

    #footer {
        font-size: 0.8rem;
    }

    #contents {
        padding: 10px;
    }

    .title {
        border-left-width: 15px;
    }
}

/* 641 - 980px */
@media screen and (min-width: 641px) and (max-width: 980px) {
    p {
        line-height: 1.5;
        font-size: 0.95rem;
    }

    #header {
        height: 60px;
    }

    img.variable {
        width: 360px;
    }

    .dropmenu li {
        width: 50%;
    }

    #main h2 {
        border-left: 10px solid #3498db;
    }

    #main h3 {
        border-left: 6px solid #27ae60;
    }

    #news {
        padding: 10px 10px 15px;
    }

    #news .news_item ul li {
        line-height: 1.6;
    }

    #links li {
        width: 50%;
    }

    #links a {
        font-size: 0.95rem;
    }

    #footer {
        font-size: 0.9rem;
    }

    .photo {
        margin: 0 0 20px;
    }
}