@charset "UTF-8";

/* ===================================
	File Name   : common.css
	Description : Base Layout CSS
	Editor      : Bface Nakamura
  Last Editor : Bface Nakamura
	
	Update Description :
	[2026/01/13] 新規作成
====================================== */

/*========== Style Contents ==========

	1. Global Redefinition
	2. Font Redefinition
	3. Base Box Setting
	4. Common Items Setting
		- Basic Link
	 	- Header Items
		- Global Navigation
	 	- Footer Items
  5. Section [top_hero]
  6. Section [top_scale]
  7. Section [top_info]
  8. Section [top_about]
  9. Section [top_choice]
 10. Section [top_report]
 11. Section [top_outline]
 12. Section [top_schedule]
 13. Section [#top_fee]
 14. Section [#top_option]
 15. Aside [top_others]
 16. Animations

====================================== */



/*===== 1. Global Redefinition =====*/
:root {
  --baseC: #fff;
  --dominantC: #006448;
  --dominant-lightC:#009664;
  --GC: #666;
  --GCl: #ebebeb;
  --GCd: #646d7c;
  --DC: #333;
}

body {
  background: linear-gradient(90deg, var(--GCl) 0, var(--baseC) .1rem) left top / 12.5%;
	color: var(--DC);
	line-height: 1.4;
  margin: 0 auto;
}

dt,li,strong,em,span { line-height: 1.2;}

img { max-width: 100%;}

sup {
  font-size: 1rem;
  vertical-align: text-top;
}

sub {
	font-size: 1rem;
	vertical-align: text-bottom;
}

figure img { display: block;}

time { font-family: 'Merriweather Sans', 'Noto Sans JP', sans-serif;}

hr {
  margin: 0;
  border: none;
  border-bottom: .1rem solid var(--GCl);;
  background: none;
}



/*===== 2. Font Redefinition =====*/
html { font-size: 62.5%;}

body {
	font-size: 1.6em;
	font-family: sans-serif;
}

@media (max-width: 768px) {
	html { font-size: calc(100vw / 76.8 * 2.048);}
}
@media (max-width: 640px) { html { font-size: calc(100vw / 64 * 1.7067);}}
@media (max-width: 480px) { html { font-size: calc(100vw / 48 * 1.28);}}
@media (max-width: 375px) { html { font-size: calc(100vw / 37.5 * 1);}}
@media (max-width: 360px) { html { font-size: calc(100vw / 36);}}
@media (max-width: 320px) { html { font-size: calc(100vw / 32);}}

@media (min-width: 1536px){ html { font-size: calc(100vw / 153.6);}}

@font-face {
  font-family: 'icomoon';
  src:  url('./fonts/icomoon.eot?elux7q');
  src:  url('./fonts/icomoon.eot?elux7q#iefix') format('embedded-opentype'),
    url('./fonts/icomoon.ttf?elux7q') format('truetype'),
    url('./fonts/icomoon.woff?elux7q') format('woff'),
    url('./fonts/icomoon.svg?elux7q#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="ico_"], [class*=" ico_"] {
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ico_blank::before {
  content: " \e900";
  color: currentColor;
  font-size: 1.2rem;
}
.ico_pdf::before {
  content: " \e903";
  color: currentColor;
  font-size: 1.4rem;
}

.ico_exhibition::before {
  content: "\e901";
  color: var(--baseC);
}

.ico_online::before {
  content: "\e956";
  color: var(--baseC);
}

.ico_lang::before {
  content: "\e902";
  color: var(--baseC);
}

a:hover {
  .ico_blank:before,
  .ico_pdf:before { color: var(--dominantC);}
}

@media (max-width: 768px) {
  a:hover {
    .ico_blank:before,
    .ico_pdf:before { color: currentColor;}
  }
}



/*===== 3. Base Box Setting =====*/
main {
  display: block;
  margin: 0 0 6rem;;
}

section,
aside { padding: 0 1rem;}

article section:not(:last-child) { margin-bottom: 5rem;}

@media (max-width: 768px) {
  main { margin: 0 0 3rem;}
  
  section,
  aside { padding: 0;}
  
  article section:not(:last-child) { margin-bottom: 3rem;}
}


/*===== 4. Common Items Setting =====*/
/* Basic Link */
a {
  display: inline-block;
	outline: hidden;
  color: var(--dominantC);
  font-weight: 500;
  font-family: 'Noto Sans JP',sans-serif;
	text-decoration: none;
  &:hover {
    color: var(--dominant-lightC);
    img { opacity: .6;}
  }
  &.soon {
    opacity: .6;
    pointer-events: none;
  }
  img { transition: .25s;}
}

@media (max-width: 768px) {
 a {
  &:hover img { opacity: 1;}
  &:not(.textlink):not(.buttonlink):not(.boxlink) { padding: .5rem 0;}
  img { transition: none;}
 }
}


/* Active state */
[class^="active"] .content {
  overflow: hidden; 
  height: 100vh;
  &::after {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 98;
    width: 100%;
    height: 100vh;
    background-color: rgba(255, 255, 255, 0.8);
    background-image: repeating-linear-gradient(135deg, transparent, transparent .4rem, var(--baceC) .4rem, var(--baceC) .5rem);
    content: "";
  }
}


/* Header Items */
header {
  background: var(--baseC);
  > div:first-of-type {
    display: flex;
    justify-content: space-between;
    column-gap: 1rem;
    padding: 2rem 1rem 0;
    font-family: 'Merriweather Sans', 'Noto Sans JP', sans-serif;
    > div:first-of-type {
      display: flex;
      gap: 3rem;
      width: 100%;
      > :first-child {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        column-gap: 1rem;
        margin-bottom: 1.5rem;
        a { 
          img { 
            max-width: 25rem;
            max-height: 6rem;
          }
        }
      }
    }
  }
  #head_info {
    flex-shrink: 0;
    line-height: 1.3;
    font-feature-settings: "palt";
    p:not(:last-child) {
      margin-bottom: .5rem;
    }
    p a + span {
      display: block;
      margin-top: .5rem;
    }
    a {
      min-width: 9.5rem;
      margin-left: 0.5rem;
      padding: .5rem;
      background: var(--DC);
      color: var(--baseC);
      font-size: 1.2rem;
      text-align: center;
      &:hover { background: var(--GC);}
      &.box_white {
        position: relative;
        padding: .5rem .5rem .5rem 1rem;
        border: .1rem solid var(--DC);
        background: var(--baseC);
        color: var(--DC);
        text-align: center;
        transition: .3s;
        &::before {
          position: absolute;
          top: 50%;
          left: 0;
          border: .6rem solid transparent;
          border-left: .6rem solid var(--DC);
          transform: translateY(-50%);
          content: '';
        }
        &:hover {
          background: var(--DC);
          color: var(--baseC);
          &::before{ border-left: .6rem solid var(--baseC);}
        }
      }       
    }
  }
  #head_button {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-end;
    height: fit-content;
    > div {
      display: flex;
      gap: 1rem;
      height: fit-content;
    }
    > a {
      flex: 1;
      min-width: 9.5rem;
      width: fit-content;
      height: fit-content;
      padding: .5rem;
      background: var(--dominantC);
      color: var(--baseC);
      font-size: 1.2rem;
      text-align: center;
      &:hover { background: var(--dominant-lightC);}
      &.box_white {
        position: relative;
        padding: .5rem .5rem .5rem 1rem;
        border: .1rem solid var(--DC);
        background: var(--baseC);
        color: var(--DC);
        text-align: center;
        transition: .3s;
        &::before {
          position: absolute;
          top: 50%;
          left: 0;
          border: .6rem solid transparent;
          border-left: .6rem solid var(--DC);
          transform: translateY(-50%);
          content: '';
        }
        &:hover {
          background: var(--DC);
          color: var(--baseC);
          &::before{ border-left: .6rem solid var(--baseC);}
        }
      }       
    }
  }
  &.fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
  }
  #btn_gnavi { display: none;}
}

@media (max-width: 1024px) {
  header {
    > div:first-of-type {
      position: relative;
      align-items: end;
      padding-bottom: 1rem;
      > div:first-of-type {
        flex-direction: column;
       
        gap: 0;
        > :first-child {
          width: 100%;
          max-width: 70%;
        }
      }
    }
    #head_button {
      align-items: baseline;
      position: absolute;
      left: 24rem;
      margin-top: 1.5rem;
      line-height: 1.3;
      > div {
        display: none;
      }
    }
    #head_inquiry {
      gap: 2rem;
      li {
       width: 100%;
        margin-left: 0;
      }
      a {
        width: 100%;
        max-width: 30rem;
        min-width: 18rem;
        padding: 1rem;
      }
    }
  }
}

@media (max-width: 768px) {
  header {
    > div:first-of-type {
      display: block;
      align-items: end;
      padding-top: 1rem;
      > div:first-of-type {
        flex-direction: column;
        align-items: center;
        > :first-child {
          flex-direction: column;
          align-items: center;
          width: 100%;
          max-width: 80%;
          margin-bottom: 1rem;
          padding: .5rem 0;
          a {
            padding: 0;
          }
        }
      }
    }
    #head_info { width: 100%;}
    #head_button {
      bottom: 0;
      margin-bottom: 1rem
    }
    #head_inquiry {
      width: 100%;
      a {
        min-width: initial;
      }
    }
  }
}

/* Global Navigation */
#gnavi {
  display: flex;
  justify-content: flex-end;
  position: relative;
  > ul {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding: 1rem;
    background: var(--baseC);
    > li {     
      flex: auto;
      position: relative;
      width: 25%;
      text-align: center;
      &:not(:nth-last-of-type(3))>a::after {
        position: absolute;
        height: 100%;
        top: 0;
        right: 0;
        width: .1rem;
        background: var(--dominantC);
        content: '';
      }
      &.dropdown {      
        > a { 
          background: var(--dominantC);
          color: var(--baseC);
          &::before {
            position: absolute;
            content: "";
            border-right: 1rem solid transparent;
            border-top: 1rem solid var(--dominantC);
            border-left: 1rem solid transparent;
            bottom: -.9rem;
            left: 50%;
            z-index: 20;
            transform: translateX(-50%);
          }
         }
        ul { 
          max-height: 100rem;
          padding: 2rem;
        }
      }
      > a {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        height: 100%;
        padding: 1.5rem 1rem;
        color: inherit;
        font-weight: bold;
        font-size: 2rem;
        &:hover { 
          background: var(--dominantC);
          color: var(--baseC);
         }
      }
    }
    ul {
      overflow: hidden;
      position: absolute;
      right: 0;
      bottom: 0;
      left: 0;
      max-height: 0;
      background: rgba(0,0,0,.8);
      transform: translateY(100%);
      z-index: 20;
      li {
        display: block;
        margin: 0 2rem 1rem 0;
        text-align: left;
        a {
          color: #ccc;
          &.soon { color: var(--GCd);}
          &:hover { 
            color: var(--baseC);
            .ico_blank::before { color: currentColor;}
            .ico_pdf::before { color: currentColor;}
          }
          &:not([target]):not([href$=".pdf"])::after {
            display: inline-block;
            width: .4rem;
            height: .4rem;
            margin: -.3rem 0 0 .3rem;
            border-top: .2rem solid currentColor;
            border-right: .2rem solid currentColor;
            transform: rotate(45deg);
            vertical-align: middle;
            content: "";
          }
        }
      }
    }
  }
  > a {
    &.buttonlink {
      display: flex;
      margin: 0 0 0 1rem;
      span {
        align-items: center;
        font-size: 1.4rem;
      }
    }
  }
}

@media (max-width: 1024px){
  #gnavi {
    display: none;
    position: fixed;
    top: 0;
    right: -50%;
    z-index: 99;
    overflow-y: scroll;
    width: 80%;
    height: 100vh;
    height: -webkit-fill-available;
    margin-bottom: 0;
    padding: 15rem 2.5rem 2.5rem;
    background: rgba(0, 0, 0, 0);
    > ul {
      display: block;
      margin: 0 0 2.5rem;
      background: none;
      -webkit-overflow-scrolling: touch;
      li:not(:has(.buttonlink)) {
        width: 100%;
        margin-bottom: .2rem;
        padding-bottom: .2rem;
        &:not(:nth-last-of-type(3)) { border-bottom: .1rem dotted var(--GC);}
        &.dropdown {
          > a { 
            color: var(--baseC);
            &::before {
              bottom: 0;
              width: 5rem;
              height: 1.5rem;
              border: none;
              background: linear-gradient(to bottom right, transparent 50%, rgba(0,0,0,1) 50.01%) no-repeat top left / 50% 100%, linear-gradient(to bottom left, transparent 50%, rgba(0,0,0,1) 50.01%) no-repeat top right / 50% 100%;
            }
          }
          ul {
            position: static;
            width: 100%;
            min-width: auto;
            padding: 0;
            background: none;
            transform: none;
            transition: max-height .5s ease;
            > li {
              display: block;
              margin: 0;
              a {
                display: block;
                position: relative;
                padding: 1.6rem 1.6rem 1.6rem 1rem;
                font-size: 1.4rem;
                background: #000;
                &::after {
                  position: absolute;
                  top: 50%;
                  right: 2.4rem;
                  transform: translateY(-50%);
                }
                &:not([target]):not([href$=".pdf"])::after {
                  width: 1rem;
                  height: 1rem;
                  margin: 0;
                  transform: translateY(-50%) rotate(45deg);
                }
                i {
                  position: absolute;
                  right: 2.2rem;
                }
              }
            }
          }
        }
        a {
          justify-content: left;
          padding: 2rem 1.5rem;
          background: rgba(0,0,0,.25);
          color: var(--baseC);
          font-size: 1.6rem;
          &::after {content: none;}
          &:hover { color: var(--baseC);}
          &.active { color: var(--dominantC);}
        }
      }
      li:has(.buttonlink) {
        width: 100%;
        a {
          display: block;
          width: 100%;
          margin-top: 1.5rem;
          padding: 0;
          font-size: 1.6rem;
          span { 
            align-items: center;
            min-height: 6rem;
            font-size: 1.6rem;
          }
          &:hover span {
            margin: 0;
            box-shadow: 0 .4rem 0 #a49900;
          }
          &.buttonred {
            &:hover span { box-shadow: 0 .4rem 0 #8d0000;}
          }
          &.buttonorange {
            &:hover span { box-shadow: 0 .4rem 0 #6f3c00;}
          }
          &::after {content: none;}
        }
      }
    }
    .sp {display: block;}
  } 
  
  /* button */
  header { 
    #btn_gnavi {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      position: fixed;
      top: 1rem;
      right: 1rem;
      max-width: 11rem;
      min-height: 11rem;
      margin: 0;
      padding: 1.2rem 3.2rem;
      background: linear-gradient(135deg, rgb(0 100 72 / 90%) 0%, rgb(0 150 100/ 100%) 100%) left top/100% auto no-repeat;
      z-index: 100;
      &::before {
        position: absolute;
        top: .2rem;
        left: .2rem;
        width: calc(100% - .6rem);
        height: calc(100% - .6rem);
        border: .1rem solid rgba(255,255,255,.5);
        content: "";
      }
      b {
        margin: -1.2rem 0 2rem;
        color: var(--baseC);
        font-size: 1.8rem;
      }
      span {
        display: block;
        position: relative;
        width: 100%;
        height: .2rem;
        &::before,&::after {
          position: absolute;
          left: 0;
          width: 100%;
          height: .2rem;
          background: var(--baseC);
          content: "";
        }
        &::before { top: .6rem;}
        &::after { top: -.6rem;}
      }
    }
  }

  .active_nav {
    header {
      #btn_gnavi { 
        background: linear-gradient(135deg, var(--dominantC) 0%, var(--dominantC) 100%) no-repeat left top / 100% auto;
        span { 
          animation: navBAR .25s ease-in-out forwards;
          &::before { animation: navBAR01 .25s ease-in-out forwards;}
          &::after { animation: navBAR02 .25s ease-in-out forwards}
        }
      }
    }
    #gnavi {
      display: block;
      animation: navSP .4s ease-in-out forwards;
    }
  }
}

@media (max-width: 768px) {
  header { 
    #btn_gnavi {
      top: .5rem;
      right: .5rem;
      max-width: 5rem;
      min-height: 5rem;
      padding: 1.2rem 1.5rem;
      b {
        margin: -.3rem 0 1.2rem;
        font-size: .8rem;
      }
      span {
        &::before { top: -.1rem;}
      }
    }
  }

  #gnavi {
    padding: 6rem 1rem 1rem;
    > ul {
      margin: 0 0 1rem;
      > li > a { padding: 2rem 1.6rem;}
      ul {
      li {
        a {
          padding: 1.6rem 1.6rem 1.6rem 1rem;
          font-size: 1.4rem;
          &::after, i {
            right: 1.2rem;
          }
          &:not([target]):not([href$=".pdf"])::after {
            width: .5rem;
            height: .5rem;
          }
        }
      }
    }
    }
    > a.buttonlink { 
      margin-bottom: 1rem;
      span { min-height: 6rem;}
    }
    
  }
}

@keyframes navSP {
	0% {
    right: -50%;
    opacity: 0;
    background: rgba(0, 0, 0, 0);
	}
	100% {
    right: 0;
    opacity: 1;
    background: rgba(0, 0, 0, .8);
	}
}

@keyframes navBAR {
	0% {
    background: rgba(255,255,255,0);
	}
	100% {
    background: rgba(255,255,255,0);
  }
}
@keyframes navBAR01 {
	0% {
    top: .6rem;
	}
	60% {
    top: 0;
    transform: rotate(0);
  }
	80% {
    top: 0;
    transform: rotate(0);
  }
	100% {
    top: 0;
    transform: rotate(45deg);
  }
}
@keyframes navBAR02 {
	0% {
    top: -.6rem;
	}
	60% {
    top: 0;
    transform: rotate(0);
  }
	80% {
    top: 0;
    transform: rotate(0);
  }
	100% {
    top: 0;
    transform: rotate(-45deg);
  }
}


/* Footer Items */
footer {
  background: var(--DC);
  color: var(--GCl);
  font-size: 1.4rem;
  a { 
    color: var(--GCl);
    &:not([target]):not([href$=".pdf"]):not(.boxlink)::after {
      display: inline-block;
      width: .4rem;
      height: .4rem;
      margin: -.3rem 0 0 .3rem;
      border-top: .2rem solid currentColor;
      border-right: .2rem solid currentColor;
      transform: rotate(45deg);
      vertical-align: middle;
      content: "";
    }
    &.boxlink { 
      font-size: 1.8rem;
      span { min-height: 6rem;}
    }
  }
  #footer_sitemap {
    padding: 4rem 1rem 2.5rem;
    background: #444;
    nav {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      > div { 
        width: 56.25%;
        > *:nth-child(2) { order: 1;}
        > *:nth-child(3) { order: 3;}
        > *:nth-child(4) { order: 4;}
        > *:nth-child(5) { order: 5;}
        > *:nth-child(6) { order: 6;}
        > *:nth-child(7) { order: 7;}
        dl, span { 
        margin-bottom: 2.5rem;
      }
      dt , span {
        color: var(--baseC);
        font-weight: bold;
        font-size: 1.8rem;
      }
      dt {
        margin-bottom: 1.5rem;
      }
      dd {
        li {
          display: inline-block;
          margin: 0 0 1rem 2rem;
          vertical-align: top;
          color: var(--GCl);
        }
      }
      span {
        display: block;
        a {
          color: var(--baseC);
          &:hover { color: var(--dominant-lightC);}
        }
      }
      }
      > ul:first-of-type {
        order: 2;
        width: 37.5%;
        li:not(:last-child) { margin-bottom: 1rem;}
      }
      > ul:last-of-type {
        display: flex;
        flex-direction: column;
        row-gap: 1rem;
        font-size: 1.8rem;

      }
    }
  }
  #footer_inquiry {
    display: flex;
    justify-content: space-between;
    padding: 2.5rem 1rem 2rem;
    font-family: 'Noto Sans JP', sans-serif;
    div {
      &:nth-child(1) { flex: 5;}
      &:nth-child(2) { 
        flex: 2; 
        width: 38rem;
        > a {
          display: block;
          margin-bottom: 1.5rem;
        }
        ul { 
          margin-right: -1rem;
          a {
            display: block;
            padding: 1rem;
            background: var(--GC);
            &:hover {
              background: var(--GCd);
              color: var(--baseC);
              i.ico_blank::before { color: currentColor;}
            }
          }
          li:not(:last-child) { margin-bottom: .5rem;}
        }
      }
    }
    dl {
      margin-bottom: 1.5rem;
      font-weight: bold;
      + ul { 
        display: flex;
        li {
          display: flex;
          align-items: center;
          margin-right: 2rem;
          font-size: 1.4rem;
          white-space: nowrap;
          p {
            width: 5rem;
            padding: .5rem;
            background: var(--GC);
            text-align: center;
          }
          span { margin-left: 1rem;}
        }
      }
    }
    dt {
      margin-bottom: 1rem;
      font-size: 2rem;
    }
    dd { font-size: 1.6rem;}
  }
}

@media (max-width: 768px) {
  footer { 
    padding-bottom: 1rem;
    a {
      &.boxlink { 
        font-size: 1.4rem;
        span {
          min-height: 5.5rem;
          padding: 1rem 2rem;
        }
      }
      &:not([target]):not([href$=".pdf"]):not(.boxlink)::after {
        width: .5rem;
        height: .5rem;
      }
    }
    #footer_sitemap { 
      padding: 2rem 0 .5rem;
      nav { 
        display: block;
        > ul:last-child {
          gap: 0;
          li {
            position: relative;
            margin-bottom: 0;
            padding: 2rem 0;
            &::before, &::after {
              position: absolute;
              top: 50%;
              right: 1.2rem;
              background: var(--baseC);
              transform: translateY(-50%);
              content: "";
            }
          }
          li {
            a:not([target]):not([href$=".pdf"]):not(.boxlink)::after {
              position: absolute;
              top: 50%;
              right: 1.8rem;
              width: 1.2rem;
              height: 1.2rem;
              transform: translateY(-50%) rotate(45deg);
            }
            [class^="ico_"], [class*=" ico_"] {
              position: absolute;
              top: 50%;
              right: 1.8rem;
              transform: translateY(-50%);
            }
          }
        > *:not(:last-child) { border-bottom: .1rem solid var(--GCd);}
        }
        > ul:first-of-type {
          width: 100%;
          li { 
            width: 100%;
            margin-bottom: 1rem;
          }
        }
      }
      &.active dd { display: block;}
    }
    #footer_inquiry {
      display: block;
      padding: 1.2rem 1.2rem 0;
      div {
        &:nth-child(1) { flex: none; padding: 0;}
        &:nth-child(2) {
          flex: none;
          width: auto;
          text-align: center;
          > a {
            display: inline-block;
            width: 70%;
            margin-bottom: 1rem;
          }
          ul {
            margin: 0 0 2rem;
            text-align: left;
            li:not(:last-child) { margin-bottom: .5rem;}
            a { 
              padding: 1rem;
              &:hover {
                background: var(--GC);
                color: inherit;
                i.ico_blank::before
                {
                  color: currentColor;
                }
              }
            }
          }
        }
      }
      dl { 
        margin-bottom: 1.5rem;
        + ul {
          display: block;
          margin-bottom: 2rem;
          padding-bottom: 2rem;
          border-bottom: .1rem dotted #444;
          li { 
            margin-right: 0;
            &:not(:last-child) { margin-bottom: .5rem;}
            span { margin-left: 1rem;}
          }
        }
      }
      dt {
        margin-bottom: 1rem;
        font-size: 1.8rem;
      }
      dd { font-size: 1.4rem;}
    }
  }
}



/*===== 5. Div [top_hero]  =====*/
#top_hero {
  padding: 6rem 0 3rem;
  background: var(--dominantC);
  #top_main {
    #top_kv {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0 6rem 2rem;
      .logo { width: 35%;}
    }
  }
  #main_announce {
    position: relative;
    width: 50%;
    margin: 0 10rem;
    z-index: 0;
    > div {
      display: flex;
      justify-content: space-between;
    }
    .slide {
      width: 100%;
      height: auto;
      background: var(--baseC);
      line-height: 0;
      box-shadow: .5rem .5rem 1rem rgba(0,0,0,.5);
      a { 
        position: relative;
        width: 100%;
        &::after {
          display: inline-block;
          position: absolute;
          top: 0;
          right: 0;
          left: 0;
          bottom: 0;
          z-index: 2;
          border: 1rem solid var(--DC);
          content: "";
          opacity: .5
        }
        &.soon { opacity: 1;}
      }
      .slick-dots {
        li {
          button {
            width: 7.5rem;
          }
          &.slick-active button { background: var(--DC);}
        } 
      }
    }
  }
  #top_banner {
    width: 100%;
    margin: 4rem 0 0;
    padding: 2rem;
    background: rgba(51,51,51,.9);
    ul {
      display: flex;
      justify-content: center;
      margin: 0 auto;
      flex-wrap: wrap;
      li {
        width: calc(16.66% - 2rem);
        margin: 0 1rem;
        text-align: center;
        img { width: 100%;}
        a.soon {opacity: 1;}
      }
    }
  }
}

@media (max-width: 1024px) {
  #top_hero {
    #top_main{
      #top_kv {
        flex-direction: column;
        padding: 0 5rem 2.5rem;
        .logo { width: 80%;}
      }
    }
    #main_announce {
      padding-top: 5rem;
      max-width: none;
      width: 90%;
      .slide {
        width: auto;
        box-shadow: 1.5rem 1.5rem 2.5rem rgba(0,0,0,.5);
      }
    }
  }
}

@media (max-width: 768px) {
  #top_hero {
    margin: 0 auto;
    padding: 3rem 0 1rem;
    #top_main{
      #top_kv {
        padding: 0 2rem 1rem;
        .logo { width: 100%;}
      }
    }
    #main_announce {
      padding-top: 2rem;
      .slide {
        box-shadow: .5rem .5rem 1rem rgba(0,0,0,.5);
        a {
          padding: 0!important;
          &::after {
            border: .5rem solid var(--DC);
          }
        }
        .slick-dots {
          li {
            button {
              display: block;
              width: 2.5rem;
            }
          }
        }   
      }
    }
    #top_banner {
      padding: 1rem 0;
      margin: 3rem 0 0;
      ul {
        li {
          width: calc(33% - 1rem);
          margin: 0 .5rem;
        }
      }
    }
  }
}


/*===== 6. Section [top_scale]  =====*/
#top_scale {
  margin: 0 auto;
  padding: 3rem 0;
  background: var(--DC);
  color: var(--baseC);
  h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: 3rem;
    font-size: 2rem;
    text-align: center;
    &::after,
    &::before {
      width: 4rem;
      height: 0.1rem;
      margin: 0 2rem;
      background: var(--baseC);
      content: "";
    }
  }
  div {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    > p {
      text-align: center;
      b {
        display: block;
        margin-top: 1rem;
        font-weight: 700;
        font-size: 3.6rem;
        text-align: center;
        line-height: 1;
        span {
          display: inline-block;
          margin-left: 0.4rem;
          font-size: 1.4rem;
        }
        em {
          display: inline-block;
          font-size: 2rem;
          line-height: 1.6;
        }
      }
    }
    > span  {
      position: absolute;
      top: 1rem;
      left: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0;
      padding: 1.5rem;
      border-radius: 5px;
      background: var(--GCl);
      color: var(--DC);
      font-weight: bold;
      font-size: 1.6rem;
      text-align: center;
      line-height: 1.4;
      transform: translateX(calc(50% + 1rem)) translateY(-50%);
      &::before {
        position: absolute;
        top: 3rem;
        left: -1.5rem;
        width: 2rem;
        height: 2rem;
        background: var(--GCl);
        clip-path: polygon(100% 0, 100% 80%, 0 100%);
        content: "";
      }
    } 
  }
}

@media (max-width: 768px) {
  #top_scale {
    padding: 2rem 0 0;
    h2 {
      margin-bottom: 0;
      font-size: 1.6rem;
    }
    div {
      gap: 1rem;
      > p {
        margin: 2rem 1rem;
        b {
          font-size: 2.6rem;
          em {
          font-size: 1.6rem;
          }
        }
      }
      > span  {
        position: relative;
        top: -1rem;
        left: initial;
        padding: 1rem;
        font-size: 1.4rem;
        transform: initial;
        &::before {
          left: -1rem;
        }
      } 
    }
  }
}


/*===== 7. Section [top_info]  =====*/
#top_info {
  position: relative;
  margin: 12rem auto 9rem;
  padding: 5rem 0;
  &::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 87.5vw;
    height: 100%;
    background: rgba(170,170,170,.25);
    content: "";
    z-index: -1;
  }
  > i {
    position: absolute;
    top: 0;
    left: 0;
    color: rgba(204,204,204,.5);
    font-size: 8rem;
    font-family: 'Merriweather Sans', sans-serif;
    line-height: .8;
    transform: translateY(-50%);
  }
  ul {
    max-width: 104.4rem;
    margin: 0 auto;
    padding: 0 1rem;
    li:not(:last-child) { 
      margin-bottom: 1rem;
    }
    li.new time::before {
      display: block;
      color: #c00;
      content: 'NEW';
    }
    a {
      display: flex;
      align-items: center;
      position: relative;
      padding: 1.5rem 2rem;
      box-shadow: 0 .2rem .3rem 0 rgba(0,0,0,.1);
      border: .1rem solid var(--GCl);
      background: rgba(255,255,255,.5);
      color: var(--DC);
      &:not(.placeholder)::before {
        position: absolute;
        top: 0;
        left: 0;
        width: 0;
        height: 100%;
        background: var(--baseC);
        content: "";
        z-index: -1;
        opacity: 0;
        transition: .25s;
      }
      &:hover::before { width: 100%; opacity: 1;}
      &:not(.placeholder)::after {
        position: absolute;
        top: 50%;
        right: 2rem;
        width: .6rem;
        height: .6rem;
        border-top: .2rem solid currentColor;
        border-right: .2rem solid currentColor;
        transform: translateY(-50%) rotate(45deg);
        content: "";
      }
    }
    .placeholder { pointer-events: none;}
    time {
      position: relative;
      margin-right: 1.5rem;
      padding-right: 1.5rem;
      white-space: nowrap;
      &::after {
        position: absolute;
        top: 50%;
        right: 0;
        width: .1rem;
        height: 2rem;
        background: var(--DC);
        transform: translateY(-50%);
        content: "";
      }
    }
    p {
      flex: 1;
      font-family: sans-serif;
    }
  }
}

@media (max-width: 768px) {
  #top_info {
    margin: 5rem auto 5rem;
    padding: 2rem 0 3rem;
    > i { font-size: 3rem;}
    ul { 
      padding: 0 1rem;
      li:not(:last-child) { margin-bottom: .5rem;}
      a {
        display: block;
        padding: 1rem 1.5rem;
        background: rgba(255,255,255,.7);
        &:not(.placeholder)::before { display: none;}
        &:not(.placeholder)::after {
          right: 1rem;
          width: .5rem;
          height: .5rem;
        }
      }
      time {
        display: block;
        margin: 0 0 .5rem;
        padding: 0 0 .5rem;
        font-size: 1.2rem;
        &::after {
          position: absolute;
          top: auto;
          right: auto;
          bottom: 0;
          left: 0;
          width: 2rem;
          height: .1rem;
        }
      }
      p { font-size: 1.4rem;}
    }
  }
}



/*===== 8. Section [top_about]  =====*/
#top_about {
  margin: 6rem 0 11rem;
  position: relative;
  &::before {
    position: absolute;
    bottom: calc(-2rem);
    right: 0;
    width: 87.5vw;
    height: calc(100% - 2rem);
    background: rgba(170,170,170,.25);
    content: "";
    z-index: -1;
  }
  div > div {
    display: grid;
    grid-template-columns: 28rem 64%;
    grid-auto-rows: auto;
    align-items: center;
    justify-content: center;
    column-gap: 3rem;
    width: calc(100% - 4rem);
    margin: 0 auto;
    h2 {
      grid-column: 2/3;
      grid-row: 1/2;
      font-weight: bold;
      font-size: 2.4rem;
      span { 
        font-size: 2.8rem;
        line-height: 1.4;
      }
    }
    p {
      grid-column: 2/3;
      grid-row: 2/3;
      font-weight: bold;
      font-size: 1.8rem;
      line-height: 1.8;
      span {
        display: block;
        margin-top: 2rem;
      }
    }
    figure {
      grid-column: 1/2;
      grid-row: 2/3;
      display: flex;
      flex-direction: column;
      gap: 1rem;
      img {
        max-width: 30rem;
      }
    }
  }
}

@media (max-width: 768px) {
  #top_about { 
    margin: 2rem 1rem 6rem;
    &::before {
      bottom: -1rem;
      right: -1rem;
      width: calc(87.5vw + 1rem);
      height: calc(100% - 3rem);
    }
    div > div {
      display: flex;
      flex-direction: column;
      column-gap: 0;
      width: 100%;
      h2 {
        order: 1;
        margin-bottom: 1rem;
        font-size: 1.6rem;
        span { font-size: 2rem;}
      }
      p {
        order: 3;
        margin: 1.5rem 0 1.5rem 1rem;
        font-size: 1.6rem;
        span {
          margin-top: 1rem;
          text-align: right;
        } 
      }
      figure {
        order: 2;
        align-items: center;
        gap: .5rem;
        img {
          width: 80%;
        }
      }
    }
  }
}


/*===== 9. Section [top_choice]  =====*/
#top_choice {
  margin: 3rem 0 9rem;
  position: relative;
}

@media (max-width: 768px) {
  #top_choice { 
    margin: 0 1rem 5rem;
  }
}



/*===== 10. Section [top_report]  =====*/
#top_report {
  margin: 3rem 0 9rem;
  position: relative;
}


@media (max-width: 768px) {
  #top_report { 
    margin: 0 1rem 6rem;
  }
}



/*===== 11. Section [top_outline]  =====*/
#top_outline {
  margin: 3rem 0 9rem;
  position: relative;
  .table_basic {
    max-width: 104.4rem;
    margin: 0 auto;
    td {max-width: initial;}
}
}

@media (max-width: 768px) {
  #top_outline { 
    margin: 0 1rem 5rem;
  }
}



/*===== 12. Section [top_schedule]  =====*/
#top_schedule {
  margin: 3rem 0 9rem;
  position: relative;
  .table_flow {
    width: 100%;
    max-width: 104.4rem;
    height: 100%;
    margin: 0 auto;
    li {
      position: relative;
      display: flex;
      justify-content: space-between;
      border-bottom: .2rem solid var(--GCd);
      padding: .5rem .7rem;
      margin-bottom: 3rem;
      &::after, &::before {
        position: absolute;
        bottom: 0;
        width: .2rem;
        height: 1rem;
        background: var(--GCd);
        content: "";
      }
      &::before {left: 0;}
      &::after {right: 0;}
      div{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 25%;
        padding: 1.5rem 1rem ;
        background: var(--GCd);
        color: var(--baseC);
        font-weight: 700;
        font-size: 1.6rem;
        text-align: center;
        font-feature-settings: "palt";
      }
      p {
        display: flex;
        flex-direction: column;
        justify-content: center;
        flex: 1;
        margin-left: 2rem;
        font-weight: bold;
        font-size: 1.8rem;
        > span {
          margin-top: .5rem;
          font-size: 1.4rem;
          font-weight: initial;
        }
      }
      > span{
        position: absolute;
        top: 100%;
        right: calc(50% - 3rem);
        content: '';
        border-top: 2rem solid #ccc;
        border-right: 3rem solid transparent;
        border-left: 3rem solid transparent;
        z-index: -1;
      }
    }
  }
}

@media (max-width: 768px){
  #top_schedule {
    margin: 0 1rem 5rem;
    .table_flow {
      li {
        display: block;
        width: 100%;
        padding: 1rem;
        border-bottom: .2rem solid var(--GCd);
        margin-bottom: 2rem;
        &::after, &::before {
          width: .2rem;
          height: 1rem;
        }
        div {
          display: block;
          width: 100%;
          margin-bottom: 1rem;
          padding: 1.5rem 1rem;
          font-size: 1.6rem;
        }
        p {
          flex: 1;
          margin-left: 0;
          font-weight: bold;
          font-size: 1.6rem;
          text-align: center;
          > span { text-align: left;}
        }
        > span{
          position: absolute;
          right: calc(50% - 2rem);
          border-top: 1.5rem solid #ccc;
          border-right: 2rem solid transparent;
          border-left: 2rem solid transparent;
        } 
      }
    }
  }
}



/*===== 13. Section [#top_fee]  =====*/
#top_fee {
  margin: 3rem 0 9rem;
  position: relative;
  .box_wrapper {
    max-width: 104.4rem;
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  #top_fee { 
    margin: 0 1rem 5rem;
  }
}



/*===== 14. Section [#top_option]  =====*/
#top_option {
  margin: 3rem 0 9rem;
  position: relative;
  .box_wrapper {
    max-width: 104.4rem;
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  #top_option { 
    margin: 0 1rem 5rem;
  }
}



/*===== 15. Aside [top_others]  =====*/
#top_others {
  margin: 3rem 0 8rem;
  position: relative;
  .table_basic {
    width: fit-content;
    margin: 0 auto;
    td {max-width: initial;}
}
}

@media (max-width: 768px) {
  #top_others { 
    margin: 0 1rem 3rem;
  }
}



/*===== 16. Animations =====*/
.top_overlay {
  &::after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 0;
    height: 100%;
    background: var(--dominantC);
    content: "";
    z-index: 3;
    animation: hero01 .6s ease-in-out .3s forwards;
  }
}

.top_contents {
  opacity: 0;
  animation: hero02 .2s ease-in-out .7s forwards;
}

#top_info {
  &::before {
    opacity: 0;
    transform: translateX(-100%);
  }
  &.anim::before { animation: move01 .6s ease-in-out .3s forwards;}
}

#top_outline {
  &::before {
    opacity: 0;
    width: 0;
  }
  &.anim::before { animation: move02 .6s ease-in-out .3s forwards;}
}

@keyframes hero01 {
  0% {
    width: 0;
    left: 0;
  }
  30% {
    left: 0;
    width: 100%;
  }
  70% {
    left: 0;
    width: 100%;
  }
  100% {
    left: 100%;
    width: 0;
  }
}

@keyframes hero02 {
 0%,
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes move01 {
  0% {
    opacity: 1;
    transform: translateX(-100%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes move02 {
  0% {
    opacity: 1;
    width: 0;
  }
  100% {
    opacity: 1;
    width: 87.5vw;
  }
}
