@charset "UTF-8";
:root {
  /* =========================================
    計算用ベース変数
  ========================================= */
  --cqi-ratio: calc(100cqi / 375);

  --pc-scale: 1.333;

  --cta-max-width: calc(320px * var(--pc-scale));

  /* =========================================
    カラー
  ========================================= */
  --c-navy: #000066;
  --c-navy-modal: #08287F;
  --c-blue: #0A7CCB;
  --c-blue-light: #3C9DFF;
  --c-cyan: #00A5E3;
  --c-purple: #7B2FBE;
  --c-red: #E6002D;
  --c-orange: #F07C00;

  --c-bg-benefit: #E2EAFF;
  --c-bg-step: #EFF3FF;
  --c-text: #333333;
  --c-note: #777777;
  --c-visited: #660099;
  --c-link: #285AE1;
  --c-bg-carousel: #F0F4FF;
  --c-dot: #D7D7DB;

  /* =========================================
    余白・サイズ用変数（pxベース）
  ========================================= */
  --fluid-3: clamp(3px, calc(3 * var(--cqi-ratio)), calc(3px * var(--pc-scale)));
  --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-62: clamp(62px, calc(62 * var(--cqi-ratio)), calc(62px * var(--pc-scale)));
  --fluid-64: clamp(64px, calc(64 * var(--cqi-ratio)), calc(64px * var(--pc-scale)));
  --fluid-66: clamp(66px, calc(66 * var(--cqi-ratio)), calc(66px * var(--pc-scale)));
  --fluid-68: clamp(68px, calc(68 * var(--cqi-ratio)), calc(68px * var(--pc-scale)));
  --fluid-71: clamp(71px, calc(71 * var(--cqi-ratio)), calc(71px * var(--pc-scale)));
  --fluid-76: clamp(76px, calc(76 * var(--cqi-ratio)), calc(76px * 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-26: clamp(2.6rem, calc(26 * var(--cqi-ratio)), calc(2.6rem * 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
========================================= */

.autumn2026cp,
.autumn2026cp *,
.autumn2026cp *::before,
.autumn2026cp *::after,
.modal,
.modal *,
.modal *::before,
.modal *::after,
.floatingActions,
.floatingActions * {
    box-sizing: border-box;
}

body {
    min-width: 320px;
}

/* Noto Sans JP はLP本体・モーダル・追従ボタンだけに限定する。
   body に当てるとパンくず・ヘッダー・フッター（テンプレート部）まで上書きしてしまい、
   共通CSS（/common2024/）の游ゴシックが効かなくなるため（修正No.240・241）。 */
.autumn2026cp,
.modal,
.floatingActions {
    font-family: "Noto Sans JP", sans-serif;
}

img {
    width: 100%;
}

sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    top: -0.4em;
    vertical-align: baseline;
}

.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
.mT15 { margin-top: 15px !important; }
.fc-blue { color: var(--c-navy) !important; }

/* =========================================
  Layout
========================================= */
.autumn2026cp {
    width: 100%;
    background-image:
        url("/campaign/autumn2026cp/images/bg_gradient-orange.png"),
        radial-gradient(120% 100% at 50% 45%, #FFF6E4 0%, #FFEACB 55%, #FFDFA8 100%);
    background-repeat: no-repeat, no-repeat;
    background-attachment: fixed, fixed;
    background-position: center center, center center;
    background-size: cover, cover;
    background-color: #FFEDD1;
    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;
    background-color: #FFFFFF;
}

/* 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: var(--c-navy);
    font-size: 16px;
    font-weight: bold;
    margin-top: 18px;
}

/* cpMenu */
.cpMenu {
    background-color: #FFFFFF;
    border-radius: 20px;
    position: relative;
}

.cpMenuInner {
    padding: 72px 21px 53px;
}

.cpMenuTitle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -12px;
    width: 105px;
}
.cpMenuNavItem {
    padding-left: 14px;
    position: relative;
}

.cpMenuNavItem + .cpMenuNavItem {
    margin-top: 30px;
}

.cpMenuNavItem::before {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;

    width: 68px;
    height: 68px;
    left: -56px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}
.cpMenuNavItemHead::before      { background-image: url("/campaign/autumn2026cp/images/icon_aomaru-summary.png"); }
.cpMenuNavItemBenefit1::before  { background-image: url("/campaign/autumn2026cp/images/icon_aomaru-benefit1.png"); }
.cpMenuNavItemBenefit2::before  { background-image: url("/campaign/autumn2026cp/images/icon_aomaru-benefit2.png"); }
.cpMenuNavItemBenefit3::before  { background-image: url("/campaign/autumn2026cp/images/icon_aomaru-benefit3.png"); }
.cpMenuNavItemRecommend::before { background-image: url("/campaign/autumn2026cp/images/icon_aomaru-recommend.png"); }
.cpMenuNavItemFaq::before       { background-image: url("/campaign/autumn2026cp/images/icon_aomaru-faq.png"); }

.cpMenuNavLink {
    border-bottom: 3px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0 4px;
    text-decoration: none;
}

.cpMenuNavLink img {
    display: block;
    width: auto;
    height: 22px;
    max-width: 100%;
}

.cpMenuNavItemHead {
    margin-bottom: 47px;
}

.cpMenuNavItem.isCurrent::before {
    opacity: 1;
}
.cpMenuNavItem.isCurrent .cpMenuNavLink {
    border-bottom: 3px solid;
    border-image: linear-gradient(to right, #F5871F, #FFE640) 1;
}

/* =========================================
  Hero
========================================= */
.cHeroImage {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
}

/* =========================================
  Button
  実装定義：上限ストッパー型（max-width + margin-inline: auto）
========================================= */
.button {
    position: relative;
    display: block;
    width: 100%;
    max-width: var(--cta-max-width);
    margin-inline: auto;
    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: var(--c-red) !important;
    color: #FFFFFF !important;
}

.button.button-internal-link::before,
.button.button-internal-link::after,
.button.button-external-link::before,
.button.button-external-link::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

/* 内部リンク：白丸＋ボタン色の右向き三角 */
.button.button-internal-link::after {
    width: var(--fluid-34);
    height: var(--fluid-34);
    right: var(--fluid-10);
    background-color: #FFFFFF;
    border-radius: 50%;
}
.button.button-internal-link::before {
    right: calc(var(--fluid-10) + var(--fluid-13));
    border-style: solid;
    border-width: var(--fluid-6) 0 var(--fluid-6) var(--fluid-10);
    border-color: transparent transparent transparent var(--c-red);
    z-index: 1;
}

.button.button-external-link::after {
    width: var(--fluid-15);
    height: var(--fluid-13);
    right: var(--fluid-14);
    top: calc(50% - var(--fluid-4));
    border: 2px solid #FFFFFF;
    box-sizing: border-box;
}
.button.button-external-link::before {
    width: var(--fluid-15);
    height: var(--fluid-13);
    right: calc(var(--fluid-14) + var(--fluid-5));
    top: calc(50% + var(--fluid-4));
    border: 2px solid #FFFFFF;
    background-color: var(--c-red);
    box-sizing: border-box;
    z-index: 1;
}

/* =========================================
  Link
========================================= */
.autumn2026cp a:not(.modal-trigger):visited,
.modal a:not(.modal-trigger):visited,
.floatingActions a:not(.modal-trigger):visited {
    color: var(--c-visited);
}
.autumn2026cp .linkAnchor:not(.modal-trigger):visited,
.autumn2026cp .cpCardLink a:not(.modal-trigger):visited,
.autumn2026cp .cpAccountOpen .toggle__content a:not(.modal-trigger):visited,
.autumn2026cp .info__item__number a:not(.modal-trigger):visited,
.autumn2026cp .cvArea .linkEntry:not(.modal-trigger):visited,
.autumn2026cp .cpFaqLink:not(.modal-trigger):visited,
.modal .modal__body a:not(.modal-trigger):visited,
.modal .modal__text a:not(.modal-trigger):visited {
    color: var(--c-visited);
}
.autumn2026cp .fc-blue a:not(.modal-trigger):visited {
    color: var(--c-visited) !important;
}

.linkAnchor {
    color: var(--c-navy);
    display: inline-block;
    font-size: var(--fz-12);
    line-height: 1.5;
    padding-right: var(--fluid-14);
    position: relative;
    text-decoration: underline;
}
.linkAnchor::after {
    content: "";
    position: absolute;
    background-image: url("/campaign/autumn2026cp/images/icon_chevron-down-navy-md.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    width: var(--fluid-11);
    height: var(--fluid-7);
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.linkAnchorNext::after {
    transform: translateY(-50%) rotate(-90deg);
}

.linkEntry {
    color: #FFFFFF;
    font-size: var(--fz-13);
    padding-right: 1.2em;
    position: relative;
    text-decoration: underline;
}
.linkEntry::after {
    content: "";
    position: absolute;
    width: var(--fluid-8);
    height: var(--fluid-8);
    right: 0;
    top: 50%;
    border-right: 2px solid #FFFFFF;
    border-bottom: 2px solid #FFFFFF;
    transform: translateY(-70%) rotate(45deg);
}

/* =========================================
  アイコン・グリッド内画像
  実装定義：アスペクト比固定型
  （aspect-ratio + object-fit: cover で横幅可変時の歪みを防ぐ）
========================================= */
.cpCardBadge img,
.cpCardPoint img,
.cpStepItemPoint img,
.cpStepFaqTitle img,
.cpMenuTitle img,
.cpRecommendListItem img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}
.cpCard01 .cpCardBadge img { aspect-ratio: 235 / 187; }
.cpCard02 .cpCardBadge img { aspect-ratio: 246 / 170; }
.cpCard03 .cpCardBadge img { aspect-ratio: 244 / 168; }
.cpCardPoint img,
.cpStepItemPoint img { aspect-ratio: 200 / 108; }

.cpStepFaqTitle img { aspect-ratio: 80 / 47; }
.cpMenuTitle img { aspect-ratio: 109 / 39; }

.cpRecommendListItem img { aspect-ratio: 540 / 300; }

.cpCardGrid .cpCard03 .cpCardTitle {
    aspect-ratio: 263 / 260;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cpCardGrid .cpCard03 .cpCardTitle img {
    width: calc(100% * 200 / 263);
}

/* =========================================
  Notice（※注記）
========================================= */
.cpNotice {
    list-style: none;
    margin: var(--fluid-14) 0 0;
    padding: 0;
    width: 100%;
}
.cpNoticeItem {
    color: var(--c-note);
    font-size: var(--fz-12);
    line-height: 1.5;
    text-align: justify;
    padding-left: 1em;
    text-indent: -1em;
}
.cpNoticeItem + .cpNoticeItem {
    margin-top: var(--fluid-6);
}

/* =========================================
  cvArea
========================================= */

.cvArea {
    background-color: #CFE8FE;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--fluid-12);
    padding: var(--fluid-15) var(--fluid-26);
}
/* 実装定義：CTAボタンは上限ストッパー型 */

.cvArea > p {
    width: 100%;
    max-width: var(--cta-max-width);
    margin-inline: auto;
    text-align: center;
}
.cvArea .linkEntry {
    color: var(--c-navy);
    font-size: var(--fz-13);
    letter-spacing: 0.65px;
}

.cvArea .linkEntry::after {
    background-image: url("/campaign/autumn2026cp/images/icon_chevron-down-navy-sm.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    border: 0;
    width: var(--fluid-8);
    height: var(--fluid-5);
    transform: translateY(-50%);
}

/* =========================================
  Benefit（3つのおトクな特典 サマリー）
========================================= */
.cpBenefit {
    background-color: var(--c-bg-benefit);
}

.cpBenefitInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-61) var(--fluid-18) var(--fluid-60);
}

.cpBenefitLead {
    width: calc(337 * var(--cqi-ratio));
    max-width: calc(337px * var(--pc-scale));
    margin-inline: auto;
    margin-bottom: var(--fluid-23);
}

.cpBenefitTitle {
    width: calc(287 * var(--cqi-ratio));
    max-width: calc(287px * var(--pc-scale));
    margin-inline: auto;
    margin-bottom: var(--fluid-20);
}

/* =========================================
  Card（特典カード 共通）
========================================= */
.cpCard {
    background-color: #FFFFFF;
    border: 3px solid var(--c-cyan);
    border-radius: var(--fluid-16);
    position: relative;
    width: 100%;
}
.cpCard01 { border-color: var(--c-cyan); }
.cpCard02 { border-color: var(--c-purple); }
.cpCard03 { border-color: #0068D6; }

.cpCardBadge {
    position: absolute;
    top: calc(-1 * var(--fluid-22));
    left: var(--fluid-16);
    width: clamp(60px, calc(60 * var(--cqi-ratio)), calc(60px * var(--pc-scale)));
    z-index: 1;
}

.cpCardBadge img {
    position: relative;
    filter:
        drop-shadow(0 0 2px #FFFFFF)
        drop-shadow(0 0 2px #FFFFFF);
}
.cpTokuten .cpCardBadge {
    left: 50%;
    transform: translateX(-50%);
}
.cpCardGrid .cpCardBadge {
    left: var(--fluid-5);
    transform: none;
}

.cpTokuten .cpCardBadge {
    top: calc(-1 * var(--fluid-47));
    width: clamp(102px, calc(102 * var(--cqi-ratio)), calc(102px * var(--pc-scale)));
}
.cpTokuten .cpCard02 .cpCardBadge {
    width: clamp(108px, calc(108 * var(--cqi-ratio)), calc(108px * var(--pc-scale)));
}
.cpTokuten .cpCard03 .cpCardBadge {
    width: clamp(107px, calc(107 * var(--cqi-ratio)), calc(107px * var(--pc-scale)));
}

.cpCardPoint {
    position: absolute;
    z-index: 1;
}

.cpCard01 .cpCardPoint {
    top: calc(-1 * var(--fluid-15));
    right: var(--fluid-10);
    width: clamp(49px, calc(49 * var(--cqi-ratio)), calc(49px * var(--pc-scale)));
}

.cpCard02 .cpCardPoint {
    top: calc(-1 * var(--fluid-18));
    right: calc(-1 * var(--fluid-12));
    width: clamp(94px, calc(94 * var(--cqi-ratio)), calc(94px * var(--pc-scale)));
}

.cpCard03 .cpCardPoint {
    top: calc(-1 * var(--fluid-18));
    right: calc(-1 * var(--fluid-6));
    width: clamp(47px, calc(47 * var(--cqi-ratio)), calc(47px * var(--pc-scale)));
}

.cpCard01 .cpCardPoint img,
.cpCard03 .cpCardPoint img {
    aspect-ratio: 52 / 54;
}

.cpCardPoint a,
.cpStepItemPoint a {
    display: block;
    cursor: pointer;
    text-decoration: none;
}

.cpCardPointSet {
    display: flex;
    align-items: flex-start;
}
.cpCardPointSet .cpPointMizuho {
    width: 52%;
    flex: none;
}
.cpCardPointSet .cpPointRakuten {
    width: 50%;
    flex: none;
    margin-left: -2%;
}
.cpCardPointSet .cpPointMizuho img { aspect-ratio: 104 / 108; }
.cpCardPointSet .cpPointRakuten img { aspect-ratio: 100 / 108; }

.cpStepItem .cpStepItemPointSingle {
    width: clamp(60px, calc(60 * var(--cqi-ratio)), calc(60px * var(--pc-scale)));
}
.cpStepItemPointSingle img { aspect-ratio: 52 / 54; }

.cpCardTitleRow {
    position: relative;
    width: 100%;
}
.cpCardTitleRow .cpCardTitle {
    margin-top: 0;
    width: 100%;
}
.cpCardTitleRow .cpPointMizuho {
    position: absolute;
    left: 0;
    top: 39.4%;
    width: 16.7%;
    z-index: 1;
}
.cpCardTitleRow .cpPointMizuho img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 52 / 54;
}

.cpCardAmountRow {
    align-items: center;
    display: flex;
    justify-content: center;
    gap: 1.3%;
    width: 100%;
    margin-top: var(--fluid-8);
}
.cpCardAmountRow .cpPointMizuho {
    flex: none;
    width: 16.7%;
}
.cpCardAmountRow .cpPointMizuho img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 52 / 54;
}
.cpCardAmountRow .cpCardAmount {
    flex: none;
    width: 69.5%;
}

.cpCardPointSetInline {
    align-self: flex-start;
    width: 32.2%;
    margin-top: var(--fluid-7);
}
.cpTokuten .cpCardInner > .cpTokuten02Point {
    margin-top: var(--fluid-5);
}

.cpTokuten02Point {
    position: relative;
}
.cpTokuten02Point > img {
    display: block;
    width: 100%;
    height: auto;
}
.cpPointMizuhoLabel {
    position: absolute;
    top: 26.91%;
    left: 19.65%;
    width: 60.55%;
    height: 8.09%;
    align-items: center;
    background-color: #FFFFFF;
    border-radius: 999px;
    cursor: pointer;
    display: flex;
    gap: 4%;
    justify-content: center;
    text-decoration: none;
}
.cpPointMizuhoLabel img {
    display: block;
    width: 60.6%;
    height: auto;
}
.cpPointMizuhoLabel::after {
    content: "";
    flex: none;
    width: 9%;
    aspect-ratio: 1;
    background-image: url("/campaign/autumn2026cp/images/icon_question-circle.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.cpTokuten03 .cpStepItem .cpStepItemTitle {
    width: 76.7%;
    margin-inline: auto;
}

.cpCardInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-32) var(--fluid-16) var(--fluid-24);
}

.cpCardTitle {
    width: 100%;
    margin-top: var(--fluid-10);
}

.cpCardInner > .cpCardTitle:first-child {
    margin-top: 0;
}
.cpCardImage {
    width: 100%;
    margin-top: var(--fluid-14);
}
.cpCardModalLink {
    width: 100%;
    margin-top: var(--fluid-16);
}
.cpCardLink {
    margin-top: var(--fluid-14);
    text-align: center;
}
.cpCardBtn {
    width: 100%;
    margin-top: var(--fluid-18);
}

/* 2カラム（特典2・特典3 サマリー） */

.cpCardGrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--fluid-16);
    width: 100%;
    margin-top: var(--fluid-31);
}

.cpCardGrid .cpCard {
    display: flex;
    flex-direction: column;
}
.cpCardGrid .cpCardInner {
    flex: 1;
    justify-content: flex-end;
    padding: var(--fluid-37) var(--fluid-16) var(--fluid-14);
}

.cpCardGrid .cpCardTitle {
    width: clamp(121px, calc(121 * var(--cqi-ratio)), calc(121px * var(--pc-scale)));
    margin-inline: auto;
}

.cpAnchorBtn {
    max-width: var(--cta-max-width);
    margin-inline: auto;
    display: block;
    text-decoration: none;
    width: 100%;
}
.cpAnchorBtn img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
  みずほポイントとは？
========================================= */

.cpPointAbout {
    background-color: #FFFFFF;
    border: 2px solid #E8E8E8;
    border-radius: var(--fluid-8);
    margin-top: var(--fluid-33);
    padding: var(--fluid-24) var(--fluid-20) var(--fluid-28);
    width: 100%;
}
.cpPointAboutTitle {
    align-items: center;
    color: var(--c-navy);
    display: flex;
    font-size: var(--fz-20);
    font-weight: bold;
    gap: var(--fluid-9);
    justify-content: center;
}
.cpPointAboutTitle::before {
    content: "";
    background-image: url("/campaign/autumn2026cp/images/icon_question-circle.png");
    background-repeat: no-repeat;
    background-size: contain;
    flex: none;
    width: var(--fluid-23);
    height: var(--fluid-23);
}
.cpPointAboutText {
    color: var(--c-text);
    font-size: var(--fz-16);
    line-height: 1.75;
    margin-top: var(--fluid-14);
    text-align: justify;
}
.cpPointAboutBtn {
    margin-top: var(--fluid-20);
    text-align: center;
}

.cpModalBtn {
    cursor: pointer;
    display: inline-block;
    text-decoration: none;
    width: clamp(200px, calc(200 * var(--cqi-ratio)), calc(200px * var(--pc-scale)));
}
.cpModalBtn img {
    display: block;
    width: 100%;
    height: auto;
}

/* 【特典n】詳細条件およびご留意事項 */
.cpModalLink {
    background-color: #FFFFFF;
    border: 2px solid var(--c-navy);
    color: var(--c-navy);
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    font-size: var(--fz-12);
    font-weight: bold;
    width: 100%;
    min-height: var(--fluid-42);
    padding: var(--fluid-6) var(--fluid-34) var(--fluid-6) var(--fluid-12);
    text-decoration: none;
    box-sizing: border-box;
}

.cpModalLink::after {
    content: "";
    position: absolute;
    width: var(--fluid-20);
    height: var(--fluid-20);
    right: var(--fluid-10);
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--c-navy);
    border-radius: 50%;
    background-image: linear-gradient(#FFFFFF, #FFFFFF);
    background-repeat: no-repeat;
    background-position: center;
    background-size: var(--fluid-10) 2px;
}
.cpModalLink::before {
    content: "";
    position: absolute;
    width: 2px;
    height: var(--fluid-10);
    right: calc(var(--fluid-10) + var(--fluid-20) / 2 - 1px);
    top: 50%;
    transform: translateY(-50%);
    background-color: #FFFFFF;
    z-index: 1;
}
.cpModalLink.is-open::before {
    display: none;
}

/* =========================================
  Tokuten（特典詳細セクション）
========================================= */
.cpTokuten {
    background-color: #FFFFFF;
}
.cpTokutenInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-56) var(--fluid-18) var(--fluid-30);
}
.cpTokuten03 .cpTokutenInner {
    padding-bottom: var(--fluid-56);
}

.cpTokutenLead {
    width: calc(320 * var(--cqi-ratio));
    max-width: calc(320px * var(--pc-scale));
    margin-inline: auto;
    margin-bottom: var(--fluid-55);
}

.cpTokuten .cpCardInner {
    padding: var(--fluid-62) var(--fluid-20) var(--fluid-21);
}

/* =========================================
  Step toggle（特典を獲得するには）
========================================= */
.cpStepToggle {
    width: 100%;
    margin-top: var(--fluid-16);
}
.cpStepToggle > .toggle__title {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: var(--c-blue);
    color: #FFFFFF;
    font-size: var(--fz-18);
    font-weight: bold;
    border-radius: var(--fluid-8);
    min-height: var(--fluid-46);
    padding: var(--fluid-10) var(--fluid-48) var(--fluid-10) var(--fluid-16);
    cursor: pointer;
}
.cpStepToggle.is-open > .toggle__title {
    border-radius: var(--fluid-8) var(--fluid-8) 0 0;
}

.cpStepTogglePlus {
    position: absolute;
    top: 50%;
    right: var(--fluid-12);
    transform: translateY(-50%);
    width: clamp(17.5px, calc(17.5 * var(--cqi-ratio)), calc(17.5px * var(--pc-scale)));
    height: clamp(17.5px, calc(17.5 * var(--cqi-ratio)), calc(17.5px * var(--pc-scale)));
    background-color: #FFFFFF;
    border-radius: 2.2px;
    box-sizing: border-box;
}
.cpStepTogglePlus::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: clamp(6.5px, calc(6.5 * var(--cqi-ratio)), calc(6.5px * var(--pc-scale)));
    height: clamp(6.5px, calc(6.5 * var(--cqi-ratio)), calc(6.5px * var(--pc-scale)));
    border-right: 2px solid #285AE1;
    border-bottom: 2px solid #285AE1;
    transform: translate(-50%, -75%) rotate(45deg);
    transition: transform 0.3s ease;
}
.cpStepToggle.is-open .cpStepTogglePlus::before {
    transform: translate(-50%, -25%) rotate(-135deg);
}

.cpStepToggle > .toggle__content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease;
}
.cpStepToggle.is-open > .toggle__content {
    max-height: 9000px;
    opacity: 1;
    visibility: visible;
}
.cpStepToggle > .toggle__content > .toggle__inner {
    background-color: var(--c-bg-step);
    border-radius: 0 0 var(--fluid-8) var(--fluid-8);
    color: var(--c-navy);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-24) var(--fluid-20) var(--fluid-28);
}

.cpStepLead {
    width: calc(223 * var(--cqi-ratio));
    max-width: calc(223px * var(--pc-scale));
    margin-inline: auto;
    margin-bottom: var(--fluid-16);
}

/* ステップ1件 */
.cpStepItem {
    background-color: #FFFFFF;
    border-radius: var(--fluid-12);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-24) var(--fluid-20);
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.cpStepItemHead {
    color: var(--c-text);
    font-size: var(--fz-18);
    font-weight: bold;
    letter-spacing: 0.36px;
    line-height: 1.5;
    text-align: center;
}
.cpTokuten03 .cpStepItemHead {
    margin-inline: calc(-1 * var(--fluid-6));
}

.cpStepItemHead + .cpStepItemImage,
.cpStepItemImage + .cpStepItemHead {
    margin-top: var(--fluid-14);
}
.cpStepItemLeadImage {
    width: 100%;
    margin-top: var(--fluid-16);
    text-align: center;
}
.cpStepItemLeadImage img {
    display: block;
    width: 100%;
    max-width: var(--cta-max-width);
    height: auto;
    margin-inline: auto;
}
.cpStepItem > .cpStepItemLeadImage:first-child {
    margin-top: 0;
}
.cpStepItemTitle {
    width: 100%;
    margin-top: var(--fluid-12);
}
.cpStepItem > .cpStepItemTitle:only-child {
    margin-top: 0;
}
.cpStepItemImage {
    width: 100%;
}
.cpStepItemPoint {
    position: absolute;
    top: calc(-1 * var(--fluid-32));
    left: 2px;
    width: clamp(94px, calc(94 * var(--cqi-ratio)), calc(94px * var(--pc-scale)));
    z-index: 1;
}
.cpStepItemPoint + .cpStepItemTitle {
    margin-top: 0;
}
.cpStepItemBtn {
    width: 100%;
    margin-top: var(--fluid-16);
}
.cpStepItemBtn > a {
    display: block;
    max-width: var(--cta-max-width);
    margin-inline: auto;
    text-decoration: none;
}
.cpStepItemBtn > a > img {
    display: block;
    width: 100%;
    height: auto;
}
.cpStepItemLink {
    margin-top: var(--fluid-12);
    text-align: center;
}
.cpTokuten02 .cpStepItemLink {
    margin-top: var(--fluid-8);
}

/* ステップ間の矢印 */

.cpStepArrow {
    width: var(--fluid-47);
    height: var(--fluid-20);
    margin: var(--fluid-10) 0;
    background-image: url("/campaign/autumn2026cp/images/icon_arrow-down-step.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

/* 特典内 FAQ */
.cpStepFaq {
    margin-top: var(--fluid-34);
    width: 100%;
}
.cpStepFaqTitle {
    width: var(--fluid-40);
    margin: 0 auto var(--fluid-16);
}
.cpStepFaq .cpFaqListItem + .cpFaqListItem {
    margin-top: var(--fluid-16);
}

/* =========================================
  Recommend（おすすめ情報）
========================================= */
.cpRecommend {
    background-color: #EFF3FF;
}

.cpRecommendInner {
    padding: var(--fluid-43) var(--fluid-20) var(--fluid-54);
}

.cpRecommendTitleBox {
    --recommend-title-w: clamp(187px, calc(187 * var(--cqi-ratio)), calc(187px * var(--pc-scale)));
    --recommend-aomaru-w: clamp(47px, calc(47 * var(--cqi-ratio)), calc(47px * var(--pc-scale)));
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--fluid-18);
    position: relative;
}
.cpRecommendTitle {
    width: var(--recommend-title-w);
    flex: none;
}
.cpRecommendAomaru {
    position: absolute;
    top: 50%;
    left: calc(50% + var(--recommend-title-w) / 2 + var(--fluid-21));
    transform: translateY(-50%);
    width: var(--recommend-aomaru-w);
    flex: none;
}

.cpRecommendListItem {
    width: calc(260 * var(--cqi-ratio));
    max-width: calc(260px * var(--pc-scale));
    margin-inline: auto;
}
.cpRecommendListItem + .cpRecommendListItem {
    margin-top: var(--fluid-19);
}
.cpRecommendListItem a {
    display: block;
}

/* =========================================
  FAQ
========================================= */
.cpFaq {
    background-color: #FFFFFF;
}
.cpFaqInner {
    padding: var(--fluid-40) var(--fluid-18) var(--fluid-48);
}
.cpFaqListItem {
    border-bottom: 2px solid var(--c-blue-light);
}
.cpFaqLink,
.cpFaqQuestion {
    color: var(--c-text);
    display: block;
    font-size: var(--fz-14);
    font-weight: bold;
    letter-spacing: 0.7px;
    line-height: 1.5;
    padding: var(--fluid-19) var(--fluid-32) var(--fluid-17) var(--fluid-36);
    position: relative;
    text-decoration: none;
}
.cpFaqLink::before,
.cpFaqLink::after,
.cpFaqQuestion::before {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
}

.cpFaqLink::before,
.cpFaqQuestion::before {
    background-image: url("/campaign/autumn2026cp/images/icon_faq-q.png");
    width: var(--fluid-20);
    height: var(--fluid-20);
    left: 0;
    top: var(--fluid-20);
}
.cpFaqLink::after {
    background-image: url("/campaign/autumn2026cp/images/icon_blank-navy.png");
    width: var(--fluid-16);
    height: var(--fluid-16);
    right: 0;
    top: var(--fluid-22);
}

.cpFaqQuestion {
    cursor: pointer;
    padding: 0 var(--fluid-24) var(--fluid-8) var(--fluid-28);
}
.cpFaqQuestion::before {
    top: 0;
}
.cpFaqQuestion::after {
    content: "";
    position: absolute;
    background-image: url("/campaign/autumn2026cp/images/icon_toggle.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-16);
    height: var(--fluid-16);
    right: 0;
    top: 0;
    transition: transform 0.3s ease;
}
.cpFaqToggle.is-open .cpFaqQuestion::after {
    transform: rotate(180deg);
}
.cpFaqToggle .toggle__content {
    display: none;
}
.cpFaqToggle.is-open .toggle__content {
    display: block;
}
.cpFaqAnswer {
    color: var(--c-text);
    font-size: var(--fz-14);
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0.7px;
    line-height: 1.5;
    padding: 0 var(--fluid-24) var(--fluid-8) var(--fluid-28);
    position: relative;
}
.cpFaqAnswer .linkAnchor {
    font-size: inherit;
}
.cpFaqAnswer::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/autumn2026cp/images/icon_faq-a.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-20);
    height: var(--fluid-20);
    left: 0;
    top: 0;
}

/* =========================================
  みずほポイントの確認方法
========================================= */

.cpPointCheck {
    background-color: var(--c-navy);
}
.cpPointCheckInner {
    padding: var(--fluid-13);
}
.cpPointCheckImage {
    width: 100%;
}
.cpPointCheckImage img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
  キャンペーン期間・エントリー期間
========================================= */
.cpPeriod {
    background-color: #FFFFFF;
}

.cpPeriodInner {
    padding: var(--fluid-23) var(--fluid-19) var(--fluid-20);
}
.cpPeriodImage {
    width: 100%;
}
.cpPeriodImage img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
  cpAccountOpen（口座開設）
========================================= */

.cpAccountOpen {
    background-color: var(--c-navy-modal);
}
.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: calc(337 * var(--cqi-ratio));
    max-width: calc(337px * var(--pc-scale));
    margin-inline: auto;
}

/* toggle */
.cpAccountOpen .toggle {
    background-color: #FFFFFF;
    border-bottom: var(--fluid-5) solid var(--c-blue-light);
    position: relative;
}
.cpAccountOpen .toggle + .toggle {
    margin-top: var(--fluid-15);
}

.cpAccountOpen .toggle__title {
    color: var(--c-navy);
    font-size: var(--fz-21);
    font-weight: bold;
    padding: var(--fluid-11) var(--fluid-54) var(--fluid-11) var(--fluid-9);
    cursor: pointer;
}

.cpAccountOpen .toggle__title::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/autumn2026cp/images/icon_toggle.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-28);
    height: var(--fluid-28);
    top: var(--fluid-29);
    right: var(--fluid-22);
    transition: transform 0.3s ease;
}
.cpAccountOpen .is-open .toggle__title::before {
    transform: rotate(180deg);
}
.cpAccountOpen .toggle__title .subTitle {
    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: 5000px;
    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 var(--c-navy);
    padding-top: var(--fluid-15);
}

.cpAccountOpen .toggle__content h3 {
    color: var(--c-navy);
    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: var(--c-navy);
    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/autumn2026cp/images/icon_circle-navy.png");
    background-repeat: no-repeat;
    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,
.cpAccountOpen .toggle__content .icon__plus {
    width: auto;
}
.cpAccountOpen .toggle__content .button {
    margin-top: var(--fluid-30);
}

/* =========================================
  cpAttention（注意事項）
========================================= */
.cpAttention {
    background-color: #F3F3F3;
}
.cpAttentionInner {
    padding: var(--fluid-52) var(--fluid-15) var(--fluid-56);
}

/* 注意事項セクションの見出し */
.cpAttentionHeading {
    color: var(--c-text);
    font-size: var(--fz-24);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
    text-align: center;
}
.cpAttentionHeading + .toggle {
    margin-top: var(--fluid-36);
}

.cpAttention .toggle {
    background-color: #FFFFFF;
    border-radius: var(--fluid-8);
    padding: var(--fluid-16) var(--fluid-16) var(--fluid-16) var(--fluid-20);
    position: relative;
}
.cpAttention .toggle + .toggle {
    margin-top: var(--fluid-15);
}

.cpAttention .toggle__title {
    color: var(--c-navy-modal);
    font-size: var(--fz-17);
    font-weight: 700;
    line-height: 1.5;
    padding-right: var(--fluid-40);
    position: relative;
    cursor: pointer;
    box-sizing: border-box;
}

.cpAttention .toggle__title::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/autumn2026cp/images/icon_toggle.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-30);
    height: var(--fluid-30);
    right: 0;
    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/autumn2026cp/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: 50%;
    transform: translateY(-50%);
}

.cpAttention .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;
}
.cpAttention .toggle.is-open .toggle__content {
    max-height: 5000px;
    opacity: 1;
    visibility: visible;
}

.cpAttention .toggle__content .toggle__inner {
    border-top: 1px solid #E8E8E8;
    margin-top: var(--fluid-15);
    padding-top: var(--fluid-15);
    color: var(--c-text);
    font-size: var(--fz-14);
    line-height: 1.5;
    letter-spacing: 0.05em;
}
/* 「お申し込みにあたって」等の小見出し */
.cpAttention .toggle__content .toggle__inner > p b {
    font-weight: 500;
    font-size: clamp(1.756rem, calc(17.56 * var(--cqi-ratio)), calc(1.756rem * var(--pc-scale)));
    letter-spacing: 0;
}
.cpAttention .toggle__content .toggle__inner > p + ul,
.cpAttention .toggle__content .toggle__inner > ul + p,
.cpAttention .toggle__content .toggle__inner > ul + ul {
    margin-top: var(--fluid-13);
}
.cpAttention .toggle__content ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}
.cpAttention .toggle__content ul li {
    padding-left: var(--fluid-20);
    position: relative;
}
.cpAttention .toggle__content ul li + li {
    margin-top: var(--fluid-13);
}
.cpAttention .toggle__content ul li::before {
    content: "●";
    position: absolute;
    color: var(--c-navy);
    font-size: var(--fluid-8);
    line-height: 1;
    left: 0;
    top: 0.8em;
}

.cpAttention .toggle__content .cpAttentionNote {
    color: var(--c-note);
    font-size: clamp(1.317rem, calc(13.17 * var(--cqi-ratio)), calc(1.317rem * var(--pc-scale)));
}
.cpAttention .toggle__content .cpAttentionNote li::before {
    content: "\203B";
    color: inherit;
    font-size: inherit;
    top: 0;
}
.cpAttention .toggle__content .cpAttentionNote li + li {
    margin-top: var(--fluid-5);
}
.cpAttention .toggle__content a {
    color: var(--c-navy);
    text-decoration: underline;
}

/* =========================================
  diversion
  .info（お問い合わせ）
========================================= */
.cpContact {
    background-color: #FFFFFF;
}
.cpContactInner {
    padding: 0 var(--fluid-11) var(--fluid-7);
}
.info__box {
    margin-inline: auto;
    max-width: clamp(296px, calc(296 * var(--cqi-ratio)), calc(296px * var(--pc-scale)));
}

.info__item:first-child {
    color: var(--c-navy);
    padding: var(--fluid-27) var(--fluid-20) var(--fluid-14);
    text-align: center;
}
.info__item:first-child .info__item__title {
    border-bottom: 1px solid #CCCCCC;
    font-size: var(--fz-16);
    font-weight: bold;
    padding-bottom: var(--fluid-12);
}
.info__item:first-child .info__item__number a {
    color: var(--c-navy);
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    margin-top: var(--fluid-15);
    font-size: var(--fz-30);
    font-weight: bold;
    padding-left: var(--fluid-32);
    position: relative;
    text-decoration: none;
    white-space: nowrap;
}
.info__item__number-text {
    display: block;
    min-width: 0;
    font-size: min(1em, 8.2cqi);
    white-space: nowrap;
}
.info__item:first-child .info__item__number a::before {
    content: "";
    position: absolute;
    background-image: url("/campaign/autumn2026cp/images/icon_tel-navy.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-26);
    height: var(--fluid-26);
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.info__item:first-child .info__item__text {
    font-size: var(--fz-13);
    margin-top: var(--fluid-10);
}

.info__item:last-child {
    color: var(--c-navy);
    padding: var(--fluid-8) var(--fluid-20) var(--fluid-24);
    text-align: center;
}
.info__item:last-child .info__item__title {
    font-size: var(--fz-14);
    font-weight: bold;
}
.info__item__label {
    background-color: var(--c-navy-modal);
    border-radius: var(--fluid-3);
    color: #FFFFFF;
    display: inline-block;
    font-size: var(--fz-12);
    line-height: 1.65;
    margin-bottom: var(--fluid-8);
    padding-inline: var(--fluid-8);
}
.info__item:last-child .info__item__text {
    color: var(--c-note);
    font-size: var(--fz-13);
    line-height: 1.5;
    margin-top: var(--fluid-10);
}

.date__box {
    margin-top: var(--fluid-21);
}
.date__box p {
    color: var(--c-navy);
    font-size: var(--fz-12);
}

/* =========================================
  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 var(--c-navy-modal);
    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: var(--c-navy-modal);
    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: var(--c-navy-modal);
    color: #FFFFFF;
    font-size: var(--fz-18);
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4em;
    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);
}

#mizuhopointModal .modal__body h4 {
    background-color: #E2EEF5;
    border: 2px solid #000066;
    border-radius: var(--fluid-8);
    color: #000066;
}

.modal__body p {
    color: #000000;
    font-size: var(--fz-13);
    font-weight: 400;
    letter-spacing: 0.65px;
    line-height: 1.8;
}
.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-13);
    font-weight: 400;
    letter-spacing: 0.65px;
    line-height: 1.8;
}
.modal__body ul.sp-fs14 li {
    padding-left: 1em;
    text-indent: -1em;
}

.modal__body a {
    color: var(--c-link);
    text-decoration: underline;
}

.modal__body .modal__numList > li {
    padding-left: 0;
    text-indent: 0;
}
.modal__body .modal__numList > li + li {
    margin-top: var(--fluid-12);
}
.modal__body p + .modal__numList {
    margin-top: var(--fluid-22);
}

.modal__body .modal__subList {
    margin-top: var(--fluid-6);
    padding-left: 0;
    text-indent: 0;
}
.modal__body .modal__subList > li {
    padding-left: 0;
    text-indent: 0;
}
.modal__body .modal__subList > li + li {
    margin-top: var(--fluid-4);
}

.modal__body .modal__blankLink::after {
    content: "";
    display: inline-block;
    background-image: url("/campaign/autumn2026cp/images/icon_blank-navy.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    width: 1em;
    height: 1em;
    margin-left: 0.25em;
    vertical-align: -0.1em;
}

/* モーダル下部の画像 */
.modal__body .modal__image {
    margin-top: var(--fluid-24);
    text-align: center;
}

.modal__noteBox {
    background-color: #D3D3D3;
    border-radius: clamp(7.8px, calc(7.8 * var(--cqi-ratio)), calc(7.8px * var(--pc-scale)));
    margin-top: var(--fluid-16);
    padding: var(--fluid-21) var(--fluid-45) var(--fluid-30);
    text-align: center;
}
.modal__body .modal__noteBox li {
    color: var(--c-text);
    font-weight: 700;
    font-size: clamp(1.365rem, calc(13.65 * var(--cqi-ratio)), calc(1.365rem * var(--pc-scale)));
    line-height: clamp(21.84px, calc(21.84 * var(--cqi-ratio)), calc(21.84px * var(--pc-scale)));
    letter-spacing: 0;
}
.modal__body .modal__noteBox li + li {
    margin-top: var(--fluid-10);
}

#mizuhopointModal .modal__body__inner > ul {
    padding-top: var(--fluid-13);
}

/* type03 */
.type03 .modal__content {
    padding: 0;
}
.type03 .modal__header {
    background-color: var(--c-navy-modal);
}
.modalPlainHeader .modal__header {
    align-items: center;
    background-color: transparent;
    display: flex;
    justify-content: center;
    min-height: var(--fluid-64);
}
.type03 .modal__header h3 {
    color: #FFFFFF;
    font-size: var(--fz-18);
    font-weight: bold;
    margin: 0;
    padding: var(--fluid-14) 0;
    text-align: center;
}
.modalPlainHeader .modal__header h3 {
    color: var(--c-navy-modal);
    padding-block: var(--fluid-10);
    padding-inline: var(--fluid-32);
}
.type03 .modal__body {
    margin-top: 0;
}
.type03 .modal__body__inner {
    padding: var(--fluid-16) var(--fluid-14);
}
.type03 .modal__body h4 {
    font-size: var(--fz-18);
    margin-top: var(--fluid-24);
    padding: var(--fluid-12) 0;
}

.type03 .modal__body__inner + .modal__body__inner {
    padding-top: 0;
}
.type03 .modal__body h4 + .modal__body__inner {
    padding-top: var(--fluid-8);
}

.modal__badgeImage {
    display: block;
    margin-inline: auto;
    max-width: var(--cta-max-width);
    width: 100%;
}

.modal__body .modal__lead {
    color: var(--c-navy);
    font-size: var(--fz-17);
    font-weight: bold;
    margin-top: var(--fluid-16);
    text-align: center;
}
.modal__body .modal__lead + ul {
    margin-top: var(--fluid-8);
}
.modal__body .modal__lead + ul li {
    color: var(--c-note);
}

/* アプリダウンロード等の画像リンク */
.modal__body .modal__linkImage {
    margin-top: var(--fluid-16);
    text-align: center;
}

.modal__body .modal__text {
    font-size: var(--fz-14);
    margin-top: var(--fluid-8);
    text-align: left;
}
.modal__body .modal__text a {
    color: var(--c-link);
    font-size: var(--fz-14);
    text-decoration: underline;
}

/* =========================================
  modal：エントリーまでの流れ（ステップカルーセル）
========================================= */
.type03 .modal__body h4:has(.step__txt) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--fluid-8);
}
.type03 .modal__body .step__txt {
    background-color: var(--c-orange);
    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);
}

.modal__step__contents {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: var(--fluid-16);
}
.modal__step__contents__item {
    background-color: var(--c-bg-carousel);
}
.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: var(--c-navy);
    border-radius: var(--fluid-30);
    color: #FFFFFF;
    display: inline-block;
    font-size: var(--fz-14);
    font-weight: bold;
    padding: var(--fluid-4) var(--fluid-20);
}
.modal__step__contents__item__content > p {
    color: var(--c-navy);
    font-size: var(--fz-14);
    font-weight: bold;
    text-align: center;
}
.modal__step__contents__item__content > p:not(:last-child) {
    flex-grow: 1;
}
.modal__step__contents__item__image {
    margin-top: var(--fluid-10);
    padding: 0 30.35%;
}
.modal__step__contents__item__content > *:last-child {
    margin-top: auto;
    padding-bottom: var(--fluid-16);
}
.modal__step__contents__item__image img {
    width: 100%;
    height: auto;
    display: block;
}

#entryModal .modal__content {
    min-width: 0 !important;
}
#entryModal .modal__body,
#entryModal .modal__body__inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
}
#entryModal .modal__step__contents {
    display: flex;
    width: 100%;
    gap: 0;
    justify-content: flex-start;
    transform: translateX(0);
    transition: transform 0.4s ease-in-out;
    touch-action: pan-y;
    will-change: transform;
}
#entryModal .modal__step__contents__item {
    box-sizing: border-box;
    margin: 0;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}
#entryModal .modal__step__contents__item img {
    max-width: 100%;
    height: auto;
}

/* カルーセル：JSで動的生成される要素 */
.carousel-container {
    position: relative;
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}
.carousel-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: transparent;
    border: none;
    border-radius: 0;
    width: var(--fluid-26);
    height: var(--fluid-26);
    font-size: 0;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}
.carousel-button.prev,
.carousel-button.next {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}
.carousel-button.prev {
    background-image: url("/campaign/autumn2026cp/images/icon_circle-arrow-navy-left.png");
    left: var(--fluid-16);
}
.carousel-button.next {
    background-image: url("/campaign/autumn2026cp/images/icon_circle-arrow-navy-right.png");
    right: var(--fluid-16);
}
.carousel-pagination {
    position: relative;
    top: -1px;
    display: flex;
    justify-content: center;
    gap: var(--fluid-10);
    padding: var(--fluid-10) 0;
    background-color: var(--c-bg-carousel);
}
.carousel-dot {
    background-color: var(--c-dot);
    border-radius: 50%;
    width: var(--fluid-8);
    height: var(--fluid-8);
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.carousel-dot.active {
    background-color: var(--c-navy);
}

/* 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 img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.modal__close-icon {
    display: block;
    flex-shrink: 0;
    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;
}

/* =========================================
  floatingActions
========================================= */
.floatingActions {
    position: fixed;
    width: 100% !important;
    max-width: 100% !important;
    left: 50%;
    bottom: 0px;
    transform: translateX(-50%);
    background-color: #00004B;
    z-index: 9000;
    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;
}
.floatingActionsInner[hidden] {
    display: none;
}
.floatingActionsWide > a {
    display: block;
    width: 100%;
    max-width: clamp(300px, calc(300 * var(--cqi-ratio)), calc(300px * var(--pc-scale)));
}
.floatingActionsWide > a > img {
    display: block;
    width: 100%;
    height: auto;
}
@media screen and (max-width: 1241px) {
    .floatingActions.isVisible {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }
}

/* =========================================
  pagetop（上へ戻る）／floating-rightarea（困ったときは）
========================================= */
@media screen and (max-width: 1241px) {
    .is-floating-actions .pagetop.is-show {
        bottom: calc(var(--floating-actions-h, 72px) + 10px);
    }
    .is-floating-actions .floating-rightarea {
        bottom: calc(var(--floating-actions-h, 72px) + 88px);
    }
    .is-floating-actions .pagetop,
    .is-floating-actions .floating-rightarea {
        z-index: 9001;
    }
    .footer {
        padding-bottom: calc(var(--floating-actions-h, 72px) + var(--fluid-16));
    }
}

/* =========================================
  Footer
========================================= */
.footer {
    margin-top: 0;
}

/* =========================================
  印刷（プリント）用スタイルの最適化
========================================= */
@media print {
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    body {
        min-width: auto;
    }
    .lSideLeft,
    .lSideRight,
    .floatingActions,
    .pagetop,
    .floating-rightarea,
    .floating-menu {
        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;
    }
}
