@charset "utf-8";

/* --------------------------------
変数
-----------------------------------*/

:root {
  --font-arial: Arial, sans-serif;
  --font-arial-b: "Arial Black", Gadget, sans-serif;
  --color-darkblue: #001050;
  --color-darkred: #8B001F;
  --color-blue: #1D2D7C;
  --color-red: #C50030;
  --color-gray: #EDEDED;
  --color-white: #fff;
  --color-bggray: #F4F4F8;

  /* ファンドごとの色定義 */
  --color-fund-jiyu:#C3A14A;
  --color-fund-hengen:#C7823D;
  --color-fund-wariyasu:#5A9FC6;
  --color-fund-gensen:#6F81B0;
}
.need-jiyu, .fund-jiyu, .fund_mn-jiyu { --theme-color: var(--color-fund-jiyu); }
.need-hengen, .fund-hengen, .fund_mn-hengen { --theme-color: var(--color-fund-hengen); }
.need-wariyasu, .fund-wariyasu, .fund_mn-wariyasu { --theme-color: var(--color-fund-wariyasu); }
.need-gensen, .fund-gensen, .fund_mn-gensen { --theme-color: var(--color-fund-gensen); }

/* -----------------------------------
   フェードアップアニメーション
----------------------------------- */
.fade-up{
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1s ease, transform 1s ease;
  will-change: opacity, transform;
}
.fade-up.active{
  opacity: 1;
  transform: translateY(0);
}

/* -----------------------------------
   mainvisual
----------------------------------- */
.mainvisual {
    position: relative;
    width: 100%;
}
.mainvisual .mainvisual-bg .mainvisual-bg02{
    position: absolute;
    right: 0;
    top:0;
    z-index: 5;
}
.mainvisual .mainvisual-title {
    left: 9.7%;
    position: absolute;
    top: 50%;
    width: 40%;
    z-index: 4
}
.mainvisual .mainvisual-title.fade-up {
    opacity: 0;
    transform: translateY(calc(-50% + 40px));
    transition: opacity 1s ease, transform 1s ease;
    will-change: opacity, transform;
}
.mainvisual .mainvisual-title.fade-up.active {
  opacity: 1;
  transform: translateY(-50%);
}
.mainvisual .mainvisual-title .title{
    margin-bottom: clamp(15px, 1.736vw, 25px);
    text-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
    font-size: 4.7vw;
    font-weight: bold;
    line-height: 1.1;
    color:#fff;
    font-feature-settings: "palt";
}
.mainvisual .mainvisual-title .sub_title {
    position: relative;
    display: block;
    padding: clamp(2px, 0.694vw, 10px) clamp(10px, 1.11vw, 16px);
    font-size: 1.18vw;
    font-weight: bold;
    line-height: 1;
    color:#fff;
    letter-spacing: 0.04em;
    font-feature-settings: "palt";
}
.mainvisual .mainvisual-title .sub_title::before {
    content: "";
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    transform: skewX(-20deg);
    z-index: -1;
    background: linear-gradient(90deg, rgba(197, 0, 48, 1) 0%, rgba(197, 0, 48, 0.8) 20%, rgba(197, 0, 48, 0.8) 50%, rgba(197, 0, 48, 0.5) 100%);
}

@media screen and (max-width: 767px) {
    .mainvisual .mainvisual-title{
        top:52%;
        left: auto;
        right: 3vw;
        width: 71%;
    }
    .mainvisual .mainvisual-title .title{
        text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.25);
        font-size: 8.9vw;
        text-align: right;
    }
    .mainvisual .mainvisual-title .sub_title{
        padding: 0;
        font-size: clamp(12px, 3.9vw, 22px);
        letter-spacing: 0.01em;
        font-feature-settings: "palt";
    }
    .mainvisual .mainvisual-title .sub_title::before {
        background: none;
    }
    .mainvisual .mainvisual-title .sub_title span {
        display: inline-block;
        position: relative;
        margin-bottom: 3px;
        padding: 3px clamp(9px, 1.38vw, 20px);
    }
    .mainvisual .mainvisual-title .sub_title span:first-of-type {
        margin-left: 0.55em;
    }
    .mainvisual .mainvisual-title .sub_title span::before {
    content: "";
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    transform: skewX(-20deg);
    z-index: -1;
    background: linear-gradient(90deg, rgba(197, 0, 48, 1) 0%, rgba(139, 0, 31, 1) 100%);
    }


}


/* -----------------------------------
   コンテンツタイトル
----------------------------------- */
/* 背景 */
section.intro,
section.report,
section.fund,
section.manager{
    padding-top:clamp(46px, 8.333vw, 120px);
}
section.intro,
section.report,
section.fund{
    background: url(../img/bg_title.png) no-repeat;
    background-size: 100% auto;
    background-position: center clamp(26px, 4.653vw, 67px);
}
section.manager {
    background: url(../img/bg_title-w.png) no-repeat;
    background-size: 100% auto;
    background-position: center clamp(26px, 4.653vw, 67px);
    background-color: var(--color-bggray);
    padding-bottom: clamp(45px, 10.069vw, 145px);
    overflow-x: hidden;
}
@media screen and (min-width: 1440px) {
    section.intro,
    section.report,
    section.fund,
    section.manager {
        background-size: 1440px auto;
    }
}
/* コンテンツタイトル */
.title-wrap{
    text-align: center;
    margin-bottom:clamp(28px, 3.194vw, 46px);
}
.e-title{
background: url(../img/e-title.svg) no-repeat;
background-position: center;
background-size: contain;
height: clamp(84px, 8.403vw, 121px);
line-height: clamp(84px, 8.403vw, 121px);
font-size: clamp(25px, 2.431vw, 35px);
font-weight: bold;
color:var(--color-darkblue);
font-family: var(--font-arial);
}
.e-title::first-letter{
color:var(--color-darkred);
}
.e-title-main{
    padding-top:clamp(17px, 2.083vw, 30px);
    margin-bottom: 15px;
    text-align: center;
    font-weight: bold;
    color:var(--color-blue);
    font-size: clamp(25px, 3.194vw, 46px);
    line-height: 1.2;
}
.e-title-main .e-title-main_red{
    color: var(--color-red);
    font-size: clamp(35px, 3.889vw, 56px);
}
.e-title-sub {
  position: relative;
  display: inline-block;
  padding: 1px 0;
  width: clamp(190px, 18.75vw, 270px);
  color: #fff;
  font-size: clamp(13px, 1.042vw, 15px);
  font-weight: bold;
}
.e-title-sub::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-blue);
  transform: skewX(-20deg);
  z-index: -1;
}

/* -----------------------------------
　　Reasons
----------------------------------- */
.intro{
    margin-top: 3.472vw;
}
.intro .e-title-main{
    margin-bottom: clamp(10px, 1.736vw, 25px);
    font-size: clamp(27px, 3.194vw, 46px);
}
.intro .e-title-main .e-title-main_s{
    font-size: clamp(18px, 2.083vw, 30px);
}
.intro_read {
    max-width: 860px;
    margin: 0 auto clamp(47px, 6.25vw, 90px);
}
.intro_wrap{
    position: relative;
    margin-bottom: clamp(32px, 5.069vw, 73px);
    background: rgba(255, 255, 255, 0);
    background: linear-gradient(180deg,rgba(255, 255, 255, 0) 0%, rgba(239, 240, 246, 1) 100%);
    background-size: 100% 660px;
    background-position: bottom;
    background-repeat: no-repeat;
}
.intro_wrap::before{
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 37.014vw;
    height: 34.514vw;
    background: url(../img/bg-japan.svg) no-repeat;
    background-size: contain;
    background-position: bottom right;
}
.intro_wrap .flex{
    display: flex;
    flex-wrap:wrap;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1070px;
    margin:0 auto;
    padding-bottom: clamp(22px, 3.819vw, 55px);
}
.intro_wrap .flex.reverse{
    flex-direction: row-reverse;
}
.intro_wrap .note{
    display: block;
}
.intro_wrap .note .note_2word{
    padding-left: 3em;
    text-indent: -3em;
}
.intro_wrap .note li{
    padding-left:1em;
	text-indent:-1em;
    font-size: 1.1rem;
    line-height: 1.4;
}
.intro_wrap .note.note02 li{
    padding-left:25px;
	text-indent:-25px;
}
.intro_wrap .note.note02 li span{
    display: inline-block;
    width: 25px;
    padding-left: 25px;
}
.intro_wrap_txt{
    width: 46.72%;
}
.intro_wrap_txt .intro_wrap_txt_box{
    display: block;
    margin-bottom: clamp(18px, 3.056vw, 44px);
    }
.intro_wrap_txt .intro_wrap_txt_box > div {
  display: block;
}
.intro_wrap_txt .intro_wrap_txt_box img{
    margin-bottom: clamp(18px, 2.569vw, 37px);
}
.intro_wrap_txt .intro_wrap_txt_box.intro_wrap_01 img{
    width: clamp(119px, 22.083vw, 318px);
}
.intro_wrap_txt .intro_wrap_txt_box.intro_wrap_02 img{
    width: clamp(137px, 25.486vw, 367px);
}
.intro_wrap_txt .intro_wrap_txt_box.intro_wrap_03 img{
    width: clamp(139px, 25.833vw, 373px);
}
.intro_wrap_txt .intro_wrap_txt_box h3{
    margin-bottom: clamp(10px, 1.319vw, 19px);
    font-weight: bold;
    font-size: clamp(20px, 2.847vw, 41px);
    color: var(--color-blue);
    line-height: 1.4;
    font-feature-settings: "palt";
}
.intro_wrap_txt .intro_wrap_txt_box.intro_wrap_02{
    text-align: right;
}
.intro_wrap_txt .intro_wrap_txt_box .box_head {
  display: block;
}
.intro_wrap_txt .intro_wrap_txt_box .box_head h3 span{
    display: inline-block;
    white-space: nowrap;
}
.intro_wrap_txt .intro_wrap_txt_box .box_head h3 span.h3_span {
    display: inline-block;
    font-size: clamp(37px, 4.167vw, 60px);
}
.intro_wrap_txt .intro_wrap_txt_box .box_head h3 span.h3_first::first-letter{
color:var(--color-red);
}
.intro_wrap_txt .intro_wrap_txt_box.intro_wrap_03 .box_head h3 span.h3_first{
    line-height: 1.1;
}
.cross-icon {
  width: clamp(18px, 2.361vw, 34px);
  height: clamp(18px, 2.361vw, 34px);
  max-width: 100%;
  stroke-width: 1.5;
  stroke-linecap: butt;
  display: inline-block;
  vertical-align: 0.1em;
  margin: 0 0.347vw;
  color: #002277;
}
@media screen and (max-width: 767px) {
  .cross-icon {
    width: 18px;
    height: 18px;
    margin: 0;
    vertical-align: 0.2em;
  }
}
.intro_wrap_txt p{
    max-width: 495px;
    text-align: justify;
	text-justify: inter-character;
}
.intro_wrap_txt p strong{
    color:var(--color-red);
}
.intro_wrap_fig.intro_wrap_fig01{
    width: 48.78%;
    margin-bottom: clamp(18px, 3.056vw, 44px);
}
.intro_wrap_fig.intro_wrap_fig01-2{
    min-width: 79.4%;
    margin: 0 auto 15px;
}
.intro_wrap_fig.intro_wrap_fig02{
    width: 42.99%;
}
.intro_wrap_fig.intro_wrap_fig03{
    width: 45.32%;
}
.intro_wrap .intro_wrap_fig figure.figure01{
    max-width: 522px;
    margin: 0 auto 20px;
}
.intro_wrap .intro_wrap_fig figure.figure01-2{
    max-width: 850px;
    margin:0 auto 15px;
}
.intro_wrap .intro_wrap_fig figure.figure02{
    max-width: 460px;
    margin:0 auto;
}
.intro_wrap .intro_wrap_fig figure.figure03{
    max-width: 485px;
    margin: 0 auto clamp(18px, 3.056vw, 44px);
}
.intro_wrap_fig figcaption{
    text-align: center;
    font-weight: bold;
    font-size: clamp(14px, 1.389vw, 20px);
}
.intro_wrap_fig.intro_wrap_fig01-2 figcaption,
.intro_wrap_fig.intro_wrap_fig02 figcaption{
    margin: clamp(11px, 1.458vw, 21px) auto clamp(17px, 2.431vw, 35px);
}
.intro_wrap_fig figcaption span{
    display: block;
    font-size: clamp(12px, 0.972vw, 14px);
    font-weight: normal;
}




@media screen and (max-width: 767px) {
    .intro{
    margin-top: 0;
}
    .intro_wrap{
    min-height: 158px;
    background-size: 100% 158px;
    }
    .intro_wrap::before{
        background: none;
    }
    .intro .e-title-main .e-title-main_s{
        line-height: 1.6;
    }
    .intro .e-title-main .e-title-main_red{
        line-height: 1;
    }

    .intro_wrap_txt,
    .intro_wrap_fig.intro_wrap_fig01,
    .intro_wrap_fig.intro_wrap_fig02,
    .intro_wrap_fig.intro_wrap_fig03 {
    width: 100%;
    max-width: 100%;
    }
    .intro_wrap_txt .intro_wrap_txt_box .box_head {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    }
    .intro_wrap_txt .intro_wrap_txt_box h3{
        line-height: 1.25;
        margin-bottom: 0;
    }
    .intro_wrap_txt .intro_wrap_txt_box.intro_wrap_01 h3{
        font-size: clamp(26px, 2.847vw, 41px);
    }
    .intro_wrap_txt .intro_wrap_txt_box.intro_wrap_02{
        text-align: left;
    }
    .intro_wrap_txt .intro_wrap_txt_box img {
    margin-bottom: 0;
    margin-right: 14px;
    }
  .intro_wrap_txt p {
      max-width: 100%;
  }
    .intro_wrap .intro_wrap_txt p{
    max-width: 100%;
    }
    .intro_wrap .intro_wrap_fig figure.figure01{
        margin:0 auto 10px;
    }
    .intro_wrap .intro_wrap_fig figure.figure01-2 {
    max-width: 460px;
    margin: 0 auto;
    }
    .intro_wrap_fig.intro_wrap_fig01-2{
        margin: 0 auto;
    }
    .intro_wrap .note li.sp-indent span{
        display: inline-block;
    }
}



/* -----------------------------------
　　Market report
----------------------------------- */
.report{
    padding-bottom: clamp(64px, 8.056vw, 116px);
}
.report_read{
    max-width: 860px;
    margin:0 auto 38px;
}
/* PDF-linklist */
.linklist{
    margin:0 auto 60px;
    max-width: 860px;
    border-top: 1px solid #d7d7d7;
}
.linklist li {
    border-bottom: 1px solid #d7d7d7;
    font-size: 1.3rem;
    transition: all ease 0.3s;
}
.linklist li a{
    position: relative;
    padding:18px 0;
    transition: all ease 0.3s;
}
@media (hover: hover) {
.linklist li:hover {
    border-bottom: 1px solid #000;
}
.linklist li a:hover{
    padding-left: 5px;
}
}
.linklist li.linklist-pdf a:after{
    content: "";
    position: absolute;
    top:21px;
    right: 0;
    background: url(../img/icon-pdf.svg) no-repeat;
    background-size: contain;
    width: 45px;
    height: 21px;

}
.linklist li a time{
    width: 100px;
    font-weight: bold;
    color:#838383;
    line-height: 1.8;
}
.linklist li a .linklist_tit {
    width: calc(100% - 160px);
    line-height: 1.5;
}
.linklist li a .linklist_tit span{
    font-weight: bold;
    font-size: 1.6rem;
    }
@media screen and (max-width: 767px) {
    .linklist li a{
        padding: 14px 0;
    }
    .linklist li a .linklist_tit{
        width: calc(100% - 50px);
    }
    .linklist li.linklist-pdf a:after{
        top:40px;
    }
}

/* -----------------------------------
　　feature
----------------------------------- */
.feature{
    position: relative;
    padding-top:clamp(46px, 5.972vw, 86px);
    padding-bottom: clamp(105px, 11.111vw, 160px);
    background: url(../img/bg-japan-30.svg) no-repeat;
    background-position: center bottom;
    background-size: contain;
    background-color:#EDEEF5;
}
.feature .title-wrap{
    position: relative;
}
.feature .e-title-main{
    padding-top: 5px;
    font-size: clamp(31px, 3.194vw, 46px);
}
.feature::before,
.feature::after {
    content: '';
    display: inline-block;
    position: absolute;
    width: clamp(300px, 62.431vw, 899px);
    height: clamp(73px, 15.208vw, 219px);
    background: url(../img/bg-feature.png) no-repeat;
    background-size: contain;
}
.feature::before {
    top: 0;
    left: 0;
    background-position: top left;
}
.feature::after {
    bottom: 0;
    right: 0;
    background-position: top left;
    transform: rotate(180deg);
}
.feature .feature_txt{
    position: relative;
    margin-bottom:clamp(34px, 4.861vw, 70px);
    font-weight: bold;
    text-align: center;
    font-size: clamp(15px, 1.389vw, 20px);
    z-index: 5;
}
.feature .group{
    background-color: #fff;
    padding:clamp(30px, 3.056vw, 44px) clamp(22px, 3.611vw, 52px) clamp(30px, 3.611vw, 52px);
    margin-bottom: clamp(36px, 2.778vw, 40px);
}
.feature .group_logo_mizuho{
    display: block;
    width: 37.26%;
    max-width: 386px;
}
.feature .group_logo_mizuho_logo{
    display: block;
    width: 48.3%;
    max-width: 500px;
}
.feature .group_logo_kakeru{
    display: block;
    width:3.29%;
}
.feature .group_logo_daiichi{
    display: block;
    width: 29.44%;
    max-width: 305px;
}
.feature .group_logo_daiichi_logo{
    display: block;
    width: 23.2%;
    max-width: 240px;
}
.feature .group .group_logo{
    display: flex;
    justify-content: center;
    align-items: center;
    gap:5%;
    margin-bottom: clamp(24px, 2.569vw, 37px);
}
.feature .group .group_mainlogo{
    display: block;
    padding: clamp(32px, 3.472vw, 50px) clamp(52px, 7.917vw, 114px);
    border:2px solid #EDEEF5;
    border-radius: 10px;
    background-color: #fff;
    box-shadow: 4px 4px 4px 0 rgba(20, 0, 120, 0.08);
}
.feature-note{
    display: flex;
    justify-content: center;
    gap: 1em;
    position: relative;
    width: 100%;
    top:clamp(63px, 6.25vw, 90px);
    text-align: center;
    font-size: 1.1rem;
}
@media screen and (max-width: 767px) {
.feature{
    background-position: center 30px;
    padding-bottom: 50px;
}
.feature .title-wrap::before{
    width: 100%;
    background: url(../img/sp-100yeras.svg) no-repeat;
    background-size: 100% 100%;
}
.feature .group .group_logo{
    display: block;
}

.feature .group_logo_kakeru{
    margin:15px auto;
    width:28px;
}
.feature .group_logo_mizuho{
    margin:0 auto;
    width: 100%;
    max-width: auto;
    text-align: center;
}
.feature .group_logo_mizuho img{
    height: clamp(15px, 6.667vw, 25px);
    width: auto;
}
.feature .group_logo_mizuho_logo{
    margin:0 auto;
    width: 100%;
}
.feature .group_logo_daiichi{
    margin:0 auto;
    max-width: auto;
    width: 100%;
    text-align: center;
}
.feature .group_logo_daiichi img{
    height: clamp(15px, 6.667vw, 25px);
    width: auto;
}
.feature .group_logo_daiichi_logo{
    margin:0 auto;
    max-width: 250px;
    width: 50%;
}
.feature .group .group_mainlogo{
    margin:0 auto;
    max-width: 400px;
}
.feature-note{
    display: block;
    top:13px;
    text-align: left;
}
.feature-note li {
    padding-left: 1em;
    text-indent: -1em;
    font-size: 1.1rem;
    line-height: 1.4;
}

}


/* カウントアップ
----------------------------------- */
.countUp {
    display: inline-block;
    font-variant-numeric: tabular-nums;
    font-size: clamp(70px, 5.556vw, 90px);
    font-family: var(--font-arial);
    color: var(--color-blue);
    margin-bottom: 16px;
    line-height: 1;
}
.features-list {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    margin-right: 13px;
    justify-content: space-between;
    gap: 30px clamp(10px, 2.083vw, 30px);
    z-index: 5;
}
.feature-item {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 31.1%;
    font-weight: bold;
}
.feature-header {
    position: absolute;
    width: clamp(135px, 10.417vw, 150px);
    height: clamp(136px, 10vw, 144px);
    z-index: 3;
}
.feature-header.feature-header01 {
    background: url(../img/feature-header01.png) no-repeat;
    background-size: contain;
}
.feature-header.feature-header02 {
    background: url(../img/feature-header02.png) no-repeat;
    background-size: contain;
}
.feature-header.feature-header03 {
    background: url(../img/feature-header03.png) no-repeat;
    background-size: contain;
}

/* 白いカード部分 */
.feature-body {
    position: relative;
    top:46px;
    left: 13px;
    background-color: #fff;
    padding: 51px clamp(25px, 2.083vw, 30px) 22px;
    flex-grow: 1;
    text-align: center;
    box-shadow: 4px 4px 4px 0 rgba(0,0,0,0.15);
}
.feature-title {
    margin: 0 0 16px 0;
    font-size: clamp(17px, 1.528vw, 22px);
    font-weight: bold;
    font-feature-settings: "palt";
    line-height: 1.4;
    word-break: keep-all;
}
.feature-title span{
    display: block;
}
.feature-text {
    font-weight: normal;
    text-align: justify;
	text-justify: inter-character;
}
.feature-text_note{
    padding-top: 5px;
    text-align: left;
    font-size: 1.1rem;
    font-weight: normal;
    padding-left:1em;
	text-indent:-1em;
}
.feature-figure span{
    display: inline-block;
    position: relative;
    bottom: 3px;
    padding: 0 4px;
    font-size: 1.8rem;
}

@media screen and (max-width: 767px) {
    .countUp{
        font-size: 80px;
    }
    .features-list {
        flex-direction: column;
        gap: 69px;
    }
    .feature-item {
        width: 100%;
    }
    .feature-body {
        padding: 60px 20px 25px;
    }
    .feature-title span{
    display: inline-block;
    white-space: nowrap;
}
}


/* -----------------------------------
　　背景固定
----------------------------------- */
.parallax-box-1 {
  position: relative;
  clip-path: inset(0);
  width: 100%;
  height: 400px;
  box-sizing:border-box;
}
.parallax-box-1::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  z-index: -10;
  width:100%;
  height:100%;
  background-image: url(../img/image.jpg);
  background-size: cover;
  background-position: center;
}
@media screen and (max-width: 767px) {
  .parallax-box-1 {
    height: 43.467vw;
    clip-path: none;
    overflow: hidden;
  }

  .parallax-box-1::after {
    position: absolute;
    background-size: 110%;
    z-index: 1;
  }
}

/* -----------------------------------
　　Fund
----------------------------------- */
section.fund{
    padding-bottom: clamp(50px, 4.861vw, 70px);
}
.fund_read{
    max-width: 860px;
    margin:0 auto clamp(35px, 3.611vw, 52px);
}
.fund-wrap {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(35px, 3.611vw, 52px) 16px;
    align-items: start;
}
.fund-note {
    padding-top: clamp(35px, 3.611vw, 52px);
    text-align: left;
    font-size: 1.2rem;
    font-weight: normal;
    padding-left: 1em;
    text-indent: -1em;
}

.bubble-outer,
.bubble-inner {
    clip-path: polygon(16px 0, 100% 0, 100% 100%, 0 100%, 0 32px);
}
.needs-bubble {
    position: relative;
    filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.15));
}
.bubble-outer {
    padding: 1px;
    position: relative;
    height: 87px;
}
.bubble-inner {
    background-color: #fff;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0 10px;
}
.needs-bubble::after {
    content: "";
    position: absolute;
    bottom: -7px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg) skew(-15deg, -15deg);
    width: 14px;
    height: 14px;
    background-color: #fff;
    border-right: 1px solid;
    border-bottom: 1px solid;
    border-color: inherit;
    z-index: 1;
}
.needs-label {
    flex-shrink: 0;
    position: absolute;
    left: 5px;
    padding-bottom: 5px;
    writing-mode: vertical-lr;
    transform: rotate(180deg);
    font-weight: bold;
    font-size: 1.8rem;
    font-family: var(--font-arial);
    letter-spacing: 0;
}
.bubble-text {
    width: 100%;
    padding-bottom: 2px;
    font-weight: bold;
    font-size: 1.8rem;
    line-height: 1.4;
    text-align: center;
    font-feature-settings: "palt";
}
.fund-btn {
    appearance: none;
    border: none;
    padding: 0;
    margin-top: 6px;
    width: 100%;
    min-height: 50px;
    font-family: inherit;
    display: flex;
    align-items: stretch;
    text-decoration: none;
    color: #fff;
    transition: opacity 0.2s;
    text-align: left;
    cursor: pointer;
}
@media (hover: hover) {
.fund-btn:hover {
    opacity: 0.8;
}
}
.fund-btn:first-of-type {
    margin-top: 19px;
}
.btn-icon-area {
    width: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    pointer-events: none;
}
.btn-icon-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}
.btn-icon-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.btn-text {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-weight: bold;
    font-size: 1.4rem;
    padding: 8px 5px 8px 0;
    line-height: 1.3;
    pointer-events: none;
}
.btn-plus {
    width: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 27px;
    font-weight: normal;
    background-color: rgba(0,0,0,0.15);
    flex-shrink: 0;
    pointer-events: none;
}

/* --- カラーバリエーション --- */
.fund-col .bubble-outer {
    background-color: rgba(0,0,0,0.08);
    background-color: color-mix(in srgb, var(--theme-color) 50%, transparent);
}
.fund-col .needs-bubble::after {
    border-color: rgba(0,0,0,0.08);
    border-color: color-mix(in srgb, var(--theme-color) 50%, transparent);
}
.fund-col .bubble-text {
    color: var(--theme-color);
}
.fund-col .fund-btn {
    background-color: var(--theme-color);
}
.needs-label{
    color:var(--theme-color);
    opacity: 0.15;
}

.btn-plus {
    border-left: 1px solid rgba(255,255,255,0.1);
}
@media screen and (max-width: 1140px) {
    .fund-wrap {
        grid-template-columns: repeat(2, 1fr);
    }
    .fund-btn:first-of-type {
        margin-top: 14px;
    }
    .bubble-outer{
        height: 77px;
    }
}
@media screen and (max-width: 767px) {
    .fund-wrap {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

/* モーダル */
.bottom_panel {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background: #fff;
  box-shadow: 0 -4px 20px rgba(0,0,0,.15);
  transform: translateY(100%);
  transition: transform .3s ease;
  z-index: 9999;
}
.bottom_panel.is-open {
  transform: translateY(0);
}
.fund_panel {
  display: none;
}
.fund_panel.is-active {
  display: block;
  border-top: 6px solid var(--theme-color);
}

.panel_inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 15px 0 20px;
  display: flex;
  justify-content: center;
  gap: 27px;
}
.fund_panel .panel_left{
    width: 9.2%;
}
.fund_panel .panel_left img{
    border: 1px solid #dddddd;
}
.fund_panel .panel_center{
    width: 695px;
}
.panel_inner .needs_text{
    margin-bottom: 8px;
    font-size: 1.4rem;
}
.panel_inner .needs_text::before{
    display: inline-block;
    position: relative;
    top: -1px;
    content: 'needs';
    padding: 1px 0;
    background-color:var(--theme-color);
    clip-path: polygon(2px 0, 100% 0, 100% 100%, 0 100%, 0 4px);
    margin-right: 7px;
    color:#fff;
    line-height: 15px;
    height: 15px;
    width: 40px;
    font-family: var(--font-arial);
    font-weight: bold;
    font-size: 1.1rem;
    text-align: center;
    text-indent: 0;
}
.panel_inner .panel_title{
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
.panel_inner .panel_title h3{
    font-size: 1.6rem;
    font-weight: bold;
    margin-bottom: 5px;
}
.panel_inner .panel_title .date{
 font-size: 1.2rem;
}
.panel_inner .panel_price{
    display: flex;
    width: 100%;
    margin-bottom: 17px;
    font-size: 1.4rem;
}
.panel_inner .panel_price .panel_price_box{
    padding-left: clamp(10px, 1.736vw, 25px);
    margin-left: clamp(10px, 1.736vw, 25px);
    white-space: nowrap;
    border-left: 1px solid #000;
}
.panel_inner .panel_price .panel_price_box:first-of-type{
    padding-left: 0;
    margin-left: 0;
    border-left:none
}
.panel_inner .panel_price .panel_price_box strong{
    display: inline-block;
    padding:0 5px 0 10px;
    font-size: 2.0rem;
    line-height: 1;
}
.panel_inner .panel_price .panel_price_box strong.valueUp{
    color:var(--color-red)
}
.panel_inner .panel_price .panel_price_box strong.valueDown{
    color:var(--color-blue)
}
.panel_inner .panel_btn_box{
    display: flex;
    justify-content: space-between;
}
.panel_inner .panel_btn_box .panel_btn{
    display: inline-block;
    position: relative;
    width: 32%;
    padding:9px 0 9px 1em;
    background-color: var(--color-blue);
    text-align: center;
    color:#fff;
    font-weight: bold;
    font-size: 1.4rem;
}
.panel_inner .panel_btn_box .panel_btn:before{
  content: '';
  display: inline-block;
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
}
.panel_inner .panel_btn_box .panel_btn_down:before{
  transform: translateX(-50%) rotate(45deg);
  top:12px;
  left:20px;
  width: 8px;
  height: 8px;
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
}
.panel_inner .panel_btn_box .panel_btn_target:before{
  width: 15px;
  height: 15px;
  background: url(../img/icon-panel-target.svg) no-repeat;
  background-size: contain;
}
.panel_close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 70px;
  height: 70px;
  background: none;
  border: none;
  cursor: pointer;
}

.panel_close::before,
.panel_close::after {
    display: inline-block;
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 54px;
  height: 1px;
  background: #000;
  transform-origin: center;
}
.panel_close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.panel_close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media screen and (max-width: 1023px) {
.panel_inner{
    padding:15px clamp(16px, 2.778vw, 40px) 20px;
}
.fund_panel .panel_left{
    display: none;
}
.fund_panel .panel_center{
    width: 100%;
}
.panel_close{
    right: 8px;
    top:15px;
    width:40px;
    height: 40px;
}
.panel_close::before, .panel_close::after{
    width: 42px;
}
}
@media screen and (max-width: 767px) {
.bottom_panel {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  transform: translateY(100%);
  will-change: transform;
  -webkit-overflow-scrolling: touch;
  max-height: 80dvh;
  overflow-y: auto;
}
.panel_inner,
.panel_inner .panel_price{
    display: block;
}
.panel_inner .panel_price{
    margin-bottom: 10px;
}
.panel_inner .needs_text{
    padding-right: 40px;
    margin-bottom: 8px;
    padding-left:47px;
	text-indent:-47px;
    line-height: 1.2;
}
.panel_inner .panel_title h3{
    border-bottom:1px solid #E8EAF2;
    padding-bottom: 5px;
    margin-bottom: 4px;
}
.panel_inner .panel_title .date{
    margin-bottom: 5px;
    text-align: right;
    font-size: 1.3rem;
}
.panel_inner .panel_price .panel_price_box{
    padding-left: 0;
    padding-bottom:5px;
    margin-left: 0;
    border-left: 0;
    font-size: 1.3rem;
}
.panel_inner .panel_btn_box{
    gap:2%;
}
.panel_inner .panel_btn_box .panel_btn{
    flex: 1;
    width: auto;
    padding:9px 0;
    font-size: 1.3rem;
}
.panel_inner .panel_btn_box .panel_btn:first-of-type{
    flex: none;
    width: 37%;
}
.panel_inner .panel_btn_box .panel_btn_down:before,
.panel_inner .panel_btn_box .panel_btn_target:before{
    background-image: none;
    border:none;
}
}


/* -----------------------------------
　　マネージャー
----------------------------------- */
.manager{
    font-size: 1.4rem;
}
.manager .title-wrap{
    margin-bottom: clamp(40px, 7.222vw, 104px);
}
.manager-wrap {
    position: relative;
    margin-bottom: clamp(45px, 10.069vw, 145px);
    background-color: #fff;
    box-shadow: 4px 4px 4px 0 rgba(0, 0, 0, 0.15);
    z-index: 1;
}
.manager-wrap:last-of-type{
    margin-bottom: 0;
}
.manager-wrap .manager-block-h4 {
  padding:clamp(0px, 2.708vw, 39px) 0 0 clamp(295px, 32.986vw, 475px);
}
.manager-wrap .manager-block-h4 h4 {
    display: flex;
    align-items: center;
    position: relative;
    height: 80px;
    font-size: clamp(16px, 1.389vw, 20px);
    font-weight: bold;
    margin: 0 0 33px;
    color:#fff;
    line-height: 1.4;
    font-feature-settings: "palt";
}
.manager-wrap .manager-block-h4 h4::before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 43px;
    height: 100%;
    background: url(../img/bg_mn.svg) no-repeat;
    background-size: cover;
    z-index: 0;
}
.manager-wrap .manager-block-h4 h4 span{
    display: inline-block;
    padding-left:clamp(0px, 2.986vw, 43px);
}
.manager-wrap .manager-block-h4 h4 span.h4-sub{
    display: block;
    padding: 5px 0 0 0;
    font-size: clamp(12px, 0.903vw, 13px);
}
.manager-wrap .manager-block-h4 h4 {
    background-color: var(--theme-color);
}
.manager-wrap .manager-block {
    padding:0 0 40px clamp(295px, 32.986vw, 475px);
}

.manager-wrap .manager-image {
    display: block;
    position: absolute;
    top:-28px;
    left: clamp(-75px, calc(-5.208vw), 0px);
    width:clamp(295px, 38.194vw, 550px);
    z-index: 10;
}
.fund-mn_title{
  position: relative;
  margin-bottom: 11px;
  height: 43px;
  line-height: 43px;
  font-size: 2.0rem;
  font-weight: bold;
  color: var(--color-blue);
  padding-left: 40px;
  background:url("../img/bg_midashi.svg") no-repeat;
  background-position: left 6px center;
  background-size: 22px 43px;
}
.fund-mn_title::before{
  content: "";
  position: absolute;
  left: 8px;
  top: 50%;
  width: 6px;
  height: 43px;
  transform: translateY(-50%) skewX(-20deg);
}
.manager-wrap .fund-mn_title::before {
    background: var(--theme-color);
}
.manager-wrap .fund-mn_title::after{
  content: "";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 4px;
  height: 43px;
  background: var(--color-blue);
  transform: translateY(-50%) skewX(-20deg);
}


.manager-wrap .manager-block .manager-text .name{
    padding:0 clamp(20px, 4.861vw, 70px) 0 clamp(0px, 2.986vw, 43px);
}
.manager-wrap .manager-block .manager-text .name .name_main{
    margin-bottom: 26px;
    font-weight: bold;
    font-size: 2.4rem;
}
.manager-wrap .manager-block .manager-text .name span{
    white-space: nowrap;
}
.manager-wrap .manager-block .manager-text .name .name_sub{
    display: inline-block;
    padding-right: 10px;
    font-weight: normal;
    font-size: 1.4rem;
}
.manager-wrap .manager-block .manager-text .name .name_txt{
    position: relative;
    padding:18px 28px 18px clamp(0px, 7.222vw, 104px);
    margin-left: clamp(-104px, calc(-7.222vw), 0px);
    text-align: justify;
	text-justify: inter-character;
}
.manager-wrap .manager-block .manager-text .name .name_txt::before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
}
.manager-wrap .manager-block .manager-text .name .name_txt::before {
    background-color: rgba(0,0,0,0.08);
    background-color: color-mix(in srgb, var(--theme-color) 8%, transparent);
}
.fund-flex{
    display: flex;
    flex-wrap: wrap;
    padding:0 clamp(20px, 4.861vw, 70px);
    background: url(../img/bg_fm-japan.svg) no-repeat;
    background-position: right bottom;
    background-size: 284px 265px;
    gap:0 3.333vw;
}
.fund-flex figure{
    flex: 0 0 auto;
    width: 200px;
}
.fund-flex figure img{
    border:1px solid #dddddd;
}
.fund-flex .fund-flex_txt{
    flex: 1;
    min-width: 0;
    padding: 0 0 clamp(20px, 3.472vw, 50px);
}
.fund-flex .fund-flex_txt p{
    padding-bottom:clamp(40px, 3.681vw, 53px);
    text-align: justify;
	text-justify: inter-character;
}
.fund_memo{
    display: flex;
    flex-wrap: wrap;
    gap:0 15px;
    width: 100%;
    font-size: 1.2rem;
}
.fund_memo:last-of-type{
    padding-bottom: 20px;
}
.fund_memo p{
    display: inline-block;
    padding-right: 5px;
}
.fund_memo a:before {
    content: '';
    display: inline-block;
    margin-right: 4px;
    width: 11px;
    height: 8px;
    background: url(../img/arrow_blue.svg) no-repeat;
    background-size: contain;
    background-position: center;
}

/* 左右逆バージョン */
.manager-wrap:nth-of-type(even) .manager-image{
    left: auto;
    right: max(clamp(-75px, calc(-5.208vw), 0px), calc(50% - 50vw));
}
.manager-wrap:nth-of-type(even) .manager-block-h4 {
  padding:clamp(0px, 2.708vw, 39px) clamp(295px, 32.986vw, 475px) 0 0;
}
.manager-wrap:nth-of-type(even) .manager-block-h4 h4::before {
    right: auto;
    left: 0;
    transform: rotate(180deg);
}
.manager-wrap:nth-of-type(even) .manager-block {
    padding:0 clamp(295px, 32.986vw, 475px) 40px 0;
}
.manager-wrap:nth-of-type(even) .manager-block .manager-text .name .name_txt {
    padding: 18px clamp(0px, 7.222vw, 104px) 18px 28px;
    margin-left: 0;
    margin-right: clamp(-104px, calc(-5.6vw), 0px);
}
.manager-wrap:nth-of-type(even) .manager-block .manager-text .name {
    padding: 0 clamp(0px, 2.986vw, 43px) 0 clamp(20px, 4.861vw, 70px);
}
.manager-wrap:nth-of-type(even) .manager-block-h4 h4 span{
    padding-left:clamp(20px, 4.861vw, 70px);
}
.manager-wrap:nth-of-type(even) .manager-block-h4 h4 span.h4-sub{
    padding: 5px 0 0 0;
}
.manager-wrap:nth-of-type(even) .fund-flex{
    flex-direction: row-reverse;
}



@media screen and (max-width: 1024px) {
.manager-wrap .manager-block {
    padding: 0 0 40px clamp(295px, 45.605vw, 467px);
}
.manager-wrap:nth-of-type(even) .manager-block {
    padding: 0 clamp(295px, 45.605vw, 467px) 40px 0;
}
.manager-wrap .manager-block-h4,
.manager-wrap:nth-of-type(even) .manager-block-h4{
    text-align: center;
    padding: 0;
}
.manager-wrap .manager-block-h4 h4{
    justify-content: center;
    margin-bottom: 30px;
}
.manager-wrap .manager-block-h4 h4 span,
.manager-wrap:nth-of-type(even) .manager-block-h4 h4 span{
padding: 0;
z-index: 10;
}
.manager-wrap .manager-image {
    position: relative;
    top: 0;
    float: left;
    margin-bottom: 30px;
    left: clamp(20px, 3.906vw, 40px);
    width: clamp(295px, 41.602vw, 426px);
}
.manager-wrap:nth-of-type(even) .manager-image {
    position: relative;
    top: 0;
    float: right;
    margin-bottom: 30px;
    left: auto;
    right: clamp(20px, 3.906vw, 40px);
}
.manager-wrap .manager-block .manager-text .name {
    padding: 0 clamp(20px, 3.906vw, 40px) 0 clamp(0px, 2.986vw, 43px);
}
.manager-wrap:nth-of-type(even) .manager-block .manager-text .name .name_txt{
    margin-right: clamp(-104px, calc(-8.1vw), 0px);
}
.fund-flex {
    clear: both;
}

.fund-mn_title{
  height: 30px;
  line-height: 32px;
  font-size: 1.7rem;
}
.manager-wrap .fund-mn_title::before,
.manager-wrap .fund-mn_title::after{
  height: 30px;
}
}


@media screen and (max-width: 767px) {
  .manager-wrap .manager-block,
  .manager-wrap .manager-block:nth-child(even) {
    flex-direction: column;
  }
.manager-wrap .manager-block-h4 h4 {
    margin-bottom: 20px;
    height: 90px;
}
  .manager-text {
    width: 100%;
  }
  .manager-wrap .manager-image,
  .manager-wrap:nth-of-type(even) .manager-image{
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    float: none;
    padding: 0 clamp(20px, 2.778vw, 40px);
    margin-bottom: 20px;
    width: 100%;
  }
  .manager-wrap .manager-block,
  .manager-wrap:nth-of-type(even) .manager-block{
    padding:0 20px;
  }
  .manager-wrap .manager-block .manager-text .name,
  .manager-wrap .manager-block:nth-of-type(even) .manager-text .name{
    padding:0;
  }
  .manager-wrap .manager-block .manager-text .name .name_main{
    margin-bottom: 10px;
  }
  .manager-wrap .manager-block .manager-text .name .name_sub {
    display: block;
  }
  .manager-wrap .manager-block .manager-text .name .name_txt,
  .manager-wrap:nth-of-type(even) .manager-block .manager-text .name .name_txt {
    padding: 18px;
    margin: 0 0 26px 0;
  }
  .fund-flex{
    display: block;
    padding:0 20px 0;
    background: none;
  }
  .fund-flex .fund-flex_txt p{
    padding-bottom: 25px;
  }
  .fund_memo p{
    width: 100%;
  }
  .fund_memo{
    margin-bottom: 5px;
  }
  .fund_memo:last-of-type{
    margin-bottom: 0;
}
}
