body {
  font:
    18px 'Lucida Grande',
    Helvetica,
    Arial,
    sans-serif;
}

a {
  color: #00b7ff;
}

.allContents {
  display: flex;
}
.header {
  background-color: #ffe135;
}

.footer {
  background-color: #ffe135;
}

nav {
  padding-top: 10px;
  padding-bottom: 10px;
}

nav ul {
  padding: 0;
  margin: 0;
  text-align: center;
}

nav li {
  list-style-type: none;
  margin-top: 10px;
  margin-bottom: 10px;
}

nav a {
  display: block;
  background-color: skyblue;
  color: black;
  text-decoration: none;
  padding-top: 20px;
  padding-bottom: 20px;
}

nav a:hover {
  background-color: darkblue;
  color: #ffffff;
}

@media screen and (min-width: 480px) {
  body {
    padding: 50px;
  }
}

@media screen and (max-width: 479px) {
  .allContents {
    display: block;
  }
}

.field {
  margin-bottom: 0.75rem;
}
.field label {
  display: block;
  margin-bottom: 0.25rem;
}
.field input,
.field textarea {
  width: 100%;
}

@media (min-width: 600px) {
  .rform {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 0.5rem 1rem;
  }
  .field {
    display: contents;
  }
  .field label {
    margin: 0;
  }
  button {
    grid-column: 1 / -1;
  }
}

.container {
  display: flex;
  gap: 1rem; /* 列間の余白 */
}

.col0 {
  flex: 1; /* 残り幅を全部使う */
  text-align: center;
}

.col1 {
  flex: 0 0 200px; /* 固定幅（狭め） */
}

.col2 {
  flex: 1; /* 残り幅を全部使う */
}

/* スマホ用（幅600px以下）では縦並びに切り替え */
@media (max-width: 600px) {
  .container {
    flex-direction: column;
  }
  .col0,
  .col1,
  .col2 {
    flex: none; /* 幅指定を解除 */
    width: 100%; /* 全幅にする */
  }
  .col0 {
    text-align: center;
  }
}

.error-message {
  color: red;
  font-size: smaller;
}
