@charset "utf-8";

/* ==================================================================

    treatment-ceramic.css

=================================================================== */

/* --------------------------------
■共通
-------------------------------- */
#mainArea p.note {
    font-size: 1.3rem;
    margin: 12px 0 0;
    text-indent: -1em;
    padding-left: 1em;
}
#mainArea > section > .text em {
    font-weight: bold;
    text-decoration: underline;
}

section p.text + p.text {
    margin-top: 26px;
}

#mainArea .buttonStyle.single {
    max-width: 440px;
    margin-inline:auto;
}

.contents .grid_wrap{
    grid-template-columns: 1.2fr 0.8fr;
}

.contents .title.lv5 {
    color: #36353D;
    margin-bottom: 19px;
    text-align: left;
}
    .contents .title.lv5.text-center {
        text-align: center;
    }

.contents .title.lv5.no_bg,
.contents .title.lv5.attention {
    padding-left: 0;
    background: none;
}
.contents .title.lv5.attention:before {
    content: url(../../images/treatment/implant/attention.svg);
    vertical-align: middle;
    margin-right: 10px;
}

.contents .title.lv6 {
    font-size: 2rem;
    font-weight: 600;
    margin-top: 27px;
    margin-bottom: 12px;
    text-align: left;
}

.contents .flex_box.ex_box {
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    border-radius: 0 0 4px 4px;
    gap: 29px
}
.contents .flex_box.ex_box .explain {
    width: auto;
}
.contents .flex_box.ex_box .image {
    flex-shrink: 0;
    width: fit-content;
    margin-bottom: 0;
}

.contents .worries_box {
    border-radius: 8px;
}
.contents .worries_box.border {
    padding: 34px 40px;
    border: 2px solid #DFDFDF;
    margin-top: 42px;
}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    .contents .grid_wrap.sp_col1{
        grid-template-columns: 1fr;
    }
    .contents .title.lv5.attention:before {
        zoom: 0.7;
    }
    .contents .title.lv6 {
        font-size: 1.8rem;
    }
    
    .contents .flex_box.ex_box {
        flex-wrap: wrap;
    }
    .contents .flex_box.ex_box .image img {
        width: 100%;
    }
    
    .contents .worries_box,
    .contents .worries_box.border {
        padding: 32px 4%;
    }
    
}

/* --------------------------------
   □ compareStyle
-------------------------------- */
table.compareStyle{
    width:100%;
}
    table.compareStyle th,
    table.compareStyle td{
        padding: 13px 13px;
        border:1px solid #F4F4F4;
        text-align: center;
        
        @media (max-width : 767px) {
            padding: 8px;
            font-size:1.5rem;
        }
        
    }
    table.compareStyle thead th{
        padding: 18px 13px;
        background: #C78BC9;
        color: #fff;
        font-size: 1.8rem;
        @media (max-width : 767px) {
            padding: 8px;
            font-size:1.5rem;
        }
    }
    table.compareStyle thead th.insurance{
        background: #C78BC9;
        width: 40%;
    }
    table.compareStyle thead th.selfpay{
        background: #B66ABA;
        width: 40%;
    }
    table.compareStyle tbody td.pink{
        background: #F0D6F2;
    }

    table.compareStyle td{
        background: #E5E5E5;
    }


/* --------------------------------
■cvArea
-------------------------------- */
.graydisc > li {
    position: relative;
    padding-left: 15px;
}
    .graydisc > li::before {
        content: "";
        position: absolute;
        top: .6em;
        left: 0;
        width: 6px;
        height: 6px;
        display: inline-block;
        background: #D2D2D2;
        border-radius: 50%;
    }

/* --------------------------------
■cvArea
-------------------------------- */
#mainArea .cvArea .buttonStyle {
    max-width: 440px;
    margin: 60px auto 0;
}

/* --------------------------------
■treatments
-------------------------------- */
#treatments .treatmentsList {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
}
#treatments .treatmentsList dl {
    border-right: 1px solid #E2E2E2;
    background-color: #F5F5F5;
}
#treatments
#treatments .treatmentsList dl:not(:last-child) {
    border-right: 1px solid #E2E2E2;
}
#treatments .treatmentsList dl dt {
    display: flex;
    height: 114px;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 2.0rem;
    color: #fff;
}
#treatments .treatmentsList dl:nth-child(1) dt {
    background-color: #757591;
}
#treatments .treatmentsList dl:nth-child(2) dt {
    background-color: #4E4E84;
}
#treatments .treatmentsList dl:nth-child(3) dt {
    background-color: #2B2B6D;
}
#treatments .treatmentsList dl:nth-child(4) dt {
    background-color: #222755;
}
#treatments .treatmentsList dl .description {
    padding: 14px;
    min-height: 480px;
}
    #treatments .treatmentsList dl .description img {
        width: 100%;
    }
    #treatments .treatmentsList dl .description .text {
        font-size: 1.5rem;
        line-height: 1.6;
    }
#treatments .treatmentsList dd h4 {
    padding: 10px;
    background-color: #E8E8E8;
    text-align: center;
    font-size: 1.7rem;
    color: #72727B;
    font-weight: 600;
}
#treatments .treatmentsList .col ul,
#treatments .treatmentsList .col .text {
    padding: 14px;
    text-align: center;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}
#treatments .treatmentsList .col1 ul,
#treatments .treatmentsList .col1 .text,
#treatments .treatmentsList .col3 ul,
#treatments .treatmentsList .col3 .text {
    font-size: 1.7rem;
    height: 88px;
}

#treatments .treatmentsList .col5 ul,
#treatments .treatmentsList .col5 .text {
    font-size: 1.7rem;
    height: 88px;
}

#treatments .treatmentsList  p.buttonStyle.icon_arrow {
    margin-top: 0;
    margin-bottom: 27px;
    margin-inline: auto;
}
/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {

}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

    #treatments .treatmentsList {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    #treatments .treatmentsList dl:not(:last-child) {
        border-right: none;
    }
    #treatments .treatmentsList dl dt {
        padding: 10px 0;
        height: auto;
        font-size: 1.8rem;
    }
    #treatments .treatmentsList dl .description {
        padding: 24px;
        min-height: auto;
    }
        #treatments .treatmentsList dl .description .image {
            text-align: center;
        }
        #treatments .treatmentsList dl .description img {
            width: 80%;
        }
    
    #treatments .treatmentsList .col ul,
    #treatments .treatmentsList .col .text {
        padding: 16px 24px;
    }
    
    #treatments .treatmentsList .col1 ul,
    #treatments .treatmentsList .col1 .text,
    #treatments .treatmentsList .col3 ul,
    #treatments .treatmentsList .col3 .text {
        height: auto;
    }
}


/* --------------------------------
■insurance
-------------------------------- */
#insurance {
    
    /* --------------------------------
    ■.method
    -------------------------------- */
    .method{
        --spaceWidth : 42px;
        margin-top: 28px;
        padding: 33px var(--spaceWidth) var(--spaceWidth) var(--spaceWidth);
        background: #F4F4F4;
        
        @media (max-width : 767px) {
            
            --spaceWidth : 16px;
            padding-top:16px;
            margin-top: 28px;
        }
        
        .leadBox{
            flex-wrap: nowrap;
            gap:0 30px;
            align-items: stretch;
            
            @media (max-width : 767px) {
                gap:16px;
            }
            
            > .explain{
                margin-top: 0;
            }
            
            > .text + *{
                margin: 0;
            }
            
            > .image{
                max-width: 300px;
                
                @media (max-width : 767px) {
                    max-width: revert;
                }
            }
        }
        
        .meritWrap {
            margin-top: 28px;
            align-items: stretch;
            gap :0 6%;
            
            @media (max-width : 767px) {
                margin-top: 16px;
            }
            
            .meritBox{
                width: 46%;
                padding: 8px 0px;
                
                @media (max-width : 767px) {
                    width: revert;
                }
                
                > dt{
                    font-size: 1.8rem;
                    
                    > span{
                        display: inline-block;
                        padding: 6px 12px;
                        border: 1px solid;
                        line-height: 1.1;
                    }
                    
                    @media (max-width : 767px) {
                        font-size: 1.5rem;
                    }
                }
                
                > dd{
                    margin-top: 14px;
                }
                
                dl.pattern{
                    margin-top: 9px;
                    
                    > dt{
                        margin-bottom: 6px;
                        
                        span{
                            display: inline-block;
                            padding: 4px 7px;
                            line-height: 1.2;
                            color: #fff;
                            background: #6B6B6B;
                        }
                    }
                    
                    && + dl.pattern{
                        margin-top: 9px;
                    }
                }
                
                &&.merit{
                    > dt > span{
                        color: #EA0075;
                    }
                }
                &&.demerit{
                    > dt > span{
                        color: #005CC1;
                    }
                }
            }
        
            > .meritBox + .meritBox{
                position: relative;
                
                &&::before{
                    position: absolute;
                    top: 0;
                    left: -28px;
                    content: "";
                    width: 1px;
                    height: 100%;
                    border-left: #AAAAAA 1px solid;
                    
                    @media (max-width : 767px) {
                        display:none;
                    }
                }
            }
        }
        
    }
}

/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {

}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

}


/* --------------------------------
■compare
-------------------------------- */
#compare .tableOuter {
    margin-top: 24px;
}

#compare .itemList {
    margin-top: 35px;
    padding: 0 15px;
}
    #compare .itemList > li + li{
        margin-top: 11px;
    }

    #compare dl.compareList.grid_box.col2{
        grid-template-columns: 0.4fr 1.6fr;
        gap:0;
    }

    #compare dl.compareList.grid_box dt{
        display: flex;
        background-color: #36353D;
        color: #ffffff;
        align-items: center;
        justify-content: center;
        padding: 0 4px;
    }

    #compare dl.compareList.grid_box dd{
        background-color: #F4F4F4;
        padding: 24px;
    }

#compare .recommend {
    --boxpadding : 29px;
    margin-top: 44px;
    padding: 0 var(--boxpadding) 36px var(--boxpadding);
}

#compare .recommend .title.lv6 {
    color: #fff;
    background: #293B80;
    border-radius: 8px 8px 0 0;
    padding: 21px;
    margin-left: calc(var(--boxpadding) * -1);
    margin-right: calc(var(--boxpadding) * -1);
    margin-bottom: 38px;
}

#compare .recommend .grid_box {
    margin: 24px 0 0 0;
}
    #compare .compare_treatment {
        background-color: #fff;
        border-radius: 8px;
        padding: 32px;
    }
    #compare .compare_treatment h3 {
        font-size: 2.6rem;
        text-align: center;
        margin-bottom: 28px;
        color: #293B80;
    }
    #compare .compare_treatment dl {
        margin-bottom: 12px;
        align-items: flex-start;
    }
    #compare .compare_treatment dl dt span {
        display: inline-block;
        padding: 4px 0;
        border-radius: 20px;
        font-size: 1.5rem;
        color: #fff;
        background-color: #72727B;
        width: 58px;
        text-align: center;
    }
    #compare .compare_treatment dl dd {
        font-size: 1.7rem;
        font-weight: bold;
        width: 312px;
    }

    #compare .compare_treatment.selfpay h3{
        color: #E044A1;
    }
/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {

}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

    #compare .itemList {
        margin-top: 25px;
        padding: 0 0px;
    }

    #compare .grid_box {
        gap: 20px;
    }
    #compare .compare_treatment h3 {
        font-size: 2.4rem;
        margin-bottom: 20px;
    }
    #compare .compare_treatment {
        padding: 28px;
    }
    #compare .compare_treatment dl {
        margin-bottom: 12px;
        justify-content: space-between;
    }
    #compare dl.compareList.grid_box dt{
        text-align: center;
    }
    #compare .compare_treatment dl dt span {
        width: 54px;
    }
    #compare .compare_treatment dl dd {
        font-size: 1.6rem;
        width: 220px;
    }
}

/* --------------------------------
■selfpay
-------------------------------- */
#selfpay .item{
    grid-template-columns: 1.15fr 0.85fr;
}
#selfpay .item:not(:last-child){
    margin-bottom: 48px;
}
#selfpay .item h3{
    font-size: 1.9rem;
    margin-bottom: 12px;
    line-height: 1.7;
}

#selfpay .item .example{
    padding: 16px;
}
#selfpay .item .example li{
    list-style: disc;
    margin-left: 1.8em;
}
#selfpay .item .example li:not(:last-child){
    margin-bottom: 8px;
}

#selfpay .item .example .image{
    text-align: center;
    margin-bottom: 0;
}

#selfpay .buttonStyle.single {
    margin-top: 12px;
}

/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {

}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {
    
    #selfpay .item{
        grid-template-columns: 1fr;
        gap: 8px;
    }
    
}


/* --------------------------------
■flow
-------------------------------- */
#flow{
    
ul.numberStyle {
    & > li {
        display: flex;
        gap: 14px;
        
        .no {
            position: static;
            flex-shrink: 0;
        }
        
        dl{
            margin-top: 8px;
        
        }
    }
}

}
    

/* --------------------------------
■maintenance
-------------------------------- */
#maintenance .maintenanceList{
    gap: 39px;
    
    > li{
        position: relative;
        background: #EDC8E6;
        border-radius: 14px;
        padding: 14px;
        
        &::before{
            content: "";
            background: url("../../images/treatment/dentures/care_arrow.svg") 0 0 no-repeat;
            background-size: 100% auto;
            width: 19px;
            height: 22px;
            position: absolute;
            top: 50%;
            right: -28px;
            transform: translateY(-50%);
            
            @media (max-width : 767px) {
                top: revert;
                right: 50%;
                bottom:-41px;
                transform: rotate(90deg) translateX(-50%);
            }
        }
        
        &:last-child::before{
            display: none;
        }
        
        >dl{
            dt{
                text-align: center;
                font-size: 1.8rem;
                margin-bottom: 12px;
                
                @media (max-width : 767px) {
                    font-size: 1.6rem;
                }
            }
            dd{
                p{
                    margin: 0;
                    line-height: 1.7;
                }
                p.image{
                    text-align: center;
                    margin-bottom: 14px;
                    border-radius: 14px;
                    overflow: hidden;
                    width: fit-content;
                    margin-inline:auto;
                }
            }
        }
    }
    
}

/* タブレット用
-------------------------------------------- */
@media (max-width: 1080px) and (min-width: 768px) {

}

/* SP用
-------------------------------------------- */
@media only screen and (max-width : 767px) {

}
/* リスク・副作用
------------------------------------------------------------------*/
.risk .box {
	overflow: hidden;
	max-height: 180px;
	height: auto;
	touch-action: auto !important;
	position: relative;
	background: #eee;
	padding-right:50px;
}
.risk{
	margin: 60px 0;
	padding: 40px 45px;
	background: #eee;
}
.risk .box .ttl{
	text-align: center;
	font-size:2rem;
}
.risk .box .txt{
	line-height: 2;
}
.risk .box .txt span{
	font-size:2rem;
}
/* パーフェクトスクロールバー */
.risk .ps__thumb-y, .box_invisalign .ps__thumb-y {
	background: #333333 !important;
	right: 0px !important;
	width: 4px !important;
}
.risk .ps--active-x > .ps__rail-x,
.risk .ps--active-y > .ps__rail-y{
	background: none !important;
	right: 0px !important;
	width: 4px !important;
	opacity: 1!important;
}
.risk .ps .ps__rail-x.ps--clicking, .risk .ps .ps__rail-x:focus, .risk .ps .ps__rail-x:hover, .risk .ps .ps__rail-y.ps--clicking, .risk .ps .ps__rail-y:focus, .risk .ps .ps__rail-y:hover, .box_invisalign .ps .ps__rail-x.ps--clicking{
	opacity: 1!important;
}
.sp_only {
        display: none;
    }
@media only screen and (max-width : 767px) {
    .sp_only {
        display: block;
    }
	.risk{
		padding: calc(40 / 750*100vw) calc(45 / 750*100vw);
		margin: 7vw 0;
	}
	.risk .box {
		padding-right:calc(50 / 750*100vw);
	}
	.risk .box .ttl{
		font-size: 1.8rem;
	}
    .risk .box .txt span{
		font-size: 1.8rem;
	}
}