* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
    position: relative !important;
}

/* ページ全体のフェードイン効果を追加 */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    opacity: 0;
    animation: pageFadeIn 0.8s ease-in-out forwards;
    background-color: #2f3739 !important;
}

@keyframes pageFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
.heading-with-icon {
  position: relative;
  text-align: center;
}

.heading-icon {
  height: 3.5rem;
  width: auto;
  margin-top: -0.5rem;
  margin-bottom: -0.5rem;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.main-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 1.9rem;
  line-height: 1.2;
}

.sub-title {
  display: block;
  font-size: 1.4rem;
  font-weight: normal;
  color: #666;
}

.page-main {
    width: 97%;
    background-color: #f5f5f5;
    padding: 0 0 10px 0;
    margin: 0 auto 0 auto;
    border: 3px solid #FFCB05;
    border-radius: 3px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

.section {
  background: #f5f5f5;
  width: 100%;
  max-width: 100%;
  margin: 0 0 20px 0;
}

/* セクション見出し */
.section h1 {
  padding: 6px 8px;
  margin: 0 0 20px 0;
  background: #FFCB05;
  color: #2C3E50;
  font-weight: bold;
  position: relative;
  text-align: center;
}

.content {
  border: 2px solid #3B4CCA;
  color: #f5f5f5;
  border-radius: 8px;
  padding: 10px 0 10px 0;
  width: 97%;
  margin: 0 auto 15px auto;
  position: relative;
}

.content h4 {
  width: 97%; /* 親と同じ幅 */
  margin: 10px auto; /* 左右をautoに */
  background: #3B4CCA;
  color: #f5f5f5;
  text-align: center;
  padding: 4px 0; /* 見栄え良く */
  border-radius: 4px; /* 角丸 */
}

.subheading {
  padding: 6px 8px;
  display: block;
  margin: -10px 0 10px 0;
  background: #3B4CCA;
  color: #f5f5f5;
  font-weight: bold;
  text-align: center;
  border-radius: 4px 4px 0 0; /* 上だけ丸く */
}

.breadcrumbs {
    width: 93%;
    margin: 0 auto;
    padding: 5px 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    font-size: 14px;
}

.breadcrumbs a {
    color: #007bff;
    text-decoration: none;
    position: relative;
}

/* リンクの後に > を追加（最後以外） */
.breadcrumbs a:not(:last-of-type)::after {
    padding: 0 8px;
    content: ">";
    color: #999;
    font-weight: bold;
}

.breadcrumbs .current {
    color: #666;
}

.intro p {
  width: 93%;
  text-align: left;
  line-height: 1.3;
  color: #333;
  margin: 10px auto;
}

.no-events-message {
  text-align: center;
  padding: 40px 20px;
  background: #f5f5f5;
  border-radius: 8px;
  color: #666;
  font-size: 0.9rem;
}