*{
    margin: 0;
    padding: 0;
    box-sizing: border-box; 
}

p{
    font-family: "Noto Sans JP", sans-serif;
          font-optical-sizing: auto;
          font-weight: 500;
          font-style: normal;
}

a{
    text-decoration: none;
    font-family: "Noto Sans JP", sans-serif;
    color: #007bff;
    background-color: transparent;
}

img{
    max-width: 430px;
    width: 100%;
}

body{
    max-width: 430px;
    margin: 0 auto;
    text-align: center;
    align-items: center;
    justify-content: center;
}

main{
    max-width: 430px;
}

.kv{
    margin-top: 50px;
}

.llw {
    max-width: 430px;
    width: 430px;
    color: #231815;
    margin: 0 auto;
    overflow: hidden;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    position: relative;
    z-index: 2;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: white;
}

.llw {
    border: 1px solid #bb55ff;
    border-radius: 2.1812307692rem;
}

/* ヘッダー関連のCSS */
header {
    background-color: black;
    position: fixed;
    width: 100%;
    max-width: 430px; 
    top: 0;
    z-index: 1000;
    /* left: 50%;  */
    transform: translateX(-50%);
    margin-left: 214px;
}

.header-logo {
    width: 62%;
    margin-left: -42px;
}

.navigation {
    display: none;
    position: fixed;
    background: #FAF8F7;
    top: 44px;
    width: 100%;
    z-index: 9999;
    max-width: 430px; 
    left: 50%; 
    transform: translateX(-50%);
}

.navigation__link {
    color: #333;
    font-weight: 700;
    text-decoration: none;
    display: block;
    padding: 24px 0;
    border-bottom: 1px solid rgba(48, 47, 47, 0.3); 
}

.navigation__list-item:first-child {
    border-top: solid 1px white;
}

.navigation__list-item {
    text-align: center;
    list-style: none; 
}

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

.header_content {
    display: flex;
    max-width: 430px;
    margin: 0 auto;
    justify-content: space-between;
    align-items: center;
    padding: 11px 12px;
}

.header_content ul {
    display: none;
}

.header_content ul li {
    padding: 0 16px;
}

.header_content a {
    color: white;
}

.header_content a:hover {
    opacity: 0.5;
}

.logo {
    width: 100px;
    height: auto;
}

.hamburger-menu {
    width: 50px;
    height: 50px;
    position: relative;
    border: none;
    background: transparent;
    appearance: none;
    padding: 0;
    cursor: pointer;
    display: block;
}
.hamburger-menu__bar {
    display: inline-block;
    width: 44%;
    height: 2px;
    background: #ffffff;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transition: .5s;
}
.hamburger-menu__bar:first-child {
    top: 16px;
}
.hamburger-menu__bar:nth-child(2) {
    top: 24px;
}
.hamburger-menu__bar:last-child {
    top: 32px;
}
.hamburger-menu--open .hamburger-menu__bar {
    top: 50%;
}
.hamburger-menu--open .hamburger-menu__bar:first-child {
    transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.hamburger-menu--open .hamburger-menu__bar:last-child {
    transform: translateX(-50%) translateY(-50%) rotate(-45deg);
}
.hamburger-menu--open .hamburger-menu__bar:nth-child(2) {
    display: none;
}

.fv-back{
    margin-top: 49px;
    position: relative;
}

.fv-front {
    margin-top: -771px;
    z-index: 1001;
    position: relative;
}

.must-see {
    width: 27%;
    position: absolute;
    left: 294px;
    top: 102px;
    z-index: 1002;
}

.fv-wrap{
    display: flex;
    gap: 10.95rem;
    margin-top: -0.3rem;
    z-index: 1004;
    position: relative;
}

.fv-text-wrap{
    width: 100%;
}

.fv-icon-wrap{
    column-gap: 1vw;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.fv-icon-item {
    position: relative;
    border-radius: 999px;
    box-shadow: 2px 4px 8px 0px #00000029;
    width: 100%;
}

.fv-icon-wrap .left,
.fv-icon-wrap .right{
    bottom: 51px;
}

.fv-icon-wrap .chule{
    left: -4px;
}

.fv-icon-wrap .churi{
    right: -4px;
}

.cta-btn{
    position: relative;
    z-index: 9999;
    width: 80%;
    margin: 0 auto;
    margin-top: 24px;
}

/*アニメーション*/
.animation{
    animation: dokundokun 1300ms ease infinite;
}

@keyframes dokundokun {
    0%  { transform: scale(1); }
    15% { transform: scale(1.2); }
    30% { transform: scale(1); }
    45% { transform: scale(1.2); }
    70% { transform: scale(1); }
}

.cta {
    margin-bottom: 35px;
    margin-top: -10px;
}

:root {
    --marquee-item-width: 29%;
    --marquee-item-height: 70px;
}

    .slider_parent {
        position: relative;
        overflow: hidden;
    }
    
    .slider_parent .slider {
        display: flex;
    }
    
    .text_scroll {
        animation: scroll 40s linear infinite;
    }
    
    .text_scroll_reverse {
        animation: scroll 40s linear infinite;
        animation-direction: reverse !important; 
    }
    
    .logos {
        flex-shrink: 0;
    }
    
    .slider_parent ul li {
        margin-left: 10px;
        margin-right: 10px;
    }
    
    .slider_parent ul li {
        display: inline-block;
    }
    
    .slider_parent ul {
        padding: 0;
        margin: 0;
        display: flex;
    }
    
    .slider_parent ul li > a img {
        transition: 0.4s;
    }
    .slider_parent ul li > a img {
        max-width: 100% !important;
    }
    
    @keyframes scroll {
        0% {
        transform: translateX(0%);
        }
        100% {
        transform: translateX(-100%);
        }
    }
    
    @media only screen and (max-width: 9991px) {
        .slider_parent ul li {
        margin-left: 5px;
        margin-right: 5px;
        }
        .slider_parent ul li img {
        height: 50px;
        width: auto;
        }
        .text_scroll {
        animation: scroll 30s linear infinite;
        }
    }

.jisseki {
    position: relative;
    margin-top: 17px;
}

.jisseki-back {
    display: block;
    width: 100%;
    position: relative;
}

.jisseki-text {
    position: absolute;
    bottom: 45px;
    left: 37px;
    color: white;
    font-weight: bold;
    font-size: 13px;
    line-height: 31px;
    text-align: left;
}

.under {
    border-bottom: dotted 2px #ffffff;
}

.tenp {
    position: absolute;
    bottom: 15px;
    width: 46%;
    left: 205px;
}

.jisseki-back-wrap {
    position: relative;
}

.nayami {
    background-image: url(../img/nayami-back.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center 8px;
    margin-top: 8px;
    height: 944px;
    z-index: 1;
    position: relative;
}

.nayami-title {
    width: 84%;
    margin: 0 auto;
    padding-top: 65px;
}

.nayami-naiyou {
    background-image: url(../img/nayami-naibu-back.png);
    background-size: 92%;
    background-repeat: no-repeat;
    background-position: center;
    margin-top: 12px;
    height: 557px;
}

.nayamitext {
    width: 296px;
    margin: 0 auto;
    text-align: left;
    font-weight: bold;
    color: white;
    padding-top: 90px;
    padding-left: 35px;
    font-size: 19px;
}

.nayamitext span{
    color: #f5d522;
}

.nayamitext.sec{
    margin-top: -68px;
}

.nayamitext.thi{
    margin-top: -55px;
}

.nayamitext.fo {
    margin-top: -55px;
}

.cta-naibu{
    background-image: url(../img/cta-back.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    margin-top: -99px;
    height: 557px;
    z-index: 0;
    position: relative;
}

.kaiketu-title{
    padding-top: 124px;
    width: 80%;
    margin: 0 auto;
}

.cta-btn-back{
    width: 90%;
    margin: 0 auto;
}

.cta-btn-back.sec{
    padding-top: 140px;
}

.cta-btn.sec{
    margin-top: -155px;
    width: 71%;
}

.tokutyou-title {
    background-image: url(../img/tokutyou-title-back.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    height: 225px;
    z-index: 3;
    position: relative;
    margin-top: -32px;
}

.tokutyou-txt{
    width: 80%;
    margin-top: 53px;
}

.point.fi {
    background-image: url(../img/point1-haikei.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    height: 3240px;
    z-index: 4;
    position: relative;
    margin-top: -125px;
    margin-bottom: 208px;
}

.point-title {
    padding-top: 139px;
    font-size: 24px;
    text-align: left;
    padding-left: 118px;
    font-weight: bold;
    color: #1f1e58;
}

.point-title span{
    color: #a62ff6;
    font-size: 28px;
}

.gaiyou{
    width: 22%;
    margin: 0 auto;
    margin-top: 71px;
}

.gaiyou-text {
    width: 61%;
    margin: 0 auto;
    text-align: left;
    font-size: 20px;
    margin-top: 9px;
    font-weight: bold;
}

.content1 div {
    background: #fff;
    border: 2px solid #000;
    border-radius: 21px;
    padding: 20px;
    font-size: 4px;
    margin: 26px;
    width: 80%;
    margin: 0 auto;
    margin-top: 103px;
}


.content1 div .content1ttl {
    text-align: center;
    font-weight: 800;
    color: #FF1F00;
    font-size: 19px;
    position: relative;
    padding-bottom: 9px;
}

.content1 div .content1ttl::before {
    content: "";
    background: url(../img/check.png) no-repeat center / contain;
    position: absolute;
    top: -12px;
    left: 28px;
    width: 1.5rem;
    height: 3.569rem;
}

.content1 div .content2 {
    text-align: left;
    font-size: 16px;
    padding: 0 11px;
}

.content1.sec{
    margin-top: -82px;
}

.hikousi {
    background-image: url(../img/hikousi-back.png);
    background-size: 83%;
    background-repeat: no-repeat;
    background-position: center;
    height: 340px;
    z-index: 4;
    position: relative;
    margin-top: -50px;
}

.hikousi-text {
    padding-top: 152px;
    text-align: left;
    width: 269px;
    padding-left: 60px;
    font-weight: bold;
}

.content3{
    display: grid;
    grid-template-columns: 57px 40px;
    margin-top: -33px;
}

.figua {
    margin-left: 40px;
    width: 300%;
}

.ul{
    vertical-align: baseline;
    margin: 0;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: 100%;
    list-style: none;
}

.content3 ul li:nth-of-type(1) {
    margin-top: 2px;
    color: #008EF5;
    box-shadow: 6px 6px 0px 0px rgba(0, 133, 133, 0.45);
}

.content3 ul li:nth-of-type(2) {
    margin-top: 71px;
    color: #00A51A;
    box-shadow: 6px 6px 0px 0px rgba(45, 172, 0, 0.45);
}

.content3 ul li:nth-of-type(3) {
    margin-top: 71px;
    color: #F20083;
    box-shadow: 6px 6px 0px 0px rgba(242, 0, 131, 0.45);
}

.content3 ul li:nth-of-type(4) {
    margin-top: 71px;
    color: #C89C00;
    box-shadow: 6px 6px 0px 0px rgba(255, 229, 0, 0.45);
}

.content3 ul li:nth-of-type(5) {
    margin-top: 102px;
    color: #FF0F00;
    box-shadow: 6px 6px 0px 0px rgba(202, 73, 0, 0.45);
}


.content3 ul li:nth-of-type(6) {
    margin-top: 115px;
    color: #0051ED;
    box-shadow: 6px 6px 0px 0px rgba(0, 133, 255, 0.45);
}


.content3 ul li {
    background: #fff;
    border: 2px solid #000;
    border-radius: 15px;
    padding: 8px 78px;
    font-size: 15.5px;
    margin: 4px 0px 4px 0px;
    font-weight: 900;
    letter-spacing: -0.2px;
    position: relative;
    line-height: 1.1em;
    box-shadow: 6px 6px 0px 0px rgba(17, 17, 26, 0.45);
    margin-left: 173px;
    top: 45px;
}

li{
    list-style: none;
}

.u-hidden--sp{
    width: 130px;
    text-align: left;
    position: relative;
    left: -60px;
    font-weight: bold;
    line-height: 21px;
    top: -8px;
}

.content3 ul li::before {
    position: absolute;
    top: 50%;
    left: -24px;
    width: 30px;
    height: 1px;
    content: '';
    background: #000;
}

.title-hidden {
    width: 135px;
    text-align: left;
    position: relative;
    left: -69px;
    font-weight: bold;
    line-height: 21px;
    bottom: 37px;
    font-size: 18px;
}


.point.se {
    background-image: url(../img/point2-haikei.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    height: 2114px;
    z-index: 4;
    position: relative;
    margin-top: -287px;
}

.l-inner {
    position: relative;
    margin: 0 auto;
    padding: 0 2.5rem;
    width: 100%;
    max-width: 1152px;
    margin-top: 104px;
}

.p-original ul li {
    display: grid;
    grid-template-columns: 50vw 50vw;
    margin-top: 5vw;
}

.p-original ul li:nth-of-type(1) {
    display: block;
    width: 72vw;
    margin-left: 7vw;
    margin-top: 3vw;
}
    
.p-original ul li:nth-of-type(2) {
    display: block;
    width: 72vw;
    margin-left: 7vw;
    margin-top: 3vw;
}

.p-original ul li:nth-of-type(3) {
    position: absolute;
    right: 2vw;
    top: 23vw;
    width: 46vw;
}

.l-inner {
    position: relative;
    margin: 0 auto;
    padding: 0 2.5rem;
    width: 100%;
    max-width: 1152px;
    margin-top: 104px;
    margin-left: 149px;
}

.p-original ul li {
    display: grid;
    grid-template-columns: 50vw 50vw;
    margin-top: 5vw;
}

.l-inner ul li:nth-of-type(1) {
    width: 171px;
    text-align: left;
    position: relative;
    left: -85px;
    font-weight: bold;
    line-height: 21px;
    top: 15px;
}
    
.l-inner ul li:nth-of-type(2) {
    width: 171px !important;
    text-align: left;
    position: relative;
    left: 93px;
    font-weight: bold;
    line-height: 21px;
    top: -193px;
}

.l-inner ul li:nth-of-type(3) {
    width: 171px;
    text-align: left;
    position: relative;
    left: -78px;
    font-weight: bold;
    line-height: 21px;
    top: -363px;
}

.content1 ul li:nth-of-type(2) img.u-hidden--sp {
    width: 203px;   
    height: auto;   
  }

.l-inner.u-hidden--sp {
    width: 175px;
    text-align: left;
    position: relative;
    left: 77px;
    font-weight: bold;
    line-height: 21px;
    top: -3px;
}

.u-hidden--sp.ipho{
    width: 180px;
    text-align: left;
    position: relative;
    left: -78px;
    font-weight: bold;
    line-height: 21px;
    top: -8px;
}

.responsive {
    z-index: 9999;
    position: relative;
    width: 24%;
    margin: 0 auto;
    top: -311px;
}

.point-titlese {
    padding-top: 54px;
    font-size: 24px;
    text-align: left;
    padding-left: 114px;
    font-weight: bold;
    color: #1f1e58;
}

.point-titlese span{
    color: #a62ff6;
    font-size: 28px;
}

.sarani {
    z-index: 9999;
    /* position: relative; */
    width: 28%;
    top: -311px;
    margin: 0 auto;
    left: -147px;
}

.responsive-text{
    width: 100%;
    margin-top: 12px;
}

.responsive {
    width: 83%;
    padding-left: -2px;
    margin: 0 auto;
    left: 1px;
}

.pciphone {
    margin: 0 auto;
    margin-top: 13px;
    left: -5px;
    padding-left: -4px;
    position: relative;
}

.hikousi-sec{
    margin-top: -129px;
}

.point.thi{
    background-image: url(../img/point3-haikei.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    height: 2114px;
    z-index: 4;
    position: relative;
    margin-top: -390px;
}

.point-titlethi {
    padding-top: 466px;
    font-size: 23px;
    text-align: left;
    padding-left: 104px;
    font-weight: bold;
    color: #1f1e58;
}

.point-titlethi span{
    color: #a62ff6;
    font-size: 31px;
}

.content4 ul {
    display: flex;
    justify-content: center; /* 中央揃え */
    align-items: flex-start; /* 上揃え。必要なら center にしてもOK */
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 20px; /* 画像の間隔を調整したいとき */
    width: 80%;
    margin: 0 auto;
    margin-top: 117px;
    margin-left: 46px;
}
  
  .content4 li {
    /* 画像を個別に調整したい場合に使用 */
}

.kaizen-sukusyo{
    width: 80%;
    margin: 0 auto;
    padding-top: 30px;
}

.heat-hukidasi{
    padding-top: 27px;
    width: 80%;
    margin: 0 auto;
}

.heat-naiyou ul {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 80%;
    margin: 0 auto;
  }
  
  .heat-naiyou li {
    position: relative; /* 子要素の絶対配置の基準 */
    margin-bottom: 11px; /* 要素間の余白調整 */
    text-align: center;
  }
  
  .heat-back {
    width: fit-content;
    margin: 0 auto; /* 中央寄せ */
  }
  
  .heat-back img {
    width: 100%; /* 必要に応じてサイズ指定 */
    display: block;
  }
  
  .heat-text {
    position: absolute;
    top: 50%;
    left: 58%;
    transform: translate(-50%, -50%);
    font-weight: bold;
    width: 80%;
    line-height: 1.5;
    font-size: 15px;
    text-align: left;
}

.baizou-contents{
    background-image: url(../img/baizou-haikei.png);
    background-size: 109%;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 4;
    position: relative;
    margin-top: -390px;
    height: 824px;
}

.baizou-title{
    width: 90%;
    margin: 0 auto;
    padding-top: 66px;
}

.ikanoyouna{
    color: white;
    padding-top: 12px;
}

.baizou-suuti ul {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 80%;
    margin: 0 auto;
  }
  
  .baizou-suuti li {
    position: relative; /* 子要素の絶対配置の基準 */
    margin-bottom: 11px; /* 要素間の余白調整 */
    text-align: center;
  }
  
  .suuti-back {
    width: fit-content;
    margin: 0 auto; /* 中央寄せ */
  }
  
  .suuti-back img {
    width: 100%; /* 必要に応じてサイズ指定 */
    display: block;
  }
  
  .suuti-text {
    position: absolute;
    top: 50%;
    left: 69%;
    transform: translate(-50%, -50%);
    font-weight: bold;
    width: 80%;
    line-height: 1.5;
    font-size: 20px;
    /* text-align: left; */
}

.baizou-suuti{
    margin-top: 24px;
}

.suuti-text span{
    color: #d70070;
}

.yajirusi-img {
    width: 5%;
    margin: 0 auto;
    margin-top: 19px;
}

.yosan-back {
    width: 90%;
    margin: 0 auto;
    margin-top: 12px;
}

.yosan-text{
    margin-top: -193px;
    color: white;
}

.yosan-text span{
    margin-top: -193px;
    color: #fcf30e;
    font-weight: bold;
}

.yosan-main {
    margin-top: 40px;
    font-weight: bold;
    font-size: 21px;
}

.yosan-main span{
    color: #d70070;
    font-size: 26px;
}

.small-font {
    font-size: 18px;
    vertical-align: middle; /* or baseline/super/sub で位置調整 */
  }

.erabunara-back{
    margin-top: -47px;
    position: relative;
    z-index: 9999;
}

.erabunara-text {
    margin-top: -102px;
    font-weight: bold;
    font-size: 21px;
    z-index: 10000;
    position: relative;
}

.erabunara-text span{
    color: red;
}

.cta-naibu.sec{
    margin-top: -24px;
}

.kawarimasu-contents{
    margin-top: -24px;
}

.kawarimasu-contents {
    margin-top: -33px;
    position: relative;
    z-index: 10001;
}

.kaizen-jirei{
    background-image: url(../img/kaizen-haikei.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 4;
    position: relative;
    height: 1450px;
}

.kaizen-fi {
    background-image: url(../img/kaizen-jirei-back.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 10007;
    position: relative;
    height: 756px;
    width: 88%;
    margin: 0 auto;
}

.kaizen-title{
    padding-top: 136px;
}

.kaizen-img {
    width: 80%;
    padding-top: 17px;
    margin: 0 auto;
}

.kaizen-mae {
    text-align: left;
    padding-left: 35px;
    padding-top: 12px;
    font-size: 12px;
}

.kaizen-yajirusi {
    width: 24%;
    /* padding-left: 52px; */
    margin-left: 265px;
    margin-top: -29px;
}

.kaizen-ato-suuti {
    width: 80%;
    margin-left: 36px;
    margin-top: -43px;
}

.kaizen-sec {
    background-image: url(../img/kaizen-jirei-back-sec.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 10007;
    position: relative;
    height: 756px;
    width: 88%;
    margin: 0 auto;
    margin-top: -55px;
}

.youi-contents{
    margin-top: -9px;
}

.tatta-contents{
    background-image: url(../img/youi-back.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 10007;
    position: relative;
    height: 760px;
    margin: 0 auto;
    margin-top: -99px;
}

.tattano-text {
    margin-top: 154px;
    width: 89%;
}

.tattano-naiyou ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 20px; /* 正方形の間隔 */
    justify-content: center; /* 中央寄せ（必要なら） */
}

.tattano-suku {
    background-color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    width: 188px;
    height: 182px;
    padding: 20px;
    box-sizing: border-box;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.tattano-suku-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
    color: #234ea3;
}

.tattano-suku-text {
    font-size: 14px;
    line-height: 1.6;
    text-align: left;
}

.tattano-naiyou {
    top: -466px;
    position: relative;
    z-index: 11000;
    width: 58%;
    margin: 0 auto;
}

.sakuseisimasu {
    margin-top: -402px;
    z-index: 111000;
    position: relative;
    width: 87%;
    margin: 0 auto;
    padding-top: -402px;
    top: -425px;
}

.cta-naibu.thi{
    margin-top: -462px;
}

.flow-item {
    border-radius: 15px;
    -webkit-box-shadow: 0 3px 25px rgba(0, 0, 0, 0.06);
    box-shadow: 0 3px 25px rgba(0, 0, 0, 0.06);
    padding: 1.5rem 2rem 2.5rem;
    margin-bottom: 2rem;
    display: block;
    width: 401px;
    margin: 0 auto;
}

.seisaku-title{
    top: -34px;
    position: relative;
    z-index: 20000;
}

.flow-item-step{
    background: #3fbbfe;
    border-radius: 290486px;
    width: 4rem;
    height: 4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding-top: 0.3rem;
    position: relative;
}

.is-family-en {
    font-family: "Roboto", sans-serif !important;
    font-size: 12px;
    font-weight: bold;
}

.step-txt{
    color: white;
    text-align: center;
    line-height: 1;
    display: block;
}

.step-num{
    color: white;
    text-align: center;
    line-height: 1;
    display: block;
    font-size: 24px;
}

.flow_item_content{
    width: 70%;
    padding-top: 1rem;
}

.flow_item_ttl {
    font-size: 24px;
    line-height: 1.6;
    font-weight: 700;
    padding-bottom: 0.5rem;
    text-align: left;
    padding-left: 23px;
}

.flow_item_head {
    display: flex;
    align-items: center;
    margin-bottom: 1rem; /* タイトルとテキストに余白をつける */
}

.flow_item_txt{
    text-align: left;
}

.ten-ten-img{
    width: 1%;
    margin: 0 auto;
    margin-top: 17px;
}

.flow-matome{
    margin-top: 12px;
}

.form {
    margin-top: 37px;
    margin-bottom: 22px;
}

.cp_qa03 .cp_actab {
    position: relative;
    width: 100%;
    margin: 0 0 1em 0;
    color: #1b2538;
  }
  .cp_qa03 .cp_actab input {
    display: none;
  }
  /* 質問 */
  .cp_qa03 .cp_actab label {
    font-weight: bold;
    line-height: 1.6em;
    position: relative;
    display: block;
    margin: 0 0 0 0;
    padding: 1em 2em 1em 3.5em;
    cursor: pointer;
    text-indent: 1em;
    border-radius: 0.5em;
    background: rgba(27,37,56,0.1);
    text-align: left;
  }
  .cp_qa03 .cp_actab label::before {
    content: 'Q';
    font-family: serif;
    font-size: 1.5em;
    margin-left: -2em;
    padding-right: 0.5em;
  }
  .cp_qa03 .cp_actab label:hover {
    color: #00838f;
    transition: all 0.3s;
  }
  /* --質問の＋アイコン */
  .cp_qa03 .cp_actab label::after {
    position: absolute;
    top: 0;
    right: 0;
    content: '+';
    font-size: 1.7em;
    font-weight: bold;
    line-height: 2em;
    display: inline-block;
    width: 2em;
    height: 2em;
    transition: transform 0.3s;
  }
  /* 答え */
  .cp_qa03 .cp_actab .cp_actab-content {
    position: relative;
    overflow: hidden;
    max-height: 0;
    padding: 0 0 0 2.5em;
    border-radius: 0 0 0.5em 0.5em;
    transition: max-height 0.2s;
  }
  /* .cp_qa03 .cp_actab .cp_actab-content::before {
    position: absolute;
    content: 'A';
    font-family: serif;
    font-size: 1.5em;
    margin: 0.4em 0 0 -1em;
    padding: 0;
  } */
  .cp_qa03 .cp_actab .cp_actab-content p {
    margin: 1em 1em 1em 0;
  }
  /* 質問を開いた時の仕様 */
  /* --答えの高さ */
  .cp_qa03 .cp_actab input:checked ~ .cp_actab-content {
    max-height: 40em;
    border: 10px solid rgba(27,37,56,0.1);
    text-align: left;
  }
  /* 質問をクリックした時のアイコンの動き */
  .cp_qa03 .cp_actab input:checked ~ label {
    color: #00838f;
    border-radius: 0.5em 0.5em 0 0;
  }
  /* 質問をクリックした時の+の動き */
  .cp_qa03 .cp_actab input[type=checkbox]:checked + label::after {
    transform: rotateZ(45deg);
    transform-origin: 50% 50%;
  }

  .cp_qa03{
    margin-bottom: 38px;
  }

    .qa-title {
        width: 25%;
        margin: 0 auto;
        margin-top: 51px;
        margin-bottom: 29px;
    }

.slide-kigyou{
    padding-top: 32px;
    z-index: 1;
}

.gymo-na- {
    width: 66%;
    left: 13px;
    margin-left: 20px;
    /* padding-left: 11px; */
    padding-right: 72px;
    padding-top: 5px;
}

.gym-txt{
    padding: 4px 22px;
    font-size: 17px;
}

.cta-hukidasi{
    position: relative;
    color: white;
    font-size: 18px;
    font-weight: bold;
    margin-top: 12px;
}

.webtore-lp{
    background-color: #fffae5;
    position: relative;
    z-index: 10000;
}

.webtore-naiyou{
    margin-top: -11px;
    padding: 24px 24px;
}

.webtore-tokutyou-contents{
    margin-top: 12px;
}

.webtore-tokutyou-fi {
    margin-bottom: 22px;
    margin-top: 25px;
}

.l-footer {
    padding: 8rem 0;
}
.l-footer {
    padding: 3.9rem 0;
    background: #00091C;
    color: #fff;
    display: block;
}

.l-footer .y-inner {
    padding: 3vw;
}

.y-inner {
    position: relative;
    margin: 0 auto;
    padding: 0 2.5rem;
    width: 100%;
    max-width: 1152px;
    height: inherit;
}

.l-footer__wrap {
    display: flex
;
    justify-content: space-between;
}

.l-footer__info {
    width: 75%;
}

.l-footer__logo {
    width: 10.052rem;
    height: auto;
}

.l-footer__address {
    margin-top: 1.8rem;
    font-size: 2.0833rem;
    letter-spacing: -0.01em;
}

.l-footer__right {
    text-align: right;
}

.l-footer__right .to-top {
    right: 1rem;
    width: 8.7rem;
}

.l-footer__right .to-top {
    position: absolute;
    top: -3px;
    right: 2rem;
    display: inline-block;
    margin-left: auto;
    aspect-ratio: 1;
    width: 4.4rem;
    height: auto;
}

.l-footer a {
    color: #fff;
}

.l-footer__address{
    font-size: 12px;
    text-align: left;
}

.item02 {
    display: flex;
    gap: 17px; /* 要素間の余白 */
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: center; /* 中央揃え。左寄せにしたい場合は left に変更 */
    margin-top: 22px;
  }
  
  .item02 li a {
    text-decoration: none;
    color: inherit; /* リンクの色を継承。必要に応じてカラーを指定 */
    font-size: 12px; /* サイズはお好みで調整 */
  }
  
.partners{
    width: 30%;
    margin: 0 auto;
    margin-top: 24px;
}

.copyright{
    margin-top: 12px;
}

.hiyou-contents {
    background-image: url(../img/hiyou-back.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center 8px;
    margin-top: -395px;
    height: 883px;
    z-index: 1;
    position: relative;
}

.hiyou-naiyou {
    width: 87%;
    margin: 0 auto;
    padding-top: 120px;
}

.wrapper{
    max-width: 430px;
}

.flo_cta {
    position: fixed;
    z-index: 999999;
    width: 100%;
    text-decoration: none;
    text-align: center;
    padding: 20px 0;
    bottom: -20px; /* 下からの距離を適宜調整 */
    height: auto; /* 高さを自動調整 */
    display: flex;
    align-items: center; /* 縦方向に中央揃え */
}


.floating {
    max-width: 400px;
    width: 100%;
    height: auto;
    margin-left: 14px;
}

.hiyou-txt {
    text-align: right;
    font-size: 10px;
    padding-left: 12px;
    margin-right: -21px;
    margin-top: 3px;
}

/* フロータイプ */

.flow-type {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
  }
  
  /* ベースの img スタイル */
  .flow-type img {
    position: absolute;
    top: 50%;
    width: 100%;
    height: auto;
    max-width: none;
    /* translateY のみ初期指定。translateX はアニメで制御 */
    transform: translateY(-50%);
    animation: flow-typo 15s linear infinite;
  }
  
  /* 1枚目：画面右端スタート */
  .flow-type img:nth-child(1) {
    left: 0;
  }
  
  /* 2枚目：100%（1枚目幅）＋ギャップ分 を px/％で指定 */
  .flow-type img:nth-child(2) {
    /* ここを調整：ギャップを 20% にしてみる例 */
    left: 109%;
  }
  
  /* アニメーション：自分の幅＋ギャップ分 だけ左へ移動 */
  @keyframes flow-typo {
    from {
      transform: translateX(0)    translateY(-50%);
    }
    to {
      transform: translateX(-120%) translateY(-50%);
    }
  }
  


/* -------------------------------
   スマホ表示（～48.0625em）で非表示
--------------------------------- */
@media (max-width: 48.0625em) {
    .md-ui,
    .flow-typo {
      display: none !important;
    }
  }
  
  /* -------------------------------
     PC表示（48.0625em～）で表示
  --------------------------------- */
  @media (min-width: 48.0625em) {
    /* 共通 */
    .flow-typo,
    .md-ui {
      position: fixed;
      right: 0;
      bottom: 0;
      display: flex;
    }
  
    /* md-ui 本体 */
    .md-ui {
      top: .7634307692rem;
      left: -32.562138rem;
      z-index: 1;
      width: 14.278177rem;
      height: 49.555677rem;
      margin: auto;
    }
  
    /* 内部レイアウト */
    /* .md-ui__left, */
    .md-ui__right {
      position: relative;
      top: 3.908577rem;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
  
    .logos {
      width: auto;
      min-width: 100%;
    }
  
    /* ボタン */
    .md-ui__left .button {
      margin: 2.1812307692rem 0 0;
    }
    .md-ui__left .button a {
      border-radius: 4.690454rem;
      font-size: 19px;
      line-height: 26px;
      font-weight: bold;
      letter-spacing: 0.1em;
      color: #fff;
      width: 12.815538rem;
      height: 4.380908rem;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: #bb55ff;
      transition: opacity .4s cubic-bezier(.215,.61,.355,1);
    }
    .md-ui__left .button__label {
      padding: 10px;
    }
  
    /* ページトップリンク */
    .md-ui__right {
      top: 6.109062rem;
      right: -32.945469rem;
      margin-left: auto;
    }
    .md-ui__right .pagetop a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.9262153846rem;
      height: 4.9262153846rem;
      padding: .3271846154rem 0 0 .1090615385rem;
      border-radius: 50%;
      background-color: #bb55ff;
      transition: opacity .4s cubic-bezier(.215,.61,.355,1);
    }
    .md-ui__right .pagetop img {
      width: 1.8540461538rem;
      height: 1.5268615385rem;
      display: block;
    }
  
    /* スクロールバー */
    .md-ui__right .scrollbar {
      position: relative;
      margin: 1.0906153846rem 0 0 .0545307692rem;
    }
    .md-ui__right .scrollbar__line {
      width: 1.9085769231rem;
      height: 23.704862rem;
    }
    .md-ui__right .scrollbar__line::before {
      content: "";
      display: block;
      width: .0545307692rem;
      height: 100%;
      margin: auto;
      background-color: #bb55ff;
    }
    .md-ui__right .scrollbar__handle,
    .md-ui__right .scrollbar__handle::before {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 1.9085769231rem;
      height: 0;
      border-radius: 50%;
    }
    .md-ui__right .scrollbar__handle::before {
      right: 0;
      bottom: 0;
      width: .7089rem;
      height: .7089rem;
      content: "";
      background-color: #bb55ff;
      margin: auto;
    }
  }
  

  .pc-left-logo {
    width: 20%;
    margin-right: 0;
    margin-left: 16px;
    min-width: 300px;
    margin-top: 4px;
    margin-bottom: 46px;
}

.pc-left-mokuji {
    display: grid
;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, auto);
    gap: 12px 0px;
    width: 100%;
    /* max-width: 851px; */
    /* margin: 0 auto; */
    padding: 0;
    list-style: none;
    margin-left: -18px;
    width: 420px;
    text-align: left;
    font-size: 19px;
}

.pc-fixed-nav-wrap .pc-fixed-side-l__nav:first-of-type {
    margin-right: min(4.2vw, 19px);
}

.pc-fixed-nav-wrap .pc-fixed-side-l__nav .pc-fixed-side-l__nav__item:not(:last-of-type) {
    margin-bottom: 20px;
}

.md-ui__left {
    position: absolute;
    top: 50%;
    left: 62%;
    padding-right: 10.34%;
    transform: translate(-50%, -50%);
    width: 100%;
    font-weight: bold;
}

.pc-left-mokuji-item a {
    font-size: min(15px, 20px);
    color: #bb55ff;
    position: relative;
}

.left-button{
    display: flex;
    gap: 24px;
    margin-left: -64px;
}

.md-ui__left .button.lp a {
    background-color: #F20083;
}

/* ————————————————————————————————————————————————————
   ■ デフォルト（大きめのPC画面） 
——————————————————————————————————————————————————— */
.md-ui__left {
    position: absolute;
    top: 50%;
    left: 62%;                     /* 元々の位置 */
    transform: translate(-50%, -50%);
    width: 47.2781769231rem;       /* 元々の幅 */
  }
  
  /* ————————————————————————————————————————————————————
     ■ 1200px 以下（75em 以下） 
  ——————————————————————————————————————————————————— */
  @media (max-width: 75em) {       /* 約 1200px */
    .md-ui__left {
      left: 58%;                   /* 少し内側に寄せる */
      width: 40rem;                /* 幅を少し狭く */
    }
    .pc-left-mokuji {
        display: grid
    ;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(4, auto);
        gap: 12px 3px;
        width: 100%;
        /* max-width: 851px; */
        /* margin: 0 auto; */
        padding: 0;
        list-style: none;
        margin-left: -5px;
        width: 382px;
        text-align: left;
        font-size: 19px;
    }

    .left-button {
        display: flex
    ;
        gap: 12px;
        margin-left: -35px;
    }

    .pc-left-logo {
        width: 20%;
        margin-right: 0;
        margin-left: 30px;
        min-width: 300px;
        margin-top: 4px;
        margin-bottom: 46px;
    }
    
  }
  
  /* ————————————————————————————————————————————————————
     ■ 769px 以下（48.0625em 以下） 
        — md-ui 全体を非表示
  ——————————————————————————————————————————————————— */
  @media (max-width: 1363px) {  /* 約 769px */
    .md-ui,
    .flow-typo {
      display: none !important;
    }
  }

/* SVG アイコンを非表示に */
.hamburger-morph__icon {
    display: none;
  }
  
  /* テキストのスタイル */
  .hamburger-label {
    color: #fff;
    font-size: 1rem;
    font-weight: bold;
    /* ボタン内でセンター寄せ */
    display: inline-block;
    line-height: 1;
  }
  
  /* ボタンのサイズ調整 */
  .hamburger-morph {
    position: fixed;
    top: 2px;
    right: 20px;
    z-index: 1000;
    width: 48px;
    height: 48px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: white;
    font-size: 17px;
    font-weight: bold;
}
  
  .hamburger-morph__line {
    fill: none;
    stroke: white;
    stroke-width: 6;
    transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
                stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .hamburger-morph__line:nth-child(1) {
    stroke-dasharray: 60 207;
  }
  
  .hamburger-morph__line:nth-child(2) {
    stroke-dasharray: 60 60;
  }
  
  .hamburger-morph__line:nth-child(3) {
    stroke-dasharray: 60 207;
  }
  
  .hamburger-morph.active .hamburger-morph__line:nth-child(1) {
    stroke-dasharray: 90 207;
    stroke-dashoffset: -134;
  }
  
  .hamburger-morph.active .hamburger-morph__line:nth-child(2) {
    stroke-dasharray: 1 60;
    stroke-dashoffset: -30;
  }
  
  .hamburger-morph.active .hamburger-morph__line:nth-child(3) {
    stroke-dasharray: 90 207;
    stroke-dashoffset: -134;
  }
  
  .nav-morph {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(29, 29, 31, 0.98);
    clip-path: circle(0% at calc(100% - 44px) 44px);
    transition: clip-path 0.7s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 900;
  }
  
  .nav-morph.active {
    clip-path: circle(150% at calc(100% - 44px) 44px);
  }
  
  .nav-morph__wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
  }
  
  .nav-morph__list {
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: center;
  }
  
  .nav-morph__item {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }
  
  .nav-morph.active .nav-morph__item {
    opacity: 1;
    transform: translateY(0);
  }
  
  .nav-morph.active .nav-morph__item:nth-child(1) { transition-delay: 0.3s; }
  .nav-morph.active .nav-morph__item:nth-child(2) { transition-delay: 0.4s; }
  .nav-morph.active .nav-morph__item:nth-child(3) { transition-delay: 0.5s; }
  .nav-morph.active .nav-morph__item:nth-child(4) { transition-delay: 0.6s; }
  .nav-morph.active .nav-morph__item:nth-child(5) { transition-delay: 0.7s; }
  .nav-morph.active .nav-morph__item:nth-child(6) { transition-delay: 0.8s; }
  .nav-morph.active .nav-morph__item:nth-child(7) { transition-delay: 0.9s; }
  .nav-morph.active .nav-morph__item:nth-child(8) { transition-delay: 1.0s; }
  
  .nav-morph__link {
    position: relative;
    display: inline-block;
    padding: 20px;
    font-size: 20px;
    color: #fff;
    text-decoration: none;
    overflow: hidden;
  }
  
  .nav-morph__text,
  .nav-morph__hover {
    display: block;
    transition: transform 0.3s ease;
  }
  
  .nav-morph__hover {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    transform: translateY(0%);
  }
  
  .nav-morph__link:hover .nav-morph__text {
    transform: translateY(-50%);
  }
  
  .nav-morph__link:hover .nav-morph__hover {
    transform: translateY(-50%);
  }

/* デフォルトは何も動かさない */
.left-button .button {
    display: inline-block;       /* transform を効かせるため inline-block が安全 */
    transition: transform 0.3s ease;
    transform: translateY(0);
  }
  
  /* ホバーしたら−5px上に */
  .left-button .button:hover {
    transform: translateY(-5px);
  }

/* リストリンクを inline-block にして疑似要素を使えるように */
.pc-left-mokuji-item a {
    position: relative;
    display: inline-block;
    text-decoration: none; /* 元の下線があれば消す */
  }
  
  /* 擬似要素で下線を用意 */
  .pc-left-mokuji-item a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;          /* テキスト下からの距離を調整 */
    width: 0;
    height: 2px;           /* 線の太さ */
    background: currentColor;
    transition: width 0.3s ease;
  }
  
  /* ホバー時に線を右へ伸ばす */
  .pc-left-mokuji-item a:hover::after {
    width: 100%;
  }
  
  .tokuten-img {
    margin-top: -35px;
    z-index: 3;
    position: relative;
    margin-bottom: 29px;
}