@charset "UTF-8";

html {
overflow: auto;
}

body {
overflow: hidden;
margin: 0;
padding: 0;
color: black;
font-family: "sans-serif";
background: #F5F5F5;
}

#page {
max-width: 1220px;
margin: 0 auto;
}

header {
overflow: hidden;
margin:0;
padding:0;
}

#title-box {
max-width: 950px;
margin: 24px auto;
}

header img {
max-width: 100%;
}

header h1{
margin:0;
font-size: 24px;
text-decoration: none;
}

header h1 a{
text-decoration: none;
color: #252525;
}

header i {
font-size:16px;
font-style:normal;
display:block;
color:gray;
padding:8px 0 8px 0;
}

#content {
margin: 24px 128px;
display: flex;
}

main {
width: 70%;
margin-right: 40px;
}

main h1 {
font-size: 24px;
}

main h2 {
margin-top: 24px;
}

.binary-image {
  position: relative;
}

.img-a {
  position: absolute;
}

.div-mobile, .div-pc {
  max-width: 360px;
}

.mobile, .pc {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 中央へ移動 */
}

.exc-list {
width:100%;
height: auto;
display: block;
margin: 0 auto;
}

.exc-wave {
position: absolute;
left: 0;
width: 100%;
height: auto;
}

main img {
width: 360px;
max-width: 100%;
margin: 24px 0;
}

.process-color {
  background: #fff;
  width: 100%;
  max-width: 360px; /* PCでは最大360px */
  height: auto;
  margin: 24px 0;
  display: inline-block;
}

main p {
line-height: 1.8;
}

main a {
color: #3872b8;
}

main ul {
 padding-left: 0;
 list-style: none;
}

main ul li {
line-height: 1.8;
}

main ul li a {
color: #3872b8;
}

pre {
  background-color: #EFEFEF;
  padding: 10px;
  border-radius: 4px;
  overflow-x: auto;
  font-size: 14px;
}

blockquote {
  border-left: 4px solid #CCC;
  padding-left: 10px;
  color: #555;
  margin: 1em 0;
  background-color: #FAFAFA;
  line-height: 1.8;
  overflow-wrap: break-word;
}

.download-link {
  display: inline-block;
  padding: 8px 16px;
  background-color: #28a745;
  color: #fff;
  border-radius: 4px;
  text-decoration: none;
  transition: background-color 0.3s;
  margin-top: 10px;
}

.download-link:hover {
  background-color: #218838;
  text-decoration: underline;
  
}

.notice-link {
  display: inline-block;
  padding: 8px 16px;
  background-color: #E57373;
  color: #fff;
  border-radius: 4px;
  text-decoration: none;
  transition: background-color 0.3s;
  margin-top: 10px;
}

.notice-link:hover {
  background-color: #D84343;
  text-decoration: underline;
  
}

.level-section {
  margin-bottom: 25px;
}

.level-section h1 {
  padding: 12px 16px;
  border-radius: 6px;
  color: #fff;
  margin-bottom: 10px;
  font-size: 20px;
}

.beginner { background-color: #4CAF50; }
.intermediate { background-color: #FFA726; }
.advanced { background-color: #E57373; }
.web-link { background-color: #505050; }

.level-section ul {
  list-style-type: none;
  padding-left: 0;
}

.level-section li a {
  display: block;
  background-color: #FFF;
  margin-bottom: 10px;
  padding: 14px 18px;
  border-radius: 6px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
  text-decoration : none;
  color: black;
}

.level-section li:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.12);
}

#toc {
  background-color: #FFF;
  border: 1px solid #DDD;
  padding: 10px;
  margin-bottom: 20px;
  border-radius: 6px;
}

#toc ul {
  list-style: none;
  padding-left: 0;
}

#toc li {
  margin-bottom: 5px;
}

#toc li a {
  text-decoration: none;
}

#toc li a:hover {
  text-decoration: underline;
}

main nav {
margin-top: 40px;
background: transparent;
font-size: 15px;
}

main nav ul {
padding-left: 0;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
list-style: none;
}

main nav ul li a{
text-decoration: none;
color: black;
padding: 8px 16px;
font-weight: bold;
display: block;
background-color: white;
border-radius: 6px;
box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}

main nav li:nth-child(1) {
  justify-self: start;
  text-align: left;
}

main nav li:nth-child(2) {
  justify-self: center;
}

main nav li:nth-child(3) {
  justify-self: end;
  text-align: right;
}

#notice {
 margin: 32px 0;
 width: 100%;
 max-width: 100%;
 height: 630px;
}

#notice tr {
border-bottom: 1px solid silver
}

#notice th {
text-align: right;
}

aside {
width: 30%;
}

aside a {
color: #3872b8;
}

aside img {
max-width: 100%;
margin: 10px;
float: left;
margin-top: 0;
}

aside p {
font-size: 11px;
}

aside nav {
  background: #FFF;
  border-radius: 6px;
  padding: 12px;
  margin-top: 14px;
  margin-bottom: 20px;
}

aside nav h2 {
  font-size: 16px;
  margin: 0 0 10px;
  color: #333;
}

aside nav ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
  margin-bottom: 24px;
}

aside nav li {
  margin-bottom: 8px;
}

aside nav li a {
  text-decoration: none;
  color: #3872b8;
  font-size: 14px;
  display: block;
  padding: 6px 8px;
  border-radius: 4px;
}

aside nav li a:hover {
  background-color: #f5f5f5;
  text-decoration: underline;
}

footer {
  text-align: center;
  font-size: 13px;
  color: #888;
  margin-top: 40px;
}

@media (max-width: 770px) {
  #title-box {
    margin: 24px 16px;
  }
  #content {
    margin: 24px 24px;
    flex-direction: column;
  }
  main {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }
  main h1,main h2 {
    font-size: 20px;
  }
  main h3 {
    font-size: 16px;
  }
  main p {
    font-size: 15px;
  }
  main nav ul li a {
    font-size: 15px; 
  }
  main pre {
    font-size: 9px;
    padding: 4px;
  }
  main table {
  font-size: 9px;
  }
  #notice {
    height: 480px;
  }
  aside {
    margin-top: 32px;
    width: 100%;
    max-width: 100%;
  }
  blockquote {
    font-size: 8px;
  }
/*  img.process-color {
    filter: brightness(1.4) contrast(1.3) saturate(1.2);
  }*/
}

@media print {

}
