/* Heading theme tokens */
:root {
  --heading-underline: #c1c8cc69;
  --brand-accent: #007acc;
}

h1 {
  line-height: 1.4 !important;
}

h2 {
  font-size: 2.25rem !important;
  text-align: center !important;
  line-height: 1.4 !important;
  padding-top: 0.6rem !important;
  padding-bottom: 0.6rem !important;
  margin-bottom: 2rem !important;
  border-top: 2px solid var(--brand-accent) !important;
  border-bottom: 2px solid var(--brand-accent) !important;
}

h3 {
  font-size: 1.75rem !important;
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
  line-height: 1.4 !important;
  border-left: 4px solid var(--brand-accent) !important;
  padding-left: 1rem !important;
  padding-top: 0.3rem !important;
  padding-bottom: 0.3rem !important;
  background: rgba(0, 122, 204, 0.15) !important;
}

h4 {
  font-size: 1.5rem !important;
  line-height: 1.4 !important;
  margin-bottom: 1rem !important;
  margin-left: 0.3rem !important;
  border-bottom: 1px solid var(--heading-underline) !important;
  padding-bottom: 0.4rem !important;
  display: inline-block;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  h1 {
    font-size: 1.875rem !important;
    margin: 1.5rem 0 1rem 0 !important;
  }
  h1::after {
    width: 72px;
  }

  h2 {
    font-size: 1.5rem !important;
    margin-bottom: 0.75rem !important;
  }

  h3 {
    font-size: 1.375rem !important;
    margin-top: 1rem !important;
    padding-left: 0.75rem !important;
  }

  h4 {
    font-size: 1.25rem !important;
  }

  h5 {
    font-size: 1.125rem !important;
    margin: 1rem 0 0.5rem 0 !important;
  }
}
