body#toppage .main {
  padding-bottom: 6.25rem;
}
@media (max-width: 768px) {
  body#toppage .main {
    padding-bottom: 16.6666666667vw;
  }
}
body#toppage .main .visual {
  position: relative;
  padding: 1.25rem 2.5rem;
}
@media (max-width: 768px) {
  body#toppage .main .visual {
    padding: 2.0833333333vw 0;
  }
}
body#toppage .main .visual picture img {
  width: 100%;
  height: 30rem;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 0 50%;
     object-position: 0 50%;
  border-radius: 1.25rem;
}
@media (max-width: 768px) {
  body#toppage .main .visual picture img {
    height: 45.8333333333vw;
    border-radius: 0;
  }
}
body#toppage .main .visual figure {
  position: absolute;
  top: 0;
  right: 1.25rem;
  width: 32.5rem;
  height: 32.5rem;
  background: url("../images/toppage/visual_fig.svg") no-repeat 50% 50%;
  background-size: contain;
}
@media (max-width: 768px) {
  body#toppage .main .visual figure {
    right: -4.1666666667vw;
    width: 50vw;
    height: 50vw;
  }
}
body#toppage .main .visual figure::after, body#toppage .main .visual figure img {
  position: absolute;
  top: 50%;
  left: 50%;
  clip-path: circle(50% at 50% 50%);
  transform: translate(-50%, -50%);
}
body#toppage .main .visual figure::after {
  content: "";
  width: calc(70% + 2px);
  height: calc(70% + 2px);
  background: radial-gradient(closest-side, transparent calc(100% - 1.25rem), var(--key) 100%);
}
@media (max-width: 768px) {
  body#toppage .main .visual figure::after {
    background: radial-gradient(closest-side, transparent calc(100% - 2.0833333333vw), var(--key) 100%);
  }
}
body#toppage .main .visual figure img {
  width: 70%;
  height: 70%;
}
body#toppage .main .about {
  margin-top: -7.5rem;
}
@media (max-width: 768px) {
  body#toppage .main .about {
    margin-top: -6.25vw;
  }
}
body#toppage .main .about .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
body#toppage .main .about .subject {
  position: relative;
  margin-left: 1.25rem;
  padding: 1.875rem;
  border-radius: 1.25rem 1.25rem 0 0;
  background-color: var(--wh);
}
@media (max-width: 768px) {
  body#toppage .main .about .subject {
    align-self: stretch;
    margin-left: 0;
    padding: 4.1666666667vw;
    border-radius: 2.0833333333vw 2.0833333333vw 0 0;
  }
}
body#toppage .main .about .subject::before, body#toppage .main .about .subject::after {
  content: "";
  position: absolute;
  top: 5rem;
  width: 1.25rem;
  height: 1.25rem;
  background: url("../images/corner.svg") no-repeat 0 0;
  background-size: contain;
}
@media (max-width: 768px) {
  body#toppage .main .about .subject::before, body#toppage .main .about .subject::after {
    top: 2.0833333333vw;
    width: 2.0833333333vw;
    height: 2.0833333333vw;
  }
}
body#toppage .main .about .subject::before {
  right: 100%;
}
body#toppage .main .about .subject::after {
  left: 100%;
  transform: rotate(90deg);
}
body#toppage .main .about .subject h2 {
  position: relative;
  z-index: 2;
  color: var(--key);
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1.25;
}
@media (max-width: 768px) {
  body#toppage .main .about .subject h2 {
    font-size: 6.25vw;
  }
}
body#toppage .main .about .subject p {
  position: absolute;
  top: -2.5rem;
  left: -0.625rem;
  z-index: 1;
  pointer-events: none;
  color: var(--bk10);
  font-size: 9.375rem;
  font-weight: 100;
  text-transform: uppercase;
  line-height: 1;
}
@media (max-width: 768px) {
  body#toppage .main .about .subject p {
    top: -6.25vw;
    left: -2.0833333333vw;
    font-size: 20.8333333333vw;
  }
}
body#toppage .main .about .contents {
  padding: 0 3.125rem;
}
@media (max-width: 768px) {
  body#toppage .main .about .contents {
    padding: 0 4.1666666667vw;
  }
}
body#toppage .main .about .contents p {
  font-size: 1.125rem;
  line-height: 1.75;
}
@media (max-width: 768px) {
  body#toppage .main .about .contents p {
    font-size: 3.3333333333vw;
  }
}
body#toppage .main .about .contents dl {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem 1.25rem;
  margin-top: 1.875rem;
  font-size: 1.125rem;
  line-height: 1.25;
}
@media (max-width: 768px) {
  body#toppage .main .about .contents dl {
    gap: 2.0833333333vw;
    margin-top: 4.1666666667vw;
    font-size: 2.9166666667vw;
  }
}
body#toppage .main .about .contents dl dt {
  width: 6.25rem;
  padding: 0.3125rem;
  border-radius: 2em;
  font-weight: 700;
  text-align: center;
  background-color: var(--light);
}
@media (max-width: 768px) {
  body#toppage .main .about .contents dl dt {
    width: 16.6666666667vw;
    padding: 1.0416666667vw;
  }
}
body#toppage .main .about .contents dl dd {
  width: calc(100% - 7.5rem);
}
@media (max-width: 768px) {
  body#toppage .main .about .contents dl dd {
    width: calc(100% - 18.75vw);
  }
}
body#toppage .main .news {
  position: relative;
  margin-top: 3.125rem;
  padding: 3.125rem 0;
  background-color: var(--bk05);
}
@media (max-width: 768px) {
  body#toppage .main .news {
    margin-top: 8.3333333333vw;
    padding: 4.1666666667vw 0;
  }
}
body#toppage .main .news .panel {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 2.5rem;
  border-radius: 1.25rem;
  background-color: var(--wh);
}
@media (max-width: 768px) {
  body#toppage .main .news .panel {
    gap: 2.0833333333vw;
    padding: 4.1666666667vw;
    border-radius: 2.0833333333vw;
  }
}
body#toppage .main .news .panel h2 {
  color: var(--key);
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1.25;
}
@media (max-width: 768px) {
  body#toppage .main .news .panel h2 {
    font-size: 6.25vw;
  }
}
body#toppage .main .news .panel ul {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  font-size: 1rem;
  line-height: 1.75;
}
@media (max-width: 768px) {
  body#toppage .main .news .panel ul {
    gap: 2.0833333333vw;
    font-size: 3.3333333333vw;
  }
}
body#toppage .main .news .panel ul li {
  display: flex;
  gap: 1.25rem;
}
@media (max-width: 768px) {
  body#toppage .main .news .panel ul li {
    flex-direction: column;
    gap: 0;
  }
}
body#toppage .main .news .panel ul li .date {
  color: var(--key);
  font-weight: 700;
  white-space: nowrap;
}
body#toppage .main .news .panel ul li .title {
  flex-grow: 1;
}
body#toppage .main .news .panel ul li .title a {
  color: var(--bk);
}
body#toppage .main .news .panel ul li .title a.pdf::after, body#toppage .main .news .panel ul li .title a.export::after {
  content: "";
  display: inline-block;
  width: 1em;
  aspect-ratio: 1/1;
  margin-left: 0.5em;
  vertical-align: text-bottom;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: 50% 50%;
          mask-position: 50% 50%;
  -webkit-mask-size: contain;
          mask-size: contain;
  transition: background-color 0.5s cubic-bezier(0.2, 1, 0.2, 1);
}
body#toppage .main .news .panel ul li .title a.pdf::after {
  background-color: #f00;
  -webkit-mask-image: url("../images/icon_pdf.svg");
          mask-image: url("../images/icon_pdf.svg");
}
body#toppage .main .news .panel ul li .title a.export::after {
  background-color: var(--bk);
  -webkit-mask-image: url("../images/icon_export.svg");
          mask-image: url("../images/icon_export.svg");
}
@media (any-hover: hover) {
  body#toppage .main .news .panel ul li .title a:hover {
    color: var(--bk70);
  }
  body#toppage .main .news .panel ul li .title a:hover.pdf::after {
    background-color: #f99;
  }
  body#toppage .main .news .panel ul li .title a:hover.export::after {
    background-color: var(--bk70);
  }
}
body#toppage .main .program {
  position: relative;
  margin-top: 3.125rem;
}
@media (max-width: 768px) {
  body#toppage .main .program {
    margin-top: 8.3333333333vw;
  }
}
body#toppage .main .program::before {
  content: "";
  position: absolute;
  width: calc(50% + 10rem);
  height: 25rem;
  border-radius: 0 1.25rem 0 0;
  background: url("../images/toppage/program_pic.jpg") no-repeat 50% 50%;
  background-size: cover;
}
@media (max-width: 768px) {
  body#toppage .main .program::before {
    width: 100%;
    height: 41.6666666667vw;
    border-radius: 0;
  }
}
body#toppage .main .program .container {
  padding-top: 11.875rem;
  padding-left: 27.5rem;
}
@media (max-width: 768px) {
  body#toppage .main .program .container {
    padding-top: 37.5vw;
    padding-left: 4.1666666667vw;
  }
}
body#toppage .main .program .container .panel {
  position: relative;
  border-radius: 1.25rem;
  background-color: var(--wh);
}
body#toppage .main .program .container .panel::before, body#toppage .main .program .container .panel::after {
  content: "";
  position: absolute;
  width: 1.25rem;
  height: 1.25rem;
  background: url("../images/corner.svg") no-repeat 0 0;
  background-size: contain;
}
@media (max-width: 768px) {
  body#toppage .main .program .container .panel::before, body#toppage .main .program .container .panel::after {
    width: 2.0833333333vw;
    height: 2.0833333333vw;
  }
}
body#toppage .main .program .container .panel::before {
  top: 11.875rem;
  right: 100%;
}
@media (max-width: 768px) {
  body#toppage .main .program .container .panel::before {
    top: 2.0833333333vw;
  }
}
body#toppage .main .program .container .panel::after {
  left: 13.75rem;
  bottom: 100%;
}
@media (max-width: 768px) {
  body#toppage .main .program .container .panel::after {
    top: 2.0833333333vw;
    left: 100%;
    bottom: auto;
    transform: rotate(90deg);
  }
}
body#toppage .main .program .subject {
  position: relative;
  padding: 1.875rem;
}
@media (max-width: 768px) {
  body#toppage .main .program .subject {
    padding: 4.1666666667vw;
  }
}
body#toppage .main .program .subject h2 {
  position: relative;
  z-index: 2;
  color: var(--key);
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1.25;
}
@media (max-width: 768px) {
  body#toppage .main .program .subject h2 {
    font-size: 6.25vw;
  }
}
body#toppage .main .program .subject p {
  position: absolute;
  bottom: calc(100% + 1.875rem);
  left: -0.625rem;
  z-index: 1;
  pointer-events: none;
  color: var(--bk10);
  font-size: 9.375rem;
  font-weight: 100;
  text-transform: uppercase;
  line-height: 1;
}
@media (max-width: 768px) {
  body#toppage .main .program .subject p {
    top: -6.25vw;
    left: -2.0833333333vw;
    font-size: 20.8333333333vw;
  }
}
body#toppage .main .program .contents {
  padding: 0 1.875rem;
}
@media (max-width: 768px) {
  body#toppage .main .program .contents {
    padding: 0 4.1666666667vw;
  }
}
body#toppage .main .program .contents p {
  font-size: 1rem;
  line-height: 1.75;
}
@media (max-width: 768px) {
  body#toppage .main .program .contents p {
    font-size: 3.3333333333vw;
  }
}
body#toppage .main .program .contents .nav {
  display: flex;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 1.875rem;
}
@media (max-width: 768px) {
  body#toppage .main .program .contents .nav {
    gap: 4.1666666667vw;
    margin-top: 4.1666666667vw;
  }
}
body#toppage .main .program .contents .nav a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 16.25rem;
  height: 3.75rem;
  padding-right: 1.875rem;
  border: 0.125rem solid var(--bk);
  border-radius: 2em;
  color: var(--bk);
  font-size: 1.125rem;
  font-weight: 700;
  text-decoration: none;
}
@media (max-width: 768px) {
  body#toppage .main .program .contents .nav a {
    width: 39.5833333333vw;
    height: 10.4166666667vw;
    padding-right: 5.2083333333vw;
    border-width: 0.625vw;
    font-size: 3.3333333333vw;
  }
}
body#toppage .main .program .contents .nav a::before, body#toppage .main .program .contents .nav a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.875rem;
  transition: all 0.5s cubic-bezier(0.2, 1, 0.2, 1);
}
@media (max-width: 768px) {
  body#toppage .main .program .contents .nav a::before, body#toppage .main .program .contents .nav a::after {
    right: 5.2083333333vw;
  }
}
body#toppage .main .program .contents .nav a::before {
  width: 2.5rem;
  height: 2.5rem;
  border: 0.125rem solid var(--bk20);
  border-radius: 50%;
  transform: translate(50%, -50%);
}
@media (max-width: 768px) {
  body#toppage .main .program .contents .nav a::before {
    width: 6.25vw;
    height: 6.25vw;
    border-width: 0.625vw;
  }
}
body#toppage .main .program .contents .nav a::after {
  width: 0.5625rem;
  height: 0.75rem;
  background-color: var(--key);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transform: translate(60%, -50%);
}
@media (max-width: 768px) {
  body#toppage .main .program .contents .nav a::after {
    width: 1.4583333333vw;
    height: 2.0833333333vw;
  }
}
@media (any-hover: hover) {
  body#toppage .main .program .contents .nav a:hover {
    color: var(--key);
  }
  body#toppage .main .program .contents .nav a:hover::before {
    border-color: var(--key);
    background-color: var(--key);
    transform: translate(50%, -50%) scale(0.75);
  }
  body#toppage .main .program .contents .nav a:hover::after {
    background-color: var(--wh);
  }
}