@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-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-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-95: clamp(95px, calc(95 * var(--cqi-ratio)), calc(95px * var(--pc-scale)));
    --fluid-100: clamp(100px, calc(100 * var(--cqi-ratio)), calc(100px * var(--pc-scale)));
    --fluid-172: clamp(172px, calc(172 * var(--cqi-ratio)), calc(172px * 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(1.2rem, calc(10 * var(--cqi-ratio)), calc(1rem * var(--pc-scale)));
    --fz-11: clamp(1.2rem, 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)));

    --c-navy: #000066;
    --c-navy-modal: #08287F;
    --c-orange: #F07C00;
}

/* =========================================
  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; }
.mT15 { margin-top: 15px !important; }
.fc-blue { color: #000066 !important; }

/* =========================================
  Layout
========================================= */
.autumn2026cp_oa {
    width: 100%;
    background: var(--color-primary-100, #C0D2FF);
    font-family: "Noto Sans JP", sans-serif;
    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;
}

/* 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 / cpMenu
========================================= */
.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 {
    background-color: #FFFFFF;
    border-radius: 20px;
    position: relative;
    overflow: visible;
}
.cpMenuInner {
    padding: 65px 21px 54px;
    overflow: visible;
}
.cpMenuTitle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -23px;
}
.cpMenuNavItem {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 0;
    min-height: 47px;
}
.cpMenuNavItem + .cpMenuNavItem {
    margin-top: 21px;
}
.cpMenuNavItem a {
    display: inline-block;
    padding: 0 0 4px;
    color: #000066;
    font-weight: 700;
    font-size: 24px;
    letter-spacing: 0.05em;
    text-align: center;
    text-decoration: none;
}

.cpMenuNavItem.isCurrent {
    position: relative;
}
.cpMenuNavItem.isCurrent::before {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/images/icon_aomaru-walk.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: 41px;
    height: 47px;
    /* cpMenuInnerの左端（padding 21px）から半分はみ出す */
    left: calc(-21px - 41px / 2);
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}
.cpMenuNavItem.isCurrent a {
    width: calc(100% - 25px);
    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;
}

/* =========================================
  Button
========================================= */
.button {
    position: relative;
    display: inline-block;
    width: 100%;
    padding: var(--fluid-10) var(--fluid-45) var(--fluid-10) 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.red .btn__notice {
    font-size: var(--fz-12);
}

.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("/special/autumn2026cp_oa/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("/special/autumn2026cp_oa/images/icon_external_white.png");
    width: var(--fluid-20);
    height: var(--fluid-20);
    right: var(--fluid-14);
}

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

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

.link.navy {
    color: #000066;
}

.link[target=_blank] {
    white-space: nowrap;
}
.link[target=_blank]::after {
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
    margin-left: 0.2em;
}
.link.navy[target=_blank]::after {
    background-image: url("/special/autumn2026cp_oa/images/icon_blank_navy.png");
    width: var(--fluid-12);
    height: var(--fluid-12);
}

.linkEntry {
    color: #FFFFFF;
    font-size: var(--fluid-12);
    font-weight: 700;
    padding-right: calc(var(--fluid-8) + var(--fluid-4));
    position: relative;
    text-decoration: underline;
}
.linkEntry::after {
    content: "";
    position: absolute;
    background-color: #FFFFFF;
    -webkit-mask-image: url("/special/autumn2026cp_oa/images/icon_chevron-down-navy.png");
    mask-image: url("/special/autumn2026cp_oa/images/icon_chevron-down-navy.png");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
    width: var(--fluid-8);
    height: var(--fluid-5);
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.linkAnchor {
    color: #000066;
    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("/special/autumn2026cp_oa/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%);
}

.link:visited,
.linkAnchor:visited,
.cpBenefitItemLink:visited,
.cpMeritItemLink:visited,
.cpBenefitFaqAnswer a:visited,
.cpBenefitFaqAnswerList a:visited,
.cpAccountOpen .toggle__content a:visited,
.cpAttention .toggle__content a:visited,
.modal__body a:visited {
    color: #660099;
}
.linkEntry:visited {
    color: #FFFFFF;
}
.cpAccountOpen .toggle__content a.button:visited {
    color: #FFFFFF !important;
}

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

/* =========================================
  About（特典紹介）
========================================= */
.cpAbout {
    background-color: #FFFFFF;
}
.cpAboutInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-40) var(--fluid-20) var(--fluid-34);
}
.cpAboutImage {
    width: 100%;
    position: relative;
}
.cpAboutImage > img:first-child {
    display: block;
    width: 100%;
    height: auto;
}
.cpAboutPointBadge {
    position: absolute;
    display: block;
    line-height: 0;
    left: calc(19 / 646 * 100%);
    top: calc(90 / 597 * 100%);
    width: calc(104 / 646 * 100%);
    z-index: 1;
}
.cpAboutPointBadge img {
    display: block;
    width: 100%;
    height: auto;
}

.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)));
    padding: clamp(9.5px, calc(9.5 * var(--cqi-ratio)), calc(9.5px * var(--pc-scale))) var(--fluid-40) clamp(9.5px, calc(9.5 * var(--cqi-ratio)), calc(9.5px * var(--pc-scale))) var(--fluid-16);
    box-sizing: border-box;
    margin-top: var(--fluid-16);
}
.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),
        linear-gradient(#FFFFFF, #FFFFFF);
    background-repeat: no-repeat;
    background-position: center;
    background-size:
        var(--fluid-10) 2px,
        2px var(--fluid-10);
}

/* =========================================
  Benefit toggle（特典を獲得するには）
========================================= */
.cpBenefitToggle {
    width: 100%;
    max-width: clamp(335px, calc(335 * var(--cqi-ratio)), calc(335px * var(--pc-scale)));
    margin-top: var(--fluid-16);
}
.cpBenefitToggle > .toggle__title {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: #0A7CCB;
    color: #FFFFFF;
    border-radius: 8px;
    font-size: var(--fz-18);
    font-weight: bold;
    padding: var(--fluid-12) var(--fluid-40) var(--fluid-12) var(--fluid-16);
    cursor: pointer;
}
.cpBenefitToggle.is-open > .toggle__title {
    border-radius: 8px 8px 0 0;
}
.cpBenefitTogglePlus {
    position: absolute;
    top: 50%;
    right: var(--fluid-12);
    transform: translateY(-50%);
    width: clamp(25.2px, calc(25.2 * var(--cqi-ratio)), calc(25.2px * var(--pc-scale)));
    height: clamp(25.2px, calc(25.2 * var(--cqi-ratio)), calc(25.2px * var(--pc-scale)));
    background-color: #FFFFFF;
    border: 1px solid #0A7CCB;
    border-radius: 2.8px;
    box-sizing: border-box;
}
.cpBenefitTogglePlus::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: clamp(7px, calc(7 * var(--cqi-ratio)), calc(7px * var(--pc-scale)));
    height: clamp(7px, calc(7 * var(--cqi-ratio)), calc(7px * var(--pc-scale)));
    border-right: 2px solid #0A7CCB;
    border-bottom: 2px solid #0A7CCB;
    box-sizing: border-box;
    transform: translate(-50%, -65%) rotate(45deg);
    transition: transform 0.3s ease;
}
.cpBenefitToggle.is-open .cpBenefitTogglePlus::before {
    transform: translate(-50%, -35%) rotate(225deg);
}
.cpBenefitToggle > .toggle__content {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    visibility: hidden;
    transition: grid-template-rows 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
}
.cpBenefitToggle.is-open > .toggle__content {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
}
.cpBenefitToggle > .toggle__content > .toggle__inner {
    overflow: hidden;
    min-height: 0;
    background-color: #F0F4FF;
    padding: var(--fluid-24) var(--fluid-20);
    color: #000066;
    font-size: var(--fz-14);
    border-radius: 0 0 8px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.cpBenefitItem {
    background-color: #FFFFFF;
    border-radius: 8px;
    padding: clamp(20px, calc(20 * var(--cqi-ratio)), calc(20px * var(--pc-scale))) clamp(18.5px, calc(18.5 * var(--cqi-ratio)), calc(18.5px * var(--pc-scale)));
    width: 100%;
    box-sizing: border-box;
    position: relative;
    overflow: visible;
}
.cpBenefitItem > img {
    display: block;
    width: 100%;
    height: auto;
}
.cpBenefitItem > img + img {
    margin-top: var(--fluid-12);
}
.cpBenefitItem:has(.cpBenefitItemBadge) {
    margin-top: var(--fluid-40);
}
.cpBenefitItemBadge {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: var(--fluid-66);
    transform: translate(0%, -40%);
    pointer-events: none;
}
.cpBenefitItemBadge img {
    display: block;
    width: 100%;
    height: auto;
}
.cpBenefitItemHeading {
    color: #333333;
    font-weight: 700;
    font-size: var(--fz-18);
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: center;
}
.cpBenefitItemHeading + .cpBenefitItemImage {
    margin-top: var(--fluid-16);
}
.cpBenefitItemImage + .cpBenefitItemHeading {
    margin-top: var(--fluid-16);
}
.cpBenefitItemImage img {
    display: block;
    width: 100%;
    height: auto;
}
.cpBenefitItemBtn {
    margin-top: var(--fluid-16);
    text-align: center;
}
.cpBenefitItemBtn a {
    display: inline-block;
    width: 100%;
}
.cpBenefitItemBtn img {
    display: block;
    width: 100%;
    height: auto;
}
.cpBenefitItemLink {
    display: inline-block;
    margin-top: var(--fluid-16);
    color: #000066;
    font-weight: 700;
    font-size: var(--fz-14);
    line-height: 1.5;
    text-decoration: underline;
    padding-right: 0.9em;
    position: relative;
}
.cpBenefitItemLink::after {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/images/icon_triangle-navy.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: calc(0.45em * 16 / 10);
    height: 0.45em;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.cpBenefitItemNotice {
    list-style: none;
    margin: var(--fluid-16) 0 0;
    padding: 0;
}
.cpBenefitItemNotice li {
    color: #777777;
    font-size: var(--fz-10);
    line-height: 1.5;
    letter-spacing: 0.05em;
    vertical-align: middle;
    padding-left: 1em;
    text-indent: -1em;
}
.cpBenefitItemArrow {
    width: var(--fluid-38);
    margin: var(--fluid-8) 0;
}
.cpBenefitItemArrow img {
    display: block;
    width: 100%;
    height: auto;
}
.cpBenefitFaq {
    margin-top: var(--fluid-34);
    width: 100%;
}
.cpBenefitFaqTitle {
    width: var(--fluid-40);
    margin: 0 auto var(--fluid-16);
}
.cpBenefitFaqTitle img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 80 / 47;
    object-fit: cover;
}
.cpBenefitFaqList {
    width: 100%;
}
.cpBenefitFaqListItem {
    border-bottom: 2px solid #3C9DFF;
}
.cpBenefitFaqListItem + .cpBenefitFaqListItem {
    margin-top: var(--fluid-16);
}
.cpBenefitFaqQuestion {
    color: #333333;
    display: block;
    font-size: var(--fz-14);
    font-weight: bold;
    letter-spacing: 0.7px;
    line-height: 1.5;
    padding: 0 var(--fluid-24) var(--fluid-8) var(--fluid-28);
    position: relative;
    text-decoration: none;
    cursor: pointer;
}
.cpBenefitFaqQuestion::before {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/images/icon_question.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-20);
    height: var(--fluid-20);
    left: 0;
    top: 0;
}
.cpBenefitFaqQuestion::after {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/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;
}
.cpBenefitFaqToggle.is-open .cpBenefitFaqQuestion::after {
    transform: rotate(180deg);
}
.cpBenefitFaqToggle .toggle__content {
    display: none;
}
.cpBenefitFaqToggle.is-open .toggle__content {
    display: block;
}
.cpBenefitFaqToggle .toggle__inner {
    color: #333333;
    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;
}
.cpBenefitFaqToggle .toggle__inner::before {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/images/icon_answer.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-20);
    height: var(--fluid-20);
    left: 0;
    top: 0;
}
.cpBenefitFaqAnswer {
    color: inherit;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
}
.cpBenefitFaqAnswer .linkAnchor {
    font-size: inherit;
}
.cpBenefitFaqAnswerList {
    list-style: none;
    margin: 0.5em 0 0;
    padding: 0;
}
.cpBenefitFaqAnswerList li {
    padding-left: 1em;
    text-indent: -1em;
}
.cpBenefitFaqAnswerList li::before {
    content: "・";
}
.cpBenefitFaqAnswerList a {
    color: #000066;
    display: inline;
    font-size: inherit;
    line-height: inherit;
    text-decoration: underline;
}
.cpBenefitFaqAnswerList a::after {
    content: "";
    display: inline-block;
    background-image: url("/special/autumn2026cp_oa/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);
    margin-left: 0.2em;
    vertical-align: middle;
}

/* =========================================
  Akitoku（秋トクキャンペーン）
========================================= */
.cpAkitoku {
    background-color: #F0F4FF;
}
.cpAkitokuInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-60) var(--fluid-16);
}
.cpAkitokuImage {
    width: 100%;
    position: relative;
}
.cpAkitokuImage > img:first-child {
    display: block;
    width: 100%;
    height: auto;
}
.cpAkitokuBadge {
    position: absolute;
    display: block;
    line-height: 0;
}
.cpAkitokuBadge img {
    display: block;
    width: 100%;
    height: auto;
}
.cpAkitokuBadge--mizuhoLeft {
    left: calc(140 / 700 * 100%);
    top: calc(532 / 965 * 100%);
    width: calc(104 / 700 * 100%);
    z-index: 2;
}
.cpAkitokuBadge--rakuten {
    left: calc(240 / 700 * 100%);
    top: calc(541 / 965 * 100%);
    width: calc(100 / 700 * 100%);
    z-index: 1;
}
.cpAkitokuBadge--mizuhoRight {
    left: calc(596 / 700 * 100%);
    top: calc(532 / 965 * 100%);
    width: calc(104 / 700 * 100%);
    z-index: 2;
}
.cpAkitokuBtn {
    margin-top: var(--fluid-26);
    width: 100%;
}
.cpAkitokuBtn a {
    display: block;
    width: 100%;
}
.cpAkitokuBtn img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
  Merit（4つのメリット）
========================================= */
.cpMerit {
    background-color: #FFFFFF;
}
.cpMeritInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-60) var(--fluid-16);
}
.cpMeritTitle {
    width: 100%;
}
.cpMeritTitle + .cpMeritItem {
    margin-top: var(--fluid-24);
}
.cpMeritItem {
    width: 100%;
    padding: var(--fluid-20);
    box-sizing: border-box;
}
.cpMeritItem:nth-of-type(odd) {
    background-color: #F6F9FF;
}
.cpMeritItem:nth-of-type(even) {
    background-color: #F0F4FF;
}
.cpMeritItem:first-of-type {
    border-radius: var(--fluid-16) var(--fluid-16) 0 0;
}
.cpMeritItem:last-of-type {
    border-radius: 0 0 var(--fluid-16) var(--fluid-16);
}
.cpMeritItemImage {
    width: 100%;
}
.cpMeritItem > .cpMeritItemImage:first-child {
    width: var(--fluid-95);
    margin-left: auto;
    margin-right: auto;
}
.cpMeritItemTitle {
    color: #08287F;
    font-weight: 700;
    font-size: var(--fz-16);
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: center;
    margin-top: var(--fluid-12);
}
.cpMeritItemTitle + .cpMeritItemImage {
    margin-top: var(--fluid-16);
}
.cpMeritItemSubTitle {
    color: #333333;
    font-weight: 700;
    font-size: var(--fz-14);
    line-height: 1.8;
    letter-spacing: 0.05em;
    margin-top: var(--fluid-12);
}
.cpMeritItemLink {
    color: #000066;
    display: inline-block;
    font-weight: 700;
    font-size: var(--fz-11);
    line-height: 1.3;
    letter-spacing: 0.05em;
    text-decoration: underline;
    margin-top: var(--fluid-8);
    padding-right: 1em;
    position: relative;
}
.cpMeritItemLink::after {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/images/icon_arrow-navy.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: calc(0.75em * 13 / 19);
    height: 0.75em;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.cpMeritItemNotice {
    list-style: none;
    margin: var(--fluid-12) 0 0;
    padding: 0;
    width: 100%;
}
.cpMeritItemNotice li {
    color: #777777;
    font-size: var(--fz-10);
    line-height: 1.5;
    letter-spacing: 0.05em;
    padding-left: 1em;
    text-indent: -1em;
}

/* =========================================
  Recommend（おすすめ情報）
========================================= */
.cpRecommend {
    background-color: var(--color-bg-blue-light, #F0F4FF);
}
.cpRecommendInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-40) var(--fluid-60) var(--fluid-56);
}
.cpRecommendTitleBox {
    --recommend-title-w: var(--fluid-172);
    --recommend-aomaru-w: clamp(56px, calc(56 * var(--cqi-ratio)), calc(56px * var(--pc-scale)));
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
}
.cpRecommendImage {
    width: 100%;
}
.cpRecommendImage--title {
    width: var(--recommend-title-w);
    flex: none;
}
.cpRecommendAomaru {
    position: absolute;
    top: 50%;
    left: calc(47% + var(--recommend-title-w) / 2 + var(--fluid-21));
    transform: translateY(-50%);
    width: var(--recommend-aomaru-w);
    flex: none;
}
.cpRecommendImage img,
.cpRecommendAomaru img {
    display: block;
    width: 100%;
    height: auto;
}
.cpRecommendImage--mt15 {
    margin-top: var(--fluid-45);
}
.cpRecommendImage--mt20 {
    margin-top: var(--fluid-20);
}

/* =========================================
  Closing（クロージング）
========================================= */
.cpClosingInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
}
.cpClosingImage {
    width: 100%;
}
.cpClosingImage img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
  Period（キャンペーン期間）
========================================= */
.cpPeriod {
    background-color: #FFFFFF;
}
.cpPeriodInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-24) var(--fluid-20);
}
.cpPeriodImage {
    width: 100%;
}
.cpPeriodImage img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
  AccountOpen（口座開設）
========================================= */
.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)));
}

.cpAccountOpen .toggles {
    width: 100%;
}
.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("/special/autumn2026cp_oa/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 .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: 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("/special/autumn2026cp_oa/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 a.internal-link--top::before {
    top: 0.2em;
    transform: none;
}

.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);
}

/* =========================================
  Attention（注意事項）
========================================= */
.cpAttention {
    background-color: #F3F3F3;
}
.cpAttentionInner {
    padding: var(--fluid-52) var(--fluid-15) var(--fluid-56);
}
.cpAttentionHeading {
    color: #333333;
    font-weight: 700;
    font-size: var(--fz-24);
    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: #08287F;
    font-size: var(--fz-17);
    font-weight: 700;
    line-height: 1.5;
    position: relative;
    cursor: pointer;
    padding-right: var(--fluid-40);
    box-sizing: border-box;
}
.cpAttention .toggle__title::before {
    content: "";
    position: absolute;
    background-image: url("/special/autumn2026cp_oa/images/icon_toggle.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: var(--fluid-30);
    height: var(--fluid-30);
    top: 50%;
    right: 0;
    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-flex;
    align-items: center;
    column-gap: var(--fluid-4);
    line-height: 1;
    position: relative;
    text-align: center;
}
.cpAttention .cpAttentionTitle::before {
    content: "";
    flex-shrink: 0;
    background-image: url("/special/autumn2026cp_oa/images/icon_attention.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    width: var(--fluid-19);
    height: var(--fluid-19);
}

.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: 20000px;
    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: #333333;
    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: #000066;
    font-size: var(--fluid-8);
    line-height: 1;
    left: 0;
    top: 0.8em;
}

.cpAttention .toggle__content .cpAttentionNote {
    color: #777777;
    font-size: clamp(1.317rem, calc(13.17 * var(--cqi-ratio)), calc(1.317rem * var(--pc-scale)));
}
.cpAttention .toggle__content .cpAttentionNote li::before {
    content: "※";
    color: inherit;
    font-size: inherit;
    top: 0;
}
.cpAttention .toggle__content .cpAttentionNote li + li {
    margin-top: var(--fluid-5);
}
.cpAttention .toggle__content a {
    color: #000066;
    text-decoration: underline;
}

/* =========================================
  Contact（お問い合わせ）
========================================= */
.cpContact {
    background-color: #FFFFFF;
    padding: var(--fluid-8) var(--fluid-10);
}
.cpContactInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--fluid-19) var(--fluid-16) var(--fluid-35);
    text-align: center;
}
.cpContactTitle {
    color: #000066;
    font-weight: 700;
    font-size: var(--fz-16);
    line-height: 1.37;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #E8E8E8;
    padding-bottom: var(--fluid-6);
}
.cpContactNumber {
    margin-top: var(--fluid-16);
}
.cpContactNumber a {
    color: #000066;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: var(--fz-32);
    line-height: 1.08;
    letter-spacing: 0.05em;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: var(--fluid-8);
}
.cpContactNumberIcon {
    width: var(--fluid-24);
    height: auto;
    flex-shrink: 0;
}
.cpContactNote {
    color: #333333;
    font-size: var(--fz-13);
    line-height: 1.415;
    letter-spacing: 0.05em;
}
.cpContactHoursLabel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(66.31px, calc(66.31 * var(--cqi-ratio)), calc(66.31px * var(--pc-scale)));
    min-height: clamp(20.25px, calc(20.25 * var(--cqi-ratio)), calc(20.25px * var(--pc-scale)));
    margin-top: clamp(6.35px, calc(6.35 * var(--cqi-ratio)), calc(6.35px * var(--pc-scale)));
    padding: clamp(4.17px, calc(4.17 * var(--cqi-ratio)), calc(4.17px * var(--pc-scale)))
        clamp(10.15px, calc(10.15 * var(--cqi-ratio)), calc(10.15px * var(--pc-scale)))
        clamp(5.08px, calc(5.08 * var(--cqi-ratio)), calc(5.08px * var(--pc-scale)));
    border-radius: clamp(2.54px, calc(2.54 * var(--cqi-ratio)), calc(2.54px * var(--pc-scale)));
    background-color: #08287F;
    color: #FFFFFF;
    font-weight: 500;
    font-size: clamp(1.2rem, calc(11.42 * var(--cqi-ratio)), calc(1.142rem * var(--pc-scale)));
    line-height: 1;
}
.cpContactHours {
    color: #08287F;
    font-weight: 500;
    font-size: var(--fz-14);
    line-height: 1;
    margin-top: var(--fluid-8);
}
.cpContactHoliday {
    color: #555555;
    font-size: var(--fz-13);
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin-top: var(--fluid-10);
}

.cpAsOfDate {
    color: #000066;
    font-weight: 700;
    font-size: var(--fz-12);
    line-height: 1.5;
    text-align: right;
}

/* =========================================
  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__close img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

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

.modal__body h4 {
    background-color: #000066;
    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);
}

.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;
}

#mizuhopoint-modal03 .modal__body h4 {
    background-color: #E2EEF5;
    border: 2px solid #000066;
    border-radius: var(--fluid-8);
    color: #000066;
    margin-left: var(--fluid-14);
    margin-right: var(--fluid-14);
    padding-left: 0;
    padding-right: 0;
}
#mizuhopoint-modal03 .modal__body__inner {
    padding-top: 0;
    padding-left: var(--fluid-14);
    padding-right: var(--fluid-14);
}
#mizuhopoint-modal03 .modal__body > .modal__body__inner:first-child {
    padding-top: var(--fluid-20);
}
#mizuhopoint-modal03 .modal__body p img {
    display: block;
    width: 100%;
    height: auto;
}
#mizuhopoint-modal03 .modal__body p + ul {
    margin-top: var(--fluid-13);
}
#mizuhopoint-modal03 .modal__productNote {
    color: #333333;
    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;
    text-align: center;
}
#mizuhopoint-modal03 .modal__appNote {
    background: #D3D3D3;
    border-radius: clamp(7.8px, calc(7.8 * var(--cqi-ratio)), calc(7.8px * var(--pc-scale)));
    padding: var(--fluid-21) var(--fluid-45) var(--fluid-30);
    margin-top: var(--fluid-16);
    text-align: center;
}
#mizuhopoint-modal03 .modal__appNote li {
    color: #333333;
    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;
}
#mizuhopoint-modal03 .modal__appNote li + li {
    margin-top: var(--fluid-10);
}
#mizuhopoint-modal03 .modal__body li sup {
    margin-right: 0.35em;
}

.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-navy);
    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__inlineUrl {
    word-break: break-all;
}

.modal__body .modal__image {
    margin-top: var(--fluid-24);
    text-align: center;
}

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

.modal__body .modal__lead {
    color: #000066;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: var(--fz-16);
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: center;
    margin-top: var(--fluid-16);
}
.modal__body .modal__lead + ul {
    margin-top: var(--fluid-8);
}
.modal__body .modal__lead + ul li {
    color: #777777;
}

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

/* type03 */
.type03 .modal__content {
    padding: 0;
}
.type03 .modal__header {
    background-color: #000066;
}
.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);
}
.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: #F37022;
    border-radius: var(--fluid-30);
    color: #FFFFFF;
    font-size: var(--fz-12);
    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: #F0F4FF;
}
.modal__step__contents__item__image {
    margin-top: var(--fluid-10);
    padding: 0 30.35%;
}
.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: #000066;
    border-radius: var(--fluid-16);
    color: #FFFFFF;
    display: inline-block;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: var(--fz-10);
    line-height: 1.8;
    letter-spacing: 0.05em;
    text-align: center;
    padding: clamp(2px, calc(2 * var(--cqi-ratio)), calc(2px * var(--pc-scale))) var(--fluid-16);
}
.modal__step__contents__item__content > p {
    color: #000066;
    font-weight: 700;
    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 {
    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;
}

/* #mizuhopoint-modal02 / #mizuhopoint-modal03 */
#mizuhopoint-modal01,
#mizuhopoint-modal01 *,
#mizuhopoint-modal02,
#mizuhopoint-modal02 *,
#mizuhopoint-modal03,
#mizuhopoint-modal03 * {
    box-sizing: border-box !important;
}
#mizuhopoint-modal01,
#mizuhopoint-modal01 *,
#mizuhopoint-modal02,
#mizuhopoint-modal02 *,
#mizuhopoint-modal03,
#mizuhopoint-modal03 * {
    font-family: "Noto Sans JP", sans-serif;
}
#mizuhopoint-modal01 .modal__content,
#mizuhopoint-modal02 .modal__content,
#mizuhopoint-modal03 .modal__content {
    min-width: 0 !important;
}
#mizuhopoint-modal01 .modal__body,
#mizuhopoint-modal01 .modal__body__inner,
#mizuhopoint-modal02 .modal__body,
#mizuhopoint-modal02 .modal__body__inner,
#mizuhopoint-modal03 .modal__body,
#mizuhopoint-modal03 .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-26);
    height: var(--fluid-26);
    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('/special/autumn2026cp_oa/images/icon_circle-arrow-navy-left.png');
    left: var(--fluid-10);
}
.carousel-button.next {
    background-image: url('/special/autumn2026cp_oa/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: #F0F4FF;
    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: var(--c-navy-modal);
}

/* =========================================
  floatingActions
========================================= */
.floating-rightarea {
    bottom: 160px;
}
.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;
}

.floatingActions .floatingActionsInner .floating-cta__item{
    width: 100%;
    max-width: 340px;
}

.floatingActions .floatingActionsInner .cta__btn {
    display: block;
    position: relative;
    width: 100%;
    max-width: 340px;
    font-size: var(--fz-14);
    font-weight: bold;
    text-align: center;
    color: #ffffff;
    padding: var(--fluid-10) 0 var(--fluid-4) 0;
    background-color: #e6002d;
    border-radius: var(--fluid-34);
}

.floatingActions .floatingActionsInner .cta__btn .btn__notice {
    font-size: var(--fz-11);
}

.floatingActions .floatingActionsInner .cta__btn::after {
    content: '';
    position: absolute;
    right: var(--fluid-12);
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    width: var(--fluid-15);
    height: var(--fluid-15);
    background-image: url(/special/autumn2026cp_oa/images/icon_external_white.png);
    background-repeat: no-repeat;
    background-size: cover;
}

@media screen and (max-width: 1241px) {
    .floatingActions.isVisible {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }
}

/* =========================================
  pagetop
========================================= */
    .pagetop {
        z-index: 10000;
    }
    .pagetop.is-show {
        bottom: 95px;
    }

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

/* =========================================
  Print
========================================= */
@media print {
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    body {
        min-width: auto;
    }
    .lSideLeft,
    .lSideRight,
    .floatingActions,
    .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;
    }
}
