/* <system section="theme" selected="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{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{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 td{padding:.45em;border-right:1px solid #d9d9d9}.entry .entry-inner table td: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 p{font-size:inherit;margin:0;line-height:inherit;letter-spacing:normal}.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=d14d0d69b4f90ebe64c4286e6b7128) 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{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}.archive-entries-sort{margin-left:1em}.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}

/* </system> */
/* =========================================================
   Sound Bacca Minimal Theme
   Hatena Blog
   ========================================================= */


/* =========================================================
   01. DESIGN TOKENS
   ========================================================= */

:root {

  /* Base */
  --sb-bg: #ffffff;
  --sb-text: #222222;
  --sb-text-light: #666666;
  --sb-text-muted: #999999;

  /* Border / Background */
  --sb-line: #e8e8e8;
  --sb-line-dark: #d2d2d2;
  --sb-soft: #f7f7f7;
  --sb-soft-light: #fafafa;

  /* Accent */
  --sb-heading-bg: #555555;
  --sb-heading-bg-hover: #4b4b4b;
  --sb-heading-text: #ffffff;
  --sb-accent-line: #555555;

  /* Layout */
  --sb-main-width: 760px;
  --sb-sidebar-width: 280px;
  --sb-content-width: 1120px;

  /* Radius */
  --sb-radius: 8px;
  --sb-radius-small: 5px;
  --sb-radius-large: 12px;

  /* Animation */
  --sb-transition: 0.18s ease;

  /* Font */
  --sb-font:
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Yu Gothic",
    YuGothic,
    Meiryo,
    sans-serif;
}


/* =========================================================
   02. GLOBAL
   ========================================================= */

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;

  color: var(--sb-text);
  background: var(--sb-bg);

  font-family: var(--sb-font);
  font-size: 16px;
  line-height: 1.8;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

* {
  box-sizing: border-box;
}

::selection {
  color: #ffffff;
  background: #222222;
}

a {
  transition:
    color var(--sb-transition),
    opacity var(--sb-transition),
    background var(--sb-transition),
    border-color var(--sb-transition);
}


/* =========================================================
   03. WHOLE PAGE
   ========================================================= */

#container {
  width: 100%;
  margin: 0;
  padding: 0;
}

#container-inner {
  width: 100%;
}

#content {
  width: 100%;
  max-width: var(--sb-content-width);

  margin: 0 auto;
  padding: 60px 30px 90px;
}

#content-inner {
  display: flex;
  align-items: flex-start;

  gap: 72px;
}


/* =========================================================
   04. BLOG HEADER
   ========================================================= */

#blog-title {
  margin: 0;
  padding: 52px 30px 42px;

  background: #ffffff;

  border-bottom: 1px solid var(--sb-line);
}

#blog-title-inner {
  max-width: var(--sb-content-width);

  margin: 0 auto;
  padding: 0;
}

#title {
  margin: 0;

  font-size: 28px;
  line-height: 1.3;
  font-weight: 700;

  letter-spacing: -0.01em;
}

#title a {
  color: var(--sb-text);

  text-decoration: none;
}

#title a:hover {
  opacity: 0.62;
}

#blog-description {
  margin: 9px 0 0;

  color: var(--sb-text-muted);

  font-size: 13px;
  line-height: 1.7;
  font-weight: 400;

  letter-spacing: 0.01em;
}


/* =========================================================
   05. MAIN LAYOUT
   ========================================================= */

#wrapper,
#main {
  min-width: 0;
}

#main {
  width: var(--sb-main-width);
  max-width: 100%;

  flex: 0 1 var(--sb-main-width);
}


/* =========================================================
   06. ENTRY
   ========================================================= */

.entry {
  margin: 0 0 80px;
  padding: 0;

  background: transparent;

  border: none;

  box-shadow: none;
}

.entry-inner {
  margin: 0;
  padding: 0;
}


/* =========================================================
   07. ARTICLE HEADER
   ========================================================= */

.entry-header {
  position: relative;

  margin: 0 0 42px;
  padding: 0;

  background: none;

  border: none;
}


/* Date */

.entry-date,
.date {
  display: block;

  margin: 0 0 12px;

  color: var(--sb-text-muted);

  font-size: 12px;
  line-height: 1.5;
  font-weight: 500;

  letter-spacing: 0.03em;
}

.entry-date a,
.date a {
  color: inherit;

  text-decoration: none;
}


/* Article Title */

.entry-title {
  margin: 0;

  color: var(--sb-text);

  font-size: clamp(27px, 3vw, 34px);
  line-height: 1.48;
  font-weight: 700;

  letter-spacing: -0.025em;
}

.entry-title a {
  color: var(--sb-text);

  text-decoration: none;
}

.entry-title a:hover {
  opacity: 0.65;
}


/* Categories */

.categories {
  margin-top: 16px;
}

.categories a {
  display: inline-block;

  margin: 0 8px 5px 0;

  color: var(--sb-text-light);

  font-size: 11px;
  line-height: 1.4;

  text-decoration: none;

  border-bottom: 1px solid var(--sb-line-dark);
}

.categories a:hover {
  color: #000000;
}


/* =========================================================
   08. ARTICLE BODY
   ========================================================= */

.entry-content {
  color: #303030;

  font-size: 16px;
  line-height: 2;

  letter-spacing: 0.01em;

  overflow-wrap: break-word;
}

.entry-content p {
  margin-top: 0;
  margin-bottom: 1.75em;
}


/* =========================================================
   09. TEXT LINKS
   ========================================================= */

.entry-content p a,
.entry-content li a,
.entry-content blockquote a {
  color: #222222;

  text-decoration-line: underline;
  text-decoration-color: #bdbdbd;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.entry-content p a:hover,
.entry-content li a:hover,
.entry-content blockquote a:hover {
  color: #000000;

  text-decoration-color: #222222;
}


/* =========================================================
   10. HEADINGS
   ========================================================= */


/* ---------------------------------------------------------
   H2
   濃いグレー背景＋白文字
   --------------------------------------------------------- */

.entry-content h2 {
  margin: 4.2em 0 1.5em;

  padding: 14px 18px;

  color: var(--sb-heading-text) !important;
  background: var(--sb-heading-bg) !important;

  border: none !important;
  border-radius: var(--sb-radius-small);

  font-size: 23px;
  line-height: 1.55;
  font-weight: 700;

  letter-spacing: -0.01em;
}


/* ---------------------------------------------------------
   H3
   L字
   左太線＋下細線
   --------------------------------------------------------- */

.entry-content h3 {
  margin: 3.4em 0 1.35em;

  padding:
    4px
    0
    10px
    15px;

  color: #222222 !important;
  background: transparent !important;

  border: none !important;
  border-left: 6px solid var(--sb-accent-line) !important;
  border-bottom: 1px solid var(--sb-line-dark) !important;

  border-radius: 0 !important;

  font-size: 20px;
  line-height: 1.6;
  font-weight: 700;

  letter-spacing: -0.01em;
}


/* ---------------------------------------------------------
   H4
   左の太い縦線のみ
   --------------------------------------------------------- */

.entry-content h4 {
  margin: 2.8em 0 1.15em;

  padding:
    2px
    0
    2px
    13px;

  color: #333333;
  background: transparent;

  border: none;
  border-left: 5px solid var(--sb-accent-line);

  border-radius: 0;

  font-size: 17px;
  line-height: 1.6;
  font-weight: 700;

  letter-spacing: -0.005em;
}


/* ---------------------------------------------------------
   H5
   下の細い横線のみ
   --------------------------------------------------------- */

.entry-content h5 {
  margin: 2.4em 0 1em;

  padding:
    0
    0
    7px
    0;

  color: #444444;
  background: transparent;

  border: none;
  border-bottom: 1px solid var(--sb-line-dark);

  border-radius: 0;

  font-size: 15.5px;
  line-height: 1.6;
  font-weight: 700;

  letter-spacing: 0;
}


/* =========================================================
   11. IMAGES
   ========================================================= */

.entry-content img {
  display: block;

  max-width: 100%;
  height: auto;

  margin-left: auto;
  margin-right: auto;

  border-radius: var(--sb-radius);

  box-shadow: none;
}

.entry-content a img {
  transition: opacity var(--sb-transition);
}

.entry-content a:hover img {
  opacity: 0.92;
}

.entry-content .hatena-fotolife {
  margin-top: 2.1em;
  margin-bottom: 2.1em;
}


/* =========================================================
   12. FIGURE / CAPTION
   ========================================================= */

.entry-content figure {
  margin: 2.4em 0;
}

.entry-content figcaption {
  margin-top: 9px;

  color: var(--sb-text-muted);

  font-size: 12px;
  line-height: 1.6;

  text-align: center;
}


/* =========================================================
   13. BLOCKQUOTE
   ========================================================= */

.entry-content blockquote {
  margin: 2.4em 0;

  padding: 4px 0 4px 20px;

  color: #666666;
  background: transparent;

  border: none;
  border-left: 2px solid #cccccc;

  font-size: 0.95em;
  line-height: 1.9;
}

.entry-content blockquote p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   14. LIST
   ========================================================= */

.entry-content ul,
.entry-content ol {
  margin: 1.6em 0;

  padding-left: 1.7em;
}

.entry-content li {
  margin: 0.45em 0;

  padding-left: 0.15em;
}

.entry-content li::marker {
  color: #999999;
}


/* =========================================================
   15. HORIZONTAL RULE
   ========================================================= */

.entry-content hr {
  width: 80px;

  margin: 4em auto;

  border: 0;
  border-top: 1px solid #dddddd;
}


/* =========================================================
   16. EMPHASIS
   ========================================================= */

.entry-content strong {
  color: #111111;

  font-weight: 700;
}

.entry-content mark {
  padding: 0 0.15em;

  color: inherit;

  background:
    linear-gradient(
      transparent 63%,
      #eeeeee 63%
    );
}


/* =========================================================
   17. TABLE
   ========================================================= */

.entry-content table {
  width: 100%;

  margin: 2.5em 0;

  border-collapse: collapse;
  border-spacing: 0;

  font-size: 14px;
}

.entry-content th,
.entry-content td {
  padding: 13px 14px;

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

  border: 1px solid var(--sb-line);
}

.entry-content th {
  color: #333333;
  background: var(--sb-soft);

  font-weight: 600;
}


/* =========================================================
   18. CODE
   ========================================================= */

.entry-content code {
  padding: 0.15em 0.4em;

  background: #f4f4f4;

  border-radius: 4px;

  font-family:
    SFMono-Regular,
    Consolas,
    "Liberation Mono",
    Menlo,
    monospace;

  font-size: 0.9em;
}

.entry-content pre {
  margin: 2em 0;

  padding: 20px;

  overflow-x: auto;

  color: #333333;
  background: #f6f6f6;

  border: 1px solid #ececec;
  border-radius: var(--sb-radius);

  line-height: 1.75;
}

.entry-content pre code {
  padding: 0;

  background: none;
}


/* =========================================================
   19. TABLE OF CONTENTS
   ========================================================= */

.toc-details {
  margin: 38px 0 48px;

  background: #ffffff;

  border: 1px solid #dddddd;
  border-radius: var(--sb-radius);

  overflow: hidden;
}


/* ---------------------------------------------------------
   TOC HEADER
   --------------------------------------------------------- */

.toc-details > summary {
  position: relative;

  display: block !important;

  min-height: 58px;

  padding:
    18px
    58px
    18px
    20px;

  color: #ffffff;
  background: var(--sb-heading-bg);

  border: none;

  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;

  letter-spacing: 0.02em;

  text-align: left !important;

  cursor: pointer;

  list-style: none;

  user-select: none;

  transition: background var(--sb-transition);
}

.toc-details > summary:hover {
  background: var(--sb-heading-bg-hover);
}


/* ---------------------------------------------------------
   Browser Default Marker
   --------------------------------------------------------- */

.toc-details > summary::-webkit-details-marker {
  display: none;
}

.toc-details > summary::marker {
  content: "";
}


/* ---------------------------------------------------------
   TOC HINT
   「目次」の右に表示
   --------------------------------------------------------- */

.toc-details > summary::after {
  content: "（クリックすると目次が開きます）";

  display: inline-block;

  margin-left: 9px;

  color: rgba(255, 255, 255, 0.68);

  font-size: 11px;
  line-height: 1.4;
  font-weight: 400;

  letter-spacing: 0.01em;

  vertical-align: 1px;
}

.toc-details[open] > summary::after {
  content: "（クリックすると目次が閉じます）";
}


/* ---------------------------------------------------------
   TOC + / −
   右端固定
   --------------------------------------------------------- */

.toc-details > summary::before {
  content: "＋";

  position: absolute;

  top: 50%;
  right: 20px;

  transform: translateY(-50%);

  color: rgba(255, 255, 255, 0.9);

  font-family:
    Arial,
    sans-serif;

  font-size: 22px;
  line-height: 1;
  font-weight: 300;
}

.toc-details[open] > summary::before {
  content: "−";
}


/* ---------------------------------------------------------
   TOC BODY
   --------------------------------------------------------- */

.entry-content .table-of-contents {
  margin: 0 !important;

  padding:
    20px
    26px
    22px
    42px !important;

  color: #666666;
  background: #ffffff !important;

  border: none !important;

  font-size: 13px;
  line-height: 1.8;
}


/* テーマ側の目次タイトルを消す */

.entry-content .table-of-contents::before {
  display: none !important;

  content: none !important;
}


/* TOC Item */

.entry-content .table-of-contents li {
  margin: 4px 0;

  padding: 0;
}


/* TOC Nested */

.entry-content .table-of-contents ul {
  margin: 4px 0;

  padding-left: 17px;
}


/* TOC Link */

.entry-content .table-of-contents a {
  color: #606060;

  text-decoration: none;

  transition: color var(--sb-transition);
}

.entry-content .table-of-contents a:hover {
  color: #111111;
}


/* 目次3階層目を非表示 */

.entry-content .table-of-contents ul ul {
  display: none;
}


/* =========================================================
   20. EMBED / BLOG CARD
   ========================================================= */

.entry-content iframe {
  max-width: 100%;
}

.entry-content .embed-card,
.entry-content .hatena-embed {
  margin: 2em 0;

  border-radius: var(--sb-radius);

  overflow: hidden;
}


/* =========================================================
   21. AMAZON CARD
   ========================================================= */

.hatena-asin-detail {
  margin: 2.5em 0 !important;

  padding: 20px !important;

  background: #ffffff !important;

  border: 1px solid var(--sb-line) !important;
  border-radius: var(--sb-radius-large) !important;

  box-shadow: none !important;
}

.hatena-asin-detail-title {
  font-weight: 700 !important;
}

.hatena-asin-detail-title a {
  color: #222222 !important;

  text-decoration: none !important;
}


/* =========================================================
   22. CUSTOM PURCHASE BUTTONS
   ========================================================= */

.sb-buy-buttons {
  display: flex;

  gap: 10px;

  margin: 24px 0 34px;
}

.sb-buy-buttons a {
  display: flex;

  flex: 1;

  align-items: center;
  justify-content: center;

  min-height: 48px;

  padding: 12px 18px;

  color: #ffffff !important;
  background: #222222;

  border: 1px solid #222222;
  border-radius: 6px;

  font-size: 14px;
  font-weight: 600;

  text-decoration: none !important;
}

.sb-buy-buttons a:hover {
  color: #222222 !important;
  background: #ffffff;
}


/* =========================================================
   23. ENTRY FOOTER
   ========================================================= */

.entry-footer {
  margin-top: 64px;

  padding-top: 25px;

  color: var(--sb-text-muted);

  border-top: 1px solid var(--sb-line);

  font-size: 12px;
}

.entry-footer a {
  color: #777777;

  text-decoration: none;
}

.entry-footer a:hover {
  color: #222222;
}


/* =========================================================
   24. SOCIAL BUTTONS
   ========================================================= */

.social-buttons,
.entry-footer .social-buttons {
  margin: 28px 0;
}

.social-buttons a {
  opacity: 0.75;
}

.social-buttons a:hover {
  opacity: 1;
}


/* =========================================================
   25. PAGER
   ========================================================= */

.pager {
  display: flex;

  justify-content: space-between;

  gap: 20px;

  margin: 70px 0 20px;

  padding-top: 28px;

  border-top: 1px solid var(--sb-line);
}

.pager a {
  color: #555555;

  font-size: 13px;
  line-height: 1.6;

  text-decoration: none;
}

.pager a:hover {
  color: #000000;
}

.pager-prev,
.pager-next {
  max-width: 48%;
}


/* =========================================================
   26. SIDEBAR
   ========================================================= */

#box2 {
  width: var(--sb-sidebar-width);

  min-width: 0;

  flex: 0 0 var(--sb-sidebar-width);
}

.hatena-module {
  margin: 0 0 42px;

  padding: 0;

  background: none;

  border: none;

  box-shadow: none;
}

.hatena-module-title {
  margin: 0 0 15px;

  padding: 0 0 9px;

  color: #555555;
  background: none;

  border: none;
  border-bottom: 1px solid var(--sb-line);

  font-size: 12px;
  line-height: 1.5;
  font-weight: 700;

  letter-spacing: 0.06em;
}

.hatena-module-title a {
  color: inherit;

  text-decoration: none;
}

.hatena-module-body {
  color: #777777;

  font-size: 12.5px;
  line-height: 1.75;
}

.hatena-module-body a {
  color: #555555;

  text-decoration: none;
}

.hatena-module-body a:hover {
  color: #000000;
}


/* =========================================================
   27. SIDEBAR ARTICLE LIST
   ========================================================= */

.hatena-module-entry-list {
  margin: 0;

  padding: 0;

  list-style: none;
}

.hatena-module-entry-list-item {
  margin: 0 !important;

  padding: 11px 0 !important;

  border-bottom: 1px solid #f0f0f0;
}

.hatena-module-entry-list-item:last-child {
  border-bottom: none;
}

.hatena-module-entry-list-item-title {
  font-size: 12.5px;
  line-height: 1.6;
}

.hatena-module-entry-list-item-title a {
  color: #444444;
}

.hatena-module-entry-list-item img {
  border-radius: 5px;
}


/* =========================================================
   28. CATEGORY / ARCHIVE
   ========================================================= */

.hatena-module-category ul,
.hatena-module-archive ul {
  margin: 0;

  padding: 0;

  list-style: none;
}

.hatena-module-category li,
.hatena-module-archive li {
  margin: 0;

  padding: 6px 0;

  border-bottom: 1px solid #f2f2f2;
}


/* =========================================================
   29. PROFILE
   ========================================================= */

.hatena-module-profile .profile-icon {
  border-radius: 50%;
}

.hatena-module-profile .id {
  font-weight: 600;
}

.hatena-module-profile .profile-description {
  margin-top: 12px;

  color: #777777;

  font-size: 12px;
  line-height: 1.75;
}


/* =========================================================
   30. SEARCH
   ========================================================= */

.search-form {
  display: flex;

  width: 100%;
}

.search-module-input {
  width: 100%;
  height: 40px;

  padding: 0 12px;

  color: #333333;
  background: var(--sb-soft-light);

  border: 1px solid var(--sb-line);
  border-radius: 5px;

  outline: none;

  font-size: 13px;
}

.search-module-input:focus {
  background: #ffffff;

  border-color: #aaaaaa;
}


/* =========================================================
   31. ARTICLE LIST PAGE
   ========================================================= */

.page-index .entry,
.page-archive .entry {
  margin-bottom: 55px;

  padding-bottom: 55px;

  border-bottom: 1px solid var(--sb-line);
}

.page-index .entry:last-child,
.page-archive .entry:last-child {
  border-bottom: none;
}

.page-index .entry-title,
.page-archive .entry-title {
  font-size: 25px;
}

.page-index .entry-content,
.page-archive .entry-content {
  color: #555555;

  font-size: 14.5px;
  line-height: 1.85;
}


/* =========================================================
   32. READ MORE
   ========================================================= */

.entry-see-more {
  display: inline-block;

  margin-top: 10px;

  padding-bottom: 2px;

  color: #555555 !important;

  border-bottom: 1px solid #bbbbbb;

  font-size: 12px;
  font-weight: 600;

  text-decoration: none !important;
}

.entry-see-more:hover {
  color: #000000 !important;

  border-color: #222222;
}


/* =========================================================
   33. COMMENTS
   ========================================================= */

.comment-box {
  margin-top: 60px;

  padding-top: 25px;

  border-top: 1px solid var(--sb-line);
}

.comment-box ul {
  list-style: none;
}


/* =========================================================
   34. FOOTER
   ========================================================= */

#footer {
  margin-top: 0;

  padding: 50px 30px;

  color: #aaaaaa;
  background: var(--sb-soft-light);

  border-top: 1px solid var(--sb-line);

  font-size: 11px;
  line-height: 1.8;

  text-align: center;
}

#footer a {
  color: #888888;

  text-decoration: none;
}

#footer a:hover {
  color: #333333;
}


/* =========================================================
   35. POINT BOX
   ========================================================= */

.sb-point {
  margin: 2.2em 0;

  padding: 20px 22px;

  background: #f8f8f8;

  border: 1px solid #ededed;
  border-radius: var(--sb-radius);

  font-size: 14px;
  line-height: 1.9;
}

.sb-point p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   36. SMALL NOTE
   ========================================================= */

.sb-note {
  margin: 1.8em 0;

  color: #777777;

  font-size: 13px;
  line-height: 1.8;
}


/* =========================================================
   37. PRODUCT SPEC
   ========================================================= */

.sb-spec {
  margin: 2em 0;

  padding: 18px 20px;

  background: var(--sb-soft-light);

  border-radius: var(--sb-radius);
}

.sb-spec dl {
  display: grid;

  grid-template-columns: 110px 1fr;

  gap: 6px 16px;

  margin: 0;
}

.sb-spec dt {
  color: #888888;

  font-size: 13px;
}

.sb-spec dd {
  margin: 0;

  color: #333333;

  font-size: 13px;
}


/* =========================================================
   38. TABLET
   ========================================================= */

@media screen and (max-width: 1050px) {

  #content {
    max-width: 850px;
  }

  #content-inner {
    display: block;
  }

  #main {
    width: 100%;
    max-width: var(--sb-main-width);

    margin: 0 auto;
  }

  #box2 {
    width: 100%;
    max-width: var(--sb-main-width);

    margin: 80px auto 0;
  }

  .hatena-module {
    margin-bottom: 34px;
  }

}


/* =========================================================
   39. MOBILE
   ========================================================= */

@media screen and (max-width: 768px) {


  /* Header */

  #blog-title {
    padding: 31px 20px 27px;
  }

  #title {
    font-size: 22px;
  }

  #blog-description {
    margin-top: 7px;

    font-size: 11.5px;
    line-height: 1.6;
  }


  /* Layout */

  #content {
    padding:
      38px
      20px
      65px;
  }

  #content-inner {
    display: block;
  }

  #main,
  #box2 {
    width: 100%;
    max-width: none;
  }


  /* Article Header */

  .entry-header {
    margin-bottom: 30px;
  }

  .entry-date,
  .date {
    margin-bottom: 10px;

    font-size: 11px;
  }

  .entry-title {
    font-size: 25px;
    line-height: 1.48;
  }

  .categories {
    margin-top: 13px;
  }


  /* Article Body */

  .entry-content {
    font-size: 15.5px;
    line-height: 1.95;
  }

  .entry-content p {
    margin-bottom: 1.65em;
  }


  /* H2 */

  .entry-content h2 {
    margin-top: 3.7em;
    margin-bottom: 1.35em;

    padding: 12px 15px;

    font-size: 20px;
    line-height: 1.55;
  }


  /* H3 */

  .entry-content h3 {
    margin-top: 3em;
    margin-bottom: 1.2em;

    padding:
      3px
      0
      8px
      12px;

    border-left-width: 5px !important;

    font-size: 18px;
    line-height: 1.6;
  }


  /* H4 */

  .entry-content h4 {
    margin-top: 2.5em;

    padding-left: 11px;

    border-left-width: 4px;

    font-size: 16.5px;
  }


  /* H5 */

  .entry-content h5 {
    margin-top: 2.2em;

    padding-bottom: 6px;

    font-size: 15px;
  }


  /* TOC */

  .toc-details {
    margin: 30px 0 40px;
  }

  .toc-details > summary {
    min-height: 54px;

    padding:
      17px
      48px
      17px
      15px;

    font-size: 14px;
  }

  .toc-details > summary::after {
    margin-left: 6px;

    font-size: 10px;
  }

  .toc-details > summary::before {
    right: 15px;

    font-size: 20px;
  }

  .entry-content .table-of-contents {
    padding:
      16px
      16px
      18px
      34px !important;

    font-size: 12.5px;
    line-height: 1.75;
  }


  /* Images */

  .entry-content img {
    border-radius: 6px;
  }


  /* Table */

  .entry-content table {
    display: block;

    overflow-x: auto;

    white-space: nowrap;

    font-size: 12px;
  }


  /* Purchase Buttons */

  .sb-buy-buttons {
    flex-direction: column;

    gap: 8px;
  }

  .sb-buy-buttons a {
    min-height: 46px;
  }


  /* Specs */

  .sb-spec dl {
    grid-template-columns: 90px 1fr;
  }


  /* Sidebar */

  #box2 {
    margin-top: 65px;

    padding-top: 40px;

    border-top: 1px solid var(--sb-line);
  }


  /* Pager */

  .pager {
    display: block;
  }

  .pager-prev,
  .pager-next {
    max-width: 100%;

    margin: 10px 0;
  }

}


/* =========================================================
   40. SMALL MOBILE
   ========================================================= */

@media screen and (max-width: 420px) {

  #content {
    padding-left: 17px;
    padding-right: 17px;
  }

  #blog-title {
    padding-left: 17px;
    padding-right: 17px;
  }

  .entry-title {
    font-size: 23px;
  }

  .entry-content {
    font-size: 15px;
  }


  /* Heading */

  .entry-content h2 {
    font-size: 19px;
  }

  .entry-content h3 {
    font-size: 17.5px;
  }

  .entry-content h4 {
    font-size: 16px;
  }

  .entry-content h5 {
    font-size: 14.5px;
  }


  /* TOC */

  .toc-details > summary::after {
    content: "（タップで開く）";

    margin-left: 5px;

    font-size: 9px;
  }

  .toc-details[open] > summary::after {
    content: "（タップで閉じる）";
  }

}
/* =========================================================
   41. RESPONSIVE DESIGN
   Sound Bacca Mobile Optimization
   ========================================================= */


/* =========================================================
   TABLET
   769px - 1050px
   ========================================================= */

@media screen and (max-width: 1050px) {

  /* ---------------------------------
     Layout
     --------------------------------- */

  #content {
    max-width: 820px;

    padding:
      52px
      28px
      80px;
  }

  #content-inner {
    display: block;
  }

  #main {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;
  }

  #box2 {
    width: 100%;
    max-width: 760px;

    margin:
      80px
      auto
      0;
  }


  /* ---------------------------------
     Sidebar → 記事下へ
     --------------------------------- */

  #box2 {
    padding-top: 42px;

    border-top: 1px solid var(--sb-line);
  }

}


/* =========================================================
   SMARTPHONE
   ～768px
   ========================================================= */

@media screen and (max-width: 768px) {


  /* =======================================================
     01. BASE
     ======================================================= */

  body {
    font-size: 15px;
  }


  /* =======================================================
     02. BLOG HEADER
     ======================================================= */

  #blog-title {
    padding:
      28px
      20px
      24px;
  }

  #blog-title-inner {
    width: 100%;
  }

  #title {
    font-size: 22px;
    line-height: 1.3;
  }

  #blog-description {
    margin-top: 7px;

    font-size: 11.5px;
    line-height: 1.6;
  }


  /* =======================================================
     03. MAIN CONTENT
     ======================================================= */

  #content {
    width: 100%;

    padding:
      34px
      18px
      64px;
  }

  #content-inner {
    display: block;
  }

  #main {
    width: 100%;
    max-width: none;

    margin: 0;
  }


  /* =======================================================
     04. ARTICLE HEADER
     ======================================================= */

  .entry {
    margin-bottom: 60px;
  }

  .entry-header {
    margin-bottom: 30px;
  }

  .entry-date,
  .date {
    margin-bottom: 9px;

    font-size: 11px;
  }

  .entry-title {
    font-size: 24px;
    line-height: 1.45;

    letter-spacing: -0.02em;

    overflow-wrap: anywhere;
  }


  /* Category */

  .categories {
    margin-top: 12px;
  }

  .categories a {
    margin:
      0
      6px
      5px
      0;

    font-size: 10.5px;
  }


  /* =======================================================
     05. ARTICLE BODY
     ======================================================= */

  .entry-content {
    font-size: 15.5px;
    line-height: 1.95;

    letter-spacing: 0.005em;
  }

  .entry-content p {
    margin-bottom: 1.55em;
  }


  /* =======================================================
     06. H2
     Main Chapter
     ======================================================= */

  .entry-content h2 {
    margin:
      3.5em
      0
      1.35em;

    padding:
      12px
      14px;

    border-radius: 4px;

    font-size: 19px;
    line-height: 1.55;

    overflow-wrap: anywhere;
  }


  /* =======================================================
     07. H3
     L Shape
     ======================================================= */

  .entry-content h3 {
    margin:
      2.9em
      0
      1.2em;

    padding:
      3px
      0
      8px
      11px;

    border-left-width: 5px !important;
    border-bottom-width: 1px !important;

    font-size: 17.5px;
    line-height: 1.55;

    overflow-wrap: anywhere;
  }


  /* =======================================================
     08. H4
     Vertical Line
     ======================================================= */

  .entry-content h4 {
    margin:
      2.5em
      0
      1.05em;

    padding:
      1px
      0
      1px
      10px;

    border-left-width: 4px;

    font-size: 16px;
    line-height: 1.55;

    overflow-wrap: anywhere;
  }


  /* =======================================================
     09. H5
     Underline
     ======================================================= */

  .entry-content h5 {
    margin:
      2.2em
      0
      0.9em;

    padding-bottom: 6px;

    font-size: 15px;
    line-height: 1.55;
  }


  /* =======================================================
     10. TABLE OF CONTENTS
     ======================================================= */

  .toc-details {
    margin:
      28px
      0
      38px;

    border-radius: 6px;
  }

  .toc-details > summary {
    min-height: 52px;

    padding:
      15px
      44px
      15px
      14px;

    font-size: 14px;
    line-height: 1.4;
  }


  /* 説明 */

  .toc-details > summary::after {
    content: "（タップで開く）";

    margin-left: 5px;

    font-size: 9.5px;

    vertical-align: 1px;
  }

  .toc-details[open] > summary::after {
    content: "（タップで閉じる）";
  }


  /* + / - */

  .toc-details > summary::before {
    right: 14px;

    font-size: 20px;
  }


  /* TOC body */

  .entry-content .table-of-contents {
    padding:
      15px
      14px
      17px
      31px !important;

    font-size: 12.5px;
    line-height: 1.7;
  }

  .entry-content .table-of-contents li {
    margin: 5px 0;
  }

  .entry-content .table-of-contents ul {
    padding-left: 14px;
  }


  /* =======================================================
     11. IMAGES
     ======================================================= */

  .entry-content img {
    width: auto;
    max-width: 100%;
    height: auto;

    border-radius: 5px;
  }

  .entry-content figure {
    margin:
      1.8em
      0;
  }

  .entry-content figcaption {
    margin-top: 7px;

    font-size: 11px;
  }


  /* =======================================================
     12. LIST
     ======================================================= */

  .entry-content ul,
  .entry-content ol {
    margin:
      1.4em
      0;

    padding-left: 1.45em;
  }

  .entry-content li {
    margin: 0.5em 0;

    padding-left: 0.05em;
  }


  /* =======================================================
     13. BLOCKQUOTE
     ======================================================= */

  .entry-content blockquote {
    margin:
      2em
      0;

    padding:
      2px
      0
      2px
      14px;

    font-size: 14px;
  }


  /* =======================================================
     14. TABLE
     ======================================================= */

  .entry-content table {
    display: block;

    width: 100%;

    margin:
      2em
      0;

    overflow-x: auto;

    -webkit-overflow-scrolling: touch;

    white-space: nowrap;

    font-size: 12px;
  }

  .entry-content th,
  .entry-content td {
    padding:
      10px
      12px;
  }


  /* =======================================================
     15. CODE
     ======================================================= */

  .entry-content pre {
    padding: 15px;

    overflow-x: auto;

    font-size: 12px;

    -webkit-overflow-scrolling: touch;
  }


  /* =======================================================
     16. EMBED / VIDEO
     ======================================================= */

  .entry-content iframe,
  .entry-content video {
    max-width: 100%;
  }


  /* YouTubeなど */

  .entry-content iframe[src*="youtube"],
  .entry-content iframe[src*="youtu.be"] {
    width: 100%;

    aspect-ratio: 16 / 9;

    height: auto;
  }


  /* =======================================================
     17. AMAZON CARD
     ======================================================= */

  .hatena-asin-detail {
    padding: 15px !important;

    margin:
      2em
      0 !important;

    border-radius: 7px !important;
  }


  /* =======================================================
     18. BUY BUTTON
     ======================================================= */

  .sb-buy-buttons {
    flex-direction: column;

    gap: 8px;

    margin:
      20px
      0
      30px;
  }

  .sb-buy-buttons a {
    width: 100%;

    min-height: 48px;

    padding:
      12px
      14px;

    font-size: 14px;
  }


  /* =======================================================
     19. POINT BOX
     ======================================================= */

  .sb-point {
    margin:
      1.8em
      0;

    padding:
      16px
      17px;

    font-size: 13.5px;
    line-height: 1.85;
  }


  /* =======================================================
     20. PRODUCT SPEC
     ======================================================= */

  .sb-spec {
    margin:
      1.8em
      0;

    padding:
      15px
      16px;
  }

  .sb-spec dl {
    grid-template-columns: 82px 1fr;

    gap:
      7px
      12px;
  }

  .sb-spec dt,
  .sb-spec dd {
    font-size: 12.5px;
  }


  /* =======================================================
     21. ENTRY FOOTER
     ======================================================= */

  .entry-footer {
    margin-top: 48px;

    padding-top: 20px;
  }


  /* =======================================================
     22. PAGER
     ======================================================= */

  .pager {
    display: block;

    margin-top: 50px;

    padding-top: 22px;
  }

  .pager-prev,
  .pager-next {
    width: 100%;
    max-width: 100%;

    margin:
      12px
      0;
  }


  /* =======================================================
     23. SIDEBAR
     ======================================================= */

  #box2 {
    width: 100%;

    margin-top: 60px;

    padding-top: 36px;

    border-top: 1px solid var(--sb-line);
  }

  .hatena-module {
    margin-bottom: 32px;
  }

  .hatena-module-title {
    font-size: 11.5px;
  }

  .hatena-module-body {
    font-size: 12px;
  }


  /* =======================================================
     24. FOOTER
     ======================================================= */

  #footer {
    padding:
      36px
      18px;

    font-size: 10.5px;
  }

}


/* =========================================================
   SMALL SMARTPHONE
   ～480px
   ========================================================= */

@media screen and (max-width: 480px) {


  /* =======================================================
     Main Margin
     ======================================================= */

  #content {
    padding:
      30px
      16px
      56px;
  }

  #blog-title {
    padding:
      26px
      16px
      22px;
  }


  /* =======================================================
     Article
     ======================================================= */

  .entry-title {
    font-size: 22px;
    line-height: 1.45;
  }

  .entry-content {
    font-size: 15px;
    line-height: 1.9;
  }


  /* =======================================================
     Heading
     ======================================================= */

  .entry-content h2 {
    margin-top: 3.2em;

    padding:
      11px
      12px;

    font-size: 18px;
  }

  .entry-content h3 {
    margin-top: 2.7em;

    padding-left: 10px;

    font-size: 17px;
  }

  .entry-content h4 {
    margin-top: 2.3em;

    padding-left: 9px;

    font-size: 15.5px;
  }

  .entry-content h5 {
    margin-top: 2em;

    font-size: 14.5px;
  }


  /* =======================================================
     TOC
     ======================================================= */

  .toc-details > summary {
    padding:
      14px
      40px
      14px
      13px;

    font-size: 13.5px;
  }

  .toc-details > summary::after {
    content: "（タップで開く）";

    margin-left: 4px;

    font-size: 9px;
  }

  .toc-details[open] > summary::after {
    content: "（タップで閉じる）";
  }

  .toc-details > summary::before {
    right: 12px;

    font-size: 19px;
  }


  /* =======================================================
     Product Spec
     ======================================================= */

  .sb-spec dl {
    display: block;
  }

  .sb-spec dt {
    margin-top: 9px;

    color: #888888;

    font-weight: 600;
  }

  .sb-spec dt:first-child {
    margin-top: 0;
  }

  .sb-spec dd {
    margin-top: 2px;
  }

}


/* =========================================================
   VERY SMALL SMARTPHONE
   ～360px
   ========================================================= */

@media screen and (max-width: 360px) {

  #content {
    padding-left: 14px;
    padding-right: 14px;
  }

  #blog-title {
    padding-left: 14px;
    padding-right: 14px;
  }

  .entry-title {
    font-size: 21px;
  }

  .entry-content {
    font-size: 14.5px;
  }


  /* 画面幅が狭いときはTOC説明を短縮 */

  .toc-details > summary::after {
    content: "（開く）";

    font-size: 9px;
  }

  .toc-details[open] > summary::after {
    content: "（閉じる）";
  }

}