@charset "UTF-8";

/*
    医療保険 - 保険料シミュレーション ほしいとこだけ医療
*/
/* .listTabLinks タブ型リンクリスト
----------------------------------------------- */
.listTabLinks {
    display: flex;
    justify-content: space-between;
}

@media only screen and (max-width: 767px) {

    /* SP */
    .listTabLinks {
        margin: 0 -10px 0 -10px;
    }

    .tabLinkIndex.iryoNew,
    .tabLinkIndex.iryoTokuyakuFlex,
    .tabLinkSimulation.iryoNew,
    .tabLinkSimulation.iryoTokuyakuFlex {
        font-size: 16px;
    }
}

.listTabLinks.modUpperSide {
    border-bottom: 2px solid #249441;
    margin-bottom: 24px;
}

.tabLinkIndex.iryoNew,
.tabLinkIndex.iryoTokuyakuFlex {
    border: 2px solid #D9D9D9;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px;
    color: black;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    background: #ffffff;
}

.tabLinkSimulation.iryoNew,
.tabLinkSimulation.iryoTokuyakuFlex {
    border: 2px solid #D9D9D9;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px;
    color: black;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    background: #ffffff;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    .listTabLinks>a {
        width: 50% !important;
        height: 64px;
    }

    .tabLinkIndex.iryoNew,
    .tabLinkIndex.iryoTokuyakuFlex,
    .tabLinkSimulation.iryoNew,
    .tabLinkSimulation.iryoTokuyakuFlex {
        font-size: 18px;
    }

    .tabLinkSimulation.iryoNew,
    .tabLinkSimulation.iryoTokuyakuFlex {
        border-top-right-radius: 8px;
    }

    .tabLinkIndex.iryoNew,
    .tabLinkIndex.iryoTokuyakuFlex {
        border-top-left-radius: 8px;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    .listTabLinks>a {
        width: 50% !important;
        height: 64px;
    }
}

.listTabLinks.modUpperSide>a {
    border-bottom: none;
}

.listTabLinks.modLinkIndex>a.tabLinkIndex,
.listTabLinks.modLinkSimulation>a.tabLinkSimulation {
    border-color: #249441;
    background: #249441;
    color: #ffffff;
    pointer-events: none;
    word-break: keep-all;
    overflow-wrap: anywhere;
}



@media print,
screen and (min-width: 768px) {

    /* PC */
    #bloProductBanner {
        display: flex;
        align-items: center;
        background: #ffffff;
        display: flex;
        align-items: center;
        gap: 10px;
        align-self: stretch;
        margin-bottom: 64px;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    #bloProductBanner {
        flex-direction: column;
        gap: 16px;
        align-items: center;
        background: #ffffff;
        display: flex;
        align-self: stretch;
        margin-bottom: 20px;
    }
}



@media print,
screen and (min-width: 768px) {

    /* PC */
    #bloProductBanner>#imgProductLogo {
        width: 100%;
        display: flex;
        width: 412px;
        padding: 0 16px;
        margin: 0 40px;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    }

    #bloProductBanner>#imgProductLogo>img {
        width: 100%;
    }
}

#bloProductBanner>#bloProductBannerTxt #bloProductBannerTxtJoken {
    font-weight: bold;
    color: #333;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 160%;
    /* 25.6px */
}

#imgProductLogo .newText {
    display: flex;
    align-items: center;
    color: red;
    font-size: 24px;
    font-weight: bold;
    position: relative;
    top: 14px;
}

#imgProductLogo .newText:before,
#imgProductLogo .newText:after {
    width: 2px;
    height: 26px;
    background: red;
    content: "";
}

#imgProductLogo .newText:before {
    -webkit-transform: rotate(-24deg);
    transform: rotate(-24deg);
    margin-right: 10px;
}

#imgProductLogo .newText:after {
    -webkit-transform: rotate(24deg);
    transform: rotate(24deg);
    margin-left: 10px;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    #bloProductBanner>#bloProductBannerTxt,
    #bloProductBanner>#bloProductBannerTxtJoken {
        color: #333;
        /* PC_h3 */
        font-family: "Noto Sans JP";
        font-size: 24px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        /* 38.4px */
        width: 432px;
    }

    #insurranceShow {
        width: 100%;
        padding: 0 144px;
        border-top: 2px solid #D9D9D9;
    }

    .warning {
        display: flex;
        width: 706px;
        padding: 24px;
        margin-bottom: 30px;
        justify-content: center;
        align-items: center;
        gap: 10px;
        background: #D9D9D980;
    }

    .gaiyou {
        color: #000000;
        display: flex;
        width: 994px;
        height: 104px;
        margin: 24px -15px;
        font-family: "Noto Sans JP";
        font-style: normal;
        font-size: 16px;
        padding-left: 1em;
        font-weight: 400;
        align-items: center;
        line-height: 160%;
    }

    /* ol.listAsteriskNumeric
	----------------------------------------------- */
    .warning ol.listAsteriskNumeric>li {
        position: relative;
        padding-left: 1em;
        font-size: 13px;
        color: #333333;
    }

    .gaiyou ol.listAsteriskNumeric>li {
        position: relative;
        padding-left: 1em;
        font-size: 16px;
        color: #333333;
    }

    ol.listAsteriskNumeric>li::before {
        position: absolute;
        left: 0;
        content: "・";
    }

}

@media only screen and (max-width: 767px) {

    /* SP */
    #bloProductBanner>#bloProductBannerTxt,
    #bloProductBanner>#bloProductBannerTxtJoken {
        align-self: stretch;
        color: #333;
        text-align: center;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        /* 25.6px */
    }

    .warning {
        display: flex;
        padding: 16px;
        justify-content: center;
        align-items: center;
        background: #D9D9D9;
    }

    .gaiyou {
        color: #000000;
        font-family: "Noto Sans JP";
        font-style: normal;
        margin-top: 24px;
        font-weight: 400;
        justify-content: center;
        align-items: center;
    }

    /* ol.listAsteriskNumeric
	----------------------------------------------- */
    .warning ol.listAsteriskNumeric>li::before {
        position: absolute;
        left: 0;
        content: "・";
    }

    .warning ol.listAsteriskNumeric>li {
        position: relative;
        padding-left: 1em;
        font-size: 13px;
        color: #333333;
        line-height: 150%;
    }

    .gaiyou ol.listAsteriskNumeric>li {
        font-size: 16px;
        color: #333333;
        line-height: 160%;
        padding-left: 1em;
    }

    .gaiyou ol.listAsteriskNumeric>li::before {
        position: absolute;
        content: "・";
        margin-left: -1em;
    }

}

/* #bloDownArrowIcon
----------------------------------------------- */
#bloDownArrowIcon {
    padding-bottom: 24px;
}

#bloDownArrowIcon::before {
    content: "";
    display: block;
    width: 0;
    border-top: 50px solid #249441;
    border-right: 60px solid transparent;
    border-left: 60px solid transparent;
    margin: 0 auto;
}

@media only screen and (max-width: 767px) {

    /* SP */
    #bloDownArrowIcon {
        padding: 24px 0;
    }
}

/* .duckButtonBox
----------------------------------------------- */
.duckButtonBox {
    background: #fff;
}

.duckButtonBox .btnIryoShiryo {
    display: flex;
    justify-content: center;
    align-items: center;

    width: 100%;
    border: 2px solid #e98300;
    border-radius: 50px;
    padding: 10px;
    background: #e98300;
    box-shadow: 0px 2px 3px 0px rgba(4, 0, 0, 0.25);
    color: #ffffff;
    cursor: pointer;
    letter-spacing: 1px;
}

.duckButtonBox .btnIryoShiryo {
    width: 48%;
    margin-top: 65px;
    float: right;
}

.duckButtonBox .btnIryoShiryo:before,
.duckButtonBox .btnIryoShiryo:after {
    content: '';
    display: block;
    min-width: 22px;
    width: 22px;
    height: 23px;
    margin: 0 25px;
}

.duckButtonBox .btnIryoShiryo:before {
    background: url(/sp/shared/images/icon_link_book_white.png) no-repeat 0 0 / 22px 23px;
}

@media only screen and (max-width: 767px) {

    /* SP */
    .duckButtonBox .btnIryoShiryo {
        width: 100%;
        margin-bottom: 60px;
        float: none;
    }

    .duckButtonBox .btnIryoShiryo {
        padding: 5px;
    }

    .duckButtonBox .btnIryoShiryo:before,
    .duckButtonBox .btnIryoShiryo:after {
        margin: 0 5px;
    }
}

/* 出しわけ制御
----------------------------------------------- */
.iryoTokuyaku.disNone,
.iryoTokuyakuJok.disNone,
.tabLinkIndex.disNone,
.tabLinkSimulation.disNone,
.tabLinkIndex.iryoTokuyakuFlex.disNone,
.hoshiIryo.disNone,
.hoshiIryoJok.disNone,
.syuCheck.disNone,
.syuCheckJok.disNone,
.requestBtnResponsivePamphletHoshi.disNone,
.requestBtnResponsivePamphletHoshiJok.disNone {
    display: none !important;
}

#recommendSetArea.disNone,
#insurranceShow.disNone,
#kaiPriceCard.disNone,
#kaiPmenPriceCard.disNone,
#fmenOpePriceCard.disNone,
#syuPriceCard.disNone,
.jqAgeTarget.disNone,
.jqAgeJokTarget.disNone,
.jqTxtKaiTokuyaku.disNone,
.jqKaigoLabel.disNone,
.jqTxtsyuTokuyaku.disNone,
.requestBtnResponsivePamphletHoshiJok.type1lineCentering.disNone {
    display: none;
}

.jqAgeTarget.disNone,
.jqAgeJokTarget.disNone {
    display: none !important;
}

input[data-select-plan="2"] .iryoTokuyaku {
    display: block !important;
    display: grid !important;
    display: none !important;
}

@media only screen and (max-width: 767px) {

    /* SP */
    .iryoTokuyakuJok.disNone.showPC {
        display: none !important;
    }

    .btnRowCol.showPC {
        display: none !important;
    }


}

@media print,
screen and (min-width: 768px) {

    /* PC */
    .iryoTokuyakuJok.disNone.showSP {
        display: none !important;
    }

    .btnRowCol.showSP {
        display: none !important;
    }
}

.description_hoshii .list {
    display: flex;
    justify-content: center;
    width: 320px;
    height: 32px;
    margin-bottom: 12px;
    font-weight: 700;
    font-size: 20px;
    line-height: 160%;
}

/***************************************************
* common/include/resp_request_btn.html
***************************************************/
@media all and (-ms-high-contrast: none) {
    .requestBtnResponsivePamphletHoshi .requestBtnResponsivePamphletHoshiJok {
        font-family: "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Verdana, Osaka, sans-serif;
    }
}

@media only screen and (max-width: 767px) {
    .text16-sp {
        margin-left: 10px;
    }

    .requestBtnResponsivePamphletHoshiJok {
        border: 2px solid #C27BB0 !important;
        background: #C27BB0 !important;
    }

    .requestBtnResponsivePamphletHoshi,
    .requestBtnResponsivePamphletHoshiJok {
        border: 2px solid #009B43;
        background: #009B43;
        width: 260px;
        height: 56px;
        min-width: 160px;
        min-height: 56px;
        margin: 0 auto;
        padding: 8px 24px;
        cursor: pointer;
        box-shadow: 0px 2px 3px 0px rgba(4, 0, 0, 0.25);
        color: #ffffff;
        -webkit-border-radius: 80px;
    }

    .requestBtnResponsivePamphletHoshi.type1lineCentering {
        display: flex;
        align-items: center;
    }

    .requestBtnResponsivePamphletHoshiJok.type1lineCentering {
        display: flex;
        align-items: center;
    }

    .requestBtnResponsivePamphletHoshi a:hover {
        opacity: 0.85;
        text-decoration: none;
    }

    .requestBtnResponsivePamphletHoshi>a {
        font-size: 18px;
        min-height: 22px;
        background: #009B43 !important;
        margin-left: 46px;
        display: flex;
        color: #fff;
        position: relative;
        letter-spacing: 0;
        font-weight: 700;
        text-decoration: none;
    }

    .requestBtnResponsivePamphletHoshiJok>a {
        font-size: 18px;
        min-height: 22px;
        margin-left: 46px;
        box-sizing: content-box;
        color: #fff;
        position: relative;
        letter-spacing: 0;
        font-weight: 700;
        text-decoration: none;
    }

}

@media only screen and (min-width: 768px) {
    .requestBtnResponsivePamphletHoshiJok {
        border: 2px solid #C27BB0 !important;
        background: #C27BB0 !important;
    }

    .requestBtnResponsivePamphletHoshi,
    .requestBtnResponsivePamphletHoshiJok {
        border: 2px solid #009B43;
        background: #009B43;
        width: 272.15px;
        height: 66px;
        margin: 64px auto 10px auto;
        box-shadow: 0px 2px 3px 0px rgba(4, 0, 0, 0.25);
        -webkit-border-radius: 96px;
        display: flex;
        align-items: center;
    }

    .requestBtnResponsivePamphletHoshi>a,
    .requestBtnResponsivePamphletHoshiJok>a {
        text-decoration: none;
    }

    .requestBtnResponsivePamphletHoshi a:hover {
        opacity: 0.85;
        text-decoration: none;
    }

    .requestBtnResponsivePamphletHoshiJok a:hover {
        opacity: 0.85;
        text-decoration: none;
    }

    .requestBtnResponsivePamphletHoshi>a>span {
        width: 220.15px;
        height: 22px;
        font-size: 18.1px;
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: content-box;
        padding: 22px 26px;
        color: #fff;
        letter-spacing: 0;
        font-weight: 700;
        line-height: 27.09px;
    }

    .requestBtnResponsivePamphletHoshiJok>a>span {
        width: 220.15px;
        height: 22px;
        font-size: 18.1px;
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: content-box;
        padding: 22px 26px;
        color: #fff;
        letter-spacing: 0;
        font-weight: 700;
        line-height: 27.09px;
    }

}

#contents {
    background-color: #FFF !important;
    margin: 0 auto;
}

@media print,
screen and (min-width: 768px) {

    .qBox {
        width: 21px;
        height: 21px;
        margin-left: 6px;
        position: relative;
    }

    .siryoButtom {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    body {
        min-width: 1442px !important;
    }
    
    #mainContainerCmpWrap {
        min-width: 1256px;
    }
    
    .container .containerMain {
        float: left;
        width: 994px !important;
        background: #ffffff;
        height:fit-content;
        font-family: "Noto Sans JP", sans-serif;
        padding: 0 0 100px 0;
    }

    .topicPath {
        margin: 0 !important;
        padding: 24px 0 15px 2px !important;
    }

    .containerMain>*:last-child {
        margin: 0 auto !important;
    }

    .siryoButtom {
        align-self: end;
    }

    /* .duckButtonBanner-pc */
    .duckButtonBanner {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 40px;
    }

    .duckButtonBanner .pamphBox .pamphPop {
        margin-right: 0;
    }

    .duckButtonBanner .pamphBox .pamphLogo {
        width: 240px;
    }

    .duckButtonBanner .pamphBox {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 16px;
        margin-right: 20px;
    }

    .requestBtnResponsivePamphletHoshi.text20-pc {
        font-size: 18.1px !important;
    }
}

@media only screen and (max-width: 767px) {

    .duckButtonBox.white .duckButtonBanner {
		background: #fff;
		padding: 24px 47.5px;
		margin: 0;
    }

    .duckButtonBanner .pamphBox .pamphPop {
        margin-right: 0;
    }

    .duckButtonBanner .pamphBox {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-right: 0;
        margin-bottom: 21px;
    }

    .qBox {
        width: 21px;
        height: 21px;
        vertical-align: middle;
        margin-left: 6px;
    }

    .siryoButtom {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .siryoButtom .description,
    .siryoButtom .buttonBannerFooter {
        display: inline-block;
    }

    #bloProductBanner>#imgProductLogo {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    }

    #imgProductLogo img {
        height: auto;
    }

    #imgProductLogo img.iryoTokuyaku {
        aspect-ratio: 412 / 181;
        width: 270px;
    }

    #imgProductLogo img.iryoTokuyakuJok {
        aspect-ratio: 412 / 181;
        width: 270px;
    }

    .container {
        padding: 0 !important;
    }
    
    .container .containerMain {
        background: #ffff !important;
        width: 100% !important;
        padding: 24px 10px 50px !important;
    }

    .containerMain>*:last-child {
        margin: 0 auto !important;
    }

    .siryoButtom {
        align-self: end;
    }

}

.isChecked .bloOptionBenefit {
    border-color: #249441;
}

.jqCheckboxTarget.isDisabled {
    background: rgba(217, 217, 217, 0.6) !important;
    border-color: rgba(217, 217, 217, 0.6) !important;
}

.jqCheckboxTarget.isDisabled .price-card-checkbox,
.jqCheckboxTarget.isDisabled .card-content-header,
.jqCheckboxTarget.isDisabled .card-content-body {
    opacity: 0.6;
}

.jqCheckboxTarget.isDisabled .check_flg,
.jqCheckboxTarget.isDisabled .card-content-header .txtCheckBoxHead,
.jqCheckboxTarget.isDisabled .label-checkbox {
    cursor: not-allowed;
}

/* .bloOptionPremium
----------------------------------------------- */
.bloOptionPremium {
    justify-items: end;
    align-items: center;
    white-space: nowrap;
}

.bloOptionPremium>.bloPremiumLoading {
    display: none;
    text-align: center;
}

.bloOptionPremium>.bloPremium {
    display: grid;
    grid-template: auto / auto 45px auto;
    gap: 0px;
}

/* .bloSimulation
----------------------------------------------- */
.bloSimulation {
    font-family: Noto Sans JP;
    background: #ffffff;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    #jqSimTarget_form {
        width: 994px;
        display: flex;
        flex-direction: column;
        align-items: center;
        align-self: stretch;
        background: #FFF;
    }

    .bloSimulation {
        display: flex;
        align-items: center;
        flex-direction: column;
        align-self: stretch;
    }

    .osu-messagebox {
        width: 706px;
        display: flex;
        padding: 12px 16px;
        margin: 16px 0;
        align-items: center;
        gap: 8px;
        align-self: stretch;
        border-radius: 8px;
        border: 1px solid #7CC77B;
        background: #EFF8EF;
    }

    .inputRadio:checked+.bloCommonRadio::after {
        content: "";
        position: absolute;
        top: 50%;
        left: calc(var(--radio-outer-offset) + (var(--radio-outer-radius) / 2));
        width: 15px;
        height: 15px;
        background: #249441;
        border-radius: 50%;
        transform: translate(-50%, -50%);
        opacity: 1;
        transition: opacity 0.2s ease;
    }

    .hoshou-messagebox {
        width: 706px;
        display: flex;
        padding: 12px 16px;
        margin: 16px 0;
        align-items: center;
        gap: 8px;
        align-self: stretch;
        border-radius: 8px;
        border: 1px solid #00A5D9;
        background: #F0F5F9;
    }
    
    .txtSenshin {
        width: 374px;
        height: 50px;
        align-self: stretch;
        word-wrap: break-word;
        color: #333333;
        font-weight: 700;
        line-height: 140%;
    }

    .txtTokuyakuLabel {
        white‑space: normal;
        letter-spacing: 0;
        word-spacing: 0;
        font-family: Noto Sans JP;
        font-weight: 700;
        font-size: 18px;
        line-height: 160%;
        letter-spacing: 0px;
        vertical-align: middle;
        margin: 16px 0;
    }

    .txtAttation {
        width: 706px;
        font-family: Noto Sans JP;
        font-weight: 700;
        font-style: Bold;
        font-size: 18px;
        line-height: 160%;
        letter-spacing: 0px;
        vertical-align: middle;
        margin: 16px 0;
    }
}

@media only screen and (max-width: 767px) {

    #insurranceShow {
        display: flex;
    }

    .osu-messagebox {
        display: flex;
        padding: 12px 16px;
        margin: 12px 0;
        align-items: center;
        gap: 8px;
        align-self: stretch;
        border-radius: 8px;
        border: 1px solid #7CC77B;
        background: #EFF8EF;
    }

    .inputRadio:checked+.bloCommonRadio::after {
        content: "";
        position: absolute;
        top: 50%;
        left: calc(var(--radio-outer-offset) + (var(--radio-outer-radius) / 2));
        width: 15px;
        height: 15px;
        background: #249441;
        border-radius: 50%;
        transform: translate(-50%, -50%);
        opacity: 1;
        transition: opacity 0.2s ease;
    }

    .hoshou-messagebox {
        display: flex;
        padding: 12px 16px;
        margin-bottom: 20px;
        align-items: center;
        gap: 8px;
        align-self: stretch;
        border-radius: 8px;
        border: 1px solid #00A5D9;
        background: #F0F5F9;
    }

    .txtAttation {
        width: 100%;
        font-family: Noto Sans JP;
        font-weight: 700;
        font-style: Bold;
        font-size: 18px;
        line-height: 160%;
        letter-spacing: 0px;
        vertical-align: middle;
        margin: 16px 0;
    }

}

.bloSimulation .inputRadio,
.bloSimulation .inputCheckbox {
    display: none;
}


/* .bloCommonRadio 共通ラジオボタン設定
----------------------------------------------- */
.bloCommonRadio {
    position: relative;
    display: flex;
    align-items: center;
    text-align: left;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 110%;
    width: 328px;
    height: 48px;
    min-width: 140px;
    gap: 8px;
    flex: 1 0 0;
    padding-left: 44px;
    border: 2px solid #b2b2b2;
    background: #ffffff;
    cursor: pointer;
}

.bloCommonRadio::before {
    content: "";
    position: absolute;
    top: 50%;
    left: var(--radio-outer-offset);
    width: var(--radio-outer-radius);
    height: var(--radio-outer-radius);
    border: 2px solid #b2b2b2;
    border-radius: 50%;
    box-sizing: border-box;
    transform: translateY(-50%);
}

/* ハイライト設定 */
.inputRadio:checked+.bloCommonRadio {
    border-color: #249441;
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 500;
    line-height: 110%;
    /* 17.6px */
}

.inputRadio:checked+.bloCommonRadio::before {
    border-color: #249441;
}

.inputRadio:checked+.bloCommonRadioO {
    border-color: #00A5D9;
    color: #00A5D9;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
}

.inputRadio:checked+.bloCommonRadioOsu {
    border-color: #00A5D9;
    color: #00A5D9;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
}

/* 選択不可 */
.inputRadio:disabled+.bloCommonRadio {
    border-color: #d9d9d9;
    background: #d9d9d9;
    color: #787976;
    cursor: not-allowed;
}

.inputRadio:disabled+.bloCommonRadio::before {
    border-color: #787976;
    background: #d9d9d9;
}

/* #txtLargeInputLabel
----------------------------------------------- */
@media print,
screen and (min-width: 768px) {

    /* PC_h2 */
    #txtLargeInputLabel {
        color: #333333;
        width: 706px;
        font-family: "Noto Sans JP";
        font-size: 24px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        /* 44.8px */
        background-color: #ffffff;
        gap: 10px;
        margin-top: 16px;
        margin-bottom: 16px;
    }

    /* PC_firstTitle */
    #txtLargeInputLabelMitsu {
        color: #333333;
        width: 706px;
        font-family: "Noto Sans JP";
        font-size: 28px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        /* 44.8px */
        background-color: #ffffff;
        gap: 10px;
        margin-bottom: 40px;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    #txtLargeInputLabelMitsu {
        color: #333333;
        font-family: "Noto Sans JP";
        font-size: 22px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        background-color: #ffffff;
        margin-bottom: 24px;
    }

    /* SP */
    #txtLargeInputLabel {
        color: #333333;
        /* Pattern/Mobile H2：見出しM */
        font-family: "Noto Sans JP";
        font-size: 20px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        margin-top: 24px;
        margin-bottom: 8px;
        background-color: #ffffff;
    }
}


/* .txtInputLabel 性別・年齢・プランラベル
----------------------------------------------- */
.txtInputLabel .txtInputLabelMust {
    display: block;
}

@media print,
screen and (min-width: 768px) {

    .txtInputLabel {
        color: #000;
        font-family: "Noto Sans JP";
        font-size: 15px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
    }

    .txtInputLabelMust {
        color: #E2242C;
        font-family: "Noto Sans JP";
        font-size: 12px;
        font-style: normal;
        font-weight: 700;
        line-height: 110%;
    }

    .labelGroup {
        width: 706px;
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 8px;
    }
}

@media only screen and (max-width: 767px) {

    .txtInputLabel {
        color: #000;
        font-family: "Noto Sans JP";
        font-size: 15px;
        font-style: normal;
        font-weight: 700;
        line-height: 135% !important;
    }

    .txtInputLabelMust {
        color: #E2242C;
        font-family: "Noto Sans JP";
        font-size: 12px;
        font-style: normal;
        font-weight: 700;
    }

    .labelGroup {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 8px;
    }
}



/* #bloSimSex 性別エリア
----------------------------------------------- */

@media print,
screen and (min-width: 768px) {

    /* PC */
    #bloSimSex {
        width: 706px;
        gap: 12px;
        display: flex;
        align-items: center;
        margin-bottom: 16px;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    #bloSimSex {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 12px;
        align-self: stretch;
        margin-bottom: 16px;
    }
}


/* .bloInputSex 性別ラジオボタン
----------------------------------------------- */
.bloInputSex {

    border-radius: 4px;
    color: black;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    .bloInputSex {
        text-align: left;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        line-height: 110%;
        /* 17.6px */
        width: 328px;
        height: 48px;
        display: flex;
        min-width: 140px;
        align-items: center;
        gap: 8px;
        flex: 1 0 0;
        --radio-outer-radius: 24px;
        --radio-inner-radius: 24px;
        --radio-outer-offset: 12px;
    }

    .bloInputO {
        color: #333;
        text-align: center;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        display: flex;
        height: 48px;
        min-width: 120px;
        padding: 10px 16px;
        justify-content: center;
        align-items: center;
        gap: 10px;
        flex: 1 0 0;
        border-radius: 4px;
        border: 2px solid #D9D9D9;
        background: #FFF;
    }

    .bloInputOsu {
        color: #333;
        text-align: center;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        height: 48px;
        min-width: 49%;
        padding: 10px 16px;
        gap: 10px;
        border-radius: 4px;
        border: 2px solid #D9D9D9;
        background: #FFF;
    }

}

@media only screen and (max-width: 767px) {

    /* SP */
    .bloInputSex {
        width: 100%;
        height: 48px;
        font-size: 16px;
        --radio-outer-radius: 24px;
        --radio-inner-radius: 24px;
        --radio-outer-offset: 12px;
    }

    .bloInputO {
        color: #333;
        width: 100%;
        display: flex;
        height: 48px;
        font-size: 16px;
        font-style: normal;
        padding: 10px 16px;
        justify-content: center;
        align-items: center;
        font-family: "Noto Sans JP";
        font-weight: 500;
        gap: 10px;
        border-radius: 4px;
        border: 2px solid #D9D9D9;
        background: #FFF;
    }

    .bloInputOsu {
        color: #333;
        text-align: center;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        flex: 1 0 0;
        height: 48px;
        min-width: 100%;
        padding: 10px 16px;
        gap: 10px;
        border-radius: 4px;
        border: 2px solid #D9D9D9;
        background: #FFF;
    }
}


/* #bloInputAge 年齢セレクトボックスラッパー
----------------------------------------------- */
#bloInputAge {
    position: relative;
    display: inline-block;
    border: 2px solid #D9D9D9;
    border-radius: 4px;
    background: #FFF;
    color: black;
    margin-bottom: 16px;
}

#bloInputAge .ageSelect:focus {
    border-color: #249441;
    outline: none;
}

.feature-row .js-modal-open {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    text-decoration: none;
}

.bloBaseSelect {
    min-width: 140px;
    height: 48px;
    position: relative;
    font-weight: 700;
    font-size: 20px;
    outline: 2px #D9D9D9 solid;
    outline-offset: -2px;
    /* display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px; */
    background: white;
    border-radius: 4px;
}    
    
.bloBaseSelect select {
    width: 100%;
    height: 48px;
    background-image: linear-gradient(45deg, transparent 50%, #808080 50%),
        linear-gradient(-45deg, transparent 50%, #808080 50%);
    background-position: right 24px center, right 18.2px center;
    background-size: 6px 6px;
    background-repeat: no-repeat;
    flex: 1 0 0;
    /* 残りのスペースを埋める */
    color: #333;
    font-family: "Noto Sans JP";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
}

#in_main_nyuin_amt {
    padding-left: 32px;
}

#in_main_tsuin_amt {
    padding-left: 18px;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    #bloInputAge {
        width: 706px;
        height: 48px;
    }

    .left-top .top-row {
        width: 100%;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .left-bottom {
        margin-top: 8px;
        text-align: right;
    }

    .price-card-izato-shotei .top-row,
    .price-card-izato-kaigo .top-row  {
        width: 280px;
    }

    /* ========================================= */
    /* 保険オプションカードのスタイル（活性化状態用） */
    /* ========================================= */
    .price-card {
        width: 706px;
        min-height: 56px;
        padding: 16px;
        border-radius: 8px;
        border: 1px solid #D9D9D9;
        display: inline-flex;
        justify-content: space-between;
        align-items: flex-start;
    }

    .price-card .checkbox-box {
        width: 24px;
        height: 24px;
        background: white;
        border-radius: 4px;
        border: 2px #B3B3B3 solid;
    }

    .price-card .card-content {
        flex: 1 1 0;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 12px;
    }

    .price-card .card-content-header {
        align-self: stretch;
        display: inline-flex;
        justify-content: space-between;
        align-items: flex-start;
    }

    .price-card .card-content-body {
        align-self: stretch;
        display: inline-flex;
        justify-content: flex-start;
        align-items: center;
        gap: 12px;
    }

    .price-card .inner-left {
        width: 260px;
        display: inline-flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 16px;
    }

    .price-card .left-top {
        align-self: stretch;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
    }

    .price-card .label-day {
        width: 100%;
        align-self: stretch;
        display: inline-flex;
        justify-content: space-between;
        align-items: center;
        word-wrap: break-word;
        color: #333333;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 19.60px;
    }

    .price-card .feature-name {
        margin-right: 16px;
        display: flex;
        flex-direction: column;
        color: #333333;
        font-size: 13px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        line-height: 19.50px;
        word-wrap: break-word;
    }

    .price-card .feature-name-left {
        width: 100%;
        height: 17px;
        color:  #333333;
        font-size: 12px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        line-height: 19.50px;
        justify-content: flex-end;
    }

    #kegaPriceCard .feature-name-left {
        font-size: 14px;
    }

    .txtPmen {
        color: #333;
        padding: 16px 0 16px 0;
        font-family: "Noto Sans JP";
        font-size: 20px;
        font-style: normal;
        font-weight: 700;
        line-height: 140%;
        /* 28px */
    }

    .price-card .left-bottom {
        width: 100%;
        color: #333333;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 500;
        line-height: 19.60px;
        word-wrap: break-word;
    }

    .price-card .inner-right {
        flex: 1 1 0;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 12px;
    }

    .price-card .premium {
        display: flex;
        justify-content: flex-end;
        align-self: stretch;
        text-align: right;
        color: #333333;
        font-size: 20px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 140%;
    }

    .price-card .feature-row {
        align-self: stretch;
        display: inline-flex;
        justify-content: flex-end;
        align-items: center;
        gap: 12px;
    }

    .price-card .feature-icon-badge {
        width: 21px;
        height: 21px;
        position: relative;
        mix-blend-mode: luminosity;
        display: flex;
        justify-content: center;
        align-items: center;
        background: #5D665F;
        border-radius: 9999px;
        /* 円形 */
        color: white;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 22.40px;
    }

    .price-card .payment-period,
    .price-card .benefit-rate {
        align-self: stretch;
        text-align: right;
        display: flex;
        flex-direction: column;
        color: #333333;
        font-size: 13px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        line-height: 19.50px;
        word-wrap: break-word;
    }

    /* 内部全体のレイアウト */
    .price-card .card-main {
        flex: 1 1 0;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
    }

    /* コンテンツ部のスタイル */
    .price-card .card-content {
        flex: 1 1 0;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
    }

    /* 上部部分：タイトルと選択中ラベル */
    .price-card .card-content-header {
        display: inline-flex;
        justify-content: space-between;
        align-items: flex-start;
        width: 100%;
    }

    .price-card .title {
        font-size: 16px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 22.4px;
        word-wrap: break-word;
    }

    .price-card .selected-label {
        opacity: 0;
        padding: 4px 8px;
        background: #D94935;
        border-radius: 5px;
        display: flex;
        justify-content: center;
        align-items: center;
        color: white;
        font-size: 12px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 16.8px;
    }

    /* 本文部：左エリア + 右エリア */
    .price-card .card-content-body {
        display: inline-flex;
        justify-content: flex-start;
        align-items: center;
        gap: 12px;
        width: 100%;
    }

    .price-card .price-input {
        width: 183px;
    }

    .label-count {
        display: inline-flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding-left: 8px;
        color: var(--Typography-Text, #333333);
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 19.6px;
    }

    /* 右側部分 */
    .inner-right {
        flex: 1 1 0;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 12px;
        width: 100%;
    }

    /* ハイライト設定 */
    #bloInputAge.isSelected {
        border-color: #249441;
    }

    #bloInputAge.isSelected::after {
        border-top-color: #249441;
    }

}

@media only screen and (max-width: 767px) {

    /* .nyuin-checkbox：固定幅または最小幅として扱う */
    .jqCheckboxTarget .card-main .nyuin-checkbox {
        flex: 0 0 auto;
        /* 伸縮しない、自身の幅で表示 */
    }

    /* .card-content 部分は残りの幅を占めるよう伸縮可能に */
    .jqCheckboxTarget .card-main .card-content {
        flex: 1 1 auto;
        /* 伸縮可、残り幅を占有 */
        display: flex;
        flex-direction: column;
        /* 縦方向に header と body を配置 */
        justify-content: center;
        align-items: flex-start;
        gap: 12px;
    }

    /* .txtCheckBoxHead と .selected-label に余計な余白を加えない */
    .jqCheckboxTarget .card-content-header .txtCheckBoxHead,
    .jqCheckboxTarget .card-content-header .selected-label {
        margin: 0;
    }

    .label-senden {
        color: #333333;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 140%;
    }

    .label-jiko {
        font-weight: 700;
        font-size: 20px;
        font-family: "Noto Sans JP", sans-serif;
    }

    .txtSenshin {
        width: 100%;
        height: 78px;
        word-wrap: break-word;
        color: #333333;
        font-weight: 700;
        line-height: 140%;
    }

    .txtTokuyakuLabel {
        width: 214px;
        display: inline-block;
        font-weight: 700;
        font-size: 20px;
        line-height: 140%;
        word-break: keep-all;
        overflow-wrap: anywhere;
    }

    /* SP */
    #bloInputAge {
        width: 100%;
        height: 48px;
        margin-bottom: 24px;
    }

    .left-top .top-row {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .top-row.fmenNyu {
        margin-top: 12px;
    }

    .left-bottom {
        margin-top: 8px;
    }

    /* ========================================= */
    /* 保険オプションカードのスタイル（活性化状態用） */
    /* ========================================= */
    .price-card {
        width: 100%;
        height: 100%;
        min-width: 320px;
        min-height: 56px;
        padding: 16px;
        border-radius: 8px;
        border: 1px solid #D9D9D9;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
    }

    .price-card.price-card-senshin {
        min-width: 320px;
        min-height: 56px;
        padding: 16px;
        border-radius: 8px;
        border: 1px solid #D9D9D9;
        display: inline-flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
    }

    .price-card .feature-name-left {
        width: 100%;
        height: 17px;
        color:  #333333;
        font-size: 12px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        line-height: 19.50px;
        justify-content: flex-end;
    }

    #kegaPriceCard .feature-name-left {
        font-size: 14px;
    }

    .price-card .feature-name {
        margin-right: 16px;
        color: #333333;
        font-size: 13px;
    }

    .price-card .checkbox-box {
        width: 24px;
        height: 24px;
        background: white;
        border-radius: 4px;
        border: 2px #B3B3B3 solid;
    }

    .price-card .title {
        color: #333333;
        word-wrap: break-word;
        font-size: 16px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 140%;
    }

    .price-card .selected-label {
        opacity: 0;
    }

    .price-card .inner-left {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 16px;
        flex-grow: 1;
        width: 100%;
        padding: 10px 0;
    }

    .price-card .left-top {
        align-self: stretch;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
    }

    .price-card .label-day {
        align-self: stretch;
        display: inline-flex;
        justify-content: space-between;
        align-items: center;
        word-wrap: break-word;
        color: #333333;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 19.60px;
    }

    .txtSip {
        margin-top: 20px;
    }

    .label-day.txtSipNew {
        width: 100%;
        height: 20px;
        font-size: 14px;
    }

    .txtPmen {
        width: 100%;
        color: #333;
        font-family: "Noto Sans JP";
        font-size: 20px;
        font-style: normal;
        font-weight: 700;
        line-height: 140%;
        /* 28px */
    }

    .txtPmen.izato-kaigo {
        padding: 32px 0 0;
    }

    .price-card .left-bottom {
        width: 100%;
        color: #333333;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 500;
        line-height: 140%;
        word-wrap: break-word;
        text-align: right;
    }

    .price-card .left-bottom.txtSenshin {
        height: 20px;
    }

    .price-card .inner-right {
        width: 100%;
        flex: 1 1 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 12px;
    }

    .price-card .premium {
        display: flex;
        justify-content: flex-end;
        color: #333333;
        font-size: 20px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 28px;
        white-space: nowrap;
    }

    .price-card .feature-row {
        align-self: stretch;
        display: inline-flex;
        justify-content: flex-end;
        align-items: center;
        gap: 12px;
    }

    .price-card .feature-icon-badge {
        width: 21px;
        height: 21px;
        position: relative;
        mix-blend-mode: luminosity;
        display: flex;
        justify-content: center;
        align-items: center;
        background: #5D665F;
        border-radius: 9999px;
        /* 円形 */
        color: white;
        font-size: 14px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 22.40px;
    }

    .price-card .payment-period,
    .price-card .benefit-rate {
        align-self: stretch;
        text-align: right;
        display: flex;
        flex-direction: column;
        color: #333333;
        font-size: 13px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        line-height: 19.50px;
        word-wrap: break-word;
    }

    /* ========================================= */
    /* 保険オプションカードのスタイル（活性化状態用） */
    /* ========================================= */


    /* 内部全体のレイアウト */
    .price-card .card-main {
        flex: 1 1 0;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
    }

    /* 上部部分：タイトルと選択中ラベル */
    .price-card .card-content-header {
        display: inline-flex;
        width: 100%;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
    }

    .price-card .selected-label {
        width: 52px;
        height: 25px;
        padding: 4px 8px;
        background: #D94935;
        border-radius: 5px;
        display: flex;
        justify-content: center;
        align-items: center;
        color: white;
        font-size: 12px;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 700;
        line-height: 140%;
        white-space: nowrap;
    }

    /* 本文部：左エリア + 右エリア */
    .price-card .card-content-body {
        display: inline-flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        gap: 12px;
        width: 100%;
    }

    /* ハイライト設定 */
    #bloInputAge.isSelected {
        border-color: #249441;
    }

    #bloInputAge.isSelected::after {
        border-top-color: #249441;
    }

    .price-card .price-input {
        width: auto;
    }

    .price-card .price-input-select {
        min-width: 194px;
        height: 48px !important;
        padding-right: 12px !important;
        padding-top: 0 !important;
        background: white;
        border-radius: 4px;
        outline: 2px #D9D9D9 solid;
        display: flex;
        font-weight: 700;
        justify-content: center;
        align-items: center;
    }

}

/* #inputAge 年齢セレクトボックス
----------------------------------------------- */
#inputAge {
    width: 100%;
    padding: 10px 32px 10px 16px;
    font-size: 14px;
    background-image: linear-gradient(45deg, transparent 50%, #808080 50%),
        linear-gradient(-45deg, transparent 50%, #808080 50%);
    background-position: right 16px center, right 10px center;
    background-size: 7px 7px;
    background-repeat: no-repeat;
    flex: 1;
    cursor: pointer;
    /* 矢印のためのスペースを確保する */
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

/* フォーカス時の黒い枠線とハイライトを削除 */
#in_main_nyuin_amt,
#in_main_tsuin_amt:focus {
    outline: none;
    border-color: #ccc;
    box-shadow: none;
}

#prate_flg {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 24px;
    height: 24px;
    left: 16px;
    border-radius: 4px;
    position: absolute;
    border: 2px solid #B3B3B3;
    background: #FFF;
    cursor: pointer;
    transition: background 0.3s, border-color 0.3s;
}

#prate_flg:checked {
    background: #009B43;
    border: none;
}

.jqCheckboxTarget.isDisabled #prate_flg.check_flg {
    cursor: not-allowed;
}

.price-card .price-input {
    height: 48px;
    padding: 10px 0 0 36px !important;
    font-weight: 700;
    font-size: 20px;
    justify-content: flex-end;
    line-height: 140%;
    align-items: center;
}

.price-input.txtGanPrice {
    height: auto;
    padding: 0 !important;
}

.price-card .price-input span {
    color: #333333;
    font-family: "Noto Sans JP";
    font-size: 20px;
    font-weight: 700;
    margin-left: -4px;
    line-height: 140%;
}

.price-card-sandai-nyuin,
.price-card-sandai-tsuin,
.price-card-izato-shotei,
.price-card-josei-nyuin {
    margin-bottom: 8px;
}

.price-card-izato-shotei.izato-shotei-jok,
.price-card-josei-nyuin.josei-nyuin-jok {
    margin-bottom: 0;
}

/* background color */
.price-card-nyuin,
.price-card-tsuin,
.price-card-senshin {
    background: #F0F9F2;
}

.price-card-sandai-nyuin,
.price-card-sandai-tsuin,
.price-card-sandai-shotei {
    background: #EDFCF9;
}

.price-card-kaigo {
    background: #EEF9FC;
}

.price-card-izato-shotei {
    background: #FAF6EF;
}

.price-card-izato-kaigo {
    background: #FAF6EF;
}

.price-card-izato-kaigo {
    position: relative;
    background: #FAF6EF;
}

.price-card-josei-nyuin {
    position: relative;
    background: #FDF6F8;
}

.price-card-josei-shujutsu {
    position: relative;
    background: #FDF6F8;
}

.price-card-kossetsu {
    position: relative;
    background: #FAFDED;
}

.price-card-sonaetai {
    position: relative;
    background: #FAFDED;
}

.check_flg {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 24px;
    height: 24px;
    left: 16px;
    border-radius: 4px;
    border: 2px solid #B3B3B3;
    background: #FFF;
    cursor: pointer;
    transition: background 0.3s, border-color 0.3s;
}

/* 入院チェックボックス カラー */
.nyuin_check_flg:checked {
    background: #009B43;
    border: none;
}

/* 通院チェックボックス カラー */
.tsuin_check_flg:checked {
    background: #009B43;
    border: none;
}

/* 先進チェックボックス カラー */
.senshin_check_flg:checked {
    background: #009B43;
    border: none;
}

/* 三大疾病チェックボックス カラー */
.sandai_nyuin_check_flg:checked {
    background: #009994;
    border: none;
}

.sandai_tsuin_check_flg:checked {
    background: #009994;
    border: none;
}

.sandai_shotei_check_flg:checked {
    background: #009994;
    border: none;
}

/* 介護チェックボックス カラー */
.kaigo_check_flg:checked {
    background: #007D99;
    border: none;
}

/* いざという時チェックボックス カラー */
.izato_shotei_check_flg:checked {
    background: #A7804E;
    border: none;
}

.izato_kaigo_check_flg:checked {
    background: #A7804E;
    border: none;
}

/* 女性入院チェックボックス カラー */
.josei_nyuin_check_flg:checked {
    background: #F9788D;
    border: none;
}

.josei_shujutsu_check_flg:checked {
    background: #F9788D;
    border: none;
}

/* 骨折チェックボックス カラー */
.kossetsu_check_flg:checked {
    background: #6A8000;
    border: none;
}

/* 万が一の備えたいチェックボックス カラー */
.sonaetai_check_flg:checked {
    background: #6A8000;
    border: none;
}

.nyuin-checkbox,
.tsuin-checkbox,
.senshin-checkbox,
.sandai-nyuin-checkbox,
.sandai-tsuin-checkbox,
.sandai-shotei-checkbox,
.kaigo-checkbox,
.izato-shotei-checkbox,
.izato-kaigo-checkbox,
.josei-nyuin-checkbox,
.josei-shujutsu-checkbox,
.kossetsu-checkbox,
.sonaetai-checkbox,
label .selected-label {
    position: relative;
    border-radius: 4px;
    cursor: pointer;
    box-sizing: border-box;
    opacity: 1;
    vertical-align: middle;
    top: -2px;
}

.label-checkbox {
    display: block;
    width: 36px;
    cursor: pointer;
}

/* 入院に手厚く備えたいチック制御 */
.price-card:has(.nyuin-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.nyuin-checkbox input.check_flg:checked) .title {
    color: #009B43;
}

/* 通院に備えたい */
.price-card:has(.tsuin-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.tsuin-checkbox input.check_flg:checked) .title {
    color: #009B43;
}

/* 先進医療に備えたい */
.price-card:has(.senshin-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.senshin-checkbox input.check_flg:checked) .title {
    color: #009B43;
}

/* 三大疾病 */
.price-card:has(.sandai-nyuin-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.sandai-nyuin-checkbox input.check_flg:checked) .title {
    color: #009994;
}

.price-card:has(.sandai-tsuin-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.sandai-tsuin-checkbox input.check_flg:checked) .title {
    color: #009994;
}

.price-card:has(.sandai-shotei-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.sandai-shotei-checkbox input.check_flg:checked) .title {
    color: #009994;
}

/* 介護 */
.price-card:has(.kaigo-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.kaigo-checkbox input.check_flg:checked) .title {
    color: #007D99;
}

/* いざという */
.price-card:has(.izato-shotei-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.izato-shotei-checkbox input.check_flg:checked) .title {
    color: #A7804E;
}

.price-card:has(.izato-kaigo-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.izato-kaigo-checkbox input.check_flg:checked) .title {
    color: #A7804E;
}

/* 女性特有 */
.price-card:has(.josei-nyuin-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.josei-nyuin-checkbox input.check_flg:checked) .title {
    color: #F9788D;
}

.price-card:has(.josei-shujutsu-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.josei-shujutsu-checkbox input.check_flg:checked) .title {
    color: #F9788D;
}

/* 骨折 */
.price-card:has(.kossetsu-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.kossetsu-checkbox input.check_flg:checked) .title {
    color: #6A8000;
}

/* 備えたい */
.price-card:has(.sonaetai-checkbox input.check_flg:checked) .selected-label {
    opacity: 1;
}

.price-card:has(.sonaetai-checkbox input.check_flg:checked) .title {
    color: #6A8000;
}

.jibyou-checkbox:has(input[type="checkbox"]:checked) a.dialogLink .qBox {
    display: none;
}

.jibyou-checkbox:has(input[type="checkbox"]:checked) img.qBox {
    opacity: 1;
}

.jibyou-checkbox:has(input[type="checkbox"]:checked) a.dialogLink {
    position: relative;
    width: fit-content;
}

.jibyou-checkbox:has(input[type="checkbox"]:checked) a.dialogLink::after {
    content: "";
    margin-left: 219.5px;
    display: inline-block;
    top: 0;
    left: 0;
    width: 21px;
    height: 21px;
    margin-left: 6px;
    background: url("/content/dam/aflac/jp/ja/static/iryo/hoshi/images/img_hoshii-joken_question.png") no-repeat center center;
    background-size: contain;
    vertical-align: middle;
}

/* 持病チェックボックス */
.jibyou-checkbox:has(input[type="checkbox"]:checked) {
    background-color: #F0F9F2;
    border-color: #009B43;
}

/* 入院チェックボックス */
.price-card-nyuin:has(input[type="checkbox"]:checked) {
    border-color: #009B43;
}

/* 通院チェックボックス */
.price-card-tsuin:has(input[type="checkbox"]:checked) {
    border-color: #009B43;
}

/* 先進医療に備えたい */
.price-card-senshin:has(input[type="checkbox"]:checked) {
    border-color: #009B43;
}

/* 三大疾病に備えたい */
.price-card-sandai-nyuin:has(input[type="checkbox"]:checked) {
    border-color: #009994;
}

.price-card-sandai-tsuin:has(input[type="checkbox"]:checked) {
    border-color: #009994;
}

.price-card-sandai-shotei:has(input[type="checkbox"]:checked) {
    border-color: #009994;
}

/* 介護に備えたい */
.price-card-kaigo:has(input[type="checkbox"]:checked) {
    border-color: #007D99;
}

/* いざという時 */
.price-card-izato-shotei:has(input[type="checkbox"]:checked) {
    border-color: #A7804E;
}

.price-card-izato-kaigo:has(input[type="checkbox"]:checked) {
    border-color: #A7804E;
}

/* 女性特有 */
.price-card-josei-nyuin:has(input[type="checkbox"]:checked) {
    border-color: #F9788D;
}

.price-card-josei-shujutsu:has(input[type="checkbox"]:checked) {
    border-color: #F9788D;
}

/* 骨折 */
.price-card-kossetsu:has(input[type="checkbox"]:checked) {
    border-color: #6A8000;
}

/* 万が一備えたい */
.price-card-sonaetai:has(input[type="checkbox"]:checked) {
    border-color: #6A8000;
}

.jibyou-checkbox .jibyou-texts {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-self: stretch;
    color: #333;
    font-family: "Noto Sans JP";
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 140%;
    /* 19.6px */
}

.jibyou-checkbox .jibyou-texts a {
    color: inherit;
    width: fit-content;
}

.jibyou-checkbox .jibyou-texts a span {
    cursor: default;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    #inputAge {
        font-size: 16px;
    }

    #inputAge option {
        color: black;
    }

    #bloInputTsuin {
        text-align: right;
    }

    /* 持病チェックボックス */
    .jibyou-checkbox {
        width: 706px;
        height: 93px;
        align-items: center;
        justify-content: flex-start;
        padding: 20px 24px 20px 56px;
        margin-bottom: 16px;
        gap: 12px;
        box-sizing: border-box;
        position: relative;
        border: 2px solid #D9D9D9;
        border-radius: 6px;
        background: #FFF;
    }

    .jibyou-checkbox label {
        display: flex;
        align-items: center;
        width: 100%;
    }

    input[type="checkbox"]:checked::after {
        content: "";
        position: absolute;
        top: 3px;
        left: 8px;
        width: 8px;
        height: 14px;
        border: solid white;
        border-width: 0 2.5px 2.5px 0;
        transform: rotate(45deg);
        transition: opacity 0.2s ease-in;
        opacity: 1;
    }

    #prate_flg:checked::after {
        top: 3px;
        left: 8px;
        transition: opacity 0.2s ease-in;
    }

}

@media only screen and (max-width: 767px) {

    /* SP */
    #inputAge {
        font-size: 16px;
    }

    #inputAge option {
        color: black;
    }

    #bloInputTsuin {
        text-align: right;
    }

    /* 持病チェックボックス */
    .jibyou-checkbox {
        display: flex;
        min-height: 56px;
        padding: 20px 24px 20px 56px;
        align-items: center;
        gap: 12px;
        align-self: stretch;
        border-radius: 6px;
        position: relative;
        border: 2px solid #D9D9D9;
        background: #FFF;
        margin-bottom: 24px;
    }

    .jibyou-checkbox label {
        display: flex;
        align-items: center;
        width: 100%;
    }

    input[type="checkbox"]:checked::after {
        content: "";
        position: absolute;
        top: 3px;
        left: 8px;
        width: 8px;
        height: 14px;
        border: solid white;
        border-width: 0 2.5px 2.5px 0;
        transform: rotate(45deg);
        transition: opacity 0.2s ease-in;
        opacity: 1;
    }

    #prate_flg:checked::after {
        top: 3px;
        left: 8px;
        transition: opacity 0.2s ease-in;
    }

}

/* #bloHoshou 保障の選び方
----------------------------------------------- */

@media print,
screen and (min-width: 768px) {

    /* PC */
    #bloHoshou {
        width: 706px;
        margin-bottom: 16px;
        flex-wrap: wrap;
        display: flex;
        gap: 12px;
    }

    /* #Rectangle 31 保障の選び方
    ----------------------------------------------- */

    .mb16.rectangle {
        display: none;
    }

    .mb17.rectangle {
        display: none;
    }

    #bloOsu {
        width: 706px;
        gap: 12px;
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 16px;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    #bloHoshou {
        gap: 10px;
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 24px;
    }

    /* #Rectangle 31 保障の選び方
    ----------------------------------------------- */
    .mb15.rectangle {
        width: 100%;
        height: 2px;
        align-self: center;
        background: #D9D9D9;
    }

    .mb16.rectangle {
        width: 100vw;
        height: 2px;
        margin: 16px auto 24px auto;
        margin-left: calc(-50vw + 50%);
        background: #D9D9D9;
    }

    .mb17.rectangle {
        width: 100vw;
        height: 2px;
        margin: 16px auto 24px auto;
        margin-left: calc(-50vw + 50%);
        background: #D9D9D9;
    }

    #bloOsu {
        gap: 12px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        align-self: stretch;
        margin-bottom: 24px;
    }

}

@media print,
screen and (min-width: 768px) {

    .sougouDisplay {
        font-size: 14px;
        width: 706px;
        margin-top: 16px;
        margin-bottom: 16px;
    }

    /* .bloCalaBaseDate 計算基準日
    ----------------------------------------------- */
    .bloCalaBaseDate {
        width: 706px;
        justify-content: flex-end;
        align-items: center;
        display: grid;
        justify-items: end;
        grid-auto-flow: column;
        grid-template: auto / auto 35px auto repeat(2, 19px auto);
        gap: 2.5px;
        color: #333333;
        text-align: right;
        font-family: "Noto Sans JP";
        font-size: 14px;
        font-style: normal;
        font-weight: 400;
        line-height: 160%;
        /* 22.4px */
    }

    /* .txtSimSectionLabel
    ----------------------------------------------- */
    .txtSimSectionFlex {
        color: #0C6AC9;
        text-align: center;
        /* PC_h3 */
        font-family: "Noto Sans JP";
        font-size: 24px;
        font-style: normal;
        font-weight: 700;
    }

    .txtSimSectionLabel {
        display: flex;
        padding-top: 20px;
        width: 706px;
        heigjt: 58px;
        flex-direction: column;
    }

    .bloOuterBanner {
        align-content: center;
        justify-content: center;
        grid-template: auto / 748px minmax(auto, 262px);
        height: 110px;
    }

    /* .bloOuterBanner バナー外側デザイン
	----------------------------------------------- */
    .bloOuterBanner {
        display: none;
    }

    .bloOuterBanner.isVisibility {
        position: fixed;
        bottom: 0;
        left: 0;
        z-index: 999;
        display: grid;
        width: 100%;
        margin: 0;
        background: #f6e8a8;
    }

    .jqSimPriceOutput.bloOuterBanner.isVisibility {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .jqSimPriceOutput .bloInnerBanner {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .jqSimPriceOutput .bloTotalPremium {
        width: 320px;
        height: 39px;
        display: flex;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-weight: 700;
        justify-content: space-between;
        flex-direction: row;
        align-items: center;
        margin-bottom: 8px;
    }

}

@media only screen and (max-width: 767px) {

    /* SP */
    /* .bloCalaBaseDate 計算基準日
    ----------------------------------------------- */
    .bloCalaBaseDate {
        justify-content: flex-end;
        align-items: center;
        display: grid;
        justify-items: end;
        grid-auto-flow: column;
        grid-template: auto / auto 35px auto repeat(2, 19px auto);
        gap: 2.5px;
        color: #333333;
        text-align: right;
        font-family: "Noto Sans JP";
        font-size: 14px;
        font-style: normal;
        font-weight: 400;
        line-height: 160%;
        /* 22.4px */
    }

    .sougouDisplay {
        font-size: 14px;
        margin-top: 24px;
        margin-bottom: 24px;
    }
    .sougouDisplay.bottomNote{
        margin-top: 44px;
        margin-bottom: 16px;
    }

    /* .txtSimSectionLabel
    ----------------------------------------------- */
    .txtSimSectionFlex {
        color: #0C6AC9;
        text-align: center;
        /* h3 */
        font-family: "Noto Sans JP";
        font-size: 20px;
        font-style: normal;
        font-weight: 700;
        line-height: 160%;
        /* 38.4px */
        margin: 24px 0;
    }

    .bloOuterBanner {
        display: none;
        align-content: center;
        justify-content: center;
        grid-template: auto / 748px minmax(auto, 262px);
        padding-top: 4px;
        padding-bottom: 10px;
    }

    /* .bloOuterBanner バナー外側デザイン
	----------------------------------------------- */
    .bloOuterBanner.isVisibility {
        position: fixed;
        bottom: 0;
        left: 0;
        z-index: 999;
        display: grid;
        width: 100%;
        margin: 0;
        background: #f6e8a8;
    }

    .jqSimPriceOutput.bloOuterBanner.isVisibility {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .jqSimPriceOutput .bloInnerBanner {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .jqSimPriceOutput .bloTotalPremium {
        width: 320px;
        height: 39px;
        display: flex;
        font-family: "Noto Sans JP";
        font-size: 16px;
        font-weight: 700;
        justify-content: space-between;
        flex-direction: row;
        align-items: center;
    }

}

@media print,
screen and (min-width: 768px) {

    /* PC */
    .bloTotalPremium {
        padding-top: 5px;
    }

    .bloTotalPremium>.labelTotalPremium {
        font-size: 16px;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    .bloTotalPremium>.labelTotalPremium {
        font-size: 16px;
        text-align: left;
    }
}

.bloTotalPremium>.bloPremium {
    width: 126px;
    height: 26px;
    align-items: end;
    justify-content: end;
    margin-left: 18px;
    display: inline-flex;
    white-space: nowrap;
    flex-shrink: 0;
    gap: 2px;
}

.bloTotalPremium>.bloPremium>.valuePremium {
    line-height: 1;
}

@media print,
screen and (min-width: 768px) {

    /* PC */
    .bloTotalPremium>.bloPremium>.valuePremium {
        font-family: "Noto Sans JP";
        font-size: 30px;
        font-style: normal;
        font-weight: 700;
        line-height: 100%;
    }

    .bloTotalPremium>.bloPremium>.unitPremium {
        width: 43px;
        height: 22px;
        font-size: 18px;
        font-weight: 700;
        line-height: 120%;
    }
}

@media only screen and (max-width: 767px) {

    /* SP */
    .bloTotalPremium>.bloPremium>.valuePremium {
        font-size: 30px;
    }

    .bloTotalPremium>.bloPremium>.unitPremium {
        font-size: 16px;
    }
}

/* .buttonBanner バナー用ボタン
----------------------------------------------- */
.buttonBanner {
    justify-self: center;
    display: grid;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50px;
    background: #e98300;
    color: #ffffff !important;
    letter-spacing: 0.01em;
    cursor: pointer;
    text-decoration: none !important;
}


@media print,
screen and (min-width: 768px) {

    /* PC */
    .buttonBanner {
        grid-template: auto / auto auto;
        gap: 10px;
        width: 340px;
        height: 44px;
        font-size: 16px;
        font-weight: 700;
    }

    .iconButtonBanner {
        width: 20px;
        height: 20px;
    }

    /* .buttonBanner バナー用ボタン
	----------------------------------------------- */
    .buttonBannerFooter {
        width: 320px;
        height: 69px;
        display: flex;
        gap: 10px;
        font-size: 20px;
        align-items: center;
        justify-content: center;
        border-radius: 40px;
        background: #e98300;
        color: #ffffff !important;
        text-decoration: none !important;
    }

}

@media only screen and (max-width: 767px) {

    /* SP */
    .buttonBanner {
        width: 320px;
        min-width: 160px;
        height: 44px;
        min-height: 40px;
        padding: 8px 24px;
        gap: 10px;
        display: flex;
        font-size: 16px;
        letter-spacing: 0.1em;
    }

    .iconButtonBanner {
        width: 32px;
        height: 32px;
    }

    /* .buttonBanner バナー用ボタン
	----------------------------------------------- */
    .buttonBannerFooter {
        width: 320px;
        height: 69px;
        display: flex;
        gap: 10px;
        align-items: center;
        justify-content: center;
        border-radius: 40px;
        background: #e98300;
        color: #ffffff !important;
        text-decoration: none !important;
        padding: 16px 24px;
    }

    .buttonBannerFooter strong {
        font-weight: 700;
        font-family: "Noto Sans JP";
        line-height: 120%;
        width: 144px;
        height: 22px;
        background: #e98300;
        font-size: 18px;
        gap: 10px;
        padding-left: 10px;
    }

}

.grid-item-error {
    grid-row: 3;
    grid-column: 1 / -1;
    color: red;
    font-size: 12px;
    padding: 4px 0;
    display: block;
    position: unset;
    padding-left: 20px;
    background-image: url(/content/dam/aflac/jp/ja/static/iryo/hoshi/images/icon_exclamation_circle.png);
    background-size: 16px auto;
    background-repeat: no-repeat;
    background-position: left 5px;
}

/* .bloWarningMessage
----------------------------------------------- */
.bloWarningMessage {
    display: none;
    padding-left: 15px;
    font-size: 12px;
    color: #e2242c;
}

.bloWarningMessage.isVisibility {
    display: block;
    background: url("/content/dam/aflac/jp/ja/static/iryo/hoshi/images/icon_error_l.gif") no-repeat left 0.2em;
}