        @import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);

        /* ── レイアウトリセット ── */
        /* layout.css の #contents 幅制限を解除し、full-width ヒーローを viewport 幅にする */
        body.page_sitemap {
            overflow-x: hidden;
        }

        body.page_sitemap main#contents {
            max-width     : none;
            width         : 100%;
            padding-left  : 0;
            padding-right : 0;
            padding-bottom: 0;
            display       : block;
        }

        body.page_sitemap #dcms_layoutPageBlock {
            width: 100%;
        }

        /* ------------------------------------------ */
        /* 変数設定 (CSS Variables)                   */
        /* ------------------------------------------ */
        :root {
            --key-color: #cd2f2b;
            --stage-bg-color: #FFFFFF;
            --heading-border-color: #777777;
            --text-color: #333333;
            --subtle-text-color: #555555;
            --link-hover-color: #990011;
            --border-light: #EEEEEE;
            --main-container-max-width: 1064px;
        }

        /* ------------------------------------------ */
        /* スタイル                         */
        /* ------------------------------------------ */

        /* メインコンテンツ */
        main {
            width: 100%;
            max-width: var(--main-container-max-width);
            padding: 0 20px;
            flex-grow: 1;
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            justify-content: center;
        }

        /* .contents ディレクティブ */
        .contents {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            justify-content: center;
            /* 子要素 (home, our, service, usefulinformation) を中央寄せ */
            width: 100%;
            /* main の幅に合わせる */
        }

        /* 個々のセクション (home, our, service, usefulinformation) */
        .home,
        .our,
        .service,
        .usefulinformation {
            padding: 25px;
            flex-shrink: 1;
            /* デフォルト値ですが、明示しても良い */
            flex-grow: 1;
            /* デフォルト値ですが、明示しても良い */
            flex-basis: 300px;
            /* 目安として、3列で並ぶ場合の1列あたりの幅 */
            min-width: 280px;
            max-width: 400px;
        }

        /* HOMEセクションのみ左寄せ */
        .home {
            margin-right: auto;
            /* 他のアイテムを右に押し出す */
            flex-shrink: 0;
        }

        .our {
            /* flex-shrink: 0; <-- これを有効にすると、最小限の幅（min-width）で済むようになる */
            flex-basis: auto;
            /* flex-basis を auto に戻すか、または特定の値にする */
            max-width: 300px;
            /* 「私たちについて」の最大幅を少し狭める（例） */
            /* または、flex: 0 0 300px; のように、縮小・拡大せず、300pxで固定したい場合 */
        }

        .usefulinformation {
            /* flex-shrink: 0; <-- これを有効にすると、最小限の幅（min-width）で済むようになる */
            flex-basis: auto;
            /* flex-basis を auto に戻すか、または特定の値にする */
            max-width: 300px;
            /* 「私たちについて」の最大幅を少し狭める（例） */
            /* または、flex: 0 0 300px; のように、縮小・拡大せず、300pxで固定したい場合 */
        }

        /* HOMEセクション見出し (h2) */
        .home h2 {
            font-size: 18px;
            font-weight: bold;
            color: var(--key-color);
            margin-top: 0;
            /* セクションの先頭なので、上マージンなし */
            margin-bottom: 0;
            padding-left: 30px;
            position: relative;
            display: inline-block;
            /* テキストの幅に合わせる */
        }

        /* HOME　h2 にアイコンを付ける */
        .home h2::before {
            content: "\2302";
            /* 家の形 */
            color: var(--key-color);
            /* アイコンの色 */
            font-size: 24px;
            /* アイコンのサイズ */
            font-weight: bold;
            /* アイコンの太さ */
            position: absolute;
            left: 0;
            /* padding-left の開始位置に配置 */
            top: 50%;
            transform: translateY(-50%);
            /* 中央揃えを正確にするための調整 */
            line-height: 1;
            /* line-height は inherit せず、アイコンが中央に来るように固定 */
        }

        .our h2.category,
        .service h2.category,
        .usefulinformation h2.category {
            font-size: 16px;
            color: var(--key-color);
            margin-top: 0;
            margin-bottom: 20px;
            padding: 3px 7px;
            border-left: solid 3px #CC0022;
            /*左線*/
            background: #FFFFFF;
            /*背景色*/
        }

        /* h3 */
        .our h3,
        .service h3,
        .usefulinformation h3 {
            font-size: 16px;
            font-weight: bold;
            color: var(--heading-border-color);
            margin-top: 25px;
            margin-bottom: 10px;
            padding-bottom: 5px;
            border-bottom: 1px dashed var(--heading-border-color);
            line-height: 1.4;
            /* h3のline-heightを明示 */
        }

        /* h4 */
        .our h4,
        .service h4,
        .usefulinformation h4 {
            font-size: 14px;
            color: var(--text-color);
            margin-top: 15px;
            margin-bottom: 8px;
            padding-left: 20px;
            /* アイコンとテキストのスペース */
            position: relative;
            line-height: 1.4;
            /* h4のline-heightを明示 */
        }

        /* <h4> にアイコン（‣）を付ける */
        .our h4::before,
        .service h4::before,
        .usefulinformation h4::before {
            content: "\‣";
            /* 黒丸 (‣) */
            color: var(--key-color);
            /* アイコンの色 */
            font-size: 30px;
            /* アイコンのサイズ */
            font-weight: bold;
            /* アイコンの太さ */
            position: absolute;
            left: -10px;
            /* padding-left の開始位置に配置 */
            top: 50%;
            transform: translateY(-50%);
            /* 中央揃えを正確にするための調整 */
            line-height: 1;
            /* line-height を固定し、アイコンの垂直位置を安定させる */
        }

        /* ul, li 共通のスタイル */
        .our ul,
        .service ul,
        .usefulinformation ul {
            list-style: none;
            padding-left: 0;
            /* ul 自体の左インデントをリセット */
            margin-top: 8px;
            /* ul と上の要素 (h2, h3, h4) の間隔 */
            margin-left: 10px;
            /* インデント */
        }

        .our li,
        .service li,
        .usefulinformation li {
            font-size: 14px;
            color: #555;
            margin-bottom: 8px;
            padding-left: 18px;
            /* li でインデントを表現 */
            position: relative;
            line-height: 1.5;
            /* liのline-heightを明示 */
        }

        /* <li> にアイコン（・）を付ける */
        .our li::before,
        .service li::before,
        .usefulinformation li::before {
            content: "\2022";
            /* 黒丸 (・) */
            color: var(--key-color);
            /* アイコンの色 */
            font-size: 1.0em;
            /* アイコンのサイズ */
            font-weight: bold;
            /* アイコンの太さ */
            position: absolute;
            left: 5px;
            /* li の padding-left の開始位置 */
            top: 50%;
            /* 親要素 (li) の垂直方向中央に配置 */
            transform: translateY(-50%);
            /* 中央揃えを正確にするための調整 */
            line-height: 1;
            /* line-height を固定 */
        }

        /* a タグのスタイル */
        .home a {
            text-decoration: none;
            color: var(--key-color);
            display: inline-block;
            /* block にすると Padding 効きにくい場合がある */
            padding: 3px 0;
            /* 上下に少しパディング */
            transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
            word-break: break-word;
            /* 長い単語がはみ出さないように */
        }

        .our h2.category a,
        .service h2.category a,
        .usefulinformation h2.category a {
            display: inline-block;
            color: var(--key-color);
            font-size: 16px;
            text-decoration: none;
            background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 50%, var(--key-color) 50%);
            background-position: 0 0;
            background-size: 200% auto;
            transition: background-position .3s ease-in-out, color 0.3s ease-in-out;
            /* background-position と color の両方に transition */
            padding: 5px 0;
            position: relative;
            z-index: 1;
        }

        .our h4 a,
        .service h4 a,
        .usefulinformation h4 a {
            text-decoration: none;
            color: var(--text-color);
            display: inline-block;
            /* block にすると Padding 効きにくい場合がある */
            padding: 3px 0;
            /* 上下に少しパディング */
            transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
            word-break: break-word;
            /* 長い単語がはみ出さないように */
        }

        .our li a,
        .service li a,
        .usefulinformation li a {
            text-decoration: none;
            color: #555;
            display: inline-block;
            /* block にすると Padding 効きにくい場合がある */
            padding: 3px 0;
            /* 上下に少しパディング */
            transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
            word-break: break-word;
            /* 長い単語がはみ出さないように */
        }

        /* リンクホバー時 */
        .home a:hover,
        .our h2 a:hover,
        .service h2 a:hover,
        .usefulinformation h2 a:hover,
        .our h4 a:hover,
        .service h4 a:hover,
        .usefulinformation h4 a:hover,
        .our li a:hover,
        .service li a:hover,
        .usefulinformation li a:hover {
            color: var(--key-color);
            /* ホバー時はキーカラーにする */
            text-decoration: underline;
            /* 下線を表示してホバーを分かりやすく */
        }

        /* class="other" を持つ h2 */
        .usefulinformation h2.other {
            font-size: 14px;
            font-weight: bold;
            color: var(--key-color);
            background: none;
            margin-top: 15px;
            /* 上のulや前のh2との間隔 */
            margin-top: 10px;
            /* 上のulや前のh2との間隔 */
            padding: 5px 0;
            /* 上下左右の余白 */
            border-left: none;
            /* 通常の左線は消す */
            border-bottom: none;
            border-radius: 0;
            box-shadow: none;
            display: block;
            /* ブロック要素として配置 */
            width: auto;
            /* 幅は内容に合わせる */
            transition: none;
        }

        /* class="other" を持つ h2 の中の <a> タグ */
        .usefulinformation h2.other a {
            color: var(--key-color);
            text-decoration: none;
            display: block;
            /* <a> タグ全体を clickable な領域にする */
            width: auto;
            /* 幅は内容に合わせる */
            padding: 7px;
            /* 内側の余白 */
            position: relative;
            /* ホバーアニメーションのため */
            overflow: hidden;
            /* ホバー背景がはみ出さないように */
            z-index: 1;
            transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out, border-color 0.3s ease-in-out;
            /* 文字色、背景色、枠線のトランジション */
            border: 1px solid var(--key-color);
            /* 枠線とその色 */

        }

        .usefulinformation h2.other a:hover {
            color: #FFFFFF;
            /* ホバー時のテキストカラーを白にする */
        }

        .usefulinformation h2.other a::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            color: #FFFFFF;
            background-color: var(--key-color);
            /* ホバー時の背景色 (文字色と同じ) */
            z-index: -1;
            /* テキストの後ろ */
            transform: scaleX(0);
            transform-origin: left;
            /* 左からスライド */
            transition: 0.3s;
        }

        .usefulinformation h2.other a:hover::before {
            transform: scaleX(1);
            /* ホバー時の背景スライドイン 幅100%で表示 */
        }