body {
  width: 100%;
  padding: 0;
  margin: auto;
}

p {
  max-width: 80%;
  margin: auto;
  text-align: center;
  margin-top: -30px;
}

.box {
  width: 75%;
  margin-left:210px;
}

h1 {
  text-align: center;
  margin-left: -70px;
  padding-top: 20px;
  font-size: 20px;
  font-weight: 600;
}

.filters {
  align-items: center;
  text-align: center;
  margin-bottom: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.filters button {
  width: 140px;
    font-size: 15px;
  background-color: white;
  margin: 5px;
  padding: 8px 16px;
  border: none;
  cursor: pointer;
  border-radius: 4px;
  font-weight: 500;
}

.filters .all {
    font-size: 5px;
  color: #cc9d2d;
  border: 1px solid #cc9d2d;
  font-size: 18px;
}

.filters .osirase { 
    font-size: 15px;
  color: #cc9d2d;
   border: 1px solid #cc9d2d;
   }

.filters .important {
  font-size: 15px;
  font-weight: 500;
   color: #C01F17; 
   border: 1px solid #C01F17; 
  }

.filters .campaign {
    font-size: 15px;
   color: #009944;
    border: 1px solid #009944; 
  }
.filters .other {
   color: #999999;
    border: 1px solid #999999; 
  }

.filters button:hover { color: white; }
.filters .all:hover { background-color: #cc9d2d; }
.filters .osirase:hover { background-color: #cc9d2d; }
.filters .important:hover { background-color: #C01F17; }
.filters .campaign:hover { background-color: #009944; }
.filters .other:hover { background-color: #999999; }

/* ======================= IMPROVED ANNOUNCEMENT BOX ======================= */
.announcement-box {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 1px 1px;
  border-bottom: 1px solid #ddd;
  text-decoration: none;
  color: #0d0d0d;
  transition: background 0.2s;
}


.announcement-header {
  display: flex;
  align-items: center;
  margin-right: 10px;
}

.category {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 1px;
  font-size: 0.8rem;
  font-weight: bold;
  margin-right: 10px;
  min-width: 60px;
  text-align: center;
}

.category.osirase {
    margin-top: 6px;
  width:110px;
  padding: 6px;
   color: #cc9d2d;
   border: 1px solid #cc9d2d;
   }
.category.important { 
  margin-top: 6px;
  padding: 6px;
   width:110px;
  color: #C01F17;
   border: 1px solid #C01F17; 
  }
.category.campaign {
  margin: 6px 0px 6px 0px;
    width:110px;
  padding: 8px;
  font-size: 11px;
   color: #009944;
   border: 1px solid #009944;
   }
.category.other {
   width:110px;
     margin-top: 6px;
  padding: 6px;
   color: #999999;
    border: 1px solid #999999;
   }

.date {
  margin-left: 20px;
  width: 110px;
  font-size: 0.85rem;
  color: #666;
  margin-right: 10px;
  white-space: nowrap;

}

.topic {
  font-size: 0.95rem;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
}

a.announcement-box {
  text-decoration: none;   /* 下線を消す */
  color: inherit;          /* 親要素の色を引き継ぐ（黒のまま） */
}

a.announcement-box:visited {
  color: inherit;           /* visited も同じ色に */
  text-decoration: none;
}

a.announcement-box:hover,
a.announcement-box:active {
  color: inherit;           /* hover時の青色を抑制 */
  text-decoration: none;    /* hoverしても下線を出さない */
  background-color: #f5f5f5; /* ← hover時に背景色だけ変えたいなら追加 */
}
    .breadcrumb {
      margin: 0;
      padding: 0;
      list-style: none;
      margin-left: 90px;

    }

    .breadcrumb li {
      display: inline;
      /*横に並ぶように*/
      list-style: none;
      font-size: small;
      margin-top: 10px;

    }

    .breadcrumb li:after {
      /* >を表示*/
      content: '>';
      padding: 0 0.2em;
    }

    .breadcrumb li:last-child:after {
      content: '';
    }

    li[itemprop="itemListElement"] a {
      color: rgb(5, 5, 5);
      text-decoration: none;
    }


/* MOBILE RESPONSIVE */
@media screen and (max-width: 600px) {
  .box{
    width: 90%;
    margin-left: 10px;
  }
  .filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }
  .filters .all {
    flex: 1 1 90%;
    max-width: 90%;
  }
  .filters .osirase,
  .filters .important,
  .filters .campaign,
  .filters .other {
    flex: 1 1 calc(45% - 10px);
    max-width: calc(45% - 10px);
  }
  .announcement-box {
    flex-direction: column;
    align-items: flex-start;
  }
  .announcement-header {
    margin-bottom: 5px;
  }
  .topic {
    white-space: normal;
  }
      .span-url {
        max-width: 90%;
        margin-left: 15px;
      }

      .breadcrumb li {
        font-size: small;
        margin-top: 50px;

      }
    }