@charset "UTF-8";
:root {
  /* =========================================
    計算用ベース変数
  ========================================= */
  /* SP基準幅(375px)に対する、1pxあたりのcqi割合 */
  --cqi-ratio: calc(100cqi / 375);

  /* PC時の最大拡大率（500px ÷ 375px） */
  --pc-scale: 1.333;

  /* =========================================
    余白・サイズ用変数（pxベース）
  ========================================= */
  --fluid-4: clamp(4px, calc(4 * var(--cqi-ratio)), calc(4px * var(--pc-scale)));
  --fluid-5: clamp(5px, calc(5 * var(--cqi-ratio)), calc(5px * var(--pc-scale)));
  --fluid-6: clamp(6px, calc(6 * var(--cqi-ratio)), calc(6px * var(--pc-scale)));
  --fluid-7: clamp(7px, calc(7 * var(--cqi-ratio)), calc(7px * var(--pc-scale)));
  --fluid-8: clamp(8px, calc(8 * var(--cqi-ratio)), calc(8px * var(--pc-scale)));
  --fluid-9: clamp(9px, calc(9 * var(--cqi-ratio)), calc(9px * var(--pc-scale)));
  --fluid-10: clamp(10px, calc(10 * var(--cqi-ratio)), calc(10px * var(--pc-scale)));
  --fluid-11: clamp(11px, calc(11 * var(--cqi-ratio)), calc(11px * var(--pc-scale)));
  --fluid-12: clamp(12px, calc(12 * var(--cqi-ratio)), calc(12px * var(--pc-scale)));
  --fluid-13: clamp(13px, calc(13 * var(--cqi-ratio)), calc(13px * var(--pc-scale)));
  --fluid-14: clamp(14px, calc(14 * var(--cqi-ratio)), calc(14px * var(--pc-scale)));
  --fluid-15: clamp(15px, calc(15 * var(--cqi-ratio)), calc(15px * var(--pc-scale)));
  --fluid-16: clamp(16px, calc(16 * var(--cqi-ratio)), calc(16px * var(--pc-scale)));
  --fluid-17: clamp(17px, calc(17 * var(--cqi-ratio)), calc(17px * var(--pc-scale)));
  --fluid-18: clamp(18px, calc(18 * var(--cqi-ratio)), calc(18px * var(--pc-scale)));
  --fluid-19: clamp(19px, calc(19 * var(--cqi-ratio)), calc(19px * var(--pc-scale)));
  --fluid-20: clamp(20px, calc(20 * var(--cqi-ratio)), calc(20px * var(--pc-scale)));
  --fluid-21: clamp(21px, calc(21 * var(--cqi-ratio)), calc(21px * var(--pc-scale)));
  --fluid-22: clamp(22px, calc(22 * var(--cqi-ratio)), calc(22px * var(--pc-scale)));
  --fluid-23: clamp(23px, calc(23 * var(--cqi-ratio)), calc(23px * var(--pc-scale)));
  --fluid-24: clamp(24px, calc(24 * var(--cqi-ratio)), calc(24px * var(--pc-scale)));
  --fluid-25: clamp(25px, calc(25 * var(--cqi-ratio)), calc(25px * var(--pc-scale)));
  --fluid-26: clamp(26px, calc(26 * var(--cqi-ratio)), calc(26px * var(--pc-scale)));
  --fluid-27: clamp(27px, calc(27 * var(--cqi-ratio)), calc(27px * var(--pc-scale)));
  --fluid-28: clamp(28px, calc(28 * var(--cqi-ratio)), calc(28px * var(--pc-scale)));
  --fluid-29: clamp(29px, calc(29 * var(--cqi-ratio)), calc(29px * var(--pc-scale)));
  --fluid-30: clamp(30px, calc(30 * var(--cqi-ratio)), calc(30px * var(--pc-scale)));
  --fluid-31: clamp(31px, calc(31 * var(--cqi-ratio)), calc(31px * var(--pc-scale)));
  --fluid-32: clamp(32px, calc(32 * var(--cqi-ratio)), calc(32px * var(--pc-scale)));
  --fluid-33: clamp(33px, calc(33 * var(--cqi-ratio)), calc(33px * var(--pc-scale)));
  --fluid-34: clamp(34px, calc(34 * var(--cqi-ratio)), calc(34px * var(--pc-scale)));
  --fluid-35: clamp(35px, calc(35 * var(--cqi-ratio)), calc(35px * var(--pc-scale)));
  --fluid-36: clamp(36px, calc(36 * var(--cqi-ratio)), calc(36px * var(--pc-scale)));
  --fluid-37: clamp(37px, calc(37 * var(--cqi-ratio)), calc(37px * var(--pc-scale)));
  --fluid-38: clamp(38px, calc(38 * var(--cqi-ratio)), calc(38px * var(--pc-scale)));
  --fluid-39: clamp(39px, calc(39 * var(--cqi-ratio)), calc(39px * var(--pc-scale)));
  --fluid-40: clamp(40px, calc(40 * var(--cqi-ratio)), calc(40px * var(--pc-scale)));
  --fluid-41: clamp(41px, calc(41 * var(--cqi-ratio)), calc(41px * var(--pc-scale)));
  --fluid-42: clamp(42px, calc(42 * var(--cqi-ratio)), calc(42px * var(--pc-scale)));
  --fluid-43: clamp(43px, calc(43 * var(--cqi-ratio)), calc(43px * var(--pc-scale)));
  --fluid-44: clamp(44px, calc(44 * var(--cqi-ratio)), calc(44px * var(--pc-scale)));
  --fluid-45: clamp(45px, calc(45 * var(--cqi-ratio)), calc(45px * var(--pc-scale)));
  --fluid-46: clamp(46px, calc(46 * var(--cqi-ratio)), calc(46px * var(--pc-scale)));
  --fluid-47: clamp(47px, calc(47 * var(--cqi-ratio)), calc(47px * var(--pc-scale)));
  --fluid-48: clamp(48px, calc(48 * var(--cqi-ratio)), calc(48px * var(--pc-scale)));
  --fluid-49: clamp(49px, calc(49 * var(--cqi-ratio)), calc(49px * var(--pc-scale)));
  --fluid-50: clamp(50px, calc(50 * var(--cqi-ratio)), calc(50px * var(--pc-scale)));
  --fluid-51: clamp(51px, calc(51 * var(--cqi-ratio)), calc(51px * var(--pc-scale)));
  --fluid-52: clamp(52px, calc(52 * var(--cqi-ratio)), calc(52px * var(--pc-scale)));
  --fluid-53: clamp(53px, calc(53 * var(--cqi-ratio)), calc(53px * var(--pc-scale)));
  --fluid-54: clamp(54px, calc(54 * var(--cqi-ratio)), calc(54px * var(--pc-scale)));
  --fluid-55: clamp(55px, calc(55 * var(--cqi-ratio)), calc(55px * var(--pc-scale)));
  --fluid-56: clamp(56px, calc(56 * var(--cqi-ratio)), calc(56px * var(--pc-scale)));
  --fluid-57: clamp(57px, calc(57 * var(--cqi-ratio)), calc(57px * var(--pc-scale)));
  --fluid-58: clamp(58px, calc(58 * var(--cqi-ratio)), calc(58px * var(--pc-scale)));
  --fluid-59: clamp(59px, calc(59 * var(--cqi-ratio)), calc(59px * var(--pc-scale)));
  --fluid-60: clamp(60px, calc(60 * var(--cqi-ratio)), calc(60px * var(--pc-scale)));
  --fluid-61: clamp(61px, calc(61 * var(--cqi-ratio)), calc(61px * var(--pc-scale)));
  --fluid-66: clamp(66px, calc(66 * var(--cqi-ratio)), calc(66px * var(--pc-scale)));
  --fluid-71: clamp(71px, calc(71 * var(--cqi-ratio)), calc(71px * var(--pc-scale)));
  --fluid-82: clamp(82px, calc(82 * var(--cqi-ratio)), calc(82px * var(--pc-scale)));
  --fluid-86: clamp(86px, calc(86 * var(--cqi-ratio)), calc(86px * var(--pc-scale)));
  --fluid-100: clamp(100px, calc(100 * var(--cqi-ratio)), calc(100px * var(--pc-scale)));

  /* ネガティブマージン用 */
  --fluid-m14: clamp(calc(-14px * var(--pc-scale)), calc(-14 * var(--cqi-ratio)), -14px);
  --fluid-m61: clamp(calc(-61px * var(--pc-scale)), calc(-61 * var(--cqi-ratio)), -61px);

  /* =========================================
    フォントサイズ用変数（1rem = 10px基準）
  ========================================= */
  --fz-10: clamp(1rem, calc(10 * var(--cqi-ratio)), calc(1rem * var(--pc-scale)));
  --fz-11: clamp(1.1rem, calc(11 * var(--cqi-ratio)), calc(1.1rem * var(--pc-scale)));
  --fz-12: clamp(1.2rem, calc(12 * var(--cqi-ratio)), calc(1.2rem * var(--pc-scale)));
  --fz-13: clamp(1.3rem, calc(13 * var(--cqi-ratio)), calc(1.3rem * var(--pc-scale)));
  --fz-14: clamp(1.4rem, calc(14 * var(--cqi-ratio)), calc(1.4rem * var(--pc-scale)));
  --fz-15: clamp(1.5rem, calc(15 * var(--cqi-ratio)), calc(1.5rem * var(--pc-scale)));
  --fz-16: clamp(1.6rem, calc(16 * var(--cqi-ratio)), calc(1.6rem * var(--pc-scale)));
  --fz-17: clamp(1.7rem, calc(17 * var(--cqi-ratio)), calc(1.7rem * var(--pc-scale)));
  --fz-18: clamp(1.8rem, calc(18 * var(--cqi-ratio)), calc(1.8rem * var(--pc-scale)));
  --fz-19: clamp(1.9rem, calc(19 * var(--cqi-ratio)), calc(1.9rem * var(--pc-scale)));
  --fz-20: clamp(2rem, calc(20 * var(--cqi-ratio)), calc(2rem * var(--pc-scale)));
  --fz-21: clamp(2.1rem, calc(21 * var(--cqi-ratio)), calc(2.1rem * var(--pc-scale)));
  --fz-22: clamp(2.2rem, calc(22 * var(--cqi-ratio)), calc(2.2rem * var(--pc-scale)));
  --fz-23: clamp(2.3rem, calc(23 * var(--cqi-ratio)), calc(2.3rem * var(--pc-scale)));
  --fz-24: clamp(2.4rem, calc(24 * var(--cqi-ratio)), calc(2.4rem * var(--pc-scale)));
  --fz-28: clamp(2.8rem, calc(28 * var(--cqi-ratio)), calc(2.8rem * var(--pc-scale)));
  --fz-30: clamp(3rem, calc(30 * var(--cqi-ratio)), calc(3rem * var(--pc-scale)));
  --fz-32: clamp(3.2rem, calc(32 * var(--cqi-ratio)), calc(3.2rem * var(--pc-scale)));
}

/* =========================================
  Base
========================================= */
body {
    min-width: 320px;
}

img {
    width: 100%;
}

sup {
    vertical-align: super;
}

.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
.mT0 { margin-top: 0 !important; }
.mT15 { margin-top: 15px !important; }
.fc-blue { color: #000066 !important; }

/* =========================================
  Layout
========================================= */
.cash202607cp {
    width: 100%;
    background-image: url("/campaign/cash202607cp/images/bg_gradient-blue.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: center center;
    background-size: cover;
    font-feature-settings: "palt";
    margin-top: var(--fluid-17) !important;
}

.lWrapper {
    max-width: 1242px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 40px;
}

.lMain {
    container-type: inline-size;
    width: 100%;
    max-width: 500px;
}
.lMainInner {
    padding: var(--fluid-20);
}

/* 1241px以下 */
@media screen and (max-width: 1241.9px) {
    .lWrapper {
        padding: 0;
    }
    .lSideLeft,
    .lSideRight {
        display: none;
    }
}

/* =========================================
  lSideLeft
========================================= */
.lSideLeft {
    margin-top: 25vh;
    margin-left: 54px;
    width: 230px;
    padding-bottom: var(--fluid-100);
    position: sticky;
    top: 25vh;
}
.lSideLeftInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.lSideLeftBtn {
    width: 220px;
}

/* =========================================
  lSideRight
========================================= */
.lSideRight {
    margin-top: 25vh;
    width: 284px;
    padding-bottom: var(--fluid-100);
    position: sticky;
    top: 25vh;
}

.lSideRightText {
    color: #000066;
    font-size: 16px;
    font-weight: bold;
    margin-top: 8px;
}

/* cpMenu */
.cpMenu {
    background-color: #FFFFFF;
    border-radius: 20px;
    position: relative;
}
.cpMenuInner {
    padding: 65px 21px 54px;
}
.cpMenuTitle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -23px;
}
.cpMenuNavItem {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 41px;
    min-height: 47px;
}
.cpMenuNavItem + .cpMenuNavItem {
    margin-top: 21px;
}
.cpMenuNavItem a {
    display: inline-block;
    padding: 0 8px 4px 9px;
}

.cpMenuNavItem.isCurrent {
    position: relative;
}
.cpMenuNavItem.isCurrent::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_aomaru-walk.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: 41px;
    height: 47px;
    left: 0;
}
.cpMenuNavItem.isCurrent a {
    border-bottom: 3px solid;
    border-image: linear-gradient(to right, #FDB021, #FF0) 1;
}

/* =========================================
  Hero
========================================= */
.cHeroImage {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 375 / 200;
    position: relative;
}
.cHeroIcon {
    position: absolute;
    top: var(--fluid-8);
    right: var(--fluid-8);
    width: var(--fluid-66);
    height: var(--fluid-66);
}

/* =========================================
  Grid
========================================= */
/* C. アスペクト比固定型（画像グリッド等） */
.cGridList {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--fluid-14);
    width: 100%;
}
.cGridItemImage {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* =========================================
  Button
========================================= */
.button {
    position: relative;
    display: inline-block;
    width: 100%;
    padding: var(--fluid-18) var(--fluid-45) var(--fluid-18) var(--fluid-20);
    font-size: var(--fz-17) !important;
    font-weight: bold;
    text-align: center;
    text-decoration: none !important;
    border-radius: var(--fluid-34);
    box-sizing: border-box;
}

.button.red {
    background-color: #E6002D !important;
    color: #FFFFFF !important;
}

.button.button-internal-link::after,
.button.button-external-link::after {
    content: "";
    position: absolute;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    top: 50%;
    transform: translateY(-50%);
}
.button.button-internal-link::after {
    background-image: url("/campaign/cash202607cp/images/icon_circle-arrow-white.png");
    width: var(--fluid-34);
    height: var(--fluid-34);
    right: var(--fluid-10);
}
.button.button-external-link::after {
    background-image: url("/campaign/cash202607cp/images/icon_external_white.png");
    width: var(--fluid-20);
    height: var(--fluid-20);
    right: var(--fluid-14);
}

/* =========================================
  Link
========================================= */
.link {
    display: inline-block;
    text-decoration: underline;
}

.link.medium {
    font-size: var(--fz-14);
    line-height: 1.5;
}

.link.navy {
    color: #000066;
}

.link[target=_blank] {
    padding-right: var(--fluid-14);
    position: relative;
}
.link[target=_blank]::after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    display: block;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.link.navy[target=_blank]::after {
    background-image: url("/campaign/cash202607cp/images/icon_blank_navy.svg");
    width: var(--fluid-12);
    height: var(--fluid-12);
}

.link.anchor {
    padding-right: var(--fluid-16);
    position: relative;
}
.link.anchor::after {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_circle-chevron-navy.png");
    background-repeat: no-repeat;
    background-size: contain;
    display: block;
    width: var(--fluid-14);
    height: var(--fluid-14);
    right: 1px;
    top: 50%;
    transform: translateY(-50%);
}

/* LinkEntry */
.LinkEntry {
    color: #FFFFFF;
    font-size: var(--fluid-12);
    padding-right: 1em;
    position: relative;
    text-decoration: underline;
}
.LinkEntry::after {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_triangle-white.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-11);
    height: var(--fluid-10);
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

/* =========================================
  Notice
========================================= */
.cpNoticeItem {
    color: #333333;
    font-size: var(--fz-14);
    line-height: 1.14;
    text-align: justify;
}
.cpNotice.fwBold .cpNoticeItem {
    font-weight: bold;
}
.cpNotice.navy .cpNoticeItem {
    color: #000066;
}

/* =========================================
  cvArea
========================================= */
.cvArea {
    background-color: #000066;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--fluid-12);
    padding: var(--fluid-10) var(--fluid-16) var(--fluid-12);
}

/* =========================================
  About
========================================= */
.cpAbout {
    background-image: url("/campaign/cash202607cp/images/bg_wave-light-blue.png");
    background-repeat: no-repeat;
    background-size: cover;
    border-bottom: var(--fluid-4) solid #0050C7;
}
.cpAboutInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-35) var(--fluid-15) clamp(114px, calc(114 * var(--cqi-ratio)), calc(114px * var(--pc-scale)));
}
.cpAboutTitle {
    width: 100%;
    max-width: clamp(338px, calc(338 * var(--cqi-ratio)), calc(338px * var(--pc-scale)));
    margin: 0 auto var(--fluid-28);
}
.cpAboutSteps {
    display: flex;
    flex-direction: column;
    gap: var(--fluid-15);
    margin-bottom: var(--fluid-8);
}

/* =========================================
  Point
========================================= */
.cpPoint {
    background-image: url("/campaign/cash202607cp/images/bg_wave-dark-blue.png");
    background-repeat: no-repeat;
    background-size: cover;
    border-bottom: var(--fluid-4) solid #000066;
}
.cpPointInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-50) var(--fluid-15) clamp(103px, calc(103 * var(--cqi-ratio)), calc(103px * var(--pc-scale)));
}
.cpPointTitle {
    width: 100%;
    max-width: clamp(339px, calc(339 * var(--cqi-ratio)), calc(339px * var(--pc-scale)));
    margin: 0 auto var(--fluid-23);
}
.cpPointSubTitle {
    width: 100%;
    max-width: clamp(281px, calc(281 * var(--cqi-ratio)), calc(281px * var(--pc-scale)));
    margin: 0 auto var(--fluid-23);
}
.cpPointImage + .cpPointSubTitle {
    margin-top: var(--fluid-40);
}

/* =========================================
  Step
========================================= */
.cpStep {
    background-color: #D6E8FF;
    border-bottom: var(--fluid-4) solid #0050FF;
}
.cpStepInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-60) var(--fluid-16);
}
.cpStepTitle {
    margin-bottom: var(--fluid-60);
}

/* Block */
.cpStepBlocks {
    display: flex;
    flex-direction: column;
    gap: var(--fluid-71);
    margin-top: var(--fluid-30);
    padding-bottom: var(--fluid-86);
}
.cpStepBlock {
    background-color: #FFFFFF;
    border: 2px solid #000066;
    border-radius: var(--fluid-8);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.cpStepBlock.cpStepBlockArrow {
    position: relative;
}
.cpStepBlock.cpStepBlockArrow::after {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_arrow-down-blue.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-38);
    height: var(--fluid-47);
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--fluid-m61);
}
.cpStepBlockTitle {
    color: #333333;
    font-size: var(--fz-16);
    font-weight: bold;
    line-height: 1.3125;
    margin-bottom: var(--fluid-8);
    padding-left: var(--fluid-24);
    position: relative;
}
.cpStepBlockTitle::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_check.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-20);
    height: var(--fluid-20);
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.cpStepBlockTitle.large {
    font-size: var(--fz-19);
    line-height: 1.315;
}

.cpStepBlockCol {
    display: flex;
    align-items: center;
    gap: var(--fluid-12);
}
.cpStepBlockColDesc {
    width: 100%;
    max-width: clamp(195px, calc(190 * var(--cqi-ratio)), calc(190px * var(--pc-scale)));
}
.cpStepBlockColThumb {
    width: 100%;
    max-width: clamp(120px, calc(120 * var(--cqi-ratio)), calc(120px * var(--pc-scale)));
}

.cpStepBlockImage {
    width: 100%;
    max-width: clamp(112px, calc(112 * var(--cqi-ratio)), calc(112px * var(--pc-scale)));
}

/* cpStepBlock01 */
.cpStepBlock.cpStepBlock01 {
    padding: var(--fluid-15) var(--fluid-10) var(--fluid-11);
}

/* cpStepBlock02 */
.cpStepBlock.cpStepBlock02 {
    padding: var(--fluid-14) var(--fluid-6) var(--fluid-24);
}
.cpStepBlock.cpStepBlock02 .cpStepBlockTitle {
    margin-bottom: var(--fluid-11);
}
.cpStepBlock.cpStepBlock02 .cpStepBlockCol + .cvBtn {
    margin-top: var(--fluid-20);
}

/* cpStepBlock03 */
.cpStepBlock.cpStepBlock03 {
    padding: var(--fluid-15) var(--fluid-10) var(--fluid-11);
}
.cpStepBlock.cpStepBlock03 .cpStepBlockTitle {
    margin-bottom: var(--fluid-16);
}
.cpStepBlock.cpStepBlock03 .cvBtn + .cpStepBlockImage {
    margin-top: var(--fluid-12);
}
.cpStepBlock.cpStepBlock03 .cpStepBlockImage + .cpNotice {
    margin-top: var(--fluid-11);
}

/* cpStepBlock04 */
.cpStepBlock.cpStepBlock04 {
    padding: var(--fluid-13) var(--fluid-10) var(--fluid-12);
}
.cpStepBlock.cpStepBlock04 .cpStepBlockTitle {
    margin-bottom: var(--fluid-10);
}
.cpStepBlock.cpStepBlock04 .cpStepBlockTitle::before {
    top: 3px;
    transform: translateY(0);
}

/* =========================================
  cvBtns
========================================= */
.cvBtns {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: var(--fluid-18);
}
.cvBtnsTitle {
    width: 100%;
    max-width: clamp(256px, calc(256 * var(--cqi-ratio)), calc(256px * var(--pc-scale)));
    margin-bottom: var(--fluid-14);
}
.cvBtn {
    width: 100%;
    max-width: clamp(296px, calc(296 * var(--cqi-ratio)), calc(296px * var(--pc-scale)));
}
.cvBtn + .cvLink {
    margin-top: var(--fluid-4);
}
.cvLink + .cvBtn {
    margin-top: var(--fluid-8);
}

/* =========================================
  Conditions
========================================= */
.cpConditions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--fluid-24);
}
.cpConditionsTitle {
    width: 100%;
    max-width: clamp(342px, calc(342 * var(--cqi-ratio)), calc(342px * var(--pc-scale)));
}

/* =========================================
  Modal
========================================= */
.cpModalLink {
    background-color: #FFFFFF;
    border: 2px solid #000066;
    color: #000066;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    font-size: var(--fz-14);
    font-weight: bold;
    width: 100%;
    max-width: clamp(335px, calc(335 * var(--cqi-ratio)), calc(335px * var(--pc-scale)));
    height: var(--fluid-32);
}
.cpModalLink::after {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_plus-navy.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-17);
    height: var(--fluid-17);
    right: var(--fluid-10);
    top: 50%;
    transform: translateY(-50%);
}

/* =========================================
  SNS
========================================= */
.cpSNS {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: var(--fluid-43);
}
.cpSNSImage {
    margin-bottom: var(--fluid-51);
    width: 100%;
    max-width: clamp(315px, calc(315 * var(--cqi-ratio)), calc(315px * var(--pc-scale)));
}
.cpSNSTitle {
    margin-bottom: var(--fluid-41);
    width: 100%;
    max-width: clamp(281px, calc(281 * var(--cqi-ratio)), calc(281px * var(--pc-scale)));
}
.cpSNSBtns {
    display: flex;
    gap: var(--fluid-35);
}
.cpSNSBtn {
    width: var(--fluid-82);
}

/* =========================================
  FAQ
========================================= */
.cpFaq {
    margin-top: var(--fluid-31);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--fluid-40);
}
.cpFaqListItem {
    border-bottom: 2px solid #3c9dff;
}
.cpFaqLink {
    color: #333333;
    display: block;
    font-size: var(--fz-17);
    line-height: 1.5;
    padding: var(--fluid-19) var(--fluid-38) var(--fluid-17) var(--fluid-45);
    position: relative;
}
.cpFaqLink::before,
.cpFaqLink::after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
}
.cpFaqLink::before {
    background-image: url("/campaign/cash202607cp/images/icon_question.png");
    width: var(--fluid-36);
    height: var(--fluid-36);
    left: 0;
}
.cpFaqLink::after {
    background-image: url("/campaign/cash202607cp/images/icon_blank_navy.svg");
    width: var(--fluid-27);
    height: var(--fluid-27);
    right: 0;
    top: var(--fluid-23);
}

/* =========================================
  cpAccountOpen
========================================= */
.cpAccountOpen {
    background-color: #0F174F;
}
.cpAccountOpenInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--fluid-29);
    padding: var(--fluid-40) var(--fluid-15) var(--fluid-56);
}
.cpAccountOpenTitle {
    width: 100%;
    max-width: clamp(337px, calc(337 * var(--cqi-ratio)), calc(337px * var(--pc-scale)));
}

/* toggle */
.cpAccountOpen .toggle {
    background-color: #FFFFFF;
    border-bottom: var(--fluid-5) solid #3C9DFF;
    position: relative;
}
.cpAccountOpen .toggle + .toggle {
    margin-top: var(--fluid-15);
}

.cpAccountOpen .toggle__title {
    color: #000066;
    font-size: var(--fz-21);
    font-weight: bold;
    padding: var(--fluid-11) var(--fluid-30) var(--fluid-11) var(--fluid-9);
    cursor: pointer;
}
.cpAccountOpen .toggle__title::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_toggle.png");
    background-size: contain;
    width: var(--fluid-18);
    height: var(--fluid-18);
    top: var(--fluid-25);
    right: var(--fluid-10);
    transition: transform 0.3s ease;
}
.cpAccountOpen .is-open .toggle__title::before {
    transform: rotate(180deg);
}
.cpAccountOpen .toggle__title .sub-title {
    font-size: var(--fz-14);
    letter-spacing: -0.01em;
}

.cpAccountOpen .toggle__content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
    padding: 0 var(--fluid-19) 0 var(--fluid-18);
}
.cpAccountOpen .toggle.is-open .toggle__content {
    max-height: 3000px;
    opacity: 1;
    visibility: visible;
    padding: 0 var(--fluid-19) var(--fluid-26) var(--fluid-18);
}
.cpAccountOpen .toggle.is-open .toggle__content .toggle__inner {
    border-top: 1px solid #000066;
    padding-top: var(--fluid-15);
}


.cpAccountOpen .toggle__content h3 {
    color: #000066;
    font-size: var(--fz-21);
    font-weight: bold;
    text-align: center;
}
.cpAccountOpen .toggle__content p + h3 {
    margin-top: var(--fluid-22);
}
.cpAccountOpen .toggle__content p {
    text-align: center;
    font-size: var(--fz-14);
}
.cpAccountOpen .toggle__content p small {
    font-size: var(--fz-12);
}
.cpAccountOpen .toggle__content h3 + p {
    margin-top: var(--fluid-12);
}
.cpAccountOpen .toggle__content p + p {
    margin-top: var(--fluid-17);
}

.cpAccountOpen .toggle__content .step__contents {
    margin: var(--fluid-12) auto 0;
}
.cpAccountOpen .toggle__content .step__contents__item p {
    font-size: var(--fz-14);
}
.cpAccountOpen .toggle__content .step__contents__item p + p {
    margin-top: var(--fluid-13);
}

.cpAccountOpen .toggle__content a {
    font-size: var(--fz-14);
    color: #000066;
    text-decoration: underline;
}
.cpAccountOpen .toggle__content a.internal-link {
    position: relative;
    padding-left: var(--fluid-15);
}
.cpAccountOpen .toggle__content a.internal-link::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_circle-navy.png");
    background-size: contain;
    width: var(--fluid-9);
    height: var(--fluid-14);
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.cpAccountOpen .toggle__content .arrow {
    margin: var(--fluid-12) 0 var(--fluid-9);
}
.cpAccountOpen .toggle__content .arrow img {
    width: auto;
}
.cpAccountOpen .toggle__content .icon__plus {
    width: auto;
}
.cpAccountOpen .toggle__content .button {
    margin-top: var(--fluid-30);
}

/* =========================================
  cpAttention
========================================= */
.cpAttention {
    background-color: #FFFFFF;
}
.cpAttentionInner {
    padding: var(--fluid-52) var(--fluid-15) var(--fluid-100);
}

/* toggle */
.cpAttention .toggle {
    background-color: #FFFFFF;
    border: 2px solid #000066;
    display: block;
    position: relative;
}
.cpAttention .toggle + .toggle {
    margin-top: var(--fluid-16);
}

.cpAttention .toggle__title {
    color: #000066;
    font-size: var(--fz-16);
    font-weight: bold;
    padding: var(--fluid-10) var(--fluid-18);
    position: relative;
    cursor: pointer;
}
.cpAttention .toggle__title::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_toggle.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-21);
    height: var(--fluid-21);
    right: var(--fluid-8);
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    cursor: pointer;
}
.cpAttention .toggle.is-open .toggle__title::before {
    transform: translateY(-50%) rotate(180deg);
}

.cpAttention .cpAttentionTitleBox {
    margin-top: var(--fluid-49);
    text-align: center;
}
.cpAttention .cpAttentionTitleBox + .toggle {
    margin-top: var(--fluid-28);
}

.cpAttention .cpAttentionTitle {
    color: #D92214;
    font-size: var(--fz-19);
    font-weight: bold;
    display: inline-block;
    padding-left: var(--fluid-22);
    position: relative;
    text-align: center;
}
.cpAttention .cpAttentionTitle::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/cash202607cp/images/icon_attention.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    width: var(--fluid-19);
    height: var(--fluid-19);
    left: 0;
    top: 0;
}

.cpAttention .toggle__content {
    width: 90%;
    margin: 0 auto;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
}
.cpAttention .toggle.is-open .toggle__content {
    max-height: 3000px; /* 十分に大きい値 */
    opacity: 1;
    visibility: visible;
}

.cpAttention .toggle__content .toggle__inner {
    border-top: 2px solid #000066;
    padding: var(--fluid-15) 0;
}
.cpAttention .toggle__content ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}
.cpAttention .toggle__content ul li {
    font-size: var(--fz-16);
    line-height: 1.25;
    padding-left: var(--fluid-15);
    position: relative;
}
.cpAttention .toggle__content ul li::before {
    content: "●";
    position: absolute;
    color: #000066;
    font-size: var(--fz-12);
    line-height: 1;
    left: 0;
    top: 3px;
}

.cpAttention .toggle__content p {
    font-size: var(--fz-16);
    line-height: 1.25;
}
.cpAttention .toggle__content p a {
    color: #000066;
    text-decoration: underline;
}

/* =========================================
  diversion
  .info
========================================= */
.info__box {
    border: var(--fluid-4) solid #000066;
    border-radius: var(--fluid-15);
    margin: var(--fluid-50) auto 0;
}

.info__item:first-child {
    background-color: #E0EEF5;
    border-radius: var(--fluid-12) var(--fluid-12) 0 0;
    color: #000066;
    padding: var(--fluid-27) var(--fluid-20) var(--fluid-20);
    text-align: center;
}
.info__item:first-child .info__item__title {
    font-size: var(--fz-19);
    font-weight: bold;
}
.info__item:first-child .info__item__number a {
    color: #000066;
    margin-top: var(--fluid-15);
    font-size: var(--fz-30);
    font-weight: bold;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.info__item:first-child .info__item__text {
    font-size: var(--fz-16);
    margin-top: var(--fluid-10);
}

.info__item:last-child {
    color: #000066;
    padding: var(--fluid-18) var(--fluid-20) var(--fluid-14);
    text-align: center;
}
.info__item:last-child .info__item__title {
    font-size: var(--fz-14);
    font-weight: bold;
}
.info__item:last-child .info__item__text {
    font-size: var(--fz-15);
    margin-top: var(--fluid-10);
}

.date__box {
    margin-top: var(--fluid-21);
}
.date__box p {
    color: #000066;
    font-size: var(--fz-15);
}

/* =========================================
  modal
========================================= */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100%;
    z-index: 9999;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
    font-feature-settings: "palt";
    margin: 0 !important;
    max-width: 100% !important;
    padding: var(--fluid-10) var(--fluid-24);
}
.modal.active {
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
}

.modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    cursor: pointer;
}

.modal__content {
    background-color: #FFFFFF;
    border: 2px solid #08287F;
    display: flex;
    flex-direction: column;
    max-height: 90svh;
    animation: modalSlideIn 0.3s ease;
    overflow: visible;
    padding: var(--fluid-11) var(--fluid-12);
    position: relative;
    z-index: 10000;
}
@keyframes modalSlideIn {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}
@media screen and (min-width: 768px) {
    .modal__content {
        max-width: 500px;
        width: 100%;
    }
}

.modal__header h3 {
    color: #08287F;
    font-size: var(--fz-18);
    font-weight: bold;
    text-align: center;
}

.modal__close {
    position: absolute;
    width: var(--fluid-42);
    height: var(--fluid-42);
    top: var(--fluid-m14);
    right: var(--fluid-m14);
    cursor: pointer;
    transition: all 0.2s ease;
    z-index: 10001;
}
.modal__close:active {
    transform: scale(0.95);
}

.modal__body {
    margin-top: var(--fluid-11);
    overflow-y: auto;
    max-height: 60svh;
}

.modal__body h4 {
    background-color: #08287F;
    color: #FFFFFF;
    font-size: var(--fz-18);
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--fluid-37);
}
.modal__body h4 + * {
    margin-top: var(--fluid-8);
}
.modal__body p + h4,
.modal__body ul + h4 {
    margin-top: var(--fluid-24);
}

.modal__body p {
    color: #000000;
    font-size: var(--fz-16);
    line-height: 1.375;
}
.modal__body p + p {
    margin-top: var(--fluid-16);
}
.modal__body p:has(img) {
    text-align: center;
}

.modal__body ul + ul,
.modal__body ul + p {
    margin-top: var(--fluid-16);
}
.modal__body ul li {
    color: #000000;
    font-size: var(--fz-16);
    line-height: 1.375;
}

.modal__body a {
    text-decoration: underline;
}

.modal__LinkImage {
    margin-top: var(--fluid-16);
}

.modal__body .modal__text {
    font-size: var(--fz-14);
    margin-top: var(--fluid-8);
    text-align: center;
}
.modal__body .modal__text a {
    color: #002885;
    font-size: var(--fz-14);
    text-decoration: underline;
}

/* type03 */
.type03 .modal__content {
    padding: 0;
}
.type03 .modal__header {
    background-color: #08287F;
}
.type03 .modal__header h3 {
    color: #FFFFFF;
    font-size: var(--fz-18);
    font-weight: bold;
    margin: 0;
    padding: var(--fluid-14) 0;
    text-align: center;
}
.type03 .modal__body {
    margin-top: 0;
}
.type03 .modal__body__inner {
    padding: 0 var(--fluid-14);
}
.type03 .modal__body h4 {
    font-size: var(--fz-18);
    margin-top: var(--fluid-12);
    padding: var(--fluid-12) 0;
}
.type03 .modal__body h4:has(.step__txt) {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--fluid-12);
}
.type03 .modal__body .step__txt {
    background-color: #F36F21;
    border-radius: var(--fluid-30);
    color: #FFFFFF;
    font-size: var(--fz-14);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(121px, calc(121 * var(--cqi-ratio)), calc(121px * var(--pc-scale)));
    min-height: var(--fluid-30);
}

/* step */
.modal__step__contents {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: var(--fluid-16);
}
.modal__step__contents__item {
    background-color: #E0EEF5;
}
.modal__step__contents__item__image {
    margin-top: var(--fluid-10);
    padding: 0 var(--fluid-54);
}
.modal__step__contents__item__content {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.modal__step__contents__item__subtitle {
    margin: var(--fluid-12) 0 var(--fluid-8);
    text-align: center;
}
.modal__step__contents__item__subtitle p {
    background-color: #08287F;
    border-radius: var(--fluid-5);
    color: #FFFFFF;
    display: inline-block;
    font-size: var(--fz-16);
    font-weight: bold;
    padding: var(--fluid-8) var(--fluid-28);
}
.modal__step__contents__item__content > p {
    color: #000000;
    font-size: var(--fz-14);
    text-align: center;
}
.modal__step__contents__item__content > p:not(:last-child) {
    flex-grow: 1;
}
.modal__step__contents__item__content > p:last-child {
    margin-top: auto;
    padding-top: var(--fluid-16);
}
.modal__step__contents__item__content > p:last-child img {
    width: 100%;
    height: auto;
    display: block;
}
.modal__step__contents + p {
    margin-top: var(--fluid-21);
    color: #000000;
    font-size: var(--fz-16);
    text-align: center;
}
.modal__step__contents + p a {
    color: #000066;
    font-size: var(--fz-16);
    text-decoration: underline;
}

/* footer */
.modal__footer {
    display: flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    max-height: 30svh;
    padding: var(--fluid-26) 0 var(--fluid-30);
    position: relative;
}

/* close */
.modal__close--bottom {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--fluid-7);
    position: static;
    width: auto;
    height: auto;
    cursor: pointer;
    transition: all 0.2s ease;
    z-index: auto;
}
.modal__close--bottom:active {
    transform: translateY(0);
}

.modal__close-icon {
    width: var(--fluid-42);
    height: var(--fluid-42);
    transition: all 0.2s ease;
}
.modal__close-text {
    color: #000000;
    font-size: var(--fz-16);
    font-weight: bold;
    line-height: 1.75;
}

/* モーダルトリガーボタンのスタイル調整 */
.modal-trigger {
    cursor: pointer;
}

/* #mizuhopoint-modal02 */
#mizuhopoint-modal02,
#mizuhopoint-modal02 * {
    box-sizing: border-box !important;
}
#mizuhopoint-modal02 .modal__content {
    min-width: 0 !important;
}
#mizuhopoint-modal02 .modal__body,
#mizuhopoint-modal02 .modal__body__inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
}
#mizuhopoint-modal02 .modal__step__contents {
    display: flex;
    width: 100%;
    transition: transform 0.4s ease-in-out;
    justify-content: flex-start;
    transform: translateX(0);
    touch-action: pan-y;
    will-change: transform;
    gap: 0;
}
#mizuhopoint-modal02 .modal__step__contents__item {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    margin: 0;
}
#mizuhopoint-modal02 .modal__step__contents__item img {
    max-width: 100%;
    height: auto;
}

/* =========================================
  carousel
========================================= */
/* カルーセルのコンテナ */
.carousel-container {
    position: relative;
    padding-bottom: 0;
    overflow-x: hidden;
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    max-width: 100%;
}
/* 左右の矢印ボタン */
.carousel-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: transparent;
    color: #FFFFFF;
    border: none;
    border-radius: 0;
    width: var(--fluid-36);
    height: var(--fluid-36);
    font-size: 0; /* テキスト非表示 */
    font-weight: bold;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
}
.carousel-button:hover {
    background-color: transparent;
}
.carousel-button.prev,
.carousel-button.next {
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.carousel-button.prev {
    background-image: url('/campaign/cash202607cp/images/icon_circle-arrow-navy-left.png');
    left: var(--fluid-10);
}
.carousel-button.next {
    background-image: url('/campaign/cash202607cp/images/icon_circle-arrow-navy-right.png');
    right: var(--fluid-10);
}
/* ページネーション（下部の丸） */
.carousel-pagination {
    position: relative;
    display: flex;
    padding: var(--fluid-10) 0;
    justify-content: center;
    gap: var(--fluid-10);
    background-color: #E0EEF5;
    top: -1px;
}
.carousel-dot {
    background-color: #CCCCCC;
    border-radius: 50%;
    width: var(--fluid-10);
    height: var(--fluid-10);
    transition: background-color 0.2s;
}
.carousel-dot.active {
    background-color: #08287F;
}

/* =========================================
  floatingActions
========================================= */
.floatingActions {
    position: fixed;
    width: 100% !important;
    max-width: 100% !important;
    left: 50%;
    bottom: 0px;
    transform: translateX(-50%);
    background-color: #00004B;
    z-index: 9000; /* モーダル(9999)より下 */
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
    margin: 0 !important;
}
.floatingActionsInner {
    display: flex;
    justify-content: center;
    gap: var(--fluid-16);
    margin: 0 auto;
    padding: var(--fluid-10) var(--fluid-16) var(--fluid-12);
    width: 100% !important;
    max-width: 500px !important;
}
@media screen and (max-width: 1241px) {
    .floatingActions.isVisible {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }
}

/* =========================================
  pagetop
========================================= */
@media screen and (max-width: 767.9px) {
    .pagetop {
        z-index: 10000;
    }
    .pagetop.is-show {
        bottom: 95px;
    }
}
@media screen and (min-width: 768px) {
    .pagetop {
        z-index: 10000;
    }
    .pagetop.is-show {
        bottom: 88px;
    }
}

/* =========================================
  Footer
========================================= */
.footer {
    margin-top: 0;
}

/* =========================================
  印刷（プリント）用スタイルの最適化
========================================= */
@media print {
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    body {
        min-width: auto;
    }
    .lSideLeft,
    .lSideRight,
    .floating-actions,
    .pagetop {
        display: none !important;
    }

    .lWrapper {
        display: block;
        padding: 0;
        width: 100%;
    }
    .lMain {
        container-type: normal !important;
        width: 500px !important;
        max-width: none !important;
        margin: 0 auto;
    }
    .modal {
        display: none !important;
    }
}