/* <system section="theme" selected="6653586347153366095"> */
/*カスタマイズ方法はこちら*/
/*This theme is made by CatNose (http://tsukuruiroiro.hatenablog.com/)*/

@charset "utf-8";
@import url(https://fonts.googleapis.com/css?family=Montserrat:400,700|Quicksand:400,300,700|Nothing+You+Could+Do);
/*
font-family: 'Montserrat', sans-serif;
font-family: 'Quicksand', sans-serif;
font-family: 'Nothing You Could Do', cursive;

*/

html {
  font-family: sans-serif;
  /* 1 */

  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  /* 2 */

}
/**
 * Remove default margin.
 */
body {
  margin: 0;
}
/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */

  vertical-align: baseline;
  /* 2 */

}
/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}
/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background: transparent;
}
/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0;
}
/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}
/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}
/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 1.8em;
  margin: 0.67em 0;
  line-height: 1.1}
}
/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}
/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}
/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}
/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
}
/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}
/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */

  font: inherit;
  /* 2 */

  margin: 0;
  /* 3 */

}
/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}
/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}
/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */

  cursor: pointer;
  /* 3 */

}
/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}
/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}
/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */

  padding: 0;
  /* 2 */

}
/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */

  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */

  box-sizing: content-box;
}
/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */

  padding: 0;
  /* 2 */

}
/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}
/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}
/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*  import mixin */
.clearfix {
  display: block;
  *zoom: 1;
}
.clearfix:after {
  display: block;
  visibility: hidden;
  font-size: 0;
  height: 0;
  clear: both;
  content: ".";
}
.inline-block {
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
.ellipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
/*  import variable */
/* Common */
html,
body {
  font-family: "Avenir Next", 'Quicksand', Arial, YuGothic, 'Yu Gothic', 游ゴシック体, '游ゴシック', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS ゴシック', 'MS Gothic', sans-serif;
    -webkit-font-smoothing: antialiased;
  color: #454545;
  background-color: #ffffff;
}
a {
  color: #1487bd;
}
a:hover {
  color: #0f5373;
}
a:visited {
  color: #789dae;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a,
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover,
h1 a:visited,
h2 a:visited,
h3 a:visited,
h4 a:visited,
h5 a:visited,
h6 a:visited {
  color: #333333;
  text-decoration: none;
}
a.keyword {
  text-decoration: none;
  border-bottom: 1px dotted #dddddd;
  color: #454545;
}
/* Buttons */
.btn {
  display: inline-block;
  *display: inline;
  *zoom: 1;
  padding: 4px 10px 4px;
  margin-bottom: 0;
  line-height: 18px;
  color: #454545;
  background-color: #ffffff;
  text-align: center;
  vertical-align: middle;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-radius: 2px;
  background-clip: padding-box;
  cursor: pointer;
  font-size: 12px;
  text-decoration: none;
  font-weight: bold;
  border: 1px solid rgba(0, 0, 0, 0.2);
  text-decoration: none !important;
}
.btn:hover {
  background-color: #f5f5f5;
  text-decoration: none !important;
}
.btn-small {
  padding: 2px 10px !important;
  font-size: 11px !important;
}
.btn-large {
  padding: 13px 19px;
  font-size: 17px;
  line-height: normal;
  font-weight: bold;
}
/* ヘッダ（グローバルヘッダ）
  グローバルヘッダの中はiframeですが、
  #globalheader-container に背景色や文字色を指定することでirameの中にも色が反映されます。
*/
#globalheader-container {
  background-color: #333;
  color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}
/* container */
#container {

  margin-bottom: 30px;
  padding-top: 37px;
}
#container #content {
  display: block;
  *zoom: 1;
    width: 940px;
        margin-top: 60px;
  margin-left: auto;
  margin-right: auto;
}
#container #content:after {
  display: block;
  visibility: hidden;
  font-size: 0;
  height: 0;
  clear: both;
  content: ".";
}
.globalheader-off #container {
  padding-top: 0;
}
/* 2カラムレイアウト */
#main {
  width: 600px;
  float: left;
}
#box2 {
  width: 300px;
  float: right;
}
/* 1カラムにしたい場合は下記のコメントアウトを外してください ----
#main {
    width: 100%;
    float: none;
}
#box2 {
    width: 100%;
    float: none;
}
#box2-inner {
    width: 960px;
    .clearfix;
    overflow: hidden;
}
.hatena-module {
    text-align: left;
    padding-right: 20px;
    width: 300px;
    float: left;
    &:nth-child(3n+1) {
        clear: both;
    }
}
---- END 1カラム */
/* header */
#blog-title {
    margin: 0;
    padding: 2px 0 5px 0;
        background: #202035;
}
#blog-title-content {width: 940px;
  margin-left: auto;
  margin-right: auto;}
#title {
  margin: 0;
  padding:5px 0;
}
#title a {
    color: white;
    letter-spacing: 0.1em;
    font-size: 1.1em;
    font-family: 'quicksand';
}
#title a:hover {color:#B4D7FF;}

#blog-description {
    font-weight: normal;
    font-size: 80%;
    margin: 0px 3px 0 2px;
    letter-spacing: 0.05em;
    color: #AED1FF;
    font-family: "quicksand";
}
/* ヘッダ画像を設定したとき */
.header-image-enable #title {
  padding-top: 70px;
}
.header-image-enable #title,
.header-image-enable #blog-description {
  padding-left: 20px;
}
/* パンくず（カテゴリーページで表示されます） */
#top-box {
  margin: 10px auto 20px;
  font-size: 90%;
}
#top-box .breadcrumb {
  border: 1px solid #dddddd;
  padding: 10px;
}
/* entry */
.entry {
  position: relative;
  margin-bottom: 100px;
}
.entry-header {
  padding: 0 0 10px 0;
  margin-bottom: 20px;
  border-bottom: 2px solid #dddddd;
  position: relative;
}
.entry-title {
  margin: 0;
  line-height: 1.3;
  font-size: 160%;
}
/* 日付 */
.date {
  font-weight: bold;
  margin-bottom: 10px;
}
.date:before {
     font-family: "blogicon";
    content: "\f043";
    font-size: 79%;
    color: #383838;
    position: relative;
    top: 1px;
}

.date a {
    color: #383838;
    text-decoration: none;
    font-size: 74%;
    letter-spacing: 0.1em;
    font-family: 'quicksand', sans-serif;
}
/* カテゴリ */
.categories {
  margin-top: 12px;
  font-size: 80%;
}
.categories a {
    color: black;
    background: #69B8D2;
    padding: 2px 8px;
    font-weight: lighter;
    font-size: 0.6em;
    border-radius: 2px;
    letter-spacing: 0.05em;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
}
.categories a:hover {background: gray}

.categories.no-categories {
  margin: 0;
}
/* 「編集する」ボタン */
.entry-header-menu {
  position: absolute;
  bottom: 0px;
  left: -60px;
}
.entry-header-menu a {
  display: inline-block;
  *display: inline;
  *zoom: 1;
  padding: 4px 10px 4px;
  margin-bottom: 0;
  line-height: 18px;
  color: #454545;
  background-color: #ffffff;
  text-align: center;
  vertical-align: middle;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-radius: 2px;
  background-clip: padding-box;
  cursor: pointer;
  font-size: 12px;
  text-decoration: none;
  font-weight: bold;
  border: 1px solid rgba(0, 0, 0, 0.2);
  text-decoration: none !important;
}
.entry-header-menu a:hover {
  background-color: #f5f5f5;
  text-decoration: none !important;
}
/* entry-content の中の書式 */
.entry-content {
  font-size: 95%;
  line-height: 1.7;
  padding-bottom: 10px;
  border-bottom: 1px solid #dddddd;
}
.entry-content p {
    margin: 0 0 1em 0;
    line-height: 2.0em;
}
.entry-content img {
  max-width: 100%;
}
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  margin: 1.3em 0 0.8em 0;
  line-height: 1.5;
}
.entry-content h1 {
  font-size: 160%;
}
.entry-content h2 {
  font-size: 150%;
}
.entry-content h3 {
    font-size: 140%;
    padding: 12px 0 12px 13px;
    color: #4D517D;
    padding-left: 13px;
    line-height: 1.6em;
    border-left: #4D517D solid 9px;
  }
.entry-content h4 {
    font-size: 120%;
    margin: 35px 0 20px;}

.entry-content h4:before {
      content: "\f029";
    font-family: "blogicon";
    position: relative;
    padding-right: 10px;
    color: #6C9FCE;
}

.entry-content h5 {
  font-size: 110%;
}
.entry-content h6 {
  font-size: 100%;
}
.entry-content table {
  border-collapse: collapse;
  border-spacing: 0;
  margin-bottom: 1em;
}
.entry-content table img {
  max-width: none;
}
.entry-content table th,
.entry-content table td {
  border: 1px solid #ddd;
  padding: 5px 10px;
}
.entry-content table th {
  background: #f5f5f5;
}
.entry-content blockquote {
  border: 1px solid #dddddd;
  margin: 0 0 10px;
  padding: 20px;
}
.entry-content blockquote p {
  margin-top: 0;
  margin-bottom: 0;
}
.entry-content pre {
  border: 1px solid #dddddd;
  margin: 0 0 10px;
  padding: 20px;
  white-space: pre;
}
.entry-content pre > code {
  margin: 0;
  padding: 0;
  white-space: pre;
  border: 0;
  background: transparent;
  font-family: 'Monaco', 'Consolas', 'Courier New', Courier, monospace, sans-serif;
}
.entry-content code {
  font-size: 90%;
  margin: 0 2px;
  padding: 0 5px;
  border: 1px solid #eaeaea;
  background-color: #f8f8f8;
  border-radius: 3px;
  font-family: 'Monaco', 'Consolas', 'Courier New', Courier, monospace, sans-serif;
}
.entry-content ul, .entry-content ol {padding: 15px 20px 7px;
    color: #566AA0;
    border: solid #566AA0 2px;}
.entry-content ul li {list-style-type: disc;
    margin: 3px 17px;}
.entry-content ol li {list-style-type:  decimal;
    margin: 3px 17px;}

.entry-content ul li ul, .entry-content ol li ol {
    border: 0px;
    padding: 5px 5px 5px 0;
    font-size: 0.9em;
    color: #8297CA;
}

.entry-content .hatena-asin-detail li {
  line-height: 1.4;
}
/* entry-footer */
.entry-footer {
  margin-top: 10px;
}
.entry-footer-section {
  font-size: 80%;
  color: #999999;
}
.entry-footer-section a {
  color: #999999;
}
.social-buttons,
.entry-footer-html {
  margin: 10px 0;
}
/* コメント */
.comment-box ul {
  list-style: none;
  margin: 0 0 15px 0;
  padding: 0;
  font-size: 95%;
  line-height: 1.7;
}
.comment-box li {
  padding: 10px 0 10px 60px;
  border-bottom: 1px solid #dddddd;
  position: relative;
}
.comment-box li:first-child {
  border-top: 1px solid #dddddd;
}
.comment-box .read-more-comments {
  padding-left: 0;
}
.comment-box .hatena-id-icon {
  position: absolute;
  top: 10px;
  left: 0;
  width: 50px !important;
  height: 50px !important;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-radius: 3px;
  background-clip: padding-box;
}
.comment-user-name {
  margin: 0 0 10px 0;
  font-weight: bold;
}
.comment-content {
  font-size: 90%;
  margin: 0 0 10px 0;
  word-wrap: break-word;
}
.comment-content p {
  margin: 0 0 10px 0;
}
.comment-metadata {
  font-size: 80%;
  color: #999999;
  margin: 0;
}
.comment-metadata a {
  color: #999999;
}
.leave-comment-title {
  display: inline-block;
  *display: inline;
  *zoom: 1;
  padding: 4px 10px 4px;
  margin-bottom: 0;
  line-height: 18px;
  color: #454545;
  background-color: #ffffff;
  text-align: center;
  vertical-align: middle;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-radius: 2px;
  background-clip: padding-box;
  cursor: pointer;
  font-size: 12px;
  text-decoration: none;
  font-weight: bold;
  border: 1px solid rgba(0, 0, 0, 0.2);
  text-decoration: none !important;
}
.leave-comment-title:hover {
  background-color: #f5f5f5;
  text-decoration: none !important;
}
/* sidebar */
#box2 {
  font-size: 85%;
  line-height: 1.5;
}
.hatena-module {
  margin-bottom: 60px;
}
.hatena-module-title {
  color:#202035;
    font-weight: bold;
    border-left: 10px #202035 solid;
    padding-left: 10px;
    margin-bottom: 15px;
    font-size: 150%;
    line-height: 1em;
    letter-spacing: 0.1em;
    font-family: 'Montserrat';
}
.hatena-module-title a {
  color: #454545;
  text-decoration: none;
}
.hatena-module-title a:hover {
  text-decoration: underline;
}
/* Profile module */
.hatena-module-profile .profile-icon {
  float: left;
  margin: 0 10px 10px 0;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-radius: 5px;
  background-clip: padding-box;
}
.hatena-module-profile .id {
  display: block;
  font-weight: bold;
  font-size: 110%;
  margin-bottom: 5px;
}
.hatena-module-profile .profile-description {
  font-size: 90%;
  line-height: 1.8em;
  letter-spacing: 0.1em;
}
.hatena-module-profile .profile-description p {
  margin-top: 0;
}
/* urllist module
    リンク・最新記事・最近のコメント・月別アーカイブ・カテゴリモジュールは .hatena-urllist という共通の class が振られます
*/
.hatena-urllist {
  list-style: none;
  margin: 0 0 0 0;
  padding: 0 0 0 0;
}
.hatena-urllist li {
  padding: 8px 0;
  border-bottom: 1px solid #dddddd;
  line-height: 1.5;
}
.hatena-urllist li a {
  text-decoration: none;
}
/* Search module */


.hatena-module-search-box .search-form {
  border: 2px solid #6C9CCE;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-radius: 3px;
  background-clip: padding-box;
  width: 100%;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}
/*
.hatena-module-search-box .search-module-input {
  padding: 5px;
  color: #454545;
  background: none;
  border: none;
  outline: none;
  height: 20px;
  width: 90%;
}*/
.search-result-form .search-result-input{height: 23px!important;}
.search-module-input {
    border: none!important;
    padding: 8px 32px 8px 8px;
    line-height: 20px;
    /* color: white!important; */}
.hatena-module-search-box .search-module-button {
  width: 20px;
  height: 20px;
  background: transparent url(https://cdn.blog.st-hatena.com/images/theme/search.png) no-repeat right center;
  border: none;
  outline: none;
  text-indent: -9999px;
  position: absolute;
  top: 9px;
  right: 5px;
  opacity: 0.5;
}
.hatena-module-search-box .search-module-button:hover {
  opacity: 0.85;
}
/* Pager */
.pager {
  margin: 1em 0;
  display: block;
  *zoom: 1;
}
.pager:after {
  display: block;
  visibility: hidden;
  font-size: 0;
  height: 0;
  clear: both;
  content: ".";
}
.pager .pager-prev {
  float: left;
  text-align: left;
  width: 45%;
}
.pager .pager-next {
  float: right;
  text-align: right;
  width: 45%;
}
/* Footer */
#footer {
  padding: 30px 0;
  text-align: center;
  color: #999999;
  line-height: 1.5;
  font-size: 80%;
}
#footer p {
  margin: 0;
}
#footer a {
  color: #999999;
}
/* About ページ */
.page-about dt {
  font-size: 16px;
  font-weight: bold;
  border-bottom: 1px solid #dfdfdf;
  margin-bottom: 5px;
}
.page-about dd {
  margin-left: 0;
  margin-bottom: 30px;
}
/* archive ページ */
.archive-heading {    padding-left: 13px;
    color: #4A6AA5;
    border-left: 9px solid #4A6AA5;} 
.page-archive .archive-entries .archive-entry {
  margin-bottom: 3em;
}
.page-archive .archive-entries .entry-title {
  font-size: 130%;
  margin: 0 0 .5em;
}
.page-archive .archive-entries .categories {
  margin: 0 0 .5em;
}
.page-archive .archive-entries .entry-description {
  margin: 0 0 1em;
  line-height: 1.7em;
  font-size: 95%;
}
.page-archive .categories a {
  color: black;
  font-size: 70%;
  background: #69B8D2;
  padding: 3px 5px;
  border-radius: 3px;
  text-decoration: none;
  display: inline-block;
  *display: inline;
  *zoom: 1;
  margin-right: 2px;
}
/*  import media queries */
/* Media Queries - Retina Display */
@media (-webkit-min-device-pixel-ratio: 2) {
  .hatena-module-search-box .search-module-button {
    background: transparent url(https://cdn.blog.st-hatena.com/images/theme/search@2x.png) no-repeat right center;
    background-size: 20px 20px;
  }
}
/* Media Queries - Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
  /*#container {
    width: 724px;
  }
  #main {
    width: 460px;
  }*/
#content {margin-left: 5%!important;
margin-right:5%!important;
width:90%!important;}

#blog-title-content{padding-left: 5%;
padding-right:5%;
width:90%!important;}
#main {width:60%}
  #box2 {
   /* width: 245px;*/
   width: 30%;
  }
  /* 1カラムにしたい場合は下記のコメントアウトを外してください ----
      #main,
      #box2 {
          width: 100%;
      }
  
      #box2-inner {
          width: 744px;
  
      }
  
      .hatena-module {
          width: 228px;
      }
  ---- END 1カラム */
}
/* Media Queries - Small Tablet & Smartphone */
@media (max-width: 767px) {
  #globalheader-container {
    position: static;
  }
  #container {
   /* width: 93.75%;*/
    word-wrap: break-word;
    overflow: hidden;
  }
  #main {
    width: 100%;
    float: none;
  }
  #box2 {
    width: 100%;
    float: none;
  }
  #box2-inner {
    width: 100%;
  }
  .hatena-module {
    width: 100%;
    float: none;
  }
  .entry-header-menu {
    top: -30px;
    left: 0px;
  }
  #content {margin-left: 15px!important;
margin-right:15px!important;
width:auto;}
#blog-title-content{    margin-left: 5%;
    margin-right: 5%;}
}
/* Media Queries - Smartphone */
@media (max-width: 480px) {
  
}


/*テーマインストール後のカスタマイズ用CSS*/


/*ABOUT下のThis Theme is by...*/
.authorname {
    font-family: 'Montserrat', sans-serif;
    font-weight: lighter;
    letter-spacing: 0.13em;
    font-size: 80%;
    color: gray;
    border-bottom: 1px solid gray;
}
.authorname a {text-decoration: none;
  font-family: 'Nothing You Could Do', cursive; font-size:20px; color:#4E4E4E; padding-left: 4px;}
  .authorname a:hover {color:silver;}



  /* サイドバー人気記事表示用　Chiroruさんのものを参考
  http://chiroru.hatenablog.com/entry/2013/10/11/192601
  ----- POPULAR_ENTRY ----- */
.htbl_popular_entries {
    height: 100%;
    width: 100%;
    border: 2px solid black;
    border-bottom: 0px;
}
.htbl_popular_entry {
  position: relative;
  background: #ddd;
  width: 100%;
  height: 100px;
  overflow: hidden;
border-bottom: 2px solid black;  border-radius: 1px;
}
.htbl_popular_entry_img { position: relative; top: -9px; min-height: 118px;}
.htbl_popular_entry_text {
  position: absolute;
  top: 0px;
  word-break: break-all;
  overflow: hidden;
  background: rgba(77, 77, 77, 0.62);
  width: 90%;
  height: 100px;
  margin-top: 0px;
  padding: 0 5%;
  color: rgba(255, 255, 255, 0.985);
  -webkit-transition: all 0.35s ease-out;
  -moz-transition: all 0.35s ease-out;
  -o-transition: all 0.35s ease-out;
  transition: all 0.35s ease-out;
}
.htbl_popular_entry_text:hover {
  background: rgba(255, 255, 255, 0.05);
  color: transparent;
  text-shadow: none;
  padding-top: 100px;
}
.htbl_popular_entry_text span.entry_title {
      display: table-cell;
    vertical-align: middle;
    text-align: left;
    height: 100px;
    font-size: 11px;
    font-weight: bold;
}
.htbl_popular_entry_text span.entry_date {
  position: absolute;
  bottom: 0;
  right: 5px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  text-shadow: none;
}
.htbl_popular_entry_text span.entry_hatebu { position: absolute; left: 14px; bottom: 0px; }

 /*ここまで ----- サイドバーPOPULAR_ENTRY ----- */

  /* サイドバー人気記事表示用　Chiroruさんのものを参考
  http://chiroru.hatenablog.com/entry/2013/10/11/192601
  ----- POPULAR_ENTRY ----- */
.htbl_popular_entries {
    height: 100%;
    width: 100%;
    border: 2px solid black;
    border-bottom: 0px;
}
.htbl_popular_entry {
  position: relative;
  background: #ddd;
  width: 100%;
  height: 100px;
  overflow: hidden;
border-bottom: 2px solid black;  border-radius: 1px;
}
.htbl_popular_entry_img { position: relative; top: -9px; min-height: 118px;}
.htbl_popular_entry_text {
  position: absolute;
  top: 0px;
  word-break: break-all;
  overflow: hidden;
  background: rgba(77, 77, 77, 0.62);
  width: 90%;
  height: 100px;
  margin-top: 0px;
  padding: 0 5%;
  color: rgba(255, 255, 255, 0.985);
  -webkit-transition: all 0.35s ease-out;
  -moz-transition: all 0.35s ease-out;
  -o-transition: all 0.35s ease-out;
  transition: all 0.35s ease-out;
}
.htbl_popular_entry_text:hover {
  background: rgba(255, 255, 255, 0.05);
  color: transparent;
  text-shadow: none;
  padding-top: 100px;
}
.htbl_popular_entry_text span.entry_title {
      display: table-cell;
    vertical-align: middle;
    text-align: left;
    height: 100px;
    font-size: 11px;
    font-weight: bold;
}
.htbl_popular_entry_text span.entry_date {
  position: absolute;
  bottom: 0;
  right: 5px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  text-shadow: none;
}
.htbl_popular_entry_text span.entry_hatebu { position: absolute; left: 14px; bottom: 0px; }

 /*ここまで ----- サイドバーPOPULAR_ENTRY ----- */

 /*ここからサイドバーのソーシャル購読*/

.sidesocial {width:100%;}
.sidesocial h4 {font-size:120%;
    color: #5880AD;}
.socialbtn {float: left;
    margin-right: 15px;
    font-size: 32px;}
.blogicon-subscribe {
    top: 2px;
    position: relative;
}
 /*ツイッターぷかぷか*/
.twitterfollow {
    animation: 5s bounce ease infinite;
    
}
@keyframes bounce {  
    50% {
        transform: translateY(-40px);
    }
}

@keyframes pulsate {
    0% {
        opacity: 0;
    }
    50% {
        transform: scale(0.5);
        opacity: 0.2;
    }
    
    100% {
        opacity: 0;
    }
}
.fbfollow a {color: #1487bd;}
.fbfollow a:hover {color: #489DC5;}
.twitterfollow a {font-size:0.9em; margin-right:5px; color:#5EC9DC;}
.twitterfollow a:hover {color:#62E6FD;}
.hatenafollow a {color:#9E9E9E; }
.hatenafollow a:hover {color:silver;}
.feedly a {font-size:0.8em; color:#99D279}
.feedly a:hover {color:#C7DCBB;}
 /*ここまでサイドバーのソーシャル購読*/
/*ヘッダー下の特大画像とおすすめ記事紹介など*/
.headimg {
    min-height: 200px;
    margin-bottom: 0;
    padding: 60px 10px;
    background-image: url("https://cdn-ak.f.st-hatena.com/images/fotolife/t/tsukuruiroiro/20160117/20160117093059.jpg?1452990730?changed=1452990730");
    background-size: cover;
    text-align: center;
}
.headimg 
.headimg h3 {color: white;}
.headimg h4 {
    color: white;
    margin: 0;
    padding: 0;
    font-size: 3.5em;
    letter-spacing: 0.1em;
    font-family: quicksand;
}
.headimg h5 {
    color: white;
    font-size: 1.3em;
    letter-spacing: 0.1em;
    margin: 10px 20px;
    font-weight: normal;
    font-family: quicksand;
}
.headimg h6 {
    padding: 7px 8px;
    margin: 5px 5px;
    border: solid 1px white;
    width: 194px;
    height: 39px;
    display: inline-block;
       background: rgba(50,50,50,0.2);
    overflow: hidden;
}
.headimg h6 a {color:white;}
.headimg a:hover {color:silver;}
.recommendlist {
    margin: 18px 0 0 0;
}

/* </system> */

/* <system section="background" selected="undefined"> */

/* </system> */

/* ============================================================
   サイバーセキュリティナビ カスタムCSS v3
   日本サイバーセキュリティ株式会社
   方針: コンテンツファースト / 読みやすさ・視認性・目にやさしい
   本文 780px・18px・line-height 2.0 / palt は見出しのみ
   ============================================================ */
   /* Responsive: yes */
   

/* ===== Design tokens ===== */
:root {
    /* text */
    --jcs-ink:        #08131a;
    --jcs-ink-2:      rgba(8, 19, 26, 0.66);
    --jcs-ink-3:      rgba(8, 19, 26, 0.50);
    /* surface */
    --jcs-bg:         #ffffff;
    --jcs-bg-2:       #f5f8fa;
    /* line */
    --jcs-line:       rgba(8, 19, 26, 0.14);
    --jcs-line-2:     rgba(8, 19, 26, 0.22);
    --jcs-line-weak:  rgba(8, 19, 26, 0.07);
    /* brand: security navy / teal */
    --jcs-navy:       #0f1729;
    --jcs-navy-2:     #16263f;
    --jcs-ac:         #0c6180;
    --jcs-ac-hi:      #2aa6bf;
    --jcs-ac-dark:    #084b64;
    --jcs-ac-soft:    rgba(12, 97, 128, 0.08);
    --jcs-ac-line:    rgba(12, 97, 128, 0.28);
    /* elevation */
    --jcs-e1:         0 1px 3px 1px rgba(8, 19, 26, 0.06), 0 1px 2px 0 rgba(8, 19, 26, 0.08);
    --jcs-e2:         0 6px 16px 2px rgba(8, 19, 26, 0.09), 0 2px 4px 0 rgba(8, 19, 26, 0.07);
    /* font */
    --jcs-font: "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
                Arial, "Noto Sans JP", Meiryo, sans-serif;
    --jcs-mono: SFMono-Regular, Consolas, Menlo, "Courier New", monospace;
}

/* ===== Base ===== */
body {
    font-family: var(--jcs-font);
    color: var(--jcs-ink);
    background: var(--jcs-bg-2);
    word-wrap: break-word;
    overflow-wrap: break-word;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-kerning: auto;
    letter-spacing: normal;
}

#container, #wrapper, #content, #main, #box2,
.entry, .archive-entry, .hatena-module, .entry-content {
    box-sizing: border-box;
}

::selection { background: rgba(12, 97, 128, 0.16); }

a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid var(--jcs-ac);
    outline-offset: 2px;
    border-radius: 4px;
}

/* 旧バナー画像は非表示 / このエリアはカテゴリーナビ (#jcs-nav) 用に再利用 */
#top-editarea {
    display: block;
    margin: 0;
    padding: 0;
    border: none;
    position: relative;
    /* ヘッダーと地続きの白プレート。中身が空なら高さ0 = 余計なバーは出ない。
       nav が入ったときだけ下端にアクセントラインが出る。 */
    background-color: var(--jcs-bg);
    background-image:
        linear-gradient(90deg, var(--jcs-ac) 0%, var(--jcs-ac-hi) 50%, var(--jcs-ac) 100%);
    background-size: 100% 3px;
    background-position: left bottom;
    background-repeat: no-repeat;
}
#top-editarea img,
#top-editarea > img { display: none; }

/* nav が入っていない (JS で移動済み / 旧バナーだけ) ときは完全に潰す */
#top-editarea:not(:has(#jcs-nav)) {
    height: 0;
    min-height: 0;
    overflow: hidden;
    background-image: none;
}

/* ===== Header / ブログタイトル (ライトヘッダー) ===== */
#blog-title {
    background: var(--jcs-bg);
    padding: 26px 0 20px;
    position: relative;
    overflow: hidden;
    border: none;
}

/* ごく淡いライトテクスチャ (暗いオーバーレイは置かない) */
#blog-title::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(circle at 14% 130%, rgba(12, 97, 128, 0.05) 0%, transparent 58%),
        radial-gradient(circle at 88% -30%, rgba(42, 166, 191, 0.07) 0%, transparent 58%);
    pointer-events: none;
}

/* 下端のアクセントライン */
#blog-title::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--jcs-ac) 0%, var(--jcs-ac-hi) 50%, var(--jcs-ac) 100%);
    pointer-events: none;
}

/* ナビが #top-editarea 側にあるときは、アクセントラインはナビの下端に置く
   (タイトルとナビの“あいだ”に線が入らないようにする) */
#blog-title:has(~ #top-editarea #jcs-nav)::after { display: none; }

/* [ワードマークロゴ] | [ショルダー + タイトル + 説明]  ／ 下段フル幅に nav */
#blog-title-content {
    width: 1200px;
    max-width: 95vw;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    padding: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 20px;
    align-items: start;
}

/* JCS ワードマーク (592x135 / 約4.4:1。歪ませず contain で表示) */
#blog-title-content::before {
    content: '';
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    width: 254px;
    height: 58px;
    border-radius: 6px;
    background-image: url("https://storage.googleapis.com/studio-design-asset-files/projects/wQOVBQNZOD/s-703x161_v-fs_webp_c4507771-e853-4f0e-9d7e-33b9a68987a0.webp");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

#blog-title #title {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    line-height: 1.4;
}

/* ショルダーラベル: 非表示 (バッジは出さない / 本タイトルはそのまま) */
#blog-title #title::before {
    content: none;
    display: none;
}

#blog-title #title a {
    font-size: 26px;
    font-weight: 700;
    color: var(--jcs-ink);
    letter-spacing: 0.06em;
    font-feature-settings: "palt";
    text-decoration: none;
    display: inline-block;
    transition: color 0.18s ease;
}
#blog-title #title a:hover { color: var(--jcs-ac); opacity: 1; }

#blog-description {
    font-size: 13px;
    line-height: 1.8;
    color: var(--jcs-ink-2);
    margin: 8px 0 0;
    font-weight: 400;
    letter-spacing: 0.02em;
    max-width: 680px;
}
#blog-title-content > #blog-description {
    grid-column: 2;
    grid-row: 2;
}

/* ===== Header nav / カテゴリーナビ ===== */
#jcs-nav {
    position: relative;
    z-index: 3;
}
#jcs-nav ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}
#jcs-nav li {
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 0 0 auto;
}
#jcs-nav li::before,
#jcs-nav li::after { content: none; }

#jcs-nav a {
    position: relative;
    display: inline-block;
    padding: 8px 13px 9px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--jcs-ink-2);
    text-decoration: none;
    border-radius: 6px;
    font-feature-settings: "palt";
    white-space: nowrap;
    transition: color 0.18s ease, background-color 0.18s ease;
}
#jcs-nav a::after {
    content: '';
    position: absolute;
    left: 13px;
    right: 13px;
    bottom: 3px;
    height: 2px;
    border-radius: 2px;
    background: var(--jcs-ac);
    opacity: 0;
    transform: scaleX(0.55);
    transition: opacity 0.18s ease, transform 0.18s ease;
}
#jcs-nav a:hover,
#jcs-nav a:focus-visible,
#jcs-nav a[aria-current="page"] {
    color: var(--jcs-ac);
    background: var(--jcs-ac-soft);
}
#jcs-nav a:hover::after,
#jcs-nav a:focus-visible::after,
#jcs-nav a[aria-current="page"]::after {
    opacity: 1;
    transform: none;
}

/* 白地の上でのフォーカスリング */
#blog-title a:focus-visible,
#top-editarea a:focus-visible {
    outline: 2px solid var(--jcs-ac);
    outline-offset: 2px;
}

/* --- 配置A: JS で #blog-title-content の中に移動された場合 --- */
#blog-title-content > #jcs-nav {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    margin-top: 15px;
    padding-top: 10px;
    border-top: 1px solid var(--jcs-line-weak);
}

/* --- 配置B: #top-editarea の中にあるまま (ヘッダーと地続きに見せる) --- */
#top-editarea #jcs-nav {
    width: 1200px;
    max-width: 95vw;
    margin: 0 auto 14px;
    padding-top: 11px;
    border-top: 1px solid var(--jcs-line-weak);
}

/* ===== Layout ===== */
#container #content {
    width: 1200px;
    max-width: 95vw;
    margin: 40px auto 56px;
    padding: 0;
}

#main {
    width: 860px;   /* カード内余白 40px → 本文 780px */
    max-width: calc(100% - 340px);   /* 幅が足りない時もサイドバーと並ぶ */
    float: left;
}

#box2 {
    width: 300px;
    margin-left: 40px;
    float: right;
}

/* ===== 一覧（アーカイブ）: カード ===== */
.archive-entry,
.archive .entry {
    background: var(--jcs-bg);
    border: 1px solid var(--jcs-line);
    border-radius: 14px;
    box-shadow: var(--jcs-e1);
    padding: 28px 32px;
    margin: 0 0 20px;
    transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
.archive-entry:hover {
    box-shadow: var(--jcs-e2);
    transform: translateY(-2px);
    border-color: var(--jcs-line-2);
}

.archive-entry-header { margin-bottom: 10px; }

.archive-entry .entry-title,
.archive-entry-header .entry-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.65;
    letter-spacing: 0.04em;
    font-feature-settings: "palt";
    margin: 6px 0 0;
    border: none;
    padding: 0;
}
.archive-entry .entry-title-link,
.archive-entry .entry-title a {
    color: var(--jcs-ink);
    text-decoration: none;
}
.archive-entry .entry-title-link:hover,
.archive-entry .entry-title a:hover { color: var(--jcs-ac); }

/* 日付 */
.date, .archive-date, .entry-date {
    font-size: 12.5px;
    color: var(--jcs-ink-3);
    letter-spacing: 0.05em;
    font-weight: 500;
}
.date a, .entry-date a { color: var(--jcs-ink-3); text-decoration: none; }
.date a:hover, .entry-date a:hover { color: var(--jcs-ac); }

/* 本文プレビュー・サムネイル */
.archive-entry-body { margin-top: 14px; }
.archive-entry-body::after { content: ''; display: block; clear: both; }

.archive-entry .entry-thumb,
.archive-entry a.entry-thumb-link {
    border-radius: 10px;
    overflow: hidden;
    margin-right: 20px;
    background: var(--jcs-bg-2);
}
.archive-entry .entry-thumb img,
.archive-entry .entry-thumb-link img {
    display: block;
    border-radius: 10px;
}

.entry-description {
    font-size: 14.5px;
    line-height: 1.9;
    color: var(--jcs-ink-2);
    margin: 0;
    letter-spacing: normal;
}

/* タグ（一覧・記事共通） */
.archive-entry-tags,
.entry-tags {
    margin-top: 16px;
    line-height: 2.2;
}
.entry-tag, .archive-entry-tag { margin: 0 6px 6px 0; display: inline-block; }

.entry-tag-link,
.archive-entry-tag-link,
.entry-tags a {
    display: inline-block;
    font-size: 12px;
    line-height: 1.6;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--jcs-ac-soft);
    border: 1px solid rgba(12, 97, 128, 0.14);
    color: var(--jcs-ac-dark);
    text-decoration: none;
    letter-spacing: 0.02em;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.entry-tag-link:hover,
.archive-entry-tag-link:hover,
.entry-tags a:hover {
    background: rgba(12, 97, 128, 0.14);
    border-color: var(--jcs-ac-line);
    color: var(--jcs-ac-dark);
}
.entry-tag-icon { opacity: .55; }

/* カテゴリ表示（記事上部） */
.entry-header-menu a,
.categories a {
    display: inline-block;
    font-size: 12px;
    padding: 3px 11px;
    border-radius: 999px;
    background: var(--jcs-bg-2);
    border: 1px solid var(--jcs-line);
    color: var(--jcs-ink-2);
    text-decoration: none;
    margin: 0 6px 6px 0;
}
.entry-header-menu a:hover,
.categories a:hover { color: var(--jcs-ac); border-color: var(--jcs-ac-line); }

/* ===== ページャ ===== */
.pager {
    margin: 32px 0 0;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    border: none;
    padding: 0;
}
.pager-next, .pager-prev, .pager-permalink {
    flex: 1 1 200px;
    background: var(--jcs-bg);
    border: 1px solid var(--jcs-line);
    border-radius: 12px;
    box-shadow: var(--jcs-e1);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.pager-next:hover, .pager-prev:hover, .pager-permalink:hover {
    border-color: var(--jcs-ac-line);
    box-shadow: var(--jcs-e2);
}
.pager a {
    display: block;
    padding: 16px 20px;
    color: var(--jcs-ink);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: 0.02em;
}
.pager a:hover { color: var(--jcs-ac); }
.pager-prev { text-align: left; }
.pager-next { text-align: right; }

/* ===== 記事（個別ページ） ===== */
.entry, #main .entry {
    background: var(--jcs-bg);
    border: 1px solid var(--jcs-line);
    border-radius: 16px;
    box-shadow: var(--jcs-e1);
    padding: 40px;
    margin: 0 0 28px;
}
.page-archive .entry, .page-index .entry { padding: 28px 32px; }

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

.entry-title {
    font-size: 30px;
    line-height: 1.55;
    font-weight: 700;
    color: var(--jcs-ink);
    letter-spacing: 0.04em;
    font-feature-settings: "palt";
    margin: 10px 0 0;
}
.entry-title a { color: var(--jcs-ink); text-decoration: none; }
.entry-title a:hover { color: var(--jcs-ac); }

/* ===== 本文 ===== */
.entry-content {
    font-size: 18px;
    line-height: 2.0;
    color: var(--jcs-ink);
    letter-spacing: normal;          /* 本文に palt / 字間は適用しない */
    font-feature-settings: normal;
}
.entry-content p { margin: 0 0 1.9em; }

/* 見出し */
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5 {
    color: var(--jcs-ink);
    font-weight: 700;
    letter-spacing: 0.04em;
    font-feature-settings: "palt";
    line-height: 1.55;
}

.entry-content h2 {
    position: relative;
    font-size: 25px;
    margin: 3em 0 1.2em;
    padding: 0 0 14px;
    border: none;
    border-bottom: 1px solid var(--jcs-line);
}
.entry-content h2::after {
    content: '';
    position: absolute;
    left: 0; bottom: -1px;
    width: 64px; height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--jcs-ac), var(--jcs-ac-hi));
}

.entry-content h3 {
    position: relative;
    font-size: 20px;
    margin: 2.6em 0 1em;
    padding: 0 0 0 16px;
    border: none;
}
.entry-content h3::before {
    content: '';
    position: absolute;
    left: 0; top: .28em; bottom: .28em;
    width: 4px;
    border-radius: 3px;
    background: var(--jcs-ac);
}

.entry-content h4 {
    font-size: 17px;
    margin: 2.2em 0 .9em;
    color: var(--jcs-ac-dark);
}
.entry-content h5 { font-size: 16px; margin: 2em 0 .8em; }

/* h2/h3 直後の余白調整 */
.entry-content h2 + p,
.entry-content h3 + p,
.entry-content h4 + p { margin-top: 0; }

/* リンク */
.entry-content a {
    color: var(--jcs-ac);
    text-decoration: underline;
    text-decoration-color: var(--jcs-ac-line);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    text-decoration-skip-ink: auto;
    transition: color .18s ease, text-decoration-color .18s ease;
}
.entry-content a:hover {
    color: var(--jcs-ac-dark);
    text-decoration-color: var(--jcs-ac-dark);
}
.entry-content a.keyword {
    color: var(--jcs-ink);
    text-decoration-style: dotted;
    text-decoration-color: var(--jcs-line-2);
}
.entry-content figure a,
.entry-content a:has(> img) { text-decoration: none; }

/* ===== 目次 [:contents] ===== */
.entry-content .table-of-contents {
    list-style: none;
    background: var(--jcs-bg-2);
    border: 1px solid var(--jcs-line);
    border-radius: 12px;
    padding: 24px 28px;
    margin: 2.4em 0;
    font-size: 15.5px;
    line-height: 1.9;
}
.entry-content .table-of-contents::before {
    content: "目次";
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--jcs-ink-2);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--jcs-line);
}
.entry-content .table-of-contents > li {
    position: relative;
    padding-left: 16px;
    margin: 0 0 6px;
    list-style: none;
}
.entry-content .table-of-contents > li::before {
    content: '';
    position: absolute;
    left: 0; top: .82em;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--jcs-ac-line);
}
.entry-content .table-of-contents ul {
    list-style: none;
    margin: 4px 0 8px;
    padding-left: 16px;
    border: none;
    font-size: 14.5px;
}
.entry-content .table-of-contents ul li {
    position: relative;
    padding-left: 14px;
    list-style: none;
    margin: 0 0 2px;
}
.entry-content .table-of-contents ul li::before {
    content: '';
    position: absolute;
    left: 0; top: .95em;
    width: 7px; height: 1px;
    background: var(--jcs-line-2);
}
.entry-content .table-of-contents a {
    color: var(--jcs-ink-2);
    text-decoration: none;
}
.entry-content .table-of-contents a:hover {
    color: var(--jcs-ac);
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* ===== 引用 ===== */
.entry-content blockquote {
    background: var(--jcs-bg-2);
    border: none;
    border-left: 3px solid var(--jcs-ac-line);
    border-radius: 0 10px 10px 0;
    padding: 20px 26px;
    margin: 2em 0;
    color: var(--jcs-ink-2);
    font-size: 16.5px;
    line-height: 1.95;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content blockquote cite {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-style: normal;
    color: var(--jcs-ink-3);
}

/* ===== リスト ===== */
.entry-content ul,
.entry-content ol {
    padding-left: 1.6em;
    margin: 0 0 1.8em;
}
.entry-content li { margin-bottom: .6em; line-height: 1.95; }
.entry-content ul > li::marker { color: rgba(12, 97, 128, 0.55); }
.entry-content ol > li::marker { color: var(--jcs-ink-3); font-weight: 700; }
.entry-content li > ul,
.entry-content li > ol { margin: .6em 0 .2em; }
/* 入れ子リストの表示を維持 */
.entry-content ol ul li {
    list-style-type: disc;
    margin: 3px 17px;
}
.entry-content ol ul {
    border: none;
    padding-top: 0;
}

/* ===== 画像 ===== */
.entry-content img,
.entry-content img.hatena-fotolife {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
    margin: 2em auto;
}
.entry-content figure.figure-image { margin: 2.2em 0; }
.entry-content figure.figure-image img { margin: 0 auto; }
.entry-content figure figcaption,
.entry-content .images-row figcaption {
    font-size: 13px;
    line-height: 1.8;
    color: var(--jcs-ink-3);
    text-align: center;
    margin-top: 10px;
}
.entry-content p > img { margin: 0 auto; }
/* 絵文字・アイコンは装飾しない */
.entry-content img.emoji,
.entry-content .hatena-star-image,
.entry-content img[width="16"] {
    display: inline;
    border-radius: 0;
    margin: 0;
}

/* ===== 強調・区切り ===== */
.entry-content strong,
.entry-content b {
    color: var(--jcs-ink);
    font-weight: 700;
}
.entry-content em { font-style: normal; font-weight: 700; color: var(--jcs-ac-dark); }
.entry-content hr {
    border: none;
    border-top: 1px solid var(--jcs-line);
    margin: 3em 0;
}

/* ===== コード ===== */
.entry-content code {
    font-family: var(--jcs-mono);
    font-size: .88em;
    background: var(--jcs-bg-2);
    border: 1px solid var(--jcs-line-weak);
    border-radius: 5px;
    padding: 2px 6px;
    color: var(--jcs-ac-dark);
}
.entry-content pre,
.entry-content pre.code {
    font-family: var(--jcs-mono);
    font-size: 14px;
    line-height: 1.8;
    background: #0f1b24;
    color: #e6edf3;
    border: none;
    border-radius: 10px;
    padding: 20px 22px;
    margin: 2em 0;
    overflow-x: auto;
}
.entry-content pre code {
    background: none;
    border: none;
    padding: 0;
    color: inherit;
    font-size: 14px;
}

/* ===== 表 ===== */
.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 2em 0;
    font-size: 15px;
    line-height: 1.8;
    display: block;
    overflow-x: auto;
}
.entry-content table th,
.entry-content table td {
    border: 1px solid var(--jcs-line);
    padding: 10px 14px;
    text-align: left;
    vertical-align: top;
}
.entry-content table th {
    background: var(--jcs-bg-2);
    font-weight: 700;
    color: var(--jcs-ink);
}

/* 埋め込みカード（ブログカード・iframe） */
.entry-content iframe,
.entry-content .embed-card { max-width: 100%; }
.entry-content .hatena-citation,
.entry-content .embed-card iframe { border-radius: 10px; }

/* ===== 記事フッター ===== */
.entry-footer {
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid var(--jcs-line);
    font-size: 14px;
    color: var(--jcs-ink-2);
}
.entry-footer .entry-footer-section,
.entry-footer .entry-footer-time {
    font-size: 13px;
    color: var(--jcs-ink-3);
}
.entry-footer a { color: var(--jcs-ink-2); }
.social-buttons, .entry-footer-modules { margin-top: 20px; }

/* はてなスター・購読ボタン等は既定動作を維持 */
.hatena-star-container, .hatena-follow-button-box { line-height: 1.6; }

/* ===== 関連記事 / モジュール共通リスト ===== */
.hatena-module-related-entries .urllist-item,
.hatena-module .urllist-item {
    border-bottom: 1px solid var(--jcs-line-weak);
    padding: 12px 0;
}
.hatena-module .urllist-item:last-child { border-bottom: none; }
.hatena-module .urllist-title {
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--jcs-ink);
    letter-spacing: 0.01em;
}
.hatena-module .urllist-item a { text-decoration: none; }
.hatena-module .urllist-item a:hover .urllist-title,
.hatena-module .urllist-title-link:hover { color: var(--jcs-ac); }
.hatena-module .urllist-date-link a,
.hatena-module .urllist-entry-date {
    font-size: 11.5px;
    color: var(--jcs-ink-3);
    letter-spacing: 0.04em;
}
.hatena-module .urllist-entry-body {
    font-size: 12.5px;
    line-height: 1.75;
    color: var(--jcs-ink-2);
    margin-top: 4px;
}
.hatena-module .urllist-image { border-radius: 8px; }

/* ===== サイドバー ===== */
#box2 .hatena-module {
    background: var(--jcs-bg);
    border: 1px solid var(--jcs-line);
    border-radius: 14px;
    box-shadow: var(--jcs-e1);
    padding: 20px 22px;
    margin-bottom: 20px;
}

#box2 .hatena-module-title {
    position: relative;
    font-size: 14px;
    font-weight: 700;
    color: var(--jcs-ink);
    letter-spacing: 0.04em;
    font-feature-settings: "palt";
    padding: 0 0 12px 14px;
    margin: 0 0 14px;
    border: none;
    border-bottom: 1px solid var(--jcs-line);
    line-height: 1.5;
}
#box2 .hatena-module-title::before {
    content: '';
    position: absolute;
    left: 0; top: 2px;
    width: 4px; height: 15px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--jcs-ac-hi), var(--jcs-ac));
}
#box2 .hatena-module-title a { color: var(--jcs-ink); text-decoration: none; }

#box2 .hatena-module-body { font-size: 13.5px; line-height: 1.8; }
#box2 .hatena-module-body ul { list-style: none; margin: 0; padding: 0; }
#box2 .hatena-module-body > ul > li {
    border-bottom: 1px solid var(--jcs-line-weak);
    padding: 9px 0;
}
#box2 .hatena-module-body > ul > li:last-child { border-bottom: none; }
#box2 .hatena-module-body ul ul { padding-left: 14px; }
#box2 .hatena-module-body a {
    color: var(--jcs-ink-2);
    text-decoration: none;
    transition: color .18s ease;
}
#box2 .hatena-module-body a:hover { color: var(--jcs-ac); }

/* カテゴリ・アーカイブは件数を控えめに */
#box2 .hatena-module-category .hatena-urllist li a,
#box2 .hatena-module-archive .hatena-urllist li a { letter-spacing: 0.01em; }

/* プロフィール */
#box2 .hatena-module-profile .profile-icon,
#box2 .hatena-module-profile img.profile-icon {
    border-radius: 10px;
    margin-right: 12px;
}
#box2 .hatena-module-profile .id { font-weight: 700; color: var(--jcs-ink); }
#box2 .hatena-module-profile .profile-description {
    font-size: 13px;
    line-height: 1.85;
    color: var(--jcs-ink-2);
}

/* 検索フォーム */
#box2 .hatena-module-search-box .search-form,
.search-form {
    display: flex;
    align-items: center;
    background: var(--jcs-bg-2);
    border: 1px solid var(--jcs-line);
    border-radius: 10px;
    padding: 2px 6px 2px 12px;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.search-form:focus-within {
    border-color: var(--jcs-ac-line);
    box-shadow: 0 0 0 3px rgba(12, 97, 128, 0.10);
}
.search-module-input,
.search-form input[type="text"] {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 14px;
    font-family: var(--jcs-font);
    color: var(--jcs-ink);
    padding: 9px 0;
    outline: none;
    box-shadow: none;
}
.search-module-input::placeholder { color: var(--jcs-ink-3); }
.search-module-button,
.search-form button { border: none; background: transparent; cursor: pointer; opacity: .6; }
.search-module-button:hover { opacity: 1; }

/* ===== フッター ===== */
#footer {
    text-align: center;
    padding: 32px 20px 48px;
    font-size: 12.5px;
    line-height: 1.9;
    color: var(--jcs-ink-3);
    letter-spacing: 0.02em;
}
#footer a { color: var(--jcs-ink-2); text-decoration: none; }
#footer a:hover { color: var(--jcs-ac); }

/* パンくず */
.breadcrumb, .breadcrumb-inner {
    font-size: 12.5px;
    color: var(--jcs-ink-3);
    margin-bottom: 12px;
}
.breadcrumb a { color: var(--jcs-ink-2); text-decoration: none; }
.breadcrumb a:hover { color: var(--jcs-ac); }

/* コメント欄 */
.comment-box { font-size: 14px; line-height: 1.9; }
.comment-box li { border-bottom: 1px solid var(--jcs-line-weak); padding: 14px 0; }
.comment-box .comment-user-name { font-weight: 700; color: var(--jcs-ink); }

/* ===== Responsive: タブレット ===== */
@media (max-width: 1120px) {
    #container #content {
        width: auto;
        max-width: 100%;
        margin: 28px auto 40px;
        padding: 0 24px;
    }
    #main {
        width: 100%;
        max-width: 860px;
        float: none;
        margin: 0 auto;
    }
    #box2 {
        width: 100%;
        max-width: 860px;
        float: none;
        margin: 32px auto 0;
    }
    #blog-title-content { width: 100%; max-width: calc(100vw - 48px); column-gap: 16px; }
    /* ワードマークを少し縮小 (比率は contain で維持) */
    #blog-title-content::before { width: 218px; height: 50px; }
    #top-editarea #jcs-nav { width: 100%; max-width: calc(100vw - 48px); }
}

/* ===== Responsive: モバイル ===== */
@media (max-width: 680px) {
    #container #content { padding: 0 16px; margin: 20px auto 32px; }

    #blog-title { padding: 18px 0 14px; }
    /* スマホは1カラム: ワードマークを上、その下にタイトル+説明 */
    #blog-title-content {
        max-width: calc(100vw - 32px);
        grid-template-columns: minmax(0, 1fr);
        column-gap: 0;
    }
    #blog-title-content::before {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
        align-self: start;
        width: min(72vw, 200px);
        height: 44px;
        margin: 0 0 12px;
        border-radius: 5px;
    }
    #blog-title #title { grid-column: 1; grid-row: 2; }
    #blog-title-content > #blog-description { grid-column: 1; grid-row: 3; }
    #blog-title-content > #jcs-nav { grid-column: 1; grid-row: 4; }
    #blog-title #title a { font-size: 20px; letter-spacing: 0.04em; }
    #blog-title #title::before {
        content: none;
        display: none;
    }
    #blog-description { font-size: 12px; margin-top: 6px; }

    /* ナビは横スクロール */
    #blog-title-content > #jcs-nav { margin-top: 12px; padding-top: 8px; }
    #top-editarea #jcs-nav { max-width: calc(100vw - 32px); margin-bottom: 11px; padding-top: 9px; }
    #jcs-nav ul {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: 0 2px;
    }
    #jcs-nav ul::-webkit-scrollbar { display: none; }
    #jcs-nav a { font-size: 12.5px; padding: 7px 10px 8px; }
    #jcs-nav a::after { left: 10px; right: 10px; }

    .entry, #main .entry { padding: 24px 20px; border-radius: 12px; }
    .archive-entry { padding: 20px 18px; border-radius: 12px; }
    .archive-entry:hover { transform: none; }

    .entry-title { font-size: 23px; line-height: 1.5; }
    .archive-entry .entry-title,
    .archive-entry-header .entry-title { font-size: 17.5px; }

    .entry-content { font-size: 16.5px; line-height: 1.95; }
    .entry-content h2 { font-size: 21px; margin-top: 2.4em; padding-bottom: 12px; }
    .entry-content h3 { font-size: 18px; margin-top: 2.2em; }
    .entry-content h4 { font-size: 16px; }
    .entry-content .table-of-contents { padding: 18px 18px; font-size: 14.5px; }
    .entry-content blockquote { padding: 16px 18px; font-size: 15.5px; }
    .entry-content pre, .entry-content pre.code { padding: 16px; font-size: 13px; }
    .entry-content img { border-radius: 10px; margin: 1.6em auto; }

    .archive-entry .entry-thumb,
    .archive-entry a.entry-thumb-link { margin-right: 14px; }
    .entry-description { font-size: 14px; }

    .pager { flex-direction: column; gap: 10px; }
    .pager a { padding: 14px 16px; }
    .pager-prev, .pager-next { text-align: center; }

    #box2 .hatena-module { padding: 18px 18px; border-radius: 12px; }
    #footer { padding: 24px 16px 36px; }
}

/* 印刷 */
@media print {
    #box2, #blog-title::before, #jcs-nav, .pager, .social-buttons { display: none; }
    body { background: #fff; }
    .entry, #main .entry { border: none; box-shadow: none; padding: 0; }
}

/* ===== 2026-09-08 mobile/list polish: replace default black discs ===== */
/* Responsive/PC-on-smartphone now loads this usercss; ::marker alone stays black on some WebKit */

.entry-content ul:not(.table-of-contents) {
  list-style: none;
    padding-left: 1.35em;
      margin: 0.4em 0 1.2em;
      }
      .entry-content ul:not(.table-of-contents) > li {
        position: relative;
          padding-left: 0.2em;
            list-style: none;
            }
            .entry-content ul:not(.table-of-contents) > li::marker {
              content: none;
                color: transparent;
                }
                .entry-content ul:not(.table-of-contents) > li::before {
                  content: "";
                    position: absolute;
                      left: -1.05em;
                        top: 0.72em;
                          width: 6px;
                            height: 6px;
                              border-radius: 50%;
                                background: rgba(12, 97, 128, 0.55);
                                }
                                
                                .entry-content ul:not(.table-of-contents) ul {
                                  list-style: none;
                                    margin-top: 0.45em;
                                    }
                                    .entry-content ul:not(.table-of-contents) ul > li::before {
                                      width: 5px;
                                        height: 5px;
                                          background: transparent;
                                            border: 1.5px solid rgba(12, 97, 128, 0.5);
                                              box-sizing: border-box;
                                              }
                                              
                                              .entry-content .table-of-contents,
                                              .entry-content .table-of-contents li {
                                                list-style: none !important;
                                                }
                                                .entry-content .table-of-contents > li::marker,
                                                .entry-content .table-of-contents ul li::marker {
                                                  content: none;
                                                  }
                                                  
                                                  #jcs-nav ul,
                                                  #jcs-nav li {
                                                    list-style: none !important;
                                                    }
                                                    #jcs-nav li::marker {
                                                      content: none;
                                                      }
                                                      
                                                      @media (max-width: 680px) {
                                                        .entry-content ul:not(.table-of-contents) {
                                                            padding-left: 1.2em;
                                                              }
                                                                .entry-content ul:not(.table-of-contents) > li::before {
                                                                    top: 0.78em;
                                                                      }
                                                                      }
                                                                      
                                                                      /* ===== 2026-09-08 true mobile fluid width ===== */
                                                                      /* Responsive ON alone still keeps 1200px content  →  iPhone shrinks whole PC layout.
                                                                         Force fluid widths + readable type under smartphone widths. */
                                                                         html {
                                                                           -webkit-text-size-adjust: 100%;
                                                                             text-size-adjust: 100%;
                                                                             }
                                                                             @media (max-width: 767px) {
                                                                               #container,
                                                                                 #container-inner,
                                                                                   #wrapper,
                                                                                     #container #content,
                                                                                       #content,
                                                                                         #blog-title-content,
                                                                                           #top-editarea,
                                                                                             #top-editarea #jcs-nav {
                                                                                                 width: 100% !important;
                                                                                                     max-width: 100% !important;
                                                                                                         min-width: 0 !important;
                                                                                                             box-sizing: border-box;
                                                                                                               }
                                                                                                                 #container #content {
                                                                                                                     margin-left: 0 !important;
                                                                                                                         margin-right: 0 !important;
                                                                                                                             padding-left: 14px !important;
                                                                                                                                 padding-right: 14px !important;
                                                                                                                                   }
                                                                                                                                     #main,
                                                                                                                                       #box2,
                                                                                                                                         #box2-inner,
                                                                                                                                           .hatena-module {
                                                                                                                                               width: 100% !important;
                                                                                                                                                   max-width: 100% !important;
                                                                                                                                                       float: none !important;
                                                                                                                                                           margin-left: 0 !important;
                                                                                                                                                               margin-right: 0 !important;
                                                                                                                                                                 }
                                                                                                                                                                   .entry,
                                                                                                                                                                     #main .entry {
                                                                                                                                                                         width: auto !important;
                                                                                                                                                                             max-width: 100% !important;
                                                                                                                                                                                 box-sizing: border-box;
                                                                                                                                                                                   }
                                                                                                                                                                                     .entry-title {
                                                                                                                                                                                         font-size: 22px !important;
                                                                                                                                                                                             line-height: 1.45 !important;
                                                                                                                                                                                               }
                                                                                                                                                                                                 .entry-content {
                                                                                                                                                                                                     font-size: 16.5px !important;
                                                                                                                                                                                                         line-height: 1.9 !important;
                                                                                                                                                                                                           }
                                                                                                                                                                                                             #blog-title #title a {
                                                                                                                                                                                                                 font-size: 20px !important;
                                                                                                                                                                                                                   }
                                                                                                                                                                                                                     /* prevent desktop sidebar column from forcing shrink */
                                                                                                                                                                                                                       #content-inner,
                                                                                                                                                                                                                         #content .wrapper,
                                                                                                                                                                                                                           .column-group {
                                                                                                                                                                                                                               display: block !important;
                                                                                                                                                                                                                                   width: 100% !important;
                                                                                                                                                                                                                                     }
                                                                                                                                                                                                                                     }
                                                                                                                                                                                                                                     /* ===== 2026-09-08 mobile header side padding ===== */
                                                                                                                                                                                                                                     @media (max-width: 767px) {
                                                                                                                                                                                                                                       #blog-title {
                                                                                                                                                                                                                                           padding-left: 14px !important;
                                                                                                                                                                                                                                               padding-right: 14px !important;
                                                                                                                                                                                                                                                   box-sizing: border-box;
                                                                                                                                                                                                                                                     }
                                                                                                                                                                                                                                                       #blog-title-content,
                                                                                                                                                                                                                                                         #blog-title-inner,
                                                                                                                                                                                                                                                           #top-editarea,
                                                                                                                                                                                                                                                             #top-editarea #jcs-nav,
                                                                                                                                                                                                                                                               #blog-title-content > #jcs-nav {
                                                                                                                                                                                                                                                                   width: 100% !important;
                                                                                                                                                                                                                                                                       max-width: 100% !important;
                                                                                                                                                                                                                                                                           padding-left: 0 !important;
                                                                                                                                                                                                                                                                               padding-right: 0 !important;
                                                                                                                                                                                                                                                                                   margin-left: 0 !important;
                                                                                                                                                                                                                                                                                       margin-right: 0 !important;
                                                                                                                                                                                                                                                                                           box-sizing: border-box;
                                                                                                                                                                                                                                                                                             }
                                                                                                                                                                                                                                                                                               /* keep nav from touching screen edges */
                                                                                                                                                                                                                                                                                                 #jcs-nav ul {
                                                                                                                                                                                                                                                                                                     padding-left: 0 !important;
                                                                                                                                                                                                                                                                                                         padding-right: 2px !important;
                                                                                                                                                                                                                                                                                                           }
                                                                                                                                                                                                                                                                                                           }
                                                                                                                                                                                                                                                                                                           
                                                                      
