@charset "UTF-8";
@-webkit-keyframes load {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes load {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@-webkit-keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes fly {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8) translateX(-70px) translateY(40px);
            transform: scale(0.8) translateX(-70px) translateY(40px);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1) translateX(0) translateY(0);
            transform: scale(1) translateX(0) translateY(0);
  }
}
@keyframes fly {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8) translateX(-70px) translateY(40px);
            transform: scale(0.8) translateX(-70px) translateY(40px);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1) translateX(0) translateY(0);
            transform: scale(1) translateX(0) translateY(0);
  }
}
@-webkit-keyframes fly_sp {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8) translateX(-20px) translateY(10px);
            transform: scale(0.8) translateX(-20px) translateY(10px);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1) translateX(0) translateY(0);
            transform: scale(1) translateX(0) translateY(0);
  }
}
@keyframes fly_sp {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8) translateX(-20px) translateY(10px);
            transform: scale(0.8) translateX(-20px) translateY(10px);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1) translateX(0) translateY(0);
            transform: scale(1) translateX(0) translateY(0);
  }
}
html {
  color: #5a686d;
  background: #f7f5f2 url("../img/pat1.jpg") repeat center center/256px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  font-size: 62.5%;
}

@media screen and (max-width: 374px) {
  html {
    font-size: 56.3%;
  }
}
body,
div,
dl, dt, dd,
ul, ol, li,
h1, h2, h3, h4, h5, h6,
figure,
form, input, textarea, button,
p,
blockquote,
th, td {
  margin: 0;
  padding: 0;
}

body {
  background: #f7f5f2 url("../img/pat1.jpg") repeat center center/256px;
  color: #5a686d;
  font-family: "秀英丸ゴシック L", sans-serif;
  font-weight: 400;
  font-size: 1.6rem;
  -webkit-font-variant-ligatures: none;
     -moz-font-variant-ligatures: none;
          font-variant-ligatures: none;
  line-height: 1;
  text-align: center;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100% !important;
  min-width: 1100px;
}

@media screen and (max-width: 600px) {
  body {
    min-width: 0;
  }
}
img {
  border: 0;
  vertical-align: top;
}

ul li {
  list-style: none;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

iframe {
  border: none;
}

a {
  cursor: pointer;
  text-decoration: underline;
  color: #5a686d;
}
a:hover {
  text-decoration: none;
}

br.pc {
  display: block;
}
br.sp {
  display: none;
}

@media screen and (max-width: 600px) {
  br.pc {
    display: none;
  }
  br.sp {
    display: block;
  }
}
.loading {
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: #f7f5f2 url("../img/pat1.jpg") repeat center center/256px;
}
.loading .loader {
  position: absolute;
  left: -webkit-calc( 50% - 15px );
  left: calc( 50% - 15px );
  top: -webkit-calc( 50% - 15px );
  top: calc( 50% - 15px );
  height: 30px;
  width: 30px;
  border-radius: 50%;
  background: #e3e3e3;
  background: -webkit-linear-gradient(left, #e3e3e3 10%, rgba(227, 227, 227, 0) 42%);
  background: linear-gradient(to right, #e3e3e3 10%, rgba(227, 227, 227, 0) 42%);
  -webkit-animation: load 1.4s infinite linear;
          animation: load 1.4s infinite linear;
}
.loading .loader:before {
  width: 50%;
  height: 50%;
  background: #e3e3e3;
  border-radius: 100% 0 0 0;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
}
.loading .loader:after {
  background: #f7f5f2 url("../img/pat1.jpg") no-repeat center center/256px;
  width: 75%;
  height: 75%;
  border-radius: 50%;
  content: '';
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

main {
  width: 100%;
  overflow: hidden;
}

.btn_x {
  display: block;
  text-decoration: none;
  background-color: #dd032b;
  color: #fff;
  width: 320px;
  height: 70px;
  line-height: 70px;
  border-radius: 35px;
  font-family: '秀英丸ゴシック B', sans-serif;
  font-size: 1.8rem;
  -webkit-transition: background-color .5s;
          transition: background-color .5s;
}
.btn_x::after {
  content: '';
  display: inline-block;
  vertical-align: top;
  margin-left: 16px;
  width: 79px;
  height: 100%;
  background: url("../img/arr_x.png") no-repeat left center/79px;
}
.btn_x:hover {
  background-color: #c00007;
}

@media screen and (max-width: 600px) {
  .btn_x {
    width: 73.3vw;
    max-width: 275px;
    height: 60px;
    line-height: 60px;
    border-radius: 30px;
    font-size: 1.5rem;
  }
  .btn_x::after {
    margin-left: 10px;
    width: 68px;
    background: url("../img/arr_x.png") no-repeat left center/68px;
  }
}
.mv {
  position: relative;
  padding-top: 110px;
}
.mv .logo {
  position: absolute;
  z-index: 1;
  left: 40px;
  top: 40px;
  width: 78px;
}
.mv .sub {
  position: absolute;
  z-index: 1;
  right: 60px;
  top: 40px;
}
.mv .copy img {
  position: absolute;
  opacity: 0;
}
.mv .copy img:nth-child(1) {
  top: 226px;
  left: -webkit-calc( 50% - 248px );
  left: calc( 50% - 248px );
}
.mv .copy img:nth-child(2) {
  top: 305px;
  left: -webkit-calc( 50% - 308px );
  left: calc( 50% - 308px );
}
.mv .copy img:nth-child(3) {
  top: 394px;
  left: -webkit-calc( 50% - 267px );
  left: calc( 50% - 267px );
}
.mv.done .copy img:nth-child(1) {
  -webkit-animation: fade 1.5s 1.5s forwards;
          animation: fade 1.5s 1.5s forwards;
}
.mv.done .copy img:nth-child(2) {
  -webkit-animation: fade 1.5s 2.25s forwards;
          animation: fade 1.5s 2.25s forwards;
}
.mv.done .copy img:nth-child(3) {
  -webkit-animation: fade 1.5s 3s forwards;
          animation: fade 1.5s 3s forwards;
}
.mv .ttl {
  opacity: 0;
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2);
  -webkit-transition: opacity 1s 0.75s cubic-bezier(0.5, 1, 0.89, 1), -webkit-transform 1s 0.75s cubic-bezier(0.5, 1, 0.89, 1);
          transition: opacity 1s 0.75s cubic-bezier(0.5, 1, 0.89, 1), transform 1s 0.75s cubic-bezier(0.5, 1, 0.89, 1);
}
.mv .ttl .year {
  display: block;
  margin: 22px auto 0;
}
.mv.done .ttl {
  opacity: 1;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}
.mv .img {
  position: relative;
  text-align: left;
}
.mv .img .il1 {
  margin-top: -23vw;
  width: 100%;
  height: auto;
}
.mv .img .il2 {
  position: absolute;
  right: -6.23%;
  bottom: 16.77vw;
  width: 50%;
  height: auto;
  opacity: 0;
  -webkit-transform-origin: left bottom;
      -ms-transform-origin: left bottom;
          transform-origin: left bottom;
  z-index: 1;
}
.mv.done .img .il2 {
  -webkit-animation: fly 1.5s cubic-bezier(0, 0.55, 0.45, 1) forwards;
          animation: fly 1.5s cubic-bezier(0, 0.55, 0.45, 1) forwards;
}
.mv .lead {
  width: 900px;
  height: 320px;
  margin: 70px auto 0;
  background: url("../img/mv_lead.png?2023") no-repeat center top/900px;
  text-indent: -9999px;
  overflow: hidden;
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s, -webkit-transform 1s;
          transition: opacity 1s, transform 1s;
}
.mv .lead.done {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}

@media screen and (max-width: 1300px) {
  .mv .img {
    width: 1300px;
    margin: 0 -webkit-calc( 50% - 650px );
    margin: 0 calc( 50% - 650px );
  }
  .mv .img .il1 {
    margin-top: -300px;
  }
  .mv .img .il2 {
    bottom: 218px;
  }
}
@media screen and (max-width: 600px) {
  .mv {
    padding-top: 68px;
  }
  .mv .logo {
    left: 4%;
    top: 15px;
    width: 40px;
  }
  .mv .sub {
    right: 4%;
    top: 15px;
  }
  .mv .sub img {
    width: 122px;
    height: auto;
  }
  .mv .ttl img:not(.year) {
    width: 70px;
    height: auto;
  }
  .mv .ttl .year {
    width: 65px;
    height: auto;
    margin: 16px auto 0;
  }
  .mv .copy img:nth-child(1) {
    top: 156px;
    left: -webkit-calc( 50% - 120px );
    left: calc( 50% - 120px );
    width: 59px;
    height: auto;
  }
  .mv .copy img:nth-child(2) {
    top: 197px;
    left: -webkit-calc( 50% - 151px );
    left: calc( 50% - 151px );
    width: 104px;
    height: auto;
  }
  .mv .copy img:nth-child(3) {
    top: 241px;
    left: -webkit-calc( 50% - 130px );
    left: calc( 50% - 130px );
    width: 86px;
    height: auto;
  }
  .mv .img {
    width: auto;
    margin: 0;
  }
  .mv .img .il1 {
    margin-top: -10.67vw;
  }
  .mv .img .il2 {
    right: 0;
    bottom: 13.47vw;
    width: 47.2%;
  }
  .mv.done .img .il2 {
    -webkit-animation: fly_sp 1.5s cubic-bezier(0, 0.55, 0.45, 1) forwards;
            animation: fly_sp 1.5s cubic-bezier(0, 0.55, 0.45, 1) forwards;
  }
  .mv .lead {
    width: 275px;
    height: 631px;
    margin: 36px auto 0;
    background: url("../img/mv_lead_sp.png?2023") no-repeat center top/275px;
  }
}
.s_outline {
  padding-top: 35px;
  position: relative;
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s, -webkit-transform 1s;
          transition: opacity 1s, transform 1s;
}
.s_outline.done {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.s_outline > .img {
  position: absolute;
  top: 155px;
  left: -webkit-calc( 50% - 450px );
  left: calc( 50% - 450px );
}
.s_outline > .img .bal {
  position: absolute;
  left: -17px;
  top: -107px;
}
.s_outline > .date {
  margin-top: 36px;
}
.s_outline .s_subttl {
  margin: 53px auto 0;
}
.s_outline .s_lead {
  margin-top: 25px;
  font-size: 1.8rem;
  line-height: 2;
}
.s_outline .txt {
  margin-top: 24px;
  font-size: 1.4rem;
}
.s_outline .txt .hash {
  color: #00a6e9;
  text-decoration: none;
}
.s_outline .btn_x {
  margin: 40px auto 0;
}

@media screen and (max-width: 600px) {
  .s_outline {
    padding-top: 56px;
  }
  .s_outline > .img {
    position: relative;
    top: 0;
    left: 0;
  }
  .s_outline > .img .bal {
    position: relative;
    left: 0;
    top: 0;
    width: 165px;
    height: auto;
    display: block;
    margin: 0 auto 10px;
  }
  .s_outline > .img :not(.bal) {
    width: 120px;
    height: auto;
    margin-left: 10px;
  }
  .s_outline .s_ttl {
    margin-top: 35px;
  }
  .s_outline .s_ttl img {
    width: 266px;
    height: auto;
  }
  .s_outline > .date {
    margin-top: 14px;
    width: 270px;
    height: auto;
  }
  .s_outline .s_subttl {
    margin: 44px auto 0;
  }
  .s_outline .s_subttl img {
    width: 266px;
    height: auto;
  }
  .s_outline .s_lead {
    margin-top: 24px;
    font-size: 1.4rem;
  }
  .s_outline .txt {
    margin-top: 20px;
    font-size: 1.1rem;
    line-height: 1.82;
  }
  .s_outline .btn_x {
    margin: 20px auto 0;
  }
}
.s_about {
  margin: 95px auto 0;
  width: 880px;
  -moz-box-sizing: border-box;
       box-sizing: border-box;
  border-top: 1px solid #dd032b;
  border-bottom: 1px solid #dd032b;
  position: relative;
  padding: 82px 120px 100px;
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s, -webkit-transform 1s;
          transition: opacity 1s, transform 1s;
}
.s_about::before, .s_about::after {
  content: '';
  display: block;
  background: #dd032b;
  position: absolute;
  top: 10px;
  bottom: 10px;
  width: 1px;
}
.s_about::before {
  left: -10px;
}
.s_about::after {
  right: -10px;
}
.s_about.done {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.s_about .img {
  margin-top: 60px;
}
.s_about .txt {
  margin-top: 30px;
  text-align: left;
}
.s_about .txt p {
  font-size: 1.6rem;
  line-height: 2;
}
.s_about .txt p + p {
  margin-top: 2em;
}
.s_about .s_subttl {
  margin: 50px auto 0;
  padding-top: 68px;
  border-top: 1px solid #dd032b;
}
.s_about .s_subttl img {
  width: 450px;
  height: auto;
}
.s_about .theme_list {
  margin: 52px -120px 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 74px;
}
.s_about .theme_list .img {
  margin-top: 20px;
}
.s_about .theme_list p {
  margin-top: 16px;
  font-size: 1.4rem;
  line-height: 2;
}

@media screen and (max-width: 600px) {
  .s_about {
    margin: 28px auto 0;
    width: -webkit-calc( 92% - 20px );
    width: calc( 92% - 20px );
    padding: 72px 0 54px;
  }
  .s_about .s_ttl img {
    width: 230px;
    height: auto;
  }
  .s_about .img {
    margin-top: 44px;
  }
  .s_about .img img {
    width: 142px;
    height: auto;
  }
  .s_about .txt {
    margin-top: 22px;
    padding: 0 10px;
  }
  .s_about .txt p {
    font-size: 1.4rem;
  }
  .s_about .s_subttl {
    margin: 55px auto 0;
    width: 245px;
    padding-top: 50px;
  }
  .s_about .s_subttl img {
    width: 240px;
  }
  .s_about .theme_list {
    margin-top: 52px;
    display: block;
  }
  .s_about .theme_list li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 24px 10px;
  }
  .s_about .theme_list li + li {
    margin-top: 52px;
  }
  .s_about .theme_list .ttl {
    width: 100%;
  }
  .s_about .theme_list .ttl img {
    width: 154px;
    height: auto;
  }
  .s_about .theme_list .img {
    width: 45.8%;
    max-width: 142px;
    margin-top: 0;
  }
  .s_about .theme_list .img img {
    width: 100%;
    height: auto;
  }
  .s_about .theme_list .t3 .img {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .s_about .theme_list .t3 .img img {
    width: 81.6%;
    height: auto;
  }
  .s_about .theme_list p {
    width: -webkit-calc( 54.2% - 10px );
    width: calc( 54.2% - 10px );
    max-width: 158px;
    text-align: left;
    margin-top: 0;
    font-size: 1.2rem;
  }
}
.s_list {
  padding: 105px 0 0;
}
.s_list .s_lead {
  margin-top: 40px;
  font-size: 1.8rem;
  line-height: 2;
}
.s_list .toi {
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s, -webkit-transform 1s;
          transition: opacity 1s, transform 1s;
  width: 1090px;
  margin: 45px auto 0;
  -moz-box-sizing: border-box;
       box-sizing: border-box;
  position: relative;
  border-radius: 10px;
  padding: 90px;
  background: #fff;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0 50px;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.s_list .toi.done {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.s_list .toi + .toi {
  margin: 40px auto 0;
}
.s_list .toi.long {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.s_list .toi .img {
  background: #f6f6f6;
}
.s_list .toi .txt {
  text-align: left;
  width: -webkit-calc( 100% - 550px );
  width: calc( 100% - 550px );
}
.s_list .toi .txt p {
  font-size: 1.8rem;
  line-height: 2;
  margin: -.5em 0;
}
.s_list .toi .btn_ans {
  margin-top: 58px;
  display: block;
  text-decoration: none;
  background-color: #00a6e9;
  color: #fff;
  width: 320px;
  height: 60px;
  text-align: center;
  line-height: 60px;
  border-radius: 30px;
  font-size: 1.6rem;
  letter-spacing: 0;
  -webkit-transition: background-color .5s;
          transition: background-color .5s;
}
.s_list .toi .btn_ans::before {
  content: '';
  display: inline-block;
  vertical-align: top;
  margin: 22px 8px 0 0;
  width: 16px;
  height: 16px;
  background-image: url("../img/ico_plusmin.svg");
  background-repeat: no-repeat;
  background-size: 16px 40px;
  background-position: left top;
}
.s_list .toi .btn_ans:hover {
  background-color: #0094e3;
}
.s_list .toi .ans {
  display: none;
  margin-top: 90px;
  width: 100%;
  text-align: left;
  padding-top: 60px;
  border-top: 1px solid #e3e3e3;
}
.s_list .toi .ans .none {
  margin-top: 25px;
}
.s_list .toi .ans ul {
  margin-top: 25px;
}
.s_list .toi .ans li + li {
  margin-top: 25px;
}
.s_list .toi .ans .bal {
  background: #e6f4fd;
  border-radius: 10px;
  padding: 25px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 0 25px;
  position: relative;
}
.s_list .toi .ans .bal::before {
  content: '';
  display: block;
  position: absolute;
  width: 19px;
  height: 22px;
  background: url("../img/list_ans_bal.png") no-repeat 0 0/19px 22px;
  bottom: -16px;
  right: 68px;
}
.s_list .toi .ans .bal p {
  font-size: 1.6rem;
  line-height: 2;
}
.s_list .toi .ans .name {
  margin-top: 27px;
  text-align: right;
}
.s_list .toi .ans .name a {
  color: #00a6e9;
}
.s_list .toi.open .btn_ans::before {
  background-position: left bottom;
}
.s_list .toi.open .ans {
  display: block;
}

@media screen and (max-width: 600px) {
  .s_list {
    padding: 58px 0 0;
  }
  .s_list .s_ttl img {
    width: 256px;
    height: auto;
  }
  .s_list .s_lead {
    margin-top: 30px;
    font-size: 1.4rem;
  }
  .s_list .toi {
    width: 95%;
    margin: 35px auto 0;
    padding: 40px 20px;
    display: block;
  }
  .s_list .toi + .toi {
    margin: 20px auto 0;
  }
  .s_list .toi .ttl {
    width: 100px;
    height: 100px;
    left: -webkit-calc( 50% - 50px );
    left: calc( 50% - 50px );
    top: -50px;
  }
  .s_list .toi .ttl img {
    width: 100%;
    height: auto;
  }
  .s_list .toi .img {
    position: relative;
    max-width: 500px;
    margin: 0 auto;
  }
  .s_list .toi .img img {
    width: 100%;
    height: auto;
  }
  .s_list .toi .txt {
    width: auto;
    padding: 18px 15px 0;
  }
  .s_list .toi .txt p {
    font-size: 1.4rem;
  }
  .s_list .toi .btn_ans {
    margin: 25px auto 0;
    width: 100%;
    max-width: 290px;
    height: 40px;
    line-height: 40px;
    border-radius: 20px;
    font-size: 1.4rem;
  }
  .s_list .toi .btn_ans::before {
    margin: 12px 8px 0 0;
  }
  .s_list .toi .ans {
    margin-top: 40px;
    padding-top: 33px;
  }
  .s_list .toi .ans .subttl img {
    width: 134px;
    height: auto;
  }
  .s_list .toi .ans .none {
    margin-top: 15px;
    font-size: 1.2rem;
  }
  .s_list .toi .ans li + li {
    margin-top: 30px;
  }
  .s_list .toi .ans .bal {
    padding: 25px 20px;
    display: block;
  }
  .s_list .toi .ans .bal::before {
    right: -webkit-calc( 50% - 8px );
    right: calc( 50% - 8px );
  }
  .s_list .toi .ans .bal img {
    display: block;
    margin: 0 auto;
    width: 100%;
    max-width: 270px;
    height: auto;
  }
  .s_list .toi .ans .bal img + p {
    margin-top: 10px;
  }
  .s_list .toi .ans .bal p {
    font-size: 1.2rem;
    margin: -.5em 0;
  }
  .s_list .toi .ans .name {
    margin-top: 20px;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1.75;
  }
  .s_list .toi.open .btn_ans::before {
    background-position: left bottom;
  }
  .s_list .toi.open .ans {
    display: block;
  }
}
.s_event {
  width: 710px;
  margin: 0 auto;
  padding: 100px 0;
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s, -webkit-transform 1s;
          transition: opacity 1s, transform 1s;
  border-bottom: 1px solid #dd032b;
}
.s_event.done {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.s_event .s_ttl {
  margin-top: 44px;
}
.s_event .s_ttl .en {
  display: block;
  margin: 0 auto;
}
.s_event .s_ttl .ja {
  display: block;
  margin: 19px auto 0;
}
.s_event .img {
  margin: 32px auto 0;
}
.s_event .s_lead {
  margin-top: 32px;
  color: #dd032b;
  font-size: 1.8rem;
  line-height: 2;
}
.s_event .btn_x {
  margin: 30px auto 0;
}

@media screen and (max-width: 600px) {
  .s_event {
    padding: 65px 0 50px;
    width: 88%;
  }
  .s_event .bal {
    width: 206px;
    height: auto;
  }
  .s_event .s_ttl {
    margin-top: 30px;
  }
  .s_event .s_ttl .en {
    width: 36px;
    height: auto;
  }
  .s_event .s_ttl .ja {
    margin: 13px auto 0;
    width: 186px;
    height: auto;
  }
  .s_event .img {
    margin: 24px auto 0;
  }
  .s_event .img img {
    width: 145px;
    height: auto;
  }
  .s_event .s_lead {
    margin-top: 40px;
    font-size: 1.6rem;
  }
  .s_event .btn_x {
    margin: 28px auto 0;
  }
}
.s_sdgs,
.s_pieces,
.s_archive {
  width: 710px;
  margin: 0 auto;
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s, -webkit-transform 1s;
          transition: opacity 1s, transform 1s;
}
.s_sdgs.done,
.s_pieces.done,
.s_archive.done {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.s_sdgs p,
.s_pieces p,
.s_archive p {
  text-align: left;
  font-size: 1.4rem;
  line-height: 2;
}

@media screen and (max-width: 600px) {
  .s_sdgs,
  .s_pieces,
  .s_archive {
    width: 88%;
  }
  .s_sdgs p,
  .s_pieces p,
  .s_archive p {
    font-size: 1.2rem;
  }
}
.s_sdgs {
  padding-top: 100px;
}
.s_sdgs .img {
  display: block;
  margin: 54px auto 38px;
  width: 475px;
  height: auto;
}

@media screen and (max-width: 600px) {
  .s_sdgs {
    padding-top: 50px;
  }
  .s_sdgs .img {
    margin: 38px auto 32px;
    width: 190px;
  }
}
.s_pieces {
  padding-top: 80px;
}
.s_pieces .inr {
  margin-top: 38px;
  position: relative;
  padding-left: 180px;
}
.s_pieces .logo {
  position: absolute;
  top: 4px;
  left: 0;
  width: 125px;
}
.s_pieces .link {
  margin-top: 30px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 0 20px;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.s_pieces .link a {
  display: block;
}
.s_pieces .link .sns {
  width: 24px;
}
.s_pieces .link .sns:hover {
  opacity: .7;
}

@media screen and (max-width: 600px) {
  .s_pieces {
    padding-top: 40px;
  }
  .s_pieces .inr {
    margin-top: 0;
    padding-left: 0;
  }
  .s_pieces .logo {
    position: relative;
    top: 0;
    width: 78px;
    margin: 35px auto 25px;
  }
  .s_pieces .link {
    margin-top: 15px;
    gap: 0 12px;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .s_pieces .link .web {
    margin-right: 12px;
  }
  .s_pieces .link .sns {
    width: 20px;
  }
  .s_pieces .link .sns:hover {
    opacity: 1;
  }
}
.s_archive {
  padding-top: 80px;
}
.s_archive .link {
  margin-top: 50px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 25px;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.4rem;
}
.s_archive .link a {
  display: block;
}

@media screen and (max-width: 600px) {
  .s_archive {
    padding-top: 50px;
  }
  .s_archive .s_ttl img {
    width: 250px;
    height: auto;
  }
  .s_archive .link {
    margin-top: 30px;
    -webkit-flex-flow: wrap;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
    font-size: 1.2rem;
  }
}
.credit {
  margin-top: 60px;
  font-size: 1.4rem;
}
.credit .note {
  margin-top: 12px;
  display: block;
}

@media screen and (max-width: 600px) {
  .credit {
    font-size: 1.2rem;
  }
}
footer {
  margin-top: 75px;
  background: #dd032b;
  color: #fff;
  padding: 22px 0 25px;
}
footer .copyright img {
  display: block;
  margin: 0 auto;
}

@media screen and (max-width: 600px) {
  footer {
    margin-top: 50px;
    padding: 14px 0 15px;
  }
  footer .copyright img {
    width: 251px;
    height: auto;
  }
}
.fix {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 10;
  width: 556px;
  background: #fff;
  border: 1px solid #dd032b;
  border-radius: 5px;
  padding: 28px 0 16px;
  -moz-box-sizing: border-box;
       box-sizing: border-box;
  text-align: center;
  box-shadow: 1px 1px 2px 1px rgba(90, 104, 109, 0.3);
  -webkit-transform: translateY(170px);
      -ms-transform: translateY(170px);
          transform: translateY(170px);
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.5, 1, 0.89, 1);
          transition: transform 0.4s cubic-bezier(0.5, 1, 0.89, 1);
}
.fix.on {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.fix .btn {
  margin: 0 auto;
  display: block;
  text-decoration: none;
  background-color: #dd032b;
  color: #fff;
  width: 505px;
  height: 70px;
  line-height: 70px;
  border-radius: 35px;
  font-family: '秀英丸ゴシック B', sans-serif;
  font-size: 1.8rem;
  -webkit-transition: background-color .5s;
          transition: background-color .5s;
}
.fix .btn::after {
  content: '';
  display: inline-block;
  vertical-align: top;
  margin-left: 8px;
  width: 55px;
  height: 100%;
  background: url("../img/arr_x.png") no-repeat right center/79px;
}
.fix .btn:hover {
  background-color: #c00007;
}
.fix p {
  margin-top: 14px;
  font-size: 1.1rem;
}
.fix p .hash {
  text-decoration: none;
  color: #00a6e9;
}

@media screen and (max-width: 600px) {
  .fix {
    bottom: 2vw;
    right: 2%;
    width: 96%;
    padding: 16px 0 12px;
  }
  .fix .btn {
    width: 96%;
    max-width: 340px;
    height: 40px;
    line-height: 40px;
    border-radius: 20px;
    font-size: 1.1rem;
  }
  .fix .btn::after {
    margin-left: 6px;
    width: 48px;
    height: 100%;
    background: url("../img/arr_x.png") no-repeat right center/68px;
  }
  .fix p {
    margin-top: 10px;
    font-size: 1rem;
    line-height: 1.5;
  }
}
