@charset "UTF-8";
/* -----------------------------------------------
    CANCER
----------------------------------------------- */
/* COMMON
----------------------------------------------- */
/* 固定するoriginal headerの都合上、hc-scrollを使用しないため */
html {
    scroll-behavior: smooth;
}
/* original headerにつき既存headerのポジションリセット*/
.ui-common .rs_header_container{
    position: static;
    overflow: hidden;
}
/* original header ページ内リンク位置調整 */
#ranking_area,
#simulation_area,
#category_consultation_area,
.category_info *:has([id]){
    scroll-margin-top: 50px;
}

/* スクロールバー */
.page_main_links::-webkit-scrollbar,
.handling_company .company_list_wrap::-webkit-scrollbar {
    height: 5px;
}
.page_main_links::-webkit-scrollbar-track,
.handling_company .company_list_wrap::-webkit-scrollbar-track {
    background: #f1f1f1;
}
.page_main_links::-webkit-scrollbar-thumb,
.handling_company .company_list_wrap::-webkit-scrollbar-thumb {
    background: #ccc;
}

/* ページリンク */
.page_main_links {
    position: sticky;
    top: 4px;
    z-index: 50;
    display: flex;
    background: #D3F8E3;
    margin: 8px auto 12px 8px;
    overflow: auto;
    border-radius: 8px 0 0 8px;
}
.page_main_links li {
    display: flex;
}
.page_main_links li a {
    display: flex;
    width: 100%;
    text-decoration: none;
    justify-content: center;
    font-weight: bold;
    padding: 12px 10px;
    font-size: 14px;
}
.page_main_links li a span {
    position: relative;
    padding-right: 18px;
    white-space: nowrap;
}
.page_main_links li a span::before,
.page_main_links li a span::after {
    position: absolute;
    font-family: "icomoon";
    line-height: 1;
    top: 50%;
    transform: translatey(-50%);
}
.page_main_links li a span::after {
    font-size: 18px;
    content: "\e932";
    right: 0;
}
.page_main_links li.ranking a span {
    padding-left: 18px;
}
.page_main_links li.ranking a span::before {
    font-size: 16px;
    left: 0;
    content: "\e920";
}

/* シミュレーション */
#simulation_area {
    margin-top: 24px;
}

/* 取り扱い保険会社 */
.handling_company {
    background: #f2f2f2;
    padding: 20px 0;
    margin: 0 auto 24px;
}
.handling_company > p {
    padding: 0 20px 16px;
}
.handling_company .company_list_wrap {
    overflow-x: scroll;
}
.handling_company .company_list {
    display: flex;
    width: fit-content;
    padding: 0 20px;
    gap: 10px;
}
.handling_company .company_list li {
    width: 80px;
}
.handling_company .company_list li a {
    display: block;
    background: #fff;
    border-radius: 8px;
    padding: 8px;
}

/* カテゴリ基礎知識・コラムエリア */
.category_info {
    padding: 16px;
}
.category_info h3 {
    font-size: 22px;
}
.category_info .bookmark {
    border: 1px solid #d1d1d1;
    border-radius: 8px;
    margin: 25px auto;
    padding: 16px;
}
.category_info .bookmark dt {
    position: relative;
    cursor: pointer;
    font-weight: bold;
}
.category_info .bookmark dt::after {
    font-family: "icomoon";
    content: "\e932";
    font-size: 22px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
}
.category_info .bookmark dt.active::after {
    content: "\e931";
}
.category_info .bookmark dd {
    display: none;
}
.category_info .bookmark dd.active {
    display: block;
}
.category_info .bookmark ol {
    counter-reset: number 0;
    line-height: 2;
}
.category_info .bookmark ol>li {
    font-weight: bold;
}
.category_info .bookmark ol>li::before {
    counter-increment: number 1;
    content: counter(number) ".";
    margin-right: 10px;
}
.category_info .bookmark ol ul {
    margin-left: 30px;
}
.category_info .bookmark ol ul li,
.category_info .bookmark ol ol li {
    font-weight: normal;
}
.category_info .bookmark ol ul li::before {
    content: "・";
    margin-right: 10px;
}
.category_info .bookmark ol ol {
    margin-left: 16px;
    counter-reset: child-number 0;
}
.category_info .bookmark ol ol li::before {
    counter-increment: child-number 1;
    content: counter(number) "-" counter(child-number) ".";
    margin-right: 8px;
}
.category_info h2:has(+ .bookmark) {
    font-size: 22px;
}
/* BOX BLK
------------------------------- */
.box_blk p {
    line-height: 1.6;
    margin-bottom: 8px;
}
.box_blk p:not([class]):last-of-type {
    margin-bottom: 0;
}
.box_blk .box_outer {
    margin: 10px -16px;
    padding: 20px 16px;
    background: #F2F2F2;
}
.box_blk .box_inr {
    padding: 20px;
    border-radius: 16px;
    background: #FFF;
}
.box_blk .blk_tit1 {
    margin: 40px auto 8px;
    font-size: 22px;
}
.box_blk .blk_tit2 {
    margin: 32px auto 8px;
    padding-left: 8px;
    font-size: 20px;
    border-left: 4px solid #333;
}
.box_blk .box_inr>.blk_tit2:first-child {
    margin-top: 0;
}
.box_blk .blk_tit3 {
    margin: 20px auto 8px;
    font-size: 18px;
}
.box_blk .first_tit {
    margin-top: 0;
}
.box_blk .box_inr .note {
    line-height: 1.4;
    font-size: 12px;
}
.box_blk .source {
    margin-bottom: 12px;
    text-align: right;
}
/* PARTS LINK */
.parts_arrow_blk {
    margin: 16px auto 0;
}
.parts_arrow {
    position: relative;
    display: block;
    padding: 8px;
    text-decoration: none;
}
.parts_arrow::after {
    content: "\e933";
    position: absolute;
    right: 0;
    top: 50%;
    color: #666;
    font-family: "icomoon";
    font-size: 22px;
    transform: translateY(-50%);
}

/* COLUMN LINK
------------------------------- */
.column_link_list li {
    border-bottom: 1px solid #D1D1D1;
    display: flex;
    align-items: center;
}
.column_link_list li a {
    padding: 8px 24px 8px 8px;
    width: 100%;
}

/* GUIDANCE
------------------------------- */
.guidance_blk a {
    border-top: 1px solid #D1D1D1;
    border-bottom: 1px solid #D1D1D1;
}

/* VOICE
------------------------------- */
.voice_blk {
    margin: 20px auto 0;
    font-size: 14px;
}
.voice_blk li {
    margin: 0 0 10px;
}
.voice_blk .user_block {
    position: relative;
    display: inline-block;
    height: 34px;
    line-height: 34px;
    vertical-align: middle;
    margin: 0 0 10px;
    padding: 0 0 0 60px;
}
.voice_blk .user_block::before {
    content: "";
    position: absolute;
    top: 0;
    left: 20px;
    display: inline-block;
    width: 29px;
    height: 34px;
    background: url(images/icon_user.webp) no-repeat 0 0;
    background-size: 29px 134px;
    vertical-align: middle;
}
.voice_blk .user_block.male::before {
    background-position: 0 0;
}
.voice_blk .user_block.female::before {
    background-position: 0 -50px;
}
.voice_blk .user_block.unknown::before {
    background-position: 0 -100px;
}
.voice_blk .view_block {
    position: relative;
    padding: 10px;
    border-radius: 5px;
    background: #E6EEF9;
}
.voice_blk .view_block:before {
    content: "";
    position: absolute;
    top: -12px;
    left: 30px;
    width: 0;
    height: 0;
    border: 5px solid transparent;
    border-bottom: 8px solid #E6EEF9;
}
.voice_blk .view_block .date_area,
.voice_blk .view_block .company_area {
    margin: 0 0 5px;
}
.voice_blk .view_block .date_t,
.voice_blk .view_block .company_t {
    display: inline-block;
    margin: 0 5px 0 0;
    padding: 2px 5px;
    border-radius: 2px;
    background: #F99200;
    color: #FFF;
    font-size: 0.858em;
    vertical-align: top;
}
.voice_blk .view_block .date {
    display: inline-block;
    vertical-align: top;
}
.voice_blk .view_block .company {
    display: inline-block;
    max-width: calc(100% - 110px);
    vertical-align: top;
}
.voice_blk .commentblock {
    padding: 5px 0 0;
    border-top: 1px dotted #888;
}
.voice_blk .shop_name {
    font-size: 12px;
}
.voice_blk .btn_voice a {
    position: relative;
    display: block;
    line-height: 1;
    margin: 0 auto 8px;
    padding: 10px 5px;
    border-radius: 3px;
    background: #8E8050;
    box-shadow: 0 3px 0 #756944;
    color: #FFF;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
}
.voice_blk .btn_voice a::after {
    content: "\e933";
    position: absolute;
    right: 0;
    top: 50%;
    color: #FFF;
    font-family: "icomoon";
    font-weight: normal;
    font-size: 22px;
    transform: translateY(-50%);
}
.voice_blk .attention_txt {
    margin: 0 15px;
    font-size: 12px;
}

/* FP紹介 */
.about_fp {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    border: 1px solid #d1d1d1;
    padding: 12px;
    margin: 20px auto;
}
.about_fp .fp_photo {
    width: 100px;
}
.about_fp .fp_name {
    width: calc(100% - 120px);
}
.about_fp .fp_name .box_ttl {
    font-weight: bold;
}
.about_fp .fp_name .name {
    font-size: 18px;
    font-weight: bold;
}
.about_fp .fp_name .name span {
    display: block;
    font-weight: normal;
    font-size: 14px;
}
.about_fp .profile {
    width: 100%;
    margin-bottom: 0;
    font-size: 12px;
}
.about_fp .fp_comment {
    width: 100%;
    background: #F2F2F2;
    border-radius: 8px;
    padding: 12px;
}

/* 保険選びをサポート - category_consultation */
.category_consul{
    padding:40px 0 32px;
}
.category_consul sup,
.category_consul *::before,
.category_consul *::after{
    line-height: 1;
}
.category_consul .sec_ttl{
    text-align: center;
    font-size: 24px;
    margin: 0 auto 16px;
}
.category_consul .sec_ttl + p{
    padding: 0 16px;
    margin: 0 auto 16px;
}
.category_consul .consul_selection_wrap {
    background: #D3F8E3;
    margin: 0 auto 20px;
}
.category_consul .consul_selection_wrap .inner {
    max-width: 490px;
    margin: auto;
    padding: min(5vw, 32px) 16px;
}
.category_consul .consul_selection_wrap .inner > p {
    font-weight: bold;
}
.category_consul .consul_selection_wrap ul.consultation_method {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    max-width: 680px;
    margin: min(3.2vw, 24px) auto 0;
}
.category_consul .consul_selection_wrap ul.consultation_method li {
    position: relative;
    width: calc((100% - 20px) / 3);
}
.category_consul .consul_selection_wrap ul.consultation_method li.staff::after {
    position: absolute;
    content: "おすすめ！";
    white-space: nowrap;
    background: #fd5925;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    border-radius: 4px;
    padding: 2px 5px;
    right: -5px;
    top: 44px;
}
.category_consul .consul_selection_wrap ul.consultation_method li a {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    text-align: center;
    text-decoration: none;
    padding: 10px 0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .3);
    overflow: hidden;
}
.category_consul .consul_selection_wrap ul.consultation_method li figure {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.category_consul .consul_selection_wrap ul.consultation_method li figure img {
    margin-top: auto;
}
.category_consul .consul_selection_wrap ul.consultation_method li figure img[src$=".svg"] {
    width: min(44%, 80px);
    height: auto;
    margin-left: auto;
    margin-right: auto;
}
.category_consul .consul_selection_wrap ul.consultation_method li:last-child figure img[src$=".svg"] {
    margin-bottom: auto;
}
.category_consul .consul_selection_wrap ul.consultation_method li figcaption {
    font-size: min(3.2vw, 16px);
    font-weight: bold;
    line-height: 1.1;
    padding-bottom: 6px;
}
.category_consul .consul_selection_wrap ul.consultation_method li:not(:first-child) figcaption {
    padding-top: 7px;
}
.category_consul .consul_selection_wrap ul.consultation_method li figcaption span {
    color: #0B9060;
}
.category_consul .consul_selection_wrap ul.consultation_method li figcaption em {
    font-size: 1.167em;
    font-weight: bold;
}
.category_consul .consult_record {
    max-width: 500px;
    margin: auto;
}
.category_consul .txt_box,
.category_consul ul.note{
    padding: 16px 16px 0;
}
.category_consul .txt_box .ttl{
    font-weight: bold;
}
.category_consul .note{
    font-size: 12px;
    color: #666;
}
.category_consul .note li{
    display: table;
    margin: 0 0 5px;
}
.category_consul .note li span{
    display: table-cell;
    padding-right: .5em;
}
.category_consul .txt_link {
    padding-right: 22px;
    margin: 20px 0 0 auto;
    width: fit-content;
    white-space: nowrap;
}
/* pcsp/new/css/category/life-insurance/cancer/style.css より
---------------------------------------------------------*/
.box_blk .only_item .parts_arrow_blk {
    margin-top: 0;
}
/* FIGURE */
.box_blk figure {
    margin: 12px auto 8px;
}
.box_blk figure img {
    margin: auto;
    padding: 12px;
    border: 1px solid #D1D1D1;
}
.box_blk .btn2 a {
    position: relative;
    display: block;
    line-height: 1.3;
    margin: 0 auto 8px;
    padding: 12px 5px 6px;
    border-radius: 3px;
    background: #8E8050;
    box-shadow: 0 3px 0 #756944;
    color: #FFF;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
}
.box_blk .btn2 a::after {
    font-weight: normal;
    color: #FFF;
}
/* TIT / TXT */
.box_blk .blk_tit4 {
    margin: 12px auto 4px;
    font-weight: bold;
    font-size: 16px;
}
/* TXT LINK */
.box_blk .only_item .txt_link {
    margin-bottom: 0;
}
.box_blk .column_link_list + .txt_link a {
    margin-top: 8px;
}
.box_blk .txt_link {
    text-align: right;
}
.box_blk .txt_link a {
    display: inline-block;
    padding: 0 24px 0 0;
}
.box_blk .att {
    color: #E31732;
    font-weight: bold;
}
.box_blk .marker1 {
    background: linear-gradient(transparent 35%, #FBFF8F 10%);
}
/* NOTE */
.box_blk .note_list {
    margin-top: 4px;
}
.box_blk .note_list li {
    padding-left: 0.7em;
    text-indent: -0.7em;
    font-size: 12px;
}
/* TABLE */
.box_blk .t_blk {
    margin: 16px auto;
}
.box_blk .t_blk table {
    width: 100%;
    margin: 0 auto 8px;
}
.box_blk .t_blk table,
.box_blk .t_blk table th,
.box_blk .t_blk table td {
    padding: 5px;
    border: 1px solid #D1D1D1;
    font-size: 14px;
    text-align: center;
}
.box_blk .t_blk table th {
    background-color: #F6F6F6;
    font-weight: bold;
}

/* CONTENTS
----------------------------------------------- */
.type_blk .staff_speech {
    position: relative;
    line-height: 1.625;
    margin: 0 0 20px 125px;
    padding: 15px;
    border: 1px solid #AAA;
    border-radius: 4px;
    background: #FAFAFA;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.16);
}
.type_blk .staff_speech::after {
    content: "";
    position: absolute;
    width: 130px;
    height: 126px;
    left: -125px;
    bottom: -10px;
    background: url(images/bg_cc_point.webp) no-repeat top / cover;
}
.type_blk .staff_speech .att {
    font-weight: bold;
}

/* FP TIPS */
.fp_tips_blk .risk_list {
    margin-bottom: 16px;
}
.fp_tips_blk .risk_list li {
    padding-left: 1.6em;
    text-indent: -1.6em;
}
.fp_tips_blk .supervise_tit {
    margin: 24px auto 4px;
    font-weight: bold;
}
.fp_tips_blk .about_fp {
    margin: auto;
}

/* FAQ */
.faq_blk .faq_item:not(:last-of-type) {
    padding-bottom: 16px;
    border-bottom: 1px solid #D1D1D1;
}
.faq_blk .faq_item {
    margin-top: 20px;
}
.faq_blk .faq_item a {
    text-decoration: none;
}
.faq_blk .faq_item a .more {
    text-decoration: underline;
}
/* PROFILE */
.about_fp .fp_photo {
    margin: auto;
}
.about_fp .fp_photo img {
    padding: 0;
    border: none;
}
/* DOCTOR */
.doctor_blk .doctor_txt {
    margin: auto;
    padding: 95px 0 0 0;
    background: url(images/bg_doctor.webp) no-repeat center 0 / 75px 87px;
}
.doctor_blk .doc_faq_item {
    margin: 50px auto 0;
    font-size: 14px;
}
.doctor_blk .doc_faq_name {
    margin: 0 0 12px;
    border-bottom: 1px solid #D1D1D1;
    text-align:center;
}
.doctor_blk .doc_faq_name span {
    position: relative;
    padding-left: 50px;
}
.doctor_blk .doc_faq_name span::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;
    background-repeat: no-repeat;
    background-size: contain;
}
.doctor_blk .doc_faq_name.character1 span::before {
    width: 30px;
    height: 54px;
    background-image: url(images/character1.webp);
}
.doctor_blk .doc_faq_name.character2 span::before {
    width: 45px;
    height: 53px;
    background-image: url(images/character2.webp);
    bottom: -6px;
}
.doctor_blk .doc_faq_name.character3 span::before {
    width: 33px;
    height: 54px;
    background-image: url(images/character3.webp);
}
.doctor_blk .doc_faq_item .doc_faq_txt {
    position: relative;
    line-height: 1.6;
    border: 1px solid #D1D1D1;
    border-radius: 5px;
    background: url(images/ico_doctor.webp) no-repeat 25px 15px / 30px 30px;
}
.doctor_blk .doc_faq_item .doc_faq_txt::before {
    display: block;
    content: "";
    position: absolute;
    left: 50%;
    top: -6px;
    width: 10px;
    height: 10px;
    margin: 0 0 0 -5px;
    border-width: 1px;
    border-style: solid;
    border-color: #D1D1D1 #D1D1D1 transparent transparent;
    background: #FFF;
    transform: rotate(-45deg);
}
.doctor_blk .doc_faq_item .doc_faq_txt a {
    display: block;
    padding: 16px;
    text-decoration: none;
}
.doctor_blk .doc_faq_item .doc_faq_txt a p:first-child {
    margin-top: 12px;
    text-indent: 50px;
}
.doctor_blk .doc_faq_answer {
    position: relative;
    width: 145px;
    margin: 12px 0 0 auto;
    padding: 2px 0;
    border-radius: 2px;
    background: #FDA041;
    color: #FFF;
    text-align: center;
}
.doctor_blk .doc_faq_answer::before {
    content: "";
    position: absolute;
    right: 6px;
    top: 50%;
    display: block;
    margin: -5px 0 0;
    border-width: 5px 0 5px 7px;
    border-style: solid;
    border-color: transparent transparent transparent #FFF;
}
/* pcsp/new/css/category/life-insurance/cancer/style.css より - ここまで
---------------------------------------------------------*/

@media screen and (min-width: 768px) {

    /* ページリンク */
    .page_main_links {
        justify-content: center;
        margin: 8px;
        border-radius: 8px;
        gap:10px;
    }
    .page_main_links li a span {
        padding-right: 22px;
        font-size: 15px;
    }
    .page_main_links li a span::after {
        font-size: 20px;
    }
    /* BOX BLK
    ------------------------------- */
    .box_blk .box_outer {
        margin: auto;
        padding: 40px 64px;
    }
    .box_blk a {
        transition: all 0.3s ease;
    }
    .box_blk a:hover {
        opacity: 0.8;
    }
    .box_blk .box_inr {
        padding: 48px;
    }
    .box_blk .blk_tit1 {
        margin-top: 48px;
    }
    .box_blk .blk_tit3 {
        margin-top: 24px;
    }
    .box_blk .source {
        margin-bottom: 24px;
    }
    /* COLUMN LINK
    ------------------------------- */
    .column_link_list {
        display: flex;
        flex-wrap: wrap;
        column-gap: 50px;
        margin-top: 24px;
    }
    .box_inr > .column_link_list:first-child {
        margin-top: 0;
    }
    .column_link_list li {
        width: calc((100% - 50px) / 2);
    }
    /* GUIDANCE
    ------------------------------- */
    .guidance_blk {
        margin-top: 28px;
    }
    .guidance_blk p {
        padding: 8px;
    }
    /* VOICE
    ------------------------------- */
    .voice_blk ul {
        display: flex;
        flex-wrap: wrap;
        column-gap: 50px;
    }
    .voice_blk ul li {
        width: calc((100% - 50px) / 2);
    }
    .voice_blk .btn_voice {
        max-width: 500px;
        margin: 16px auto;
    }
    .voice_blk .btn_voice a {
        padding: 14px 5px;
        font-size: 16px;
    }
    .about_fp {
        padding: 16px 32px;
        align-items: center;
    }
    .about_fp .fp_name .name {
        font-size: 20px;
    }
    .about_fp .fp_name .name span {
        display: inline;
    }
    .about_fp .fp_comment {
        padding: 20px;
    }

    /* 保険選びをサポート - category_consultation */
    .category_consul .sec_ttl + p {
        text-align: center;
    }
    .category_consul .consul_selection_wrap .inner > p {
        font-size: 20px;
        text-align: center;
    }
    .category_consul .consul_selection_wrap ul.consultation_method {
        gap: 20px;
    }
    .category_consul .consul_selection_wrap ul.consultation_method li {
        border-radius: 16px;
        width: calc((100% - 40px) / 3);
    }
    .category_consul .consul_selection_wrap ul.consultation_method li.staff::after {
        font-size: 16px;
        padding: 4px 8px;
        top: 55px;
    }
    /* pcsp/new/css/category/life-insurance/cancer/style.css より
    ---------------------------------------------------------*/
    /* COMMON
    ------------------------------- */
    .box_blk figure {
        margin: 24px auto 8px;
        padding: 20px 40px;
    }
    /* BTN */
    .box_blk .btn2 {
        max-width: 500px;
        margin: 20px auto 0;
    }
    /* CONTENTS
    ------------------------------- */
    /* PROFILE */
    .about_fp .fp_photo {
        padding: initial;
    }
    /* DOCTOR */
    .doctor_blk .doc_faq_blk {
        display: flex;
        flex-wrap: wrap;
        column-gap: 50px;
    }
    .doctor_blk .doc_faq_item {
        width: calc((100% - 50px) / 2);
        margin-top: 70px;
    }
    /* pcsp/new/css/category/life-insurance/cancer/style.css より - ここまで
    ---------------------------------------------------------*/
}
