@charset "UTF-8";

/* =========================================================
   1. 基本設定
========================================================= */

:root {
    --main-blue: #176b78;
    --main-blue-hover: #125661;
    --main-blue-dark: #145a8d;
    --main-blue-deep: #063b5c;

    --mint: #e2f3ed;
    --mint-line: #b9dcd9;

    --page-bg: #eaf6fc;
    --content-bg: #ffffff;
    --text-color: #000000;
    --border-color: #767676;
}

*,
*::before,
*::after{
    box-sizing: border-box;
}

html,
body{
    margin: 0;
    padding: 0;
}

body{
    font-family:
        "メイリオ",
        "ヒラギノ角ゴシック",
        sans-serif;
    color: var(--text-color);
    background-color: var(--page-bg);
    line-height: 1.6;
}

img{
    display: block;
    max-width: 100%;
}

#wrap{
    width: 1200px;
    max-width: 100%;
    margin: 0 auto;
}


/* =========================================================
   2. ヘッダー・ロゴ
========================================================= */

.site-header{
    display: flex;
    justify-content: flex-start;
    width: 100%;
    margin: 0;
    padding: 25px 0 30px;
}

.header-area{
    width: 100%;
    margin: 0;
    padding: 0;
}

.header-left{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    width: 848px;
    margin: 0 0 0 30px;
    padding: 0;
}

/* ロゴ背後のイラスト */
.header-left::before{
    content: "";
    position: absolute;
    z-index: 0;

    top: 10px;
    left: 460px;

    width: 240px;
    height: 85px;

    background-image: url("book.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    opacity: 0.6;
}

/* ロゴをイラストより前面に表示 */
.logo-corporation,
.logo-row{
    position: relative;
    z-index: 1;
}

.logo-corporation{
    width: 110px;
    height: auto;
    margin: 0 0 1px;
}

.logo-row{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 520px;
}

.logo-main{
    width: 520px;
    max-width: 100%;
    height: auto;
}

.logo-sub{
    width: 165px;
    height: auto;
    margin: 1px 0 0 178px;
}

/* サイトマップ・アクセス */
.site-map{
    position: absolute;
    top: 20px;
    right: 160px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.site-map a{
    display: block;
    margin: 0;
    padding: 0;

    color: var(--main-blue-dark);
    text-decoration: none;
}

.site-map a:first-child{
    margin-bottom: 5px;
}

.site-map a:hover{
    text-decoration: underline;
}


/* =========================================================
   3. グローバルナビゲーション
========================================================= */

nav{
    width: 1200px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
}

#main-menu{
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-item{
    flex: 1 1 0;
    min-width: 0;
}

.nav-item a{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;

    min-height: 76px;
    padding: 10px 5px;

    color: #ffffff;
    background-color: var(--main-blue);

    font-weight: bold;
    text-align: center;
    text-decoration: none;

    border: 1px solid #ffffff;
    border-radius: 4px;

    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.nav-item a:hover,
.nav-item a.active{
    color: #145a50;
    background-color: var(--mint);
    border-color: #8bbdb2;
}

.nav-item a:hover{
    box-shadow: 0 2px 6px rgba(23, 107, 120, 0.18);
}

.nav-item a:hover .menu-icon,
.nav-item a.active .menu-icon {
    color: var(--main-blue);
}


/* =========================================================
   4. 本文・ページタイトル・見出し
========================================================= */

.content-area{
    width: 100%;
    margin: 25px auto;
    padding: 25px 30px;

    background-color: var(--content-bg);
    border-radius: 10px;
}

.page-title{
    margin: 0 0 25px;
    padding: 10px 16px;

    color: #000000;
    background-color: #ffffff;

    font-family:
        "ヒラギノ丸ゴ ProN",
        "メイリオ",
        sans-serif;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;

    border: 1px solid #a0d8ef;
    border-left: 6px solid var(--main-blue-dark);
    border-radius: 6px;
}

.sub-title{
    margin: 28px 0 15px;
    padding: 6px 10px;

    color: var(--main-blue-dark);
    font-size: 17px;
    font-weight: bold;

    border-left: 5px solid #a0d8ef;
}

.page-content{
    color: #000000;

    font-family:
        "メイリオ",
        "ヒラギノ角ゴシック",
        sans-serif;
    font-size: 16px;
    line-height: 1.8;
}

.page-content p{
    margin: 0 0 1em;
    padding: 0;

    text-indent: 0;
    line-height: 1.8;
}

.page-content > p + p{
    margin-top: 1em;
}

.page-content > p.paragraph-space{
    margin-top: 1.5em;
}

.page-content .usage-list{
    margin: 0 0 1.5em;
    padding-left: 2em;
}

.page-content .usage-list li{
    margin-bottom: 0.8em;
}

.page-content .contact{
    margin-top: 2em;
}

.page-content .contact-item{
    font-weight: bold;
}

/* パンくずリスト */
.breadcrumb{
    width: 100%;
    margin: 15px auto;
    padding: 5px 10px;

    color: #555555;
    font-size: 14px;
}

.breadcrumb a{
    color: var(--main-blue-dark);
    text-decoration: none;
}

.breadcrumb a:hover{
    text-decoration: underline;
}

/* =========================================================
   トップページ：建物の写真
========================================================= */

.hero-photo{
    width: 100%;
    margin: 20px auto 0;
    overflow: hidden;
}

.hero-photo img{
    display: block;
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center;
    border-radius: 8px;
}

/* スマートフォン */
@media (max-width: 768px) {
    .hero-photo{
        margin-top: 10px;
    }

    .hero-photo img{
        height: 200px;
        border-radius: 0;
    }
}

/* トップページの紹介文 */
#wrap > p{
    margin-top: 25px;
    padding: 10px 20px;

    color: #000000;

    font-family:
        "ヒラギノ丸ゴ ProN",
        "Hiragino Maru Gothic ProN",
        "UD デジタル 教科書体",
        "メイリオ",
        sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
}


/* =========================================================
   5. 更新履歴・お知らせ・活動報告
========================================================= */

#top-boxes{
    display: flex;
    gap: 20px;
    margin-top: 30px;
}

#history,
#links{
    width: 580px;
}

/* 各ボックスの見出し */
#history h2,
#links h2,
#diary h2{
    margin: 0;
    padding: 12px 16px;

    color: #ffffff;
    background-color: var(--main-blue);

    font-size: 18px;
    font-weight: bold;
    line-height: 1.5;

    border: 1px solid var(--main-blue);
    border-bottom: 3px solid #a8d9c8;
    border-radius: 5px 5px 0 0;
}

/* 更新履歴・お知らせ */
.box-inner{
    height: 180px;
    padding: 15px;

    color: #222222;
    background-color: #ffffff;

    border: 1px solid var(--border-color);
    border-top: none;
    border-radius: 0 0 5px 5px;

    overflow-y: auto;
    overflow-x: hidden;

    scrollbar-width: auto;
    scrollbar-color: #8bbdb2 #edf6f2;
}

/* 更新履歴の表 */
.history-table{
    width: 100%;
    max-width: 100%;

    border-collapse: collapse;
    table-layout: auto;
}

.history-table td{
    padding: 6px 8px;

    border: none;
    border-bottom: 1px solid #b0b0b0;

    text-align: left;
    vertical-align: top;
}

.history-year{
    width: 120px;
    min-width: 120px;

    color: #000000;
    white-space: nowrap;
    text-align: right !important;
}

.year-num{
    display: inline-block;
    width: 2em;
    text-align: right;
}

/* お知らせ欄のリンク */
#links a{
    color: #064f78;
    font-weight: bold;
    text-decoration: underline;

    transition: color 0.2s ease;
}

#links a:hover{
    color: #103f46;
    text-decoration-thickness: 2px;
}

/* 活動報告 */
#diary{
    margin-top: 30px;
}

#wordpress-posts{
    height: 300px;
    padding: 15px;

    color: #222222;
    background-color: #ffffff;

    border: 1px solid var(--border-color);
    border-top: none;
    border-radius: 0 0 5px 5px;

    overflow-y: auto;
    overflow-x: hidden;

    scrollbar-width: auto;
    scrollbar-color: #8bbdb2 #edf6f2;
}

.diary-item{
    margin-bottom: 12px;
    padding-bottom: 10px;

    border-bottom: 1px solid #b0b0b0;
}

.diary-item:last-child{
    border-bottom: none;
}

.diary-item h3{
    margin: 0 0 5px;
    padding: 0;

    font-family: "メイリオ", sans-serif;
    font-size: 16px;
    font-weight: normal;
    line-height: 1.7;
}

.diary-item h3 a{
    color: #064f78;
    font-weight: bold;
    text-decoration: underline;
}

.diary-item h3 a:hover{
    color: #103f46;
    text-decoration-thickness: 2px;
}

.diary-item p{
    margin: 5px 0;

    color: #505050;
    font-size: 14px;
    line-height: 1.7;
}


/* =========================================================
   6. 通常の表・料金表
========================================================= */

.normal-table{
    width: 900px;
    max-width: 100%;

    table-layout: fixed;
    border: 2px solid #333333;
    border-collapse: collapse;
}

.normal-table td{
    padding: 10px 15px;

    border: 1px solid #333333;

    vertical-align: top;
    line-height: 1.7;
}

.normal-table td:first-child{
    width: 220px;
    text-align: left;
}

.normal-table td:nth-child(2){
    width: 680px;
    text-align: left;
}

.price-table{
    width: 610px;

    border: 2px solid #a0d8ef;
    border-collapse: collapse;

    font-size: 14px;
}

.price-table td{
    padding: 8px;
    border: 1px solid #a0d8ef;
    text-align: center;
}

.price-table tr:first-child{
    background-color: var(--page-bg);
    font-weight: bold;
}

.price-table td:nth-child(1){
    width: 90px;
}

.price-table td:nth-child(2),
.price-table td:nth-child(3){
    width: 120px;
}

.price-table td:nth-child(4){
    width: 250px;
}

/* 定款の変更履歴 */
.teikan-table{
    width: 800px;
    max-width: 100%;
    border-collapse: collapse;
}

.teikan-table th,
.teikan-table td{
    padding: 6px 10px;
    border: 1px solid #cccccc !important;
}


/* =========================================================
   7. メニュー・施設紹介ボタン
========================================================= */

/* 通常メニュー */
.menu{
    width: 700px;
    margin: 30px auto;
}

.menu ul{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;

    margin: 0;
    padding: 0;
    list-style: none;
}

.menu li{
    margin: 0;
}

.menu a{
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 100px;
    padding: 20px;

    color: #000000;
    background-color: #ffffff;

    border: 3px solid var(--main-blue-dark);
    border-radius: 12px;

    font-size: 18px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;

    transition:
        background-color 0.3s ease,
        border-color 0.3s ease;
}

.menu a:hover{
    color: #000000;
    background-color: #d0e6f0;
    border-color: var(--main-blue-deep);
}

/* 施設紹介・点字図書館など */
.facility-menu{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;

    width: 1000px;
    max-width: 100%;
    margin: 50px auto;
}

.facility-button{
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-height: 160px;
    padding: 25px;

    color: #000000;
    background-color: #ffffff;

    border: 3px solid var(--main-blue-dark);
    border-radius: 12px;

    text-align: center;
    text-decoration: none;

    transition:
        background-color 0.3s ease,
        border-color 0.3s ease;
}

.button-title{
    margin-bottom: 15px;
    color: var(--main-blue-dark);
    font-size: 22px;
    font-weight: bold;
}

.button-text{
    color: #555555;
    font-size: 14px;
}

.facility-button:hover{
    background-color: #d0e6f0;
    border-color: var(--main-blue-deep);
}

.facility-button:hover .button-title,
.facility-button:hover .button-text{
    color: #000000;
}


/* =========================================================
   8. 相談・支援
========================================================= */

.consultation ul{
    margin: 0 0 15px;
    padding: 0;
    list-style: none;
}

.consultation li{
    padding-left: 1em;
    margin-bottom: 5px;
}

.consultation li::before{
    content: "・";
}

.consultation-page p{
    margin-bottom: 10px;
}

.consultation-page .sub-title{
    margin-top: 28px;
    margin-bottom: 15px;
}

.consultation-page .consultation > p{
    margin-bottom: 8px;
}

.consultation-page .consultation ul{
    margin-top: 0;
    margin-bottom: 15px;
}

.consultation-page p.section-text{
    padding-left: 1em;
}


/* =========================================================
   9. 同行援護
========================================================= */

.doukouengo-page p{
    margin: 0 0 10px;
    line-height: 1.8;
}

.info-list{
    margin: 10px 0 25px;
}

.info-item{
    margin-bottom: 22px;
}

.info-title{
    margin: 0 0 5px;
    padding: 0;

    font-weight: normal;
    line-height: 1.8;
}

.info-text{
    margin: 0 0 0 1.5em !important;
    padding: 0;

    font-weight: normal;
    line-height: 1.8;
}


/* =========================================================
   10. 点字図書館
========================================================= */

.library-news-list{
    margin: 20px 0;
}

.library-news-card{
    display: flex;
    align-items: center;
    gap: 20px;

    width: fit-content;
    padding: 10px 15px;
    margin-bottom: 10px;

    background-color: #ffffff;
    border: 1px solid #cccccc;
    border-radius: 6px;
}

.news-number{
    font-weight: bold;
}

.library-news-card a{
    color: var(--main-blue-dark);
    text-decoration: none;
}

.library-news-card a:hover{
    color: var(--main-blue-deep);
    text-decoration: underline;
}

.library-news-card a + a{
    padding-left: 15px;
    border-left: 1px solid #cccccc;
}


/* =========================================================
   11. 申込先情報
========================================================= */

.application-table{
    width: 800px;
    max-width: 100%;

    margin: 25px 0;

    border-collapse: collapse;
    border: 1px solid #a0d8ef;

    background-color: #ffffff;
}

.application-table th,
.application-table td{
    padding: 10px 15px;

    border: 1px solid #a0d8ef;

    line-height: 1.7;
    text-align: left;
    vertical-align: middle;
}

.application-table th{
    width: 120px;

    color: var(--main-blue-dark);
    background-color: var(--page-bg);

    font-weight: bold;
    white-space: nowrap;
}

.application-table td{
    color: #000000;
}

.application-table a{
    color: var(--main-blue-dark);
    text-decoration: none;
}

.application-table a:hover{
    text-decoration: underline;
}


/* =========================================================
   12. 講習会情報
========================================================= */

.course-info{
    margin: 20px 0 30px;
}

.course-row{
    display: grid;
    grid-template-columns: 120px 1fr;
    column-gap: 20px;

    margin-bottom: 0;
    padding: 10px 0;

    line-height: 1.8;
    border-bottom: 1px solid #7fb8d2;
}

.course-row:last-child{
    border-bottom: none;
}

.course-label{
    color: #000000;
    font-weight: normal;
    white-space: nowrap;
}

.course-text{
    color: #000000;
}


/* =========================================================
   13. 現況報告書一覧
========================================================= */

.report-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.report-box{
    overflow: hidden;

    background-color: #ffffff;
    border: 1px solid #999999;
    border-radius: 6px;
}

.report-box h4{
    margin: 0;
    padding: 12px;

    background-color: #f5f5f5;

    font-weight: normal;
    text-align: center;

    border-bottom: 1px solid #999999;
}

.report-box ul{
    margin: 0;
    padding: 0;
    list-style: none;
}

.report-box li{
    border-bottom: 1px solid #dddddd;
}

.report-box li:last-child{
    border-bottom: none;
}

.report-box a{
    display: block;
    padding: 10px 15px;

    color: #333333;
    text-decoration: none;

    border-left: 4px solid transparent;

    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}

.report-box a:hover {
    background-color: var(--page-bg);
    color: var(--main-blue-dark);
    border-left-color: var(--main-blue-dark);
}

.report-box a:active{
    background-color: #d9edf7;
}

.report-box a:focus {
    outline: 2px solid var(--main-blue-dark);
    outline-offset: -2px;
}

.report-box a::after{
    content: "›";
    float: right;
    color: #888888;
}


/* =========================================================
   14. お問い合わせフォーム
========================================================= */

.contact-form{
    width: 100%;
    margin: 30px auto 40px;
}

.contact-form-row{
    width: 100%;
    margin-bottom: 28px;
}

.contact-form-label{
    display: block;
    margin: 0 0 9px;

    color: #333333;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
}

.required{
    display: inline-block;
    margin-left: 8px;
    padding: 2px 7px;

    color: #ffffff;
    background-color: #d9534f;

    border-radius: 4px;

    font-size: 12px;
    font-weight: bold;
    line-height: 1.4;
    vertical-align: middle;
}

/* テキスト・メール・電話・選択・本文 */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea{
    width: 100%;
    padding: 10px 12px;

    color: #000000;
    background-color: #ffffff;

    border: 2px solid #a0d8ef;
    border-radius: 6px;

    font-family:
        "メイリオ",
        "ヒラギノ角ゴシック",
        sans-serif;
    font-size: 16px;
    line-height: 1.5;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.contact-form input[type="text"]:focus,
.contact-form input[type="email"]:focus,
.contact-form input[type="tel"]:focus,
.contact-form select:focus,
.contact-form textarea:focus{
    outline: none;
    border-color: var(--main-blue-dark);
    box-shadow: 0 0 5px rgba(20, 90, 141, 0.25);
}

/* 生年月日 */
.birth-date-input{
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: nowrap;
}

.birth-date-input input{
    width: auto !important;
}

.birth-date-input input#birth-year{
    width: 80px !important;
}

.birth-date-input input#birth-month,
.birth-date-input input#birth-day{
    width: 50px !important;
}

/* ラジオ・チェックボックス */
.contact-form-fieldset{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 25px;

    margin: 0;
    padding: 0;
    border: none;
}

.contact-form-fieldset .contact-form-label{
    display: block;
    width: 100%;
    margin: 0 0 3px;
}

.contact-form-radio{
    display: inline-flex;
    align-items: center;

    margin: 0;

    color: #000000;
    font-weight: normal;
    line-height: 1.6;
    cursor: pointer;
}

.contact-form-radio input[type="radio"],
.contact-form-radio input[type="checkbox"]{
    width: 18px;
    height: 18px;
    margin: 0 8px 0 0;

    accent-color: var(--main-blue-dark);
    cursor: pointer;
}

/* テキストエリア */
.contact-form textarea{
    min-height: 200px;
    resize: vertical;
}

/* 送信ボタン */
.contact-form-submit{
    margin-top: 35px;
    text-align: center;
}

.contact-form input[type="submit"]{
    padding: 13px 50px;

    color: #ffffff;
    background-color: var(--main-blue-dark);

    border: 3px solid var(--main-blue-dark);
    border-radius: 12px;

    font-size: 18px;
    font-weight: bold;

    cursor: pointer;

    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease;
}

.contact-form input[type="submit"]:hover{
    color: #ffffff;
    background-color: var(--main-blue-deep);
    border-color: var(--main-blue-deep);
}

/* エラー表示 */
.form-error{
    margin: 20px 0;
    padding: 15px 20px;

    color: #333333;
    background-color: var(--page-bg);

    border: 1px solid #a0d8ef;
    border-left: 5px solid var(--main-blue-dark);
    border-radius: 6px;
}

.form-error li{
    margin-bottom: 5px;
}

.form-error li:last-child{
    margin-bottom: 0;
}

.contact-form-heading{
    margin: 35px 0 15px;
    padding: 8px 10px;

    border-bottom: 3px solid #a0d8ef;
    font-size: 18px;
}


/* =========================================================
   15. 電話・お問い合わせ先
========================================================= */

.phone-contact{
    margin: 25px auto;
}

.phone-number{
    color: var(--main-blue-dark);
    font-size: 22px;
    font-weight: bold;
}

.phone-number a{
    color: var(--main-blue-dark);
    text-decoration: none;
}

.phone-number a:hover{
    color: var(--main-blue-deep);
    text-decoration: underline;
}


/* =========================================================
   16. 定款・後援会
========================================================= */

.teikan-content{
    margin: 0 10px;

    color: #000000;
    font-size: 14px;
    line-height: 1.6;
}

.teikan-content p{
    margin: 0;
    padding: 0;

    text-indent: 0;
    line-height: 1.5;
}

.teikan-content p + p{
    margin-top: 0;
}

/* 会費一覧 */
.fee-list{
    margin: 0 0 0.5em;
    padding-left: 1em;
}

.fee-row{
    display: grid;
    grid-template-columns: 110px 1fr;
    column-gap: 10px;

    margin-bottom: 3px;
    line-height: 1.6;
}

.fee-name{
    white-space: nowrap;
}

.fee-text{
    min-width: 0;
}


/* =========================================================
   17. 開館のご案内
========================================================= */

.opening-info{
    width: 800px;
    max-width: 100%;

    margin: 20px 0 30px;

    border-top: 1px solid #a0d8ef;
    border-left: 1px solid #a0d8ef;
}

.opening-row{
    display: grid;
    grid-template-columns: 160px 1fr;

    border-bottom: 1px solid #a0d8ef;
}

.opening-label{
    display: flex;
    align-items: center;

    padding: 12px 15px;

    color: #000000;
    background-color: var(--page-bg);

    font-weight: bold;
    border-right: 1px solid #a0d8ef;
}

.opening-text{
    padding: 12px 15px;

    color: #000000;
    background-color: #ffffff;

    border-right: 1px solid #a0d8ef;
    line-height: 1.8;
}


/* =========================================================
   18. フッター
========================================================= */

footer{
    width: 100%;
    margin: 0 auto;
    padding: 20px;

    color: #444444;
    text-align: center;
}


/* =========================================================
   19. スマートフォン・タブレット
========================================================= */

@media (max-width: 768px) {

    /* 全体 */
    #wrap{
        width: 100%;
    }

    /* ヘッダー */
    .header-area{
        padding-bottom: 12px;
    }

    .site-header{
        width: 100%;
        padding: 20px 0 15px;
    }

    .header-left{
        width: 90%;
        max-width: 848px;
    }

    .logo-corporation{
        width: 142px;
        max-width: 30%;
    }

    .logo-main{
        width: 100%;
    }

    .logo-sub{
        width: 214px;
        max-width: 40%;
    }

    .site-map{
        right: 20px;
    }

    /* ナビゲーション */
    nav{
        width: 100%;
        padding: 0 5px;
    }

    #main-menu{
        width: 100%;
        flex-wrap: wrap;
    }

    .nav-item{
        flex: 0 0 50%;
        padding: 3px;
    }

    .nav-item a{
        min-height: 65px;
        gap: 4px;
        padding: 8px 4px;
        font-size: 14px;
    }

    .menu-icon{
        font-size: 22px;
    }

    /* 本文 */
    .content-area{
        width: 100%;
        margin: 15px 0;
        padding: 20px 15px;
        border-radius: 0;
    }

    .breadcrumb{
        padding: 5px 10px;
        font-size: 13px;
    }

    /* 更新履歴・お知らせ */
    #top-boxes {
        flex-direction: column;
    }

    #history,
    #links{
        width: 100%;
    }

    #history h2,
    #links h2,
    #diary h2{
        padding: 11px 13px;
        font-size: 16px;
    }

    .box-inner{
        height: 180px;
        padding: 12px;
    }

    #wordpress-posts{
        height: 300px;
        padding: 12px;
    }

    .history-year{
        width: 100px;
        min-width: 100px;
    }

    /* メニュー */
    .menu{
        width: 100%;
    }

    .menu ul {
        grid-template-columns: 1fr;
    }

    /* 施設紹介・図書館ボタン */
    .facility-menu{
        width: 90%;
        grid-template-columns: 1fr;
        gap: 20px;
        margin: 30px auto;
    }

    .facility-button{
        min-height: 140px;
        padding: 20px;
    }

    .button-title{
        font-size: 19px;
    }

    /* 現況報告書 */
    .report-list {
        grid-template-columns: 1fr;
    }

    /* 表 */
    .normal-table,
    .history-table,
    .price-table,
    .teikan-table{
        width: 100%;
    }

    /* 申込先情報 */
    .application-table{
        width: 100%;
    }

    .application-table th,
    .application-table td{
        padding: 9px 10px;
    }

    .application-table th{
        width: 90px;
    }

    /* 講習会 */
    .course-row{
        grid-template-columns: 85px 1fr;
        column-gap: 10px;
        margin-bottom: 0;
        padding: 8px 0;
    }

    /* お問い合わせフォーム */
    .contact-form{
        width: 100%;
        margin: 25px auto 40px;
    }

    .contact-form-row{
        margin-bottom: 24px;
    }

    .contact-form-label{
        margin-bottom: 8px;
        font-size: 16px;
    }

    .required{
        margin-left: 6px;
        padding: 2px 6px;
        font-size: 11px;
    }

    .contact-form input[type="text"],
    .contact-form input[type="email"],
    .contact-form input[type="tel"],
    .contact-form select,
    .contact-form textarea{
        width: 100%;
        font-size: 16px;
    }

    .contact-form-fieldset {
        gap: 10px 18px;
    }

    .contact-form-radio{
        margin: 0;
    }

    .birth-date-input {
        gap: 4px;
    }

    .birth-date-input input#birth-year{
        width: 75px !important;
    }

    .birth-date-input input#birth-month,
    .birth-date-input input#birth-day{
        width: 50px !important;
    }

    .contact-form textarea{
        min-height: 180px;
    }

    .contact-form-submit{
        margin-top: 30px;
    }

    .contact-form input[type="submit"]{
        width: 100%;
        padding: 13px 20px;
    }

    /* 電話 */
    .phone-contact{
        width: 90%;
        margin: 25px auto;
    }

    .phone-number{
        font-size: 20px;
    }

    /* 同行援護 */
    .info-item{
        margin-bottom: 20px;
    }

    .info-text{
        margin-left: 1em !important;
    }

    /* 開館のご案内 */
    .opening-info{
        width: 100%;
    }

    .opening-row {
        grid-template-columns: 100px 1fr;
    }

    .opening-label,
    .opening-text{
        padding: 10px;
        font-size: 14px;
    }
}

/* TOPページ専用：建物写真 */
.hero-area{
    position: relative;
    width: 100%;
}

.hero-photo img{
    display: block;
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center;
}

/* TOPページだけメニューを写真の上端に重ねる */
.hero-area nav{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

@media (max-width: 768px) {
    .hero-photo img{
        height: 240px;
    }
}

/* メニュー：アイコンなし・高さを縮小 */
#main-menu .nav-item a{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 6px 4px;
    gap: 0;
}

/* スマートフォン */
@media (max-width: 768px) {
    #main-menu .nav-item a{
        min-height: 38px;
        padding: 5px 3px;
        font-size: 13px;
    }
}


/* =========================================================
   ヘッダーとメニューの間隔調整
========================================================= */

/* ヘッダー下の余白を縮める */
.site-header{
    padding-bottom: 10px;
}

/* ロゴとメニューの間を詰める */
.header-area{
    padding-bottom: 0;
}

/* メニューを少し太くする */
#main-menu .nav-item a{
    min-height: 54px;
    padding: 10px 5px;
    line-height: 1.5;
}

/* スマートフォン */
@media (max-width: 768px) {
    .site-header{
        padding-bottom: 8px;
    }

    #main-menu .nav-item a{
        min-height: 46px;
        padding: 8px 3px;
        font-size: 13px;
    }
}


/* =========================================================
   追加のスマートフォン対応
   既存CSSの一番最後に追加
========================================================= */

/* 画面幅を超える要素を抑える */
html{
    max-width: 100%;
}

body{
    min-width: 0;
}

#wrap,
.header-area,
.site-header,
.header-left,
.content-area,
.page-content{
    min-width: 0;
    max-width: 100%;
}

/* 画像は親要素の幅に合わせる */
img{
    max-width: 100%;
    height: auto;
}

/* スマートフォン */
@media screen and (max-width: 768px) {

    /* ヘッダー */
    .site-header{
        width: 100%;
        padding: 15px 10px 8px;
    }

    .header-left{
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    .header-left::before{
        left: auto;
        right: 0;
        width: 32%;
        max-width: 150px;
        height: 65px;
    }

    .logo-corporation{
        max-width: 28%;
        height: auto;
    }

    .logo-row{
        width: 100%;
        max-width: 100%;
    }

    .logo-main{
        width: 100%;
        max-width: 100%;
    }

    .logo-sub{
        max-width: 45%;
        height: auto;
        margin-left: 0;
    }

    .site-map{
        top: 0;
        right: 0;
        font-size: 12px;
    }

    /* 本文の左右余白 */
    .content-area{
        padding: 18px 12px;
    }

    /* 表のセル内で長い文字を折り返す */
    .normal-table,
    .history-table,
    .price-table,
    .teikan-table,
    .application-table{
        max-width: 100%;
    }

    .normal-table td,
    .history-table td,
    .price-table td,
    .teikan-table th,
    .teikan-table td,
    .application-table th,
    .application-table td {
        overflow-wrap: anywhere;
    }

    /* 長いリンク・URLなど */
    .page-content a {
        overflow-wrap: anywhere;
    }

    /* 写真 */
    .hero-photo img{
        max-width: 100%;
    }

    /* 日付入力欄 */
    .birth-date-input{
        flex-wrap: wrap;
    }
}
