    * {
      box-sizing: border-box;
    }
    body {
      background-color: #f8f8f8;
      color: #333;
      display: flex;
      flex-direction: column;
      font-family: 'Crimson Pro', serif;
      margin: 0;
      min-height: 100vh;
    }  
    header {
      align-items: center;
      background-color: #2b2d42;
      color: white;
      display: flex;
      flex-direction: column;
      justify-content: space-around;
      padding: 0.6rem 1.5rem;
      position: sticky;
      text-align: center;
    }
    h1, h2, h3, nav, .menu-toggle, button {
      font-family: 'Source Sans 3', sans-serif;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    header h1 {
      font-size: 2rem;
      margin: 0;
    }
    .site-title {
      font-family: 'Source Sans 3', sans-serif;
      font-weight: 600;
      letter-spacing: 0.02em;
      font-size: 2rem;
      margin: 0;
    }
    header h2 {
      color: #ddd;
      font-size: 1.15rem;
      font-weight: normal;
      margin: 0;
    }
    .sub-title {
      font-family: 'Source Sans 3', sans-serif;
      font-weight: 600;
      letter-spacing: 0.02em;
      color: #ddd;
      font-size: 1.15rem;
      font-weight: normal;
      margin: 0;
    }
    header a {
      color: white;
      text-decoration: none;
    }
    nav a {
      color: #f1f1f1;
      font-size: 0.85rem;
      font-weight: 600;
      padding: 0.5rem 0;
      text-align: center;
      text-decoration: none;
      transition: color 0.3s;
    }
    nav li.active a {
      font-weight: bold;
      text-decoration: underline;
    }
    nav a:hover {
       color: #ffcc70;
    }
    ul {
      margin: 0.4rem;
    }
    li{
      display: inline-block;
      padding: 0px 6px;
    }
    main {
      align-items: center;
      margin: 0rem;
      display: flex;
      justify-content: center;
    }
    .content {
      padding: 2rem;
      width: 80%;
    }
    .content-all {
      padding: 2rem;
      padding-top: 0rem;
      width: 80%;
    }
    .content h1 {
      border-bottom: 2.5px solid #ffcc70;
      color: #2b2d42;
      margin-bottom: 0rem;
    }
    .content-all h1 {
      border-bottom: 2.5px solid #ffcc70;
      color: #2b2d42;
      margin-bottom: 0rem;
    }
    .hero-image {
      border-radius: 8px;
      display: block;
      height: 45vh;
      object-fit: cover;
      width: 100%;
    }
    p {
      font-size: 1.1rem;
      margin-bottom: 1.5em;
      line-height: 1.5;
    }
    footer {
      background-color: #2b2d42;
      color: white;
      font-size: 0.9rem;
      padding: 1.5rem;
      text-align: center;
    }
    .menu-toggle {
      display: none;
      flex-direction: column;
      cursor: pointer;
    }
    .menu-toggle span {
      border-radius: 2px;
      height: 3px;
      width: 25px;
      background: white;
      margin: 4px 0;
      transition: 0.4s;
    }
    .article-image{
      max-width: 50%;
      height: auto;
      display: block;
      margin: 2rem auto;
      border-radius: 8px;
    }
    blockquote {
      font-family: 'Crimson Pro', serif;
      font-style: italic;
      font-size: 1.1rem;
      line-height: 1.6;
      color: #444;
      border-left: 3px solid #bbb;
      padding: 0.5em 1em;
      margin: 1.5em 0;
      background-color: #f9f9f9;
    }

    .comments{
  margin: 2.5rem auto 0;
  padding: 0 0px;
  overflow: visible;  
}
.comments-title{
  font-size: 1.25rem;
  margin: 0 0 .25rem 0;
}
.comments-intro{
  font-size: .95rem;
  color: #555;
  margin: 0 0 1rem 0;
}
.comments-button{
  display: inline-block;
  font: inherit;
  padding: .7rem 1rem;
  border-radius: .75rem;
  border: 1px solid #ccd;
  background: #fff;
  cursor: pointer;
}
.comments-button:hover{ background: #f6f6f8; }
.comments-skeleton{
  height: 220px;
  border: 1px solid #eee;
  border-radius: .75rem;
  background: linear-gradient(90deg,#f5f5f7 25%,#ececf0 37%,#f5f5f7 63%);
  background-size: 400% 100%;
  animation: comments-shimmer 1.2s infinite ease-in-out;
  margin-top: .75rem;
}
@keyframes comments-shimmer{
  0%{ background-position: 100% 0; }
  100%{ background-position: 0 0; }
}
#cusdis_thread iframe{
  width: 100% !important;
  height: auto;
  display: block;
  border: 0;
  background: #fff !important;
  color-scheme: light;
}

:root{
  --share-border:#E0E0E0;
  --share-hover:#F2F2F2;
  --share-fg:#222;
  --share-radius:12px;  /* 角丸を小さめに（テーマに合わせて変更） */
}

.hero-credit{
  font-size:.8rem; line-height:1.3; color:rgba(255,255,255,.85);
  position:absolute; right:1rem; bottom:.75rem;
  background:rgba(0,0,0,.25); padding:.25rem .5rem; border-radius:.4rem;
}
.hero-credit a{ color:inherit; text-decoration:underline dotted; }
.hero-credit .note{ opacity:.85; }
@media (max-width: 640px){ .hero-credit{ font-size:.72rem; position:static; background:none; color:#666; } }

.site-credit{font-size:.85rem;opacity:.85;margin:.5rem 0}
.site-credit .note{opacity:.8}
.site-footer{padding:1rem 0}

.related { margin-top: 2rem; }
.related-title { font-size: 1.1rem; margin: 0 0 .75rem; font-weight: 600; }
.related-chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.related-chips .chip {
  display:inline-block; padding:.42rem .75rem; border-radius:999px;
  background:#f4f4f4; border:1px solid #e6e6e6;
  text-decoration:none; color:inherit; font-size:.95rem; line-height:1;
  transition: background .15s, border-color .15s, transform .03s;
}
.related-chips .chip:hover { background:#eee; border-color:#ddd; }
.related-chips .chip:active { transform:translateY(1px); }
@media (max-width:767px){
  .related-chips{ gap:.4rem; }
  .related-chips .chip{ font-size:.92rem; padding:.36rem .65rem; }
}


    @media (max-width: 768px) {
      body {
        font-size: 1.1rem;
        line-height: 1.4;
      }
      header h1 {
        font-size: 1.8rem;
      }
      header h2{
        font-size: 1rem;
      }
      .content {
        background-color: #ffffff;
        border-radius: 10px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        max-width: 900px;
        padding: 0rem;
        width: 100%;
      }
      .content-all {
        background-color: #ffffff;
        border-radius: 10px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        max-width: 900px;
        padding: 0rem;
        width: 100%;
      }
      .content h1{
        margin-top: 0.5rem;
      }
      .content-all h1{
        margin-top: 0.5rem;
      }
      .photo{
        margin: 0;
      }
      .topic{
        padding: .8rem;
      }
      nav {
        align-items: center;
        background-color: #2b2d42;
        display: none;
        flex-direction: column;
        gap: 0.5rem;
        justify-content: center;
        padding: 1rem 0;
        width: 100%;
      }
      nav ul {
        align-items: center;
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        list-style: none;
        margin: 0;
        padding: 0;
        width: 100%;
      }
      nav li {
         text-align: center;
         width: 100%;
      }
      nav a {
        font-size: 1rem;
        padding: 0.75rem 0;
        width: 100%;
      }
      nav.active {
        display: flex;
      }
      p {
        font-size: 1.15rem;
        margin-bottom: 0.5rem;
      }
      .menu-toggle {
        display: flex;
        position: absolute;
        top: 1.2rem;
        right: 1.5rem;
      }
      .hero-image{
        border-radius: 0px;
      }
  }
  
.article {
  max-width: 650px;        /* 本文の最大幅 */
  margin: 0 auto;          /* デフォルトは中央寄せ */
  padding: 0 .25rem;
}

@media (min-width: 1200px) {
  .article {
    margin-left: 0%;       /* 左から8%の位置に固定 */
    margin-right: auto;    /* 右は余白に */
    border-right: 1px solid #e0e0e0;  /* 薄いグレーの線 */
    padding-right: 2rem;              /* 線と文字の間に余白を確保 */
  }
}

@media (max-width: 820px) {
  .article-image.small-left,
  .article-image.small-right {
    float: none;
    display: block;
    width: 100%;
    margin: 1rem auto;
  }
}
.article h1{
  font-size: 1.8rem;
}
.article h2{
  font-size: 1.3rem;
}
.comments{
        padding: 1rem;
        margin: 0rem auto 0;
  }
