/* ===== テーマCSS読み込み ===== */
/* <system section="theme" selected="neutral"> */ /* はてなブログのテーマ設定（neutral）を読み込むためのメタ情報 */
@charset "UTF-8";@import"https://fonts.googleapis.com/css?family=Inter:300,400,500,700|Noto+Sans+JP&display=swap";/*!
  Theme: Neutral
  Author: Hatena Blog Team
  Description: 文章が読みやすいシンプルなテーマ です
  Responsive: yes
 */*{margin:0;padding:0}html,body{font-family:Inter,Noto Sans JP,Helvetica Neue,Source Han Sans,Segoe UI,sans-serif;font-size:100%;font-style:normal;word-wrap:break-word}a{color:#333;text-decoration:none}a:hover{color:#1a237e}#globalheader-container{background:#fff}#blog-title{margin:32px 0 80px}@media screen and (min-width: 992px){#blog-title{margin:72px 0 120px}}#blog-title #blog-title-inner{position:relative}#blog-title #blog-title-content{width:90%;margin:auto;padding:0;text-align:center}#blog-title #blog-title-content #title{line-height:1}#blog-title #blog-title-content #title a{font-size:20px;font-weight:500}@media screen and (min-width: 992px){#blog-title #blog-title-content #title a{font-size:32px}}#blog-title #blog-title-content #blog-description{font-size:14px;font-weight:400;color:#888;margin:14px 0 0}@media screen and (min-width: 992px){#blog-title #blog-title-content #blog-description{font-size:16px}}.header-image-enable #blog-title-content{position:absolute;top:50%;left:50%;transform:translateY(-50%) translate(-50%)}.header-image-enable #blog-title-inner #title a,.header-image-enable #blog-title-inner #blog-description{text-shadow:0 0 10px #333}.header-image-enable #blog-title-inner #blog-description{color:#fff!important}#top-editarea{margin:0 0 32px}#top-box .breadcrumb-inner a,#top-box .breadcrumb-inner span{font-size:14px;color:#888}#content-inner{display:flex;flex-flow:column;justify-content:center}@media screen and (min-width: 992px){#content-inner{flex-flow:row}}#content-inner #main{width:auto;margin:auto}@media screen and (min-width: 992px){#content-inner #main{width:620px;margin:0 32px 0 0}}#content-inner #main-inner{margin:0 0 24px}#content-inner #box2{width:auto;margin:0 1em}@media screen and (min-width: 992px){#content-inner #box2{width:300px}}#content-inner #box2-inner{padding:80px 0 0}@media screen and (min-width: 992px){#content-inner #box2-inner{padding:0}}#bottom-editarea{max-width:960px;margin:24px 16px}@media screen and (min-width: 560px){#bottom-editarea{margin:24px auto}}#footer{padding:32px 0;font-size:90%;text-align:center;color:#333}#footer #footer-inner{width:auto;margin:auto 1rem}@media screen and (min-width: 992px){#footer #footer-inner{width:1000px;margin:auto}}#footer address,#footer p{margin:0 8px 0 0;display:inline-block}#footer address .footer-address-name,#footer p .footer-address-name{text-align:left}#footer .footer-address a>img{vertical-align:sub}#top-box{margin:0 1em 1em}@media screen and (min-width: 992px){#top-box{max-width:960px;margin:16px auto}}#top-box .breadcrumb-link span:hover,#top-box .breadcrumb-child-link span:hover,#top-box .breadcrumb-link span:focus,#top-box .breadcrumb-child-link span:focus{color:#333}.entry{margin:0 0 80px;padding:24px 1em 40px;background:#fff;border-radius:4px}.entry .entry-inner .entry-header{position:relative;margin:0 0 32px}.entry .entry-inner .entry-header .date a{font-size:14px;color:#888}@media screen and (min-width: 992px){.entry .entry-inner .entry-header .date{font-size:18px}}.entry .entry-inner .entry-header .date-last-updated{font-size:14px;color:#888}.entry .entry-inner .entry-header .entry-title{font-size:28px;margin:16px 0;padding:0;text-align:left}@media screen and (min-width: 992px){.entry .entry-inner .entry-header .entry-title{font-size:30px;margin:24px 0 32px}}.entry .entry-inner .entry-header .entry-categories .entry-category-link{font-size:12px;background:#f5f5f5;padding:.45em;margin:0 0 4px;border-radius:4px;display:inline-block}.entry .entry-inner .entry-header .entry-header-menu{position:absolute;top:0;right:0}.entry .entry-inner .entry-header .entry-header-menu a{font-size:14px;padding:.45em;border:1px solid #d9d9d9;border-radius:4px}.entry .entry-inner .entry-header .entry-header-menu a:hover,.entry .entry-inner .entry-header .entry-header-menu a:focus{background:#f5f5f5;border:1px solid #f5f5f5;color:#1a237e}.entry .entry-inner .entry-content .entry-category-link{display:inline-block;color:#333;background:#e0e0e0;padding:.4rem .8rem;border-radius:4px;margin:0 0 8px;font-size:12px}.entry .entry-inner .entry-content .entry-category-link:hover,.entry .entry-inner .entry-content .entry-category-link:focus{color:#333}@media screen and (min-width: 992px){.entry .entry-inner .entry-content .entry-category-link{font-size:14px}}.entry .entry-inner .entry-content .table-of-contents{background:#f5f5f5;border-radius:4px;margin:0;padding:1.6em}.entry .entry-inner .entry-content .table-of-contents li>ul{margin-left:1.5em}.entry .entry-inner .entry-content .table-of-contents ul li{line-height:1.5}.entry .entry-inner .entry-content .table-of-contents li,.entry .entry-inner .entry-content .table-of-contents a{color:#1a237e}.entry .entry-inner .entry-footer{margin:72px 0 0}.entry .entry-inner .entry-footer .entry-footer-section{font-size:14px}.entry .entry-inner p{font-size:18px;line-height:1.8;letter-spacing:.5px;font-style:normal;margin:33px 0;color:#454545}.entry .entry-inner p .keyword{border-bottom:1px dotted #333}.entry .entry-inner p .keyword:hover,.entry .entry-inner p .keyword:focus{border-bottom:1px solid #333;text-decoration:none}.entry .entry-inner p a{color:#1a237e}.entry .entry-inner p a:hover,.entry .entry-inner p a:focus{text-decoration:underline}.entry .entry-inner p code{background:#272822;color:#f8f8f2}.entry .entry-inner h1,.entry .entry-inner h2,.entry .entry-inner h3,.entry .entry-inner h4,.entry .entry-inner h5,.entry .entry-inner h6{margin:33px 0}.entry .entry-inner h1{font-size:28px}@media screen and (min-width: 992px){.entry .entry-inner h1{font-size:30px}}.entry .entry-inner h2{font-size:26px}@media screen and (min-width: 992px){.entry .entry-inner h2{font-size:28px}}.entry .entry-inner h3{font-size:24px}@media screen and (min-width: 992px){.entry .entry-inner h3{font-size:26px}}.entry .entry-inner h4{font-size:22px}@media screen and (min-width: 992px){.entry .entry-inner h4{font-size:24px}}.entry .entry-inner h5{font-size:20px}@media screen and (min-width: 992px){.entry .entry-inner h5{font-size:22px}}.entry .entry-inner h6{font-size:16px}@media screen and (min-width: 992px){.entry .entry-inner h6{font-size:20px}}.entry .entry-inner ul,.entry .entry-inner ol,.entry .entry-inner dl{-webkit-margin-start:1.5em;margin-inline-start:1.5em}.entry .entry-inner ul li,.entry .entry-inner ol li,.entry .entry-inner dl li{line-height:1.8}.entry .entry-inner hr{margin:16px 0;border:none;border-top:1px solid #d9d9d9}.entry .entry-inner dd{-webkit-margin-start:40px;margin-inline-start:40px}.entry .entry-inner blockquote{background:#fff;border-left:3px solid #e0e0e0;border-radius:4px;padding:16px;font-size:14px}.entry .entry-inner blockquote p{margin:16px 0;font-size:16px;line-height:1.6;font-style:oblique}.entry .entry-inner blockquote p cite{font-style:initial;font-size:14px}.entry .entry-inner pre{margin:0 0 24px;padding:16px 8px;background:#272822;color:#f8f8f2;border-radius:4px}.entry .entry-inner pre .synComment{color:#75715e}.entry .entry-inner pre .synSpecial{color:#e6db74}.entry .entry-inner pre .synType{color:#66d9ef}.entry .entry-inner pre .synPreProc,.entry .entry-inner pre .synStatement{color:#f92672}.entry .entry-inner pre .synIdentifier{color:#a6e22e}.entry .entry-inner pre .synConstant{color:#ae81ff}.entry .entry-inner table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:14px;border:1px solid #d9d9d9;border-radius:4px;overflow:hidden;border-collapse:unset;border-spacing:0}.entry .entry-inner table th{background:#d9d9d9;padding:.45em;border-right:1px solid #fff}.entry .entry-inner table th:last-child{border-right:none}.entry .entry-inner table tbody{display:table-row-group;text-align:center}.entry .entry-inner table tbody tr{display:table-row}.entry .entry-inner table tbody tr:nth-child(2n){background:#f5f5f5}.entry .entry-inner table tbody td{padding:.45em;border-right:1px solid #d9d9d9}.entry .entry-inner table tbody td:last-child{border-right:none}.entry .entry-inner .footnote{font-size:14px}.entry .entry-inner .entry-see-more{color:#333;border:1px solid #d9d9d9;font-size:16px;border-radius:4px;padding:.6em .8em}.entry .entry-inner .entry-see-more:hover{background:#f5f5f5;border:1px solid #f5f5f5;color:#1a237e;transition:color .3s}.entry .entry-inner .entry-footer-ad{margin:8px 0 0;padding:8px 4px;border:1px solid #d9d9d9;border-radius:4px}.entry .entry-inner .hatena-star-container{margin:0 0 24px}.entry .entry-inner .social-buttons{margin:24px 0}.entry .entry-inner .entry-footer-modules .hatena-module-title{font-size:18px;margin:0 0 24px}.entry .entry-inner .entry-footer-modules .hatena-module{margin:0;padding:1em 0}.entry .entry-inner .entry-footer-modules .related-entries,.entry .entry-inner .entry-footer-modules .entries-access-ranking,.entry .entry-inner .entry-footer-modules .recent-entries{margin:0}.entry .entry-inner .comment-box{margin:32px 0 0}.entry .entry-inner .comment-box .comment{margin:0}.entry .entry-inner .comment-box .comment .entry-comment{list-style:none;margin:0 0 32px}.entry .entry-inner .comment-box .comment .comment-user-name{margin:0 0 4px;display:flex;align-items:center}.entry .entry-inner .comment-box .comment .comment-user-name .hatena-id-icon{width:20px;height:20px;border-radius:4px;margin:0 8px 0 0}.entry .entry-inner .comment-box .comment .comment-content{margin:0 0 16px}.entry .entry-inner .comment-box .comment .comment-content p{font-size:16px;line-height:1.6;margin:16px 0}.entry .entry-inner .comment-box .comment .comment-metadata{margin:0;font-size:14px;color:#888}.entry .entry-inner .comment-box .leave-comment-title{border:1px solid #d9d9d9;border-radius:4px;color:#333;padding:8px 16px;font-size:16px}@media screen and (min-width: 992px){.entry .entry-inner .comment-box .leave-comment-title{font-size:14px}}.entry .entry-inner .comment-box .leave-comment-title:hover,.entry .entry-inner .comment-box .leave-comment-title:focus{color:#1a237e;background:#f5f5f5;border:1px solid #f5f5f5}.pager .pager-prev,.pager .pager-next{width:100%;position:relative;display:inline-block;background:#fff;border-radius:4px}.pager .pager-prev a,.pager .pager-next a{padding:1em;display:block}.pager .pager-prev:hover,.pager .pager-next:hover,.pager .pager-prev:focus,.pager .pager-next:focus{color:#1a237e}.pager .pager-prev .pager-arrow,.pager .pager-next .pager-arrow{font-size:32px;height:32px;line-height:32px;position:absolute;display:block;top:0;bottom:0;margin:auto;color:#d9d9d9}.pager.permalink{background:#fff;display:flex;justify-content:space-between;align-items:center;border-radius:4px;margin:24px 16px;padding:8px 16px;line-height:1.5}@media screen and (min-width: 992px){.pager.permalink{margin:32px auto}}.pager.permalink .pager-prev{margin-right:auto;padding:0 0 0 32px}.pager.permalink .pager-prev a{text-align:left;padding-left:0}.pager.permalink .pager-prev .pager-arrow{left:0}.pager.permalink .pager-next{margin-left:auto;padding:0 32px 0 0}.pager.permalink .pager-next a{text-align:right;padding-right:0}.pager.permalink .pager-next .pager-arrow{right:0}.page-index .pager{border-radius:4px;justify-content:center;text-align:center}.page-index .pager .pager-prev,.page-index .pager .pager-next{display:block}.hatena-module{background:#fff;margin:0 0 32px;padding:16px;border-radius:4px}.hatena-module .hatena-module-title{font-size:20px;font-weight:700;margin:0 0 24px}.hatena-module .hatena-module-title a{color:#333}.hatena-module .hatena-module-body,.hatena-module .hatena-urllist{padding:0}.hatena-module .hatena-module-body .urllist-item,.hatena-module .hatena-urllist .urllist-item{list-style:none;margin:0 0 32px}.hatena-module .hatena-module-body .urllist-item:last-child,.hatena-module .hatena-urllist .urllist-item:last-child{margin-bottom:0}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-title-link,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-title-link{color:#333;margin:0 0 8px;font-size:16px;line-height:1.6;display:inline;text-align:justify}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-title-link:hover,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-title-link:hover{color:#1a237e}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-date-link,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-date-link{margin:0 0 4px}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-date-link time,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-date-link time{color:#888}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-categories,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-categories{margin:4px 0 0}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-categories .urllist-category-link,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-categories .urllist-category-link{display:inline-block;background:#f5f5f5;margin:0 0 8px;padding:.4em;font-size:12px;border-radius:4px}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-categories .urllist-category-link:hover,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-categories .urllist-category-link:hover{color:#1a237e}.hatena-module .hatena-module-body .urllist-item .urllist-item-inner .urllist-entry-body,.hatena-module .hatena-urllist .urllist-item .urllist-item-inner .urllist-entry-body{color:#888;font-size:14px;margin:0 0 8px;text-align:justify}.hatena-module .hatena-module-body .urllist-image,.hatena-module .hatena-urllist .urllist-image{border-radius:4px}.hatena-module .hatena-module-body .urllist-see-more-link,.hatena-module .hatena-urllist .urllist-see-more-link{border:1px solid #f5f5f5;border-radius:4px;padding:.45em}.hatena-module .hatena-module-body .urllist-see-more-link:hover,.hatena-module .hatena-urllist .urllist-see-more-link:hover,.hatena-module .hatena-module-body .urllist-see-more-link:focus,.hatena-module .hatena-urllist .urllist-see-more-link:focus{color:#1a237e;background:#f5f5f5}.hatena-module .hatena-module-body .archive-module-year,.hatena-module .hatena-urllist .archive-module-year{margin:0 0 16px}.hatena-module .hatena-module-body .archive-module-year:last-child,.hatena-module .hatena-urllist .archive-module-year:last-child{margin:0}.search-form{display:flex;justify-content:center;border:1px solid #d9d9d9;border-radius:4px;overflow:hidden;position:relative}.search-form .search-module-input{width:100%;font-size:.8em;outline:0;border:none;margin:0;padding:.6em}.search-form .search-module-button{width:16px;height:16px;background:transparent url(https://cdn.blog.st-hatena.com/css/theme/neutral/images/search.png?version=997e934d99b2604163e63c09902a08) no-repeat 50%;background-size:16px 16px;position:absolute;top:7px;right:6px;border:none;padding:.6em;outline:0;text-indent:-9999px;opacity:.5;cursor:pointer}.search-form .search-module-button:hover,.search-form .search-module-button:focus{transition:color .3s;opacity:1}.hatena-module-profile .hatena-module-body{display:flex;flex-direction:column;text-align:center}.hatena-module-profile .hatena-module-body .profile-icon{border-radius:4px;margin:0 0 8px}.hatena-module-profile .hatena-module-body .profile-description{margin:8px 0 0}.hatena-module-profile .hatena-module-body .profile-description p{font-size:14px;text-align:left}.hatena-module-profile .hatena-module-body .hatena-follow-button-box{margin:24px auto}.hatena-module-category .hatena-urllist li{list-style:none;margin:0 0 16px}.hatena-module-category .hatena-urllist li:last-child{margin-bottom:0}.hatena-module-category .hatena-urllist li a{color:#333;display:inline-block;background:#f5f5f5;padding:.4rem;border-radius:4px;font-size:14px}.hatena-module-category .hatena-urllist li a:hover,.hatena-module-category .hatena-urllist li a:focus{color:#1a237e}.hatena-module-recent-comments .recent-comments .hatena-id-icon{border-radius:4px}.hatena-module-recent-comments .recent-comments li{list-style:none;margin:0 0 16px}.hatena-module-recent-comments .recent-comments li:last-child{margin-bottom:0}.hatena-module-recent-comments .recent-comments .recent-comment-time{color:#888;font-style:normal}.hatena-module-links .hatena-urllist{list-style:none;line-height:1.8}.hatena-module-authors-list .authors-urllist{margin:0 0 8px}.hatena-module-authors-list .authors-urllist a{display:flex;align-items:center}.hatena-module-authors-list .authors-urllist .authors-user-icon{border-radius:4px;width:32px}.hatena-module-circles .circle-urllist li{display:flex;margin:0 0 16px;align-items:center}.hatena-module-circles .circle-urllist li:last-child{margin-bottom:0}.hatena-module-html ul{-webkit-margin-start:1.2em;margin-inline-start:1.2em}.hatena-module-html p,.hatena-module-html pre{line-height:1.6;margin:16px 0}.hatena-module-html code,.hatena-module-html .code{background:#272822;color:#f8f8f2;padding:.24em;border-radius:4px;font-size:14px}.hatena-module-archive .calendar-day a{color:#888}.page-archive .archive-entries{background:#fff;padding:32px 16px 40px;border-radius:4px}.page-archive .archive-heading{margin:0 0 32px;background:#fff;border-radius:4px;padding:16px}.page-archive .search-result{background:#fff;border-radius:4px;padding:16px 16px 40px}.archive-header-category{background:#fff;border-radius:4px}.archive-header-category .archive-heading{margin:0;padding:16px}.page-archive-category .archive-header-category{margin:0 0 40px}.page-archive-category .archive-header-category .archive-heading{background:#f5f5f5;padding:4px 8px;margin:16px;border-radius:4px;display:inline-block;font-size:16px}.page-archive-category .archive-header-category .archive-heading .archive-entries .archive-entry{margin:0 0 72px}.page-archive-category .archive-header-category .archive-heading .archive-entries .archive-entry:last-child{margin-bottom:0}.page-archive-category .archive-header-category .archive-heading .entry-title{font-size:22px;line-height:1.5em}.page-archive-category .archive-header-category .archive-heading .entry-title a{color:#333}.page-archive-category .archive-header-category .archive-heading .entry-title a:hover,.page-archive-category .archive-header-category .archive-heading .entry-title a:focus{color:#1a237e}.page-archive-category .archive-category-link{color:#333;background-color:#f5f5f5;margin:0 0 8px;padding:.4em;border-radius:4px}.archive-entry{margin:0 0 40px}@media screen and (min-width: 992px){.archive-entry{margin:0 0 72px}}.archive-entry:last-child{margin-bottom:0}.archive-entry .archive-entry-header .date{margin:0 0 8px}.archive-entry .archive-entry-header .date time{color:#888;font-size:14px}@media screen and (min-width: 992px){.archive-entry .archive-entry-header .date{font-size:18px}}.archive-entry .archive-entry-header .entry-title{margin:0 0 16px}.archive-entry .archive-entry-header .entry-title .entry-title-link{font-size:18px}@media screen and (min-width: 992px){.archive-entry .archive-entry-header .entry-title .entry-title-link{font-size:22px;margin:0 0 24px}}.archive-entry .archive-entry-header .highlight,.archive-entry .archive-entry-body .highlight{background:#faeacb;border-radius:4px;border:none}.archive-entry .categories{margin:0 0 8px}.archive-entry .categories .archive-category-link{font-size:12px;background:#f5f5f5;margin:0 0 8px;padding:.45em;border-radius:4px;display:inline-block}.archive-entry .entry-thumb{border-radius:4px;width:80px;height:80px}@media screen and (min-width: 992px){.archive-entry .entry-thumb{width:100px;height:100px}}.archive-entry .archive-entry-body .entry-description{font-size:14px;line-height:1.5;margin:0 0 8px}.page-about .entry-content{margin:0 0 24px}.page-about .entry-content img.profile-icon{width:24px;height:24px;border-radius:4px;margin:0 8px 0 0}.page-about .entry-content dl{margin:24px 0 0}.page-about .entry-content dt{font-size:18px;line-height:1.8;margin:0 0 8px}.page-about .entry-content dd{margin-bottom:16px}.page-about .entry-content dd li{list-style:disc;color:#1a237e;font-size:16px}.page-about .entry-content dd li a:hover{text-decoration:underline}
 /* neutralテーマのベースCSSをインポート */
/* </system> */




/* 読者になるボタンを中央基準で1.5倍拡大 */
.cta-item.reader-button {
  transform: scale(3.0);      /* 拡大率（1.0=等倍） */
  transform-origin: center;   /* 中央を基準に拡大 */
}


/* ===== ヘッダ内「記事一覧」リンク（/index）用スタイル ===== */
.header-links { /* ヘッダーの「記事一覧」リンク全体を包むコンテナ */
  display: inline-block; /* 横幅を必要分だけにする（横並び可） */
  margin-top: 8px; /* 上に8pxの余白を追加 */
}

.header-links a { /* ヘッダーリンク内の<a>タグの装飾 */
  font-size: 28px;           /* 文字サイズを28pxに設定 */
  font-weight: 500;          /* 少し太字にして視認性向上 */
  font-family: inherit;      /* 親要素（サイト全体）のフォント設定を継承 */
  text-decoration: none;     /* 通常時はリンクの下線を非表示 */
  
  color: #2a5d9f;            /* 落ち着いた青色でリンク感を演出 */
  background: #f5f7fa;       /* 薄い青みがかったグレー背景でボタン風に */
  border: 1px solid #d0d7de; /* 薄いグレーの枠線を付ける */
  border-radius: 4px;        /* 角を4px丸める */
  padding: 6px 12px;         /* 内側の上下6px、左右12pxの余白 */
  transition: all 0.2s ease; /* 0.2秒でなめらかに変化 */
}

.header-links a:hover { /* ヘッダーリンクのホバー時の見た目 */
  background: #e4ebf5;       /* 背景色を少し濃くして視覚的フィードバック */
  text-decoration: underline;/* 下線を出してリンクであることを明確化 */
}


/* ===== 変数（色・幅） ===== */
:root{ /* CSS変数の定義（全体で使い回し可能） */
  --bg:#ffffff;          /* 背景色（白） */
  --fg:#222;             /* 文字色（濃いグレー） */
  --muted:#666;          /* 補助的な文字色（薄いグレー） */
  --accent:#0a66c2;      /* アクセントカラー（リンク色） */
  --container: 980px;    /* 最大コンテンツ幅 */
}

/* ===== ベース ===== */
html{scroll-behavior:smooth} /* ページ内リンクのスクロールをスムーズに */
body{
  background:var(--bg);      /* 背景色に変数--bgを使用 */
  color:var(--fg);           /* 文字色に変数--fgを使用 */
  line-height:1.8;           /* 行間を1.8倍にして読みやすく */
  -webkit-text-size-adjust:100%; /* モバイルSafariの文字サイズ自動調整を無効化 */
}
a{color:var(--accent); text-decoration:none} /* リンク色を--accentにして下線なし */
a:hover{text-decoration:underline} /* ホバー時に下線を表示 */
img{max-width:100%; height:auto} /* 画像をコンテナ幅に収めて比率維持 */

/* ===== コンテナ ===== */
#container, .container{
  max-width:var(--container); /* 最大幅を変数で指定 */
  padding:0 16px;             /* 左右に16pxの余白 */
  margin:0 auto;              /* 中央寄せ */
}

/* ===== ヘッダー（ブログタイトル周り） ===== */
#blog-title{
  padding:20px 0;             /* 上下に20pxの余白 */
  border-bottom:1px solid #eee; /* 下に薄い境界線 */
}
#blog-title a{font-weight:700} /* タイトルのリンクを太字に */

/* ===== パンくず ===== */
#breadcrumbs{
  font-size:14px;             /* 文字サイズ14px */
  color:var(--muted);         /* 薄い文字色 */
  margin:10px 0 18px;         /* 上10px、下18pxの余白 */
  overflow-wrap:anywhere;     /* 長いURLなども折り返す */
}
#breadcrumbs a{color:var(--accent)} /* パンくずリンク色をアクセントカラーに */
#breadcrumbs .sep{padding:0 6px; color:#bbb} /* 区切り記号の余白と色 */
#breadcrumbs .current{color:#333} /* 現在位置は濃い文字色 */

/* ===== 記事 ===== */
.entry-title{
  font-size:clamp(22px, 4vw, 30px); /* 画面幅に応じて文字サイズ可変 */
  line-height:1.35;                 /* 行間1.35倍 */
  margin:14px 0 8px;                /* 上14px、下8px余白 */
  font-weight:700;                   /* 太字 */
}
.entry-content{
  font-size:16px;                    /* 本文文字サイズ16px */
}
.entry-content h2{
  margin:32px 0 10px;                /* 上32px、下10px余白 */
  font-size:clamp(18px, 3.2vw, 22px);/* 可変文字サイズ */
  border-left:4px solid var(--accent); /* 左に4pxのアクセント色バー */
  padding-left:10px;                 /* バーと文字の間に余白 */
}
.entry-content h3{
  margin:26px 0 8px;                 /* 上26px、下8px余白 */
  font-size:18px;                     /* 文字サイズ18px */
}
.entry-content blockquote{
  margin:14px 0;                      /* 上下14px余白 */
  padding:10px 14px;                  /* 内側余白 */
  background:#fafafa;                 /* 薄いグレー背景 */
  border-left:3px solid #ddd;         /* 左に3pxのグレー線 */
}
.entry-content pre, .entry-content code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; /* 等幅フォント */
}
.entry-content pre{
  background:#0f111a;                 /* 濃い背景（コード用） */
  color:#e6e6e6;                      /* 明るい文字色 */
  padding:14px;                       /* 内側余白 */
  overflow:auto;                      /* 横スクロール可 */
  border-radius:6px;                  /* 角丸6px */
}

/* ===== SNSボタン + ランキングバナー横並び ===== */
/* この記事上/下の「フリースペース」や「記事下のカスタマイズ」に配置した要素を横並びにする */
.sns-buttons-wrapper{
  display:flex;                       /* 横並び */
  align-items:center;                  /* 縦方向中央揃え */
  flex-wrap:wrap;                      /* 折り返し可 */
  gap:8px;                             /* 要素間の隙間 */
  margin:12px 0 18px;                  /* 上12px、下18px余白 */
}
.sns-buttons-wrapper .rank-banners img{
  height:31px;                         /* ランキングバナーの高さを31pxに固定 */
}




/* 記事末尾：応援メッセージ本体 */
.support-message{                 /* 全体ラッパーの見た目 */
  margin-top:28px;                /* 本文との間隔 */
  text-align:center;              /* 中央寄せ */
  font-size:15px;                 /* 読みやすい大きさ */
  color:#555;                     /* やや淡い文字色 */
}
.support-message p{               /* 誘導文の調整 */
  margin-bottom:10px;             /* 文とバナーの間隔 */
  font-weight:500;                /* すこし強調 */
}

/* バナーの並び */
.rank-banners{                    /* 2つのサービスを横に並べる */
  display:flex;                   /* 横並び */
  justify-content:center;         /* 中央配置 */
  align-items:flex-start;         /* 上端を揃える（テキスト含むため） */
  gap:16px;                       /* サービス間の余白 */
  flex-wrap:wrap;                 /* スマホで折り返し可 */
}

/* 各サービスのブロック */
.rank-item{                       /* 画像＋テキストを縦に積む */
  display:flex;                   /* 縦積み用のフレックス */
  flex-direction:column;          /* 画像→テキストの縦並び */
  align-items:center;             /* 中央寄せ */
  gap:4px;                        /* 画像とキャプション間隔 */
}

/* 画像の見た目（統一感＋ホバー） */
.rank-item img{
  display:block;                  /* 下の隙間を消す */
  border-radius:4px;              /* 角丸で統一感 */
  border:1px solid #ddd;          /* 薄い枠線で引き締め */
  background:#fff;                /* 白背景（透過バナー対策） */
  transition:border-color .2s;    /* ホバー時スムーズに */
}
.rank-item a:hover img{
  border-color:#aaa;              /* ホバーで枠線を少し濃く */
}

/* テキストキャプション（控えめ） */
.rank-text{
  font-size:0.9em;                /* ひとまわり小さく */
  color:#2a5d9f;                  /* 落ち着いた青でリンク感 */
  text-decoration:none;           /* 平常時は下線なし */
}
.rank-text:hover{
  text-decoration:underline;      /* ホバーで下線（リンク感UP） */
}




/* ===== 関連記事（カード風グリッド） ===== */
#related-posts{
  margin-top:36px;                     /* 上に余白 */
}
#related-posts .items{
  display:grid;                        /* グリッドレイアウト */
  grid-template-columns:repeat(3,1fr); /* 3列均等 */
  gap:14px;                            /* カード間の隙間 */
}
#related-posts .item{
  border:1px solid #eee;               /* 薄い枠線 */
  border-radius:8px;                   /* 角丸8px */
  overflow:hidden;                     /* はみ出し部分を隠す */
  background:#fff;                     /* 白背景 */
  transition:transform .12s ease;      /* ホバー時の変化を滑らかに */
}
#related-posts .item:hover{transform:translateY(-2px)} /* ホバーで少し浮く */
#related-posts .thumb{aspect-ratio:16/9; object-fit:cover; width:100%} /* サムネ画像の比率固定 */
#related-posts .meta{padding:10px; font-size:14px} /* メタ情報の内側余白と文字サイズ */
#related-posts .meta .title{font-weight:600; color:#333} /* タイトルを太字＋濃色 */

/* ===== サイドバー（はてなモジュール） ===== */
.hatena-module{
  margin-bottom:18px;                  /* 下余白 */
  border:1px solid #eee;               /* 枠線 */
  border-radius:8px;                   /* 角丸 */
  background:#fff;                     /* 背景白 */
}
.hatena-module-title{
  font-weight:700;                     /* 太字 */
  padding:10px 12px;                   /* 内側余白 */
  border-bottom:1px solid #eee;        /* 下に線 */
}
.hatena-module-body{padding:10px 12px} /* モジュール本文の内側余白 */

/* ===== フッター ===== */
footer{
  margin-top:40px;                     /* 上余白 */
  padding:18px 0;                      /* 上下の内側余白 */
  color:#888;                          /* 薄い文字色 */
  border-top:1px solid #eee;           /* 上に線 */
  font-size:14px;                      /* 文字サイズ14px */
}

/* ===== フッター固定ページリンク（縦並び版）のスタイル ===== */
.footer-links-vertical {
  display: flex;                       /* フレックスボックスを使う */
  flex-direction: column;              /* 縦方向に並べる */
  align-items: center;                 /* 中央寄せ */
  gap: 6px;                             /* 各リンクの上下間隔 */
  margin-top: 20px;                     /* 上の要素との余白 */
  padding-top: 12px;                    /* 内側上部の余白 */
  border-top: 1px solid #ddd;           /* 上に薄い区切り線 */
}

.footer-links-vertical a {
  font-size: 14px;                      /* 文字サイズ */
  color: #2a5d9f;                       /* 落ち着いた青（リンク感あり） */
  text-decoration: none;                /* 通常は下線なし */
  transition: color 0.2s ease;          /* 色変化をなめらかに */
}

.footer-links-vertical a:hover {
  color: #1a3f70;                       /* ホバー時に少し濃くする */
  text-decoration: underline;           /* ホバー時だけ下線 */
}

/* ===== レスポンシブ ===== */
@media (max-width: 760px){
  :root{ --container: 92vw; }           /* 最大幅を画面幅の92%に変更 */
  #related-posts .items{ grid-template-columns:1fr 1fr; } /* 関連記事を2列に */
}
@media (max-width: 480px){
  #related-posts .items{ grid-template-columns:1fr; } /* 関連記事を1列に */
  .sns-buttons-wrapper{ gap:6px; }                     /* SNSボタンの間隔を狭く */
}

/* ===== オプション：ダークモード（端末設定に追従） ===== */
@media (prefers-color-scheme: dark){
  :root{ --bg:#0f1117; --fg:#e6e6e6; --muted:#aaa; } /* 色変数をダーク用に変更 */
  body{ background:var(--bg); color:var(--fg); }     /* 背景と文字色適用 */
  #blog-title, footer{ border-color:#222; }          /* 境界線色を暗く */
  .hatena-module, #related-posts .item{ background:#0d0f14; border-color:#222; } /* 背景と線色変更 */
  .entry-content blockquote{ background:#10131a; border-left-color:#333; } /* 引用背景と線色変更 */
}


/* ===== 本文の最大幅を少しだけ絞って読みやすく ===== */
.entry-content{                 /* 記事本文ブロックに対する調整 */
  max-width: 720px;            /* 本文の横幅を720pxに制限（PCで読みやすい幅） */
  margin-left: auto;           /* 左右中央寄せ（可読性を上げる） */
  margin-right: auto;          /* 同上 */
}

/* ===== 見出しh2をもう少し“見出しっぽく” ===== */
.entry-content h2{             /* 既存のh2スタイルに加筆（上書きOK） */
  background: linear-gradient(to right, rgba(10,102,194,.06), transparent); /* 左から淡い帯を入れて視認性UP */
  padding-top: 6px;            /* 上に少し余白を加えて行間を整える */
  padding-bottom: 6px;         /* 下にも同じ余白でリズムを整える */
}

/* ===== 段落の下マージンを少しだけ足して呼吸をよくする ===== */
.entry-content p{              /* 段落間の余白調整 */
  margin-bottom: 1.05em;       /* 次の要素との間を少し広げて読みやすく */
}

/* ===== ヘッダの「記事一覧」ボタンにフォーカス可視化（アクセシビリティ） ===== */
.header-links a:focus-visible{ /* キーボード操作やiOSの強調表示に反応 */
  outline: 3px solid rgba(10,102,194,.35); /* アクセント色の半透明アウトラインで強調 */
  outline-offset: 2px;         /* アウトラインを少し外側に離して見やすく */
}

/* ===== 記事末の応援バナー：上下の間隔と整列の微調整 ===== */
.support-message{              /* 応援メッセージ全体の余白を最終調整 */
  margin-top: 24px;            /* 本文との距離を少しだけ詰める（間延び防止） */
}
.support-message .rank-banners{ /* バナーの並び方を微調整 */
  gap: 12px;                   /* バナー間の間隔をきゅっと整える */
}

/* ===== ダークモード時のバナー枠コントラストを確保 ===== */
@media (prefers-color-scheme: dark){ /* 端末がダークモードのとき */
  .rank-item img{              /* バナー画像の枠線だけ濃くして視認性を保つ */
    border-color: #3a3f44;     /* 背景が暗くなっても枠が消えない濃さに */
  }
}








/* ===== スマホだけ：タイトル・見出し1.1rem＋本文0.9rem＋余白2pt（強制上書き版） ===== */
@media screen and (max-width: 767px) {
  html {
    font-size: 1rem !important; /* 基準文字サイズを1rem（約16px ≒ 12pt） */
  }
  body {
    line-height: 1.7 !important;
  }

  #container, .container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 auto !important;
  }

  /* 記事タイトル */
  #main .entry-title,
  .entry-title {
    font-size: 1.1rem !important;
  }

  /* 本文（強制上書き） */
  #main .entry-content,
  .entry-content,
  .entry-content p,
  .entry-content li,
  .entry-content span,
  .entry-content div {
    font-size: 0.9rem !important; /* 本文を0.9remに変更 */
    line-height: 1.7 !important;
  }

  /* 見出し */
  .entry-content h2,
  .entry-content h3 {
    font-size: 1.1rem !important;
  }

  /* 画像・動画・埋め込みのはみ出し防止 */
  .entry-content img,
  .entry-content video,
  .entry-content iframe {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  /* 本文余白を2ptに */
  .entry-content {
    max-width: 100% !important;
    padding-left: 2pt !important;
    padding-right: 2pt !important;
    box-sizing: border-box !important;
  }

  /* 関連記事を1列表示 */
  #related-posts .items {
    grid-template-columns: 1fr !important;
  }
}










