@charset "utf-8";

html {
  font-size: 10px;

  background-image: repeating-linear-gradient(90deg,
      rgb(255 204 153 / 0.3),
      rgb(255 204 153 / 0.3) 1px,
      rgb(255 255 255) 0,
      rgb(255 255 255) 2px);
}

body {
  color: #333;
  font-family: sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

:focus-visible {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;

  outline-width: 2px;
  outline-style: solid;
  outline-color: #f60;
  outline-offset: 2px;
}

a {
  text-decoration: underline;
  word-break: break-all;

  &:link {
    color: #900;
  }

  &:visited {
    color: #909;
  }

  &:hover,
  &:active {
    color: #090;
  }

  &[href$=".jpg"]::after {
    content: '[JPG:' attr(data-size) ']';
    font-size: 0.75em;
  }

  &[href$=".pdf"]::after {
    content: url(../image/common/pdficon_small.gif) '[PDF:' attr(data-size) ']';
    font-size: 0.75em;
  }

  &[href*="//"]::after {
    content: url(../image/common/arrow004_green.gif);
  }
}

p {
  margin-bottom: 1em;
}

.notice {
  padding-left: 1em;

  text-indent: -1em;

  &::before {
    content: '※';
  }
}

nav {
  display: flex;
  align-items: center;

  max-width: 900px;
  margin-right: auto;
  margin-left: auto;
  column-gap: 0.5em;

  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: #f90;
  border-right-color: #f90;
  border-bottom-color: #f90;
  border-left-color: #f90;

  padding-top: 0.5em;
  padding-right: 0.5em;
  padding-bottom: 0.5em;
  padding-left: 0.5em;

  background-color: #fff;

  &:before {
    display: block;
    flex-shrink: 0;

    width: 15%;
    min-width: 6em;
    max-width: 120px;
    aspect-ratio: 120 / 90;

    content: '';

    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }

  ul {
    display: flex;
    flex-grow: 1;
    flex-wrap: wrap;

    min-width: 9em;
    row-gap: 0.25em;
    column-gap: 0.25em;

    border-top-width: 1px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    border-left-width: 1px;
    border-top-style: solid;
    border-right-style: solid;
    border-bottom-style: solid;
    border-left-style: solid;
    border-top-color: #f90;
    border-right-color: #f90;
    border-bottom-color: #f90;
    border-left-color: #f90;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;

    padding-top: 0.25em;
    padding-right: 0.25em;
    padding-bottom: 0.25em;
    padding-left: 0.25em;

    background-color: #fc9;

    li {
      a {
        display: inline-block;

        padding-top: 0.25em;
        padding-right: 0.25em;
        padding-bottom: 0.25em;
        padding-left: 0.25em;

        &::before {
          display: inline-block;

          color: #fff;
          content: '◆';
          text-decoration: none;
        }
      }

      &.current a::before {
        content: '▶';
      }

      &.current a,
      a:hover,
      a:active {
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        border-bottom-right-radius: 4px;
        border-bottom-left-radius: 4px;

        background-color: #f96;

        outline-width: 1px;
        outline-style: solid;
        outline-color: #fff;
        text-decoration: none;
      }
    }
  }
}

header {
  font-size: 1.4rem;

  .logo {
    max-width: 1000px;
    margin-top: 0.5em;
    margin-right: auto;
    margin-bottom: 0.5em;
    margin-left: auto;

    text-align: right;

    img {
      width: 100%;
      max-width: 613px;
      height: 45px;

      object-fit: cover;
      object-position: right;

      @media (max-width: 280px) {
        height: calc(100vw * 45 / 280);
      }
    }
  }

  nav {
    &::before {
      background-image: url(../image/common/P-top-l.jpg);
    }
  }
}

main {
  max-width: 900px;
  margin-top: -1px;
  margin-right: auto;
  margin-bottom: -1px;
  margin-left: auto;

  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: #f90;
  border-right-color: #f90;
  border-bottom-color: #f90;
  border-left-color: #f90;

  padding-top: 0.5em;
  padding-right: 0.5em;
  padding-bottom: 0.5em;
  padding-left: 0.5em;

  background-color: #fff;

  h1 {
    margin-top: 0.5em;
    margin-bottom: 0.5em;

    color: #f60;
    font-size: clamp(1.6rem, 5vw, 2.4rem);
    font-weight: 600;
    letter-spacing: 0.1em;

    &::after {
      margin-left: 0.125em;

      content: url(../image/common/h1-line.gif);
    }
  }

  .double-stroke {
    display: inline-block;
    position: relative;

    color: #f60;
    -webkit-text-stroke-width: 0.2em;
    -webkit-text-stroke-color: #f60;
    paint-order: stroke fill;

    &::before {
      position: absolute;
      top: 0;
      left: 0;

      width: 100%;
      height: 100%;

      content: attr(data-text);
      pointer-events: none;

      -webkit-text-stroke-width: 0.1em;
      -webkit-text-stroke-color: #fff;
      paint-order: stroke fill;
    }
  }

  h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    margin-top: 0.5em;
    margin-bottom: 0.5em;

    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: #f90;

    padding-top: 0.5em;

    color: #f60;
    font-size: clamp(1.6rem, 5vw, 2rem);
    font-weight: 500;

    &::before {
      font-size: 1.6rem;
      content: '■';
    }
  }

  p {
    text-indent: 1em;
  }

  ol {
    counter-reset: ol-count;

    li {
      position: relative;

      padding-left: 1em;

      &::before {
        position: absolute;
        left: 0;

        counter-increment: ol-count;
        content: counter(ol-count) ".";
      }
    }
  }
}

footer {
  font-size: 1.4rem;

  nav {
    flex-direction: row-reverse;

    &:before {
      background-image: url(../image/common/P-top-r.jpg);
    }
  }

  .copyright {
    margin-top: 1em;
    margin-bottom: 1em;

    color: #696;
    text-align: center;
  }
}