:root {
    /* === Colors === */
    --fg: #424242;
    --muted: #6b7280;
    --bg: #ffffff;
    /* provided brand tones */
    --pink: #F8DCF0;
    --mint: #DEFFDD;
    /* CTA仮色：必要に応じて変更 */
    --container: 1108px;
    --space-1: 1rem;
    --space-2: 2rem;
    --space-3: 3rem;
    --space-4: 4rem;
}

* {
    box-sizing: border-box
}

html,body {
    margin: 0;
    padding: 0
}

body {
    font-family:  "Zen Maru Gothic", sans-serif;
    line-height: 1.7;
    color: var(--fg);
    background: var(--bg);
    overflow-x: hidden;
}

img {
    max-width: 100%;
    display: block
}
.container {
    width: 90%;
    max-width: var(--container);
    margin-inline:auto;
}

.section__title {
    font-size: clamp(30px,3vw,45px);
    margin: 0 0 var(--space-4);
    text-align: center;
}

.section__note {
    color: var(--muted);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 20
}
header{
    width:100%;
    margin:0 auto;
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999;
    background-color: #fff;
}
.head_wrap{
    width:100%;
    max-width: var(--container);
    padding:0 1.5rem;
    margin:0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: inherit
}

.nav__list {
    display: flex;
    gap: 24px;
    align-items: center;
    list-style: none;
}

.nav a {
    text-decoration: none;
    color: inherit
}
.nav a img{
    width: 50px;
}
.nav__item a:hover {
    transition: 0.3s ease; 
    color: #d56aa0;
}


.hero {
    position: relative;
    padding-top: 64px;
    z-index: 5;
}

.hero__bg {
    overflow: hidden;
}

.hero__bg-main {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -5
}
.hero__bg-main_02 {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 3000px;
    aspect-ratio: 3000/850;
    z-index: -4
}
.hero__bg-cloud {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -140px;
    width: 100%;
    height: auto;
    aspect-ratio: 375/152;
    margin: 0 auto;
    z-index: -2;
    background-image: url("../assets/top_cloud.png");  /*画像のURL*/
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    object-position: bottom center;
}

.hero__inner {
    text-align: center
}
.hero__title__wrap{
  width: 90%;
  margin: 1rem auto;
}

.hero__figures {
  width: clamp(200px, 50vw, 650px);
  /*aspect-ratio: 60.2 / 39.8;*/
  display: block;
  margin:0 auto;
  position: relative;
  }
.hero__figures >img{
  height: auto;
  max-width: 100%;
}
.hero__kedama {   
  position: absolute;
  top: 5%;
  right: -10%;
  width: clamp(50px, 12vw, 135px);
  height: auto;
  z-index: 1;
  animation: floating-hero_kedama 1.5s ease-in-out infinite alternate-reverse;
}

.hero__nyan {   
  width: clamp(200px, 43vw, 550px);
  height: auto;
  z-index: 1;
  margin: 0 auto;
  animation: floating-hero_nyan 1.8s ease-in-out infinite alternate-reverse;
}

.hero__com-img {
  width: clamp(112.5px, 30vw, 300px);
  height: auto;
  z-index: 2;
}

.hero__subtitle {
    color: var(--muted);
    margin: 0 0 var(--space-4)
}

.hero__cta {
    display: flex;
    justify-content: center
}
.submenu--title{
  display: block;
}
.submenu--title h2{
  font-size: clamp(22px,3vw,32px);
}
.submenu--title h2::before{
  content: "";
  display: inline-block;
  width: 20%;
  aspect-ratio: 7 / 2;
  background-image: url("../assets/submenu_title_l.png");  /*画像のURL*/
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  margin-right:3%;  /*画像右の余白*/
}
.submenu--title h2::after{
  content: "";
  display: inline-block;
  width: 20%;
  aspect-ratio: 7 / 2;
  background-image: url("../assets/submenu_title_r.png");  /*画像のURL*/
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  margin-left:3%;  /*画像右の余白*/
}
.section--submenu {
    width: 90%;
    max-width: 1108px;
    padding-top: 24px;
    padding-bottom: 24px;
    margin:1rem auto 0;
    background-color: #ffffff;
    border: 5px solid #7B86A7;
    border-radius: 50px;
}
.submenu {
    width: 90%;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 16px
}

.submenu__card {
    display: grid;
    place-items: center;
}

.submenu__card:hover {
    transform: translateY(-5px);
    transition: transform 0.3s ease; 
}

.submenu__divider {
    display: block;
    width: min(420px,60%);
    margin: 20px auto 0;
    opacity: .9
}
.section--intro{
  width: 100%;
  background-color: #FFF7CF;
  z-index: 0;
  position: relative;
}
section.section--intro::before{
  content: "";
  position: absolute;
  right: 50%;
  display: inline-block;
  width: 10%;
  max-width: 140px;
  aspect-ratio: 7 / 5;
  background-image: url("../assets/submenu_under_img.png");  /*画像のURL*/
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
section.section--intro::after{
  content: "";
  position: absolute;
  right: 50%;
  transform: translate(50%);
  display: inline-block;
  width: 100%;
  height: 100px;
  aspect-ratio: 869 / 100;
  background-image: url("../assets/intro_back_under_line.png");  /*画像のURL*/
  background-size: contain;
  background-repeat:repeat-x;
  vertical-align: middle;
  z-index: -2;
}

.section--intro .container{
  padding-top: 15%;
  padding-bottom: 5rem;
}
.section--intro .intro-box{
    width: 95%;
    padding: 10%;
    margin: 0 auto;
    background-color: #ffffff;
    border-radius: 50px;
    position: relative;
}
.section--intro .intro-box::before{
  content: "";
  position: absolute;
  left: -90px;
  bottom: 40px;
  display: inline-block;
  height: 153px;
  aspect-ratio: 16 / 17;
  background-image: url("../assets/intro_back.png");  /*画像のURL*/
  background-size: contain;
  background-repeat:no-repeat;
  vertical-align:bottom;
  z-index: -1;
  transition: transform 0.3s ease; /* 動きを滑らかに */
  transform-origin: center bottom;
}

/* クリック用の透明ボタン */

.intro-before-hit {
  position: absolute;
  left: -90px;
  bottom: 40px;
  height: 153px;
  aspect-ratio: 16 / 17;

  background: transparent;
  opacity: 0.5;
  border: none;
  z-index: 2;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  appearance: none;

}


.section--intro .intro-box::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -60px;
  display: inline-block;
  height: 73px;
  aspect-ratio: 5 / 3;
  background-image: url("../assets/intro_back_under.png");  /*画像のURL*/
  background-size: contain;
  background-repeat:no-repeat;
  vertical-align:bottom;
  z-index: -1;
}
.section--intro h2::before{
  content: "";
  display: inline-block;
  width: 20%;
  aspect-ratio: 23 / 12;
  background-image: url("../assets/intro_title_l.png");  /*画像のURL*/
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  margin-right:3%;  /*画像右の余白*/
}
.section--intro h2::after{
  content: "";
  display: inline-block;
  width: 20%;
  aspect-ratio: 23 / 12;
  background-image: url("../assets/intro_title_r.png");  /*画像のURL*/
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  margin-left:3%;  /*画像右の余白*/
}
.intro-fuwanyan span.j_name{
    display: block;
    color:#8B0547;
    font-weight: bold;
    font-size: clamp(40px,3vw,57px);
}
.intro-fuwanyan span.r_name{
    display: block;
    font-weight: bold;
  font-size: clamp(25px,3vw,35px);
}

.intro-kedama span.j_name{
    display: block;
    color:#1D89C4;
    font-weight: bold;
  font-size: clamp(29px,3vw,45px);
}
.intro-kedama span.r_name{
    display: block;
    font-weight: bold;
  font-size: clamp(20px,3vw,27px);
}
.intro-kedama p{
    font-size: 1.25rem;
    line-height: 2rem;
}

.badge {
    display: grid;
    gap: var(--space-1);
    justify-items: center;
    text-align: center
}
.badge h3{
    display: block;
    background-color: #F9DCE4;
    border-radius: 28px;
    font-weight: bold;
    font-size: clamp(17px,3.2vw,22px);
    width: 100%;
    padding: 0.5rem;
    margin: 0;
}
.badge figcaption {
    font-size: 1.25rem;
    line-height: 2rem;
    color: var(--muted)
}

.section--story{
    margin: 10rem auto;
}
.story {
    position: relative;
    display: block;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: var(--shadow)
}

/* 歪み防止：表示領域の比率を CSS で制御し、画像は cover でトリミング */
.story__bg {
  display: block; /* picture 要素にも効く */
  inline-size: 100%;
  max-width: 1180px;
  /* PCの見せ方（横長 1180:1000 ≒ 1.18:1） */
  aspect-ratio: 1180 / 1000;
  overflow: clip; /* はみ出し防止 */
  margin: 0 auto;
}

.story__bg > img {
  inline-size: 100%;
  object-fit: cover;   /* はみ出す部分はトリミング */
  object-position: center;
}

.section--news{
    width: 100%;
    background-color: var(--pink);
    padding:0 0 5%;
}
.section--news::before{
  content: "";
  position: absolute;
  right: 50%;
  transform: translate(50%);
  display: inline-block;
  width: 100%;
  height: 150px;
  aspect-ratio: 1448 / 150;
  background-image: url("../assets/info_line.png");  /*画像のURL*/
  background-size: contain;
  background-repeat:repeat-x;
  vertical-align: middle;
}
.section--news .container{
    padding:15% 0 0 0;
}
.section--news .news__panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-items: center;
    padding: 2% 5% 10%;
    border-radius: 20px;
    background: #fff;
}
.section--news .news__panel h2{
    text-align: center;
    width: 100%;
    margin: 3% auto;
}
.section--sns a.sns_box_sentence{
    text-decoration: none;
}

.section--sns .sns_box_sentence h2{
    color: #424242;
    width: 100%;
    margin: 0;
}
.section--sns .sns_box_sentence img{
    margin:3% auto;
}
.section--sns .sns_box_sentence:hover{
    opacity: 0.8;
    transition: all 1s;
}

.bus-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: var(--space-4);
}

.bus-card:hover {
    transition: transform 0.3s ease; 
    transform: translateY(-5px)
}

.bus-card__img {
    width: 100%;
}

.site-footer {
    position: relative;
    padding-top: 32px;
    background-image: url("../assets/fotter_back.png");  /*画像のURL*/
    background-repeat: no-repeat;
    background-size: cover;
    aspect-ratio: 30 / 13;
    background-position-x: center;
    width: 100%;
}
.site-footer .logo{
    margin: 3% auto 2%;
    display: block;
    width:279px;
}
.footer_img{
    padding-top: 32px;
    background-image: url("../assets/fotter_back_02.png");  /*画像のURL*/
    background-repeat: repeat-x;
    background-size: cover;
    width: 100%;
    aspect-ratio: 30 / 13;
    position: relative;  
}
.footer__inner {
    display: grid;
    gap: 12px;
    align-items: center;
    position: absolute;
    bottom: 3%;
    width: 100%;
    text-align: center;
    overflow: hidden;
}

.footer__cat {
    width:60%;
    max-width: 800px;
    animation: slideRight 25s linear infinite;
}

.footer__bus {
    width:60%;
    max-width: 800px;
    animation: slideRight 25s linear infinite;
}

@media (min-width: 1385px) {
    .section--intro{
        margin-top: -3%;
        padding-top: 3%;
    }
    section.section--intro::before{
        top: 2.5%;
        transform: translate(90%);
        width: 10%;
        max-width: 140px;
    }
    .section--intro .container{
        padding-top: 10%;
        padding-bottom: 5rem;
    }
    .section--sns .sns_box_wrap{
        display: flex;
        flex-wrap: nowrap;
        padding: 0;
        margin: 5% auto 5%;
    }
    .section--sns .sns__img {
        border-top-left-radius: 30px;
        border-bottom-left-radius: 30px;
        width: 60%;
        object-fit: cover;
    }
    .section--sns .sns_box_sentence{
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        background-color: var(--mint);
        padding: 5%;
        border-top-right-radius: 30px;
        border-bottom-right-radius: 30px
    }

}
@media (max-width: 1384px) {
    .section--intro{
        margin-top: -3%;
        padding-top: 3%;
    }
    section.section--intro::before{
        top: 2.5%;
        transform: translate(90%);
        width: 10%;
        max-width: 140px;
    }
    .section--sns .sns_box_wrap{
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        padding: 0;
        margin: 5% auto 5%;
        width: 90%;
    }
    .section--sns .sns__img {
        border-top-right-radius: 30px;
        border-top-left-radius: 30px;
    }
    .section--sns .sns_box_sentence{
        width: 100%;
        max-width: 921px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        background-color: var(--mint);
        padding: 5% 0;
        border-bottom-right-radius: 30px;
        border-bottom-left-radius: 30px
    }
    .section--sns .sns_box_sentence p{
        padding:0 5%;
        width: 100%;
        text-align: center;
    }

}

@media (max-width: 1024px) {
    .section--submenu {
        width: 70%;
        padding-top: 24px;
        padding-bottom: 24px;
        margin:1rem auto 0;
        background-color: #ffffff;
        border: 5px solid #7B86A7;
        border-radius: 50px;
    }
    .submenu {
        grid-template-columns: repeat(2,1fr)
    }
    .bus-grid {
        display: grid;
        grid-template-columns: repeat(3,1fr);
        gap: var(--space-1)
    }
}


@media (min-width: 991px) {
    .intro__badges {
        width: 100%;
        max-width: 800px;
        list-style: none;
        display: grid;
        grid-template-columns: repeat(2,1fr);
        gap: var(--space-2);
        padding: 0;
        margin: 2rem auto;
    }
    div.intro-kedama,div.intro-fuwanyan{
        display: flex;
        flex-wrap: nowrap;
        margin: 0 auto;
        justify-content: space-around;
    }
    div.intro-fuwanyan{
        width: 90%;
        max-width: 750px;
    }
    div.intro-kedama{
        width: 80%;
        max-width: 600px;
        margin-bottom: 1rem;
    }
    .intro-kedama img,.intro-fuwanyan div{
        display: block;
        align-self: center;
        width: 40%;
    }
    .intro-kedama div,.intro-fuwanyan img{
        display: block;
        align-self: center;
        width: 55%;
    }
}
@media (max-width: 990px) {
    .section--intro{
        margin-top: -3%;
        padding-top: 15%;
    }
    section.section--intro::before{
        top: 3%;
        transform: translate(90%);
        width: 10%;
        max-width: 140px;
    }
    .section--intro .intro-box::before{
        content: "";
        position: absolute;
        left: -60px;
        bottom: 40px;
        display: inline-block;
        height: 103px;
        aspect-ratio: 16 / 17;
        background-image: url("../assets/intro_back.png");  /*画像のURL*/
        background-size: contain;
        background-repeat:no-repeat;
        vertical-align:bottom;
        transform-origin: center bottom;
        z-index: -1;
    }
    .intro__badges {
        width: 90%;
        max-width: 770px;
        list-style: none;
        display: flex;
        flex-direction: column;
        padding: 0;
        margin: 1rem auto 2rem;
        text-align: center;
    }
    div.intro-kedama,div.intro-fuwanyan{
        display: flex;
        flex-wrap: wrap;
        margin: 0 auto;
        justify-content: space-around;
        text-align: center;
    }
    div.intro-fuwanyan{
        width: 90%;
        max-width: 750px;
        margin-top: 2rem;
    }
    div.intro-kedama{
        max-width: 600px;
        margin-bottom: 1rem;
    }
    .intro-kedama img{
        display: block;
        align-self: center;
        width: 80%;
    }
    .intro-fuwanyan div{
        display: block;
        align-self: center;
        width: 100%;
    }
    .intro-kedama div,.intro-fuwanyan img{
        display: block;
        align-self: center;
        width: 80%;
    }
    .badge {
        margin:1rem 0;
    }
}
@media (min-width:811px) {
    .footer_img{
        padding-bottom: 300px;
    }
}
@media (min-width:801px) {
    .pc_br{
        display: block;
    }
    .sp_br{
        display: none;
    }
    .menu{
        display: none;
    }
    .hero__com-img {
        position: absolute;
        bottom: 0;
        left: -37%;
        z-index: -1;
    }
}
@media (max-width:810px) {
    .pc_br{
        display: none;
    }
    .sp_br{
        display: block;
    }
    .container {
        padding-inline:0;
    }
    .brand img{
        width: 40%;
    }

    /* ---------------------
    メニューボタン本体
    --------------------- */
    .menu {
    position: fixed;
    top: 16px;
    right: 16px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    z-index: 1001;
    background: none;
    border: none;
    }
    /* ---------------------
    ハンバーガー
    --------------------- */
    .menu__bar, .menu__bar::before, .menu__bar::after {
    content:"";
    display: block;
    width: 24px;
    height: 3px;
    background: #424242;
    border-radius: 2px;
    position: relative;
    transition: all 0.3s;
    }
    .menu__bar::before {
    position: absolute;
    top: -8px;
    }
    .menu__bar::after {
    position: absolute;
    top: 8px;
    }
    /* ---------------------
    メニューボタンアニメーション
    --------------------- */
    .is--active .menu__bar, .is--active .menu__bar::before, .is--active .menu__bar::after {
    background-color: #424242;
    }
    .is--active .menu__bar {
    background: transparent;
    }
    .is--active .menu__bar::before {
    transform: rotate(45deg);
    top: 0;
    }
    .is--active .menu__bar::after {
    transform: rotate(-45deg);
    top: 0;
    }
    /* ---------------------
    ナビゲーション（スライド）
    --------------------- */
    .nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 250px;
        height: 100vh;
        background: #FFF7C6;
        transition: right 0.3s;
        padding-top: 60px;
        z-index: 1000;
    }
    /* メニューが開いたときに右からスライドイン */
    .is--active .nav {
        right: 0;
    }
    /* ---------------------
    ナビゲーション内部
    --------------------- */
    .nav__list {
        list-style: none;
        margin: 0;
        padding: 0;
        flex-direction: column;
    }
    .hero__title-img {
        width: min(420px, 88%)
    }
    .hero__kedama {
        position: absolute;
        top: 5%;
        right: -10%;
        z-index: 1;
    }
    .hero__com-img {
        position: absolute;
        bottom: 0;
        left: -20%;
        z-index: -1;
    }
    .hero__bg-cloud {
        position: absolute;
        left: 0;
        right: 0;
        bottom: -5%;
        width: 100%;
        height: auto;
        aspect-ratio: 81/100;
        margin: 0 auto;
        z-index: -1;
        background-image: url("../assets/top_cloud_sp.png");  /*画像のURL*/
        background-size: contain;
        background-repeat: no-repeat;
        vertical-align: middle;
        object-position: bottom center;
    }
    .hero__figures {
        width: clamp(200px, 65vw, 650px);
        display: block;
        margin:0 auto;
        position: relative;
    }

    .hero__nyan {   
        width: clamp(200px, 56vw, 650px);
        height: auto;
        z-index: 1;
        margin: 0 auto;
        margin-left: 10%;
    }
    .submenu {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2,1fr);
        gap: 16px;
        padding:0 4%;
    }
    .submenu--title h2{
        margin:0 auto 1rem;
    }

    .submenu--title h2::before{
        width: 15%;
        margin-right:0;  /*画像右の余白*/
        aspect-ratio: 16 / 5;
        background-image: url("../assets/submenu_title_l_sp.png");  /*画像のURL*/
    }
    .submenu--title h2::after{
        width: 15%;
        margin-left:0;  /*画像右の余白*/
        aspect-ratio: 16 / 5;
        background-image: url("../assets/submenu_title_r_sp.png");  /*画像のURL*/
    }

    .section--submenu {
        width: 100%;
        padding-top: 24px;
        padding-bottom: 24px;
        margin:1rem auto 0;
        background-color: #ffffff;
        border: 5px solid #7B86A7;
        border-radius: 50px;
    }
    .section--intro .intro-box{
        margin-top: -3%;
        padding-top: 3%;
        width: 76%;
        margin:0 auto;
        padding: 5%;
        position: relative;
    }
    section.section--intro::before{
        content: "";
        position: absolute;
        right: 30%;
        top: 2%;
        transform: translate(-70%);
        display: inline-block;
        width: 10%;
        max-width: 140px;
        aspect-ratio: 7 / 5;
        background-image: url("../assets/submenu_under_img.png");  /*画像のURL*/
        background-size: contain;
        background-repeat: no-repeat;
        vertical-align: middle;
    }
    section.section--intro::after{
        right: 50%;
        transform: translate(50%);
        width: 100%;
        height: 100px;
    }
    .section--intro h2{
        margin-bottom: 1rem;
    }

    .section--intro h2::before{
        width: 15%;
        margin-right:3%;  /*画像右の余白*/
        aspect-ratio: 33 / 17;
        background-image: url("../assets/intro_title_l_sp.png");  /*画像のURL*/
    }
    .section--intro h2::after{
        width: 15%;
        aspect-ratio: 33 / 17;
        background-image: url("../assets/intro_title_r_sp.png");  /*画像のURL*/
    }
    .intro__badges li{
        margin:5% 0;
    }
    .section--story{
        margin: 25% auto;
    }
    .story__bg {
        aspect-ratio: 4 / 5;
    }
    .section--buses{
        margin-bottom: 15%;
    }
    .bus-grid {
        grid-template-columns: 1fr;
        width: 70%;
        margin: 0 auto;
        padding-bottom: 55%;
    }
    .bus-card__img {
        width: 100%;
    }
    .site-footer {
        position: relative;
        padding-top: 32px;
        background-image: url("../assets/fotter_back_sp.png");  /*画像のURL*/
        background-repeat: no-repeat;
        background-size: cover;
        background-position-x: center;
        width: 100%;
    }
    .footer_img{
        padding-top: 32px;
        background-image: url("../assets/fotter_back_02.png");  /*画像のURL*/
        background-repeat: repeat-x;
        background-position-y: bottom;
        background-size: contain;
        width: 100%;
        aspect-ratio: 30 / 13;
        position: relative;  
    }
    .site-footer .logo{
        margin: 3% auto 5%;
        display: block;
        width:279px;
    }
    .footer__inner {
        display: grid;
        gap: 0;
        align-items: center;
        justify-items: center;
        position: absolute;
        bottom: 0;
        width: 100%;
    }
    .footer__cat {
        width:90%;
        max-width: 720px;
        animation: slideRight 12s linear infinite;
    }

    .footer__bus {
        width:90%;
        max-width: 720px;
        animation: slideRight 12s linear infinite;
    }

}

:focus-visible {
    outline: 3px solid rgba(49,130,206,.45);
    outline-offset: 2px;
    border-radius: 6px
}

@media screen and (min-width: 760px) {
#move-page-top{
    position:fixed;
    right:100px;
    bottom:100px;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 300ms ease, visibility 300ms ease;
}
}
@media screen and (max-width: 759px) {
    #move-page-top{
        position:fixed;
        right:30px;
        bottom:50px;
        z-index: 9999;
        opacity: 0;
        visibility: hidden;
        transition: opacity 300ms ease, visibility 300ms ease;
    }
}
@media screen and (max-width: 368px) {
    .hero__com-img {
        position: absolute;
        bottom: 0;
        left: -19%;
        z-index: -2;
    }
    .submenu--title h2::before{
        width: 10%;
        margin-right:0;  /*画像右の余白*/
        aspect-ratio: 16 / 5;
        background-image: url("../assets/submenu_title_l_sp.png");  /*画像のURL*/
    }
    .submenu--title h2::after{
        width: 10%;
        margin-left:0;  /*画像右の余白*/
        aspect-ratio: 16 / 5;
        background-image: url("../assets/submenu_title_r_sp.png");  /*画像のURL*/
    }
    section.section--intro::before{
        content: "";
        position: absolute;
        right: 30%;
        top: 2%;
        transform: translate(-70%);
        display: inline-block;
        width: 8%;
        max-width: 140px;
        aspect-ratio: 7 / 5;
        background-image: url("../assets/submenu_under_img.png");  /*画像のURL*/
        background-size: contain;
        background-repeat: no-repeat;
        vertical-align: middle;
    }
    section.section--intro::after{
        right: 50%;
        transform: translate(50%);
        width: 100%;
        height: 50px;
    }
    .section--intro h2::before{
        width: 10%;
        margin-right:3%;  /*画像右の余白*/
        aspect-ratio: 33 / 17;
        background-image: url("../assets/intro_title_l_sp.png");  /*画像のURL*/
    }
    .section--intro h2::after{
        width: 10%;
        aspect-ratio: 33 / 17;
        background-image: url("../assets/intro_title_r_sp.png");  /*画像のURL*/
    }
    .section--intro .intro-box::after{
        height: 50px;
    }


}
#move-page-top{
    text-decoration:none;
    display:block;
    cursor:pointer;
    text-align:center;
    line-height:100%;
    width: 50px;
    height: 50px;
}

#move-page-top:hover img{
    -webkit-transition:all 0.3s;
    -moz-transition:all 0.3s;
    transition:all 0.3s;
    opacity: 0.8;
}

#move-page-top.is-visible {
    opacity: 1;
    visibility: visible;
}

/*アニメーション*/
@keyframes floating-hero_nyan {
  0% {
    transform: translateY(2%);
  }
  100% {
    transform: translateY(-5%);
  }
}
@keyframes floating-hero_kedama {
  0% {
    transform: translateY(5%);
  }
  100% {
    transform: translateY(-10%);
  }
}


.footer-float {
  animation: floatY 1.5s ease-in-out infinite;
  padding: 20px;
}

@keyframes slideRight {
  0% {
    transform: translateX(100vw); /* 初期位置（左端） */
  }
  100% {
    /* 画面の幅（100vw）から自身の幅（50px）を引く */
    transform: translateX(calc(-100vw - 5%));
  }
}

@media screen and (min-width: 811px) {
    @keyframes floatY {
        0% {
            transform: translateY(15px);
        }
        50% {
            transform: translateY(-5px);
        }
        100% {
            transform: translateY(15px);
        }
    }
}
@media screen and (max-width: 810px) {
    @keyframes floatY {
        0% {
            transform: translateY(0);
        }
        50% {
            transform: translateY(-20px);
        }
        100% {
            transform: translateY(0);
        }
    }
}


.intro-box.is-jump::before {
  background-image: url("../assets/intro_back_jump.png");  /*画像のURL*/
  animation: intro-pyon 1.8s ease-in-out forwards;
  transform-origin: center bottom;
}



@keyframes intro-pyon {
  0% {
    transform: translate(0, 0) scale(1, 1);
  }
  20% {
    transform: translate(-5px, 10px) scale(1.06, 0.92);
  }
  50% {
    transform: translate(-40px, -75px) scale(0.96, 1.06);
  }
  72% {
    transform: translate(-20px, 0) scale(1, 0.9);
  }
  86% {
    transform: translate(-10px, -15px) scale(0.99, 1.02);
  }
  100% {
    transform: translate(0, 0) scale(1, 1);
  }
}
/* ===== スクロールフェードイン用 ===== */
.show-ready {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
/* ===== スクロールフェードイン用 ===== */
.hero__title__wrap.show-ready {
  opacity: 0;
  transform: translateY(-30px);
  transition: opacity 1s ease, transform 1s ease;
}

/* 表示時 */
.is-show {
  opacity: 1;
  transform: translateY(0);
}
.hero__title__wrap.is-show  {
  opacity: 1;
  transform: translateY(0);
}
