
  /* ============================================================
     index.html 専用スタイル
  ============================================================ */

  /* ---- ヒーロー ---- */
  .hero {
    padding:    80px 24px 64px;
    text-align: center;
    position:   relative;
    overflow:   hidden;
  }

  /* 背景のやわらかいグラデーション */
  .hero::before {
    content:    '';
    position:   absolute;
    inset:      0;
    background: linear-gradient(
      160deg,
      rgba(248,220,228,0.45) 0%,
      rgba(253,247,249,0.10) 50%,
      rgba(200,228,200,0.20) 100%
    );
    pointer-events: none;
  }

  .hero-inner {
    position:  relative;
    z-index:   1;
    max-width: 560px;
    margin:    0 auto;
  }

  /* 上のさりげないラベル */
  .hero-label {
    display:        inline-block;
    font-size:      11px;
    font-weight:    600;
    letter-spacing: 0.18em;
    color:          var(--accent);
    background:     rgba(107,158,107,0.10);
    border:         1px solid rgba(107,158,107,0.22);
    padding:        4px 16px;
    border-radius:  var(--r-pill);
    margin-bottom:  22px;
  }

  /* サイト名 */
  .hero-title {
    font-size:      clamp(28px, 5.5vw, 48px);
    font-weight:    600;
    letter-spacing: 0.14em;
    line-height:    1.35;
    color:          var(--text);
    margin-bottom:  16px;
  }
  /* サイト名の下線（桜色） */
  .hero-title span {
    position:   relative;
    display:    inline-block;
  }
  .hero-title span::after {
    content:      '';
    position:     absolute;
    bottom:       -4px; left: 0; right: 0;
    height:       3px;
    background:   linear-gradient(90deg, var(--accent-pale), var(--accent-sub), var(--accent-pale));
    border-radius: var(--r-pill);
  }

  /* キャッチコピー */
  .hero-sub {
    font-size:     14px;
    color:         var(--text-muted);
    line-height:   2.0;
    margin-bottom: 36px;
  }

  /* ボタン群 */
  .hero-actions {
    display:         flex;
    gap:             12px;
    justify-content: center;
    flex-wrap:       wrap;
  }

  /* 花びら装飾（ヒーロー左右）*/
  .hero-petal {
    position:      absolute;
    width:         18px; height: 18px;
    border-radius: 50% 0 50% 0;
    opacity:       0.35;
    pointer-events: none;
    animation:     petal-float var(--dur, 6s) ease-in-out infinite;
    animation-delay: var(--dl, 0s);
    background:    var(--accent-sub);
  }
  @keyframes petal-float {
    0%,100% { transform: translateY(0) rotate(0deg); }
    50%      { transform: translateY(-12px) rotate(20deg); }
  }


  /* ---- お知らせ ---- */
  .notice-wrap {
    background:    var(--surface);
    border:        1.5px solid var(--border);
    border-radius: var(--r-md);
    overflow:      hidden;
    box-shadow:    var(--shadow-sm);
  }

  .notice-row {
    display:     flex;
    align-items: flex-start;
    gap:         16px;
    padding:     14px 20px;
    font-size:   13px;
    line-height: 1.75;
    border-bottom: 1px solid var(--border);
    transition:  background .2s;
  }
  .notice-row:last-child { border-bottom: none; }
  .notice-row:hover      { background: var(--surface-alt); }

  .notice-date {
    flex-shrink:    0;
    font-size:      11px;
    letter-spacing: 0.10em;
    color:          var(--text-muted);
    padding-top:    2px;
    white-space:    nowrap;
  }

  .notice-tag {
    flex-shrink:    0;
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.08em;
    padding:        2px 10px;
    border-radius:  var(--r-pill);
    white-space:    nowrap;
    margin-top:     2px;
  }
  .notice-tag-new    { background: var(--accent-sub); color: #fff; }
  .notice-tag-update { background: rgba(107,158,107,0.18); color: var(--accent); border: 1px solid rgba(107,158,107,0.25); }
  .notice-tag-info   { background: var(--surface-alt); color: var(--text-muted); border: 1px solid var(--border); }

  .notice-text { color: var(--text); }


  /* ---- 日誌カード ---- */
  .diary-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap:                   18px;
  }

  .diary-card {
    background:    var(--surface);
    border:        1.5px solid var(--border);
    border-radius: var(--r-md);
    overflow:      hidden;
    box-shadow:    var(--shadow-sm);
    transition:    transform .2s, box-shadow .2s;
    display:       flex;
    flex-direction: column;
  }
  .diary-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }

  /* カード上部のカラーバー */
  .diary-card-bar {
    height:     3px;
    background: linear-gradient(90deg, var(--accent-sub), var(--accent));
  }
  /* 若葉色バリエーション */
  .diary-card:nth-child(2n) .diary-card-bar {
    background: linear-gradient(90deg, var(--accent), var(--accent-sub));
  }

  .diary-card-body { padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }

  .diary-card-meta {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  }
  .diary-card-cat {
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.08em;
    padding:        2px 10px;
    border-radius:  var(--r-pill);
    background:     rgba(107,158,107,0.10);
    color:          var(--accent);
    border:         1px solid rgba(107,158,107,0.22);
  }
  .diary-card-date { font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em; }

  .diary-card-title { font-size: 14px; font-weight: 600; line-height: 1.55; letter-spacing: 0.04em; }
  .diary-card-title a { color: var(--text); }
  .diary-card-title a:hover { color: var(--accent); }

  .diary-card-excerpt {
    font-size:          13px;
    color:              var(--text-muted);
    line-height:        1.75;
    flex:               1;
    display:            -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow:           hidden;
  }

  .diary-card-more {
    font-size:   12px;
    font-weight: 600;
    color:       var(--accent);
    letter-spacing: 0.04em;
    margin-top:  auto;
    padding-top: 8px;
    border-top:  1px solid var(--border);
    display:     flex;
    align-items: center;
    gap:         4px;
    transition:  gap .2s;
  }
  .diary-card:hover .diary-card-more { gap: 8px; }


  /* ---- 名簿プレビュー（トップ用・小さいカード） ---- */
  .meibo-preview-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap:                   16px;
  }

  .meibo-preview-card {
    background:    var(--surface);
    border:        1.5px solid var(--border);
    border-radius: var(--r-md);
    padding:       20px 16px;
    text-align:    center;
    box-shadow:    var(--shadow-sm);
    transition:    transform .2s, box-shadow .2s;
  }
  .meibo-preview-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }

  .meibo-preview-icon {
    width:         72px; height: 94px;
    margin:        0 auto 12px;
    border-radius: var(--r-sm);
    border:        1.5px solid var(--border);
    overflow:      hidden;
    background:    var(--surface-alt);
    display:       flex;
    align-items:   center;
    justify-content: center;
    font-size:     26px;
  }
  .meibo-preview-icon img { width: 100%; height: 100%; object-fit: cover; }

  .meibo-preview-name {
    font-size:      14px;
    font-weight:    600;
    letter-spacing: 0.08em;
    color:          var(--text);
    margin-bottom:  2px;
  }
  .meibo-preview-sub {
    font-size:   11px;
    color:       var(--text-muted);
    margin-bottom: 10px;
    letter-spacing: 0.04em;
  }
  .meibo-preview-link {
    font-size:      11px;
    font-weight:    600;
    color:          var(--accent);
    letter-spacing: 0.06em;
    border:         1px solid rgba(107,158,107,0.30);
    padding:        3px 14px;
    border-radius:  var(--r-pill);
    display:        inline-block;
    transition:     background .2s, color .2s;
  }
  .meibo-preview-link:hover {
    background: var(--accent);
    color:      #fff;
  }


  /* ---- レスポンシブ ---- */
  @media (max-width: 768px) {
    .hero { padding: 60px 24px 48px; }
    .diary-grid { grid-template-columns: 1fr; }
    .meibo-preview-grid { grid-template-columns: repeat(2, 1fr); }
    .hero-petal { display: none; }
  }