:root {
    --primary: #007823;
    --accent: #e6b422;
  }
  body {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    line-height: 1.7;
  }
  .font-serif {
    font-family: "Noto Serif JP", serif;
  }
  .bg-primary {
    background-color: var(--primary);
  }
  .text-primary {
    color: var(--primary);
  }
  .text-accent {
    color: var(--accent);
  }
  .border-primary {
    border-color: var(--primary);
  }
  .carousel-item {
    transition: opacity 1s ease-in-out;
  }
  .category-content {
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    transition:
      max-height 0.9s cubic-bezier(0.22, 1, 0.36, 1),
      margin-top 0.7s ease,
      opacity 0.45s ease,
      transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .category-content.is-open {
    max-height: 700px;
    margin-top: 0.75rem;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  /* md:text-6xl が line-height:1 を上書きするため直接指定 */
  #hero-carousel h2 {
    line-height: 1.5;
  }
  /* ナビゲーションホバーアニメーション */
  .nav-link {
    position: relative;
    transition: color 0.25s ease;
  }
  .nav-link::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--primary);
    transition: width 0.3s ease;
  }
  .nav-link:hover::after {
    width: 100%;
  }
