@charset "utf-8";
/* ホワイトニング用ページ */
:root{
    --color-main: #31acd6;
    --color-pale : #e8f7f9;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #edf9fa;
    color: #4c4c4c;
    font-size: 15px;
    line-height: 1.714;
    position: relative;
}
.container{
    max-width: 1030px;
}
a{
    transition: 0.5s;
}
a:hover{
    opacity: 0.7;
}
@media (min-width: 768px){
    body {
        font-size: 16px;
    }
}

.font-mid {
    font-weight: 500;
}
section {
    padding: 3rem 0;
}
section.white-top-banner {
    padding: 4rem 0;
}
section.white-tion {
    padding: 8rem 0 4rem;
}
section.white-care, section.white-qa {
    padding: 4rem 0 8rem;
}
section.white-seramic {
    padding: 4rem 0;
}
section.white-flow {
    padding: 8rem 0 5rem;
}
section.white-caution {
    padding: 5rem 0;
}
section.white-contact {
    padding: 8rem 0 6rem;
}

.bg-white {
    background-color: #fff;
    border-radius: 10px;
    padding: 5rem 2rem;
}
.white-bg-blue {
    background-color: var(--color-pale);
    border-radius: 10px;
    padding: 2rem;
}
.white-underline {
    font-size: 2.36rem;
    padding-bottom: 15px;
    line-height: 1.3;
    text-align: center;
    margin-bottom: 3rem;
    position: relative;
    font-weight: 500;
}
.white-underline:after {
    content: '';
    width: 100%;
    max-width: 36rem;
    height: 1.5px;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%);
    background-color: var(--color-main);
}
.white-highlight {
    background: linear-gradient(to bottom,  rgba(255,247,153,0) 0%,rgba(255,247,153,0) 60%,rgba(255,247,153,1) 40%);
}
.white-highlight.d-inline-block {
    line-height: 1.6;
}
.white-f20 {
    font-size: 2.36rem;
}
.white-f18 {
    font-size: 2.12rem;
}
.white-f16 {
    font-size: 1.9rem;
}
.white-f14 {
    font-size: 14px;
}
.white-f12 {
    font-size: 13px;
}
.white-f12-16 {
    font-size: 15px;
}
.lh-1 {
    line-height: 1;
}
.white-sp-width {
    width: 100%;
    max-width: 36rem;
    margin: 0 auto;
}
.white-width-60 {
    width: 100%;
    max-width: 60rem;
    margin: 0 auto;
}
.white-width-80 {
    width: 100%;
    max-width: 80rem;
    margin: 0 auto;
}
.white-box-title {
    color: #fff;
    padding: 10px;
    width: 100%;
    font-size: 2.12rem;
    text-align: center;
    margin: 0 auto 2rem;
    font-weight: 500;
    line-height: 1.333;
}
.white-box-title.round {
    border-radius: 25rem;
    max-width: 39.5rem;
    font-size: 2.6rem;
}
.white-box-btn {
    display: block;
    font-size: 12px;
    border: 1px solid #b5b5b5;
    padding: 10px;
    box-shadow: 2px 2px 2px rgba(0, 127, 170, 0.2);
    width: 100%;
    max-width: 34.8rem;
    margin: 0 auto;
}
.white-btn {
    display: block;
    background-color: #fff;
    width: 100%;
    max-width: 400px;
    padding: 10px 30px 10px 10px;
    border-radius: 25rem;
    position: relative;
    line-height: 1.333;
    text-align: center;
    margin: 0 auto;
}
.white-seramic .white-btn {
    max-width: 35rem;
    padding: 15px 20px 15px 15px;
}
.white-btn:after {
    content: '';
    width: 8px;
    height: 8px;
    transform: rotate(-45deg);
    position: absolute;
    top: calc(50% - 4px);
    right: 20px;
}
.white-office .white-btn:after, .white-seramic .white-btn:after  {
    border-right: 2px solid var(--color-main);
    border-bottom: 2px solid var(--color-main);
}
.white-home .white-btn:after {
    border-right: 2px solid #42b9d1;
    border-bottom: 2px solid #42b9d1;
}
.white-text {
    text-align: center;
    font-weight: 500;
    margin-bottom: 2rem;
    font-size: 1.9rem;
}

.white-header {
    width: 100%;
    background-color: #fff;
    text-align: center;
}
.white-title-top {
    color: var(--color-main);
    background-color: rgba(255, 255, 255, 0.75);
    font-size: 3.06rem;
    text-align: center;
    padding: 2rem 0;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    line-height: 1.346;
}

.white-top-banner img {
    width: 100%;
}
.white-top {
    background-color: #fff;
}
.white-tion {
    font-weight: 500;
    font-size: 15px;
}
.white-tion-nav ul {
    display: flex;
    width: 100%;
    margin-top: 2rem;
}
.white-tion-nav li {
    width: 33.3333%;
    
    text-align: center;
    color: #fff;
    line-height: 1;
    align-items: center;
}
.white-tion-nav li + li {
    border-left: 1px solid #fff;
}
.white-tion-nav li a {
    padding: 10px 5px 25px;
    position: relative;
    display: block;
    height: 100%;
    font-size: 13px;
}
.white-tion-nav li.nav-office a, .white-tion-nav li.nav-home a {
    padding-top: 20px;
}
.white-tion-nav li a:after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    transform: rotate(45deg);
    position: absolute;
    bottom: 12px;
    left: calc(50% - 5px);
    display: block;
}
.white-tion .bg-white {
    overflow: auto;
}
.white-line {
    background: url("../images/whitening/dashed.png") center/auto repeat-y;
    padding: 0 10px;
}
.white-office, .white-home {
    width: 100%;
}
.white-office .white-box-title, .white-office .white-dl dt, .white-tion-nav li.nav-office a, .white-office .white-table-th {
    background-color: var(--color-main);
}
.white-office-color, .white-office .white-flow td.flow-num, .white-allflow.white-flow td.flow-num, .white-office .white-btn, .white-blue {
    color: var(--color-main);
}
.white-home .white-box-title, .white-home .white-dl dt, .white-tion-nav li.nav-home a, .white-home .white-table-th {
    background-color: #42b9d1;
}

.white-home-color, .white-home .white-flow td.flow-num, .white-home .white-btn, .white-dual-color {
    color: #42b9d1;
}
.white-dual .white-box-title, .white-dual .white-dl dt, .white-tion-nav li.nav-dual a, .white-dual .white-table-th {
    background: linear-gradient(var(--color-main), #40cbdb);
}
.white-blue {
    font-weight: bold;
}
.white-about-table th, .white-about-table td {
    padding: 5px;
}
.white-about-table th {
    width: 13rem;
}
.white-about-table th .white-table-th {
    display: block;
    padding: 7px;
    color: #fff;
    text-align: center;
    border-radius: 5px;
    font-weight: normal;
}
.white-about-table td {
    vertical-align: middle;
}
.white-flow-title {
    display: block;
    color: var(--color-main);
    font-size: 2.12rem;
    line-height: 1;
    margin-bottom: 1rem;
}
.white-flow-subtitle {
    color: var(--color-main);
    font-size: 1.9rem;
    line-height: 1.5;
    margin-bottom: 1rem;
    font-weight: 500;
    text-align: left;
}
.white-flow td {
    vertical-align: top;
    border-bottom: 1px dashed #40cbdb;
    padding: 3rem 2rem 3rem 0;
}
.white-flow tr:first-child td {
    padding-top: 0;
}
.white-flow tr.no-border td, .white-flow tr:last-child td {
    border-bottom: none;
}
.white-flow td .white-flow-img {
    margin-top: 10px;
    max-width: 30rem;
}
.white-flow td .white-flow-img img {
    border-radius: 10px;
}
.white-flow td.flow-num {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 3.35rem;
    padding: 3rem 2rem;
    line-height: 1.3;
}
.white-allflow td.flow-num{
	line-height: 1;
}
.white-flow .white-allflow tr:first-child td {
    padding-top: 0;
    padding-bottom: 0;
}
.white-flow td[colspan] {
    padding-right: 0;
}
.white-proscons li, .white-recommend li {
    padding-left: 18px;
    position: relative;
    
}
.white-proscons li + li, .white-recommend li + li {
    margin-top: 1rem;
}
.white-proscons li:before, .white-recommend li:before {
    content: '●';
    width: 10px;
    height: 10px;
    color: var(--color-main);
    position: absolute;
    top: 0;
    left: 0;
}
.white-home .white-proscons li:before, .white-home .white-recommend li:before {
    color: #42b9d1;
}
.white-compare {
    line-height: 2.188;
    position: relative;
}
.white-compare:after {
    content: url("../images/whitening/dashed.png");
    width: 1px;
    height: 7rem;
    position: absolute;
    bottom: -3.5rem;
    left: 50%;
}
.white-color .white-icon img {
    width: 14.2rem;
    
}
.white-banner img {
    width: 100%;
}
.white-care .white-icon img {
    width: 6.2rem;
}
.white-care-title {
    color: #fff;
    background-color: #f57c9d;
    width: 100%;
    padding: 0 10px;
    font-size: 18px;
    text-align: center;
    border-radius: 25px;
    margin-bottom: 2rem;
    font-weight: 500;
}
.white-care-item figure {
    width: 100%;
    max-width: 40rem;
    margin: 0 auto;
}
.mb-6 {
    margin-bottom: 6rem;
}
.white-color-img img {
    border-radius: 10px;
    margin: 0 auto;
}
.white-img-middle {
    width: 100%;
}
.white-allflow {
    background-color: #fff;
}
.white-normal-table th {
    font-weight: normal;
    width: 6rem;
    white-space: nowrap;
}
.white-qa-item + .white-qa-item {
    margin-top: 15px;
}
.white-question {
    color: var(--color-main);
    background-color: #fff;
    padding: 12px 20px 12px 60px;
    border-radius: 10px;
    position: relative;
    cursor: pointer;
}
.white-answer {
    display: none;
    position: relative;
    padding: 12px 20px 12px 60px;
    font-size: 13px;
}
.white-question:before, .white-answer:before {
    content: 'Q.';
    color: var(--color-main);
    position: absolute;
    top: 5px;
    left: 20px;
    font-size: 24px;
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
}
.white-answer:before {
    content: 'A.';
}
.white-caution {
    color: #fff;
    background-color: #42b9d1;
}
.white-caution .white-underline:after {
    background-color: #fff;
}
.white-contact {
    background-color: #fff;
}
.white-contact .container {
    max-width: 500px;
}
.iframe-wrap {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 50.9%;
    text-align: left;
}
.iframe-wrap iframe {
    position: absolute;
    width: 100%;
    height: 100%;
}
.white-tel-btn {
    display: block;
    padding: 10px 2rem;
    color: #fff;
    background-color: #42b9d1;
    border-radius: 7px;
    box-shadow: 2px 2px 2px rgba(0, 127, 170, 0.2);
    width: 100%;
    max-width: 17rem;
    font-size: 14px;
    margin: 0 auto;
    font-weight: 500;
}
.white-tel-btn i {
    margin-right: 5px;
}
.white-border {
    border-bottom: 1px dashed #40cbdb;
}
.white-footer {
    background-color: #fbfbf9;
    padding: 3rem 0;
    margin-bottom: -5rem;
}
.white-footer .white-kai-logo {
    width: 100%;
    max-width: 10.6rem;
    margin: 0 auto;
}
.white-contact-btn {
    opacity: 0;
}
.white-contact-btn.active {
    opacity: 1;
    display: block;
    width: 100%;
    max-width: 25rem;
    padding: 15px;
    text-align: center;
    color: #fff;
    background-color: var(--color-main);
    box-shadow: 2px 2px 2px rgba(0, 127, 170, 0.2);
    border-radius: 10px;
    position: fixed;
    bottom: 4rem;
    right: calc(50% - 12.5rem);
    z-index: 5;
    transition: 0.5s;
}

.footer-page-top{
    position: fixed;
    right: 15px;
    bottom: 3rem;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    background: var(--color-main);
    font-size: 3.6rem;
    line-height: 1;
    color: #fff;
}

@media (min-width: 576px){
    .white-sp-width {
        max-width: 60rem;
    }
    section.white-top-banner {
        padding: 6rem 0;
    }
    .white-flow td .white-flow-img {
        margin-top: 0;
        width: 40%;
    }
    .white-flow td .white-flow-text {
        width: 60%;
    }
    .white-care-title {
        padding: 3px 10px;
    }
    .white-normal-table th {
        width: 6.5rem;
    }
    .white-question:before, .white-answer:before {
        top: 8px;
    }
}
@media (min-width: 768px){
    section {
        padding: 4rem 0;
    }
    section.white-tion, section.white-seramic {
    padding: 12rem 0 6rem;
    }
    section.white-care, section.white-qa {
        padding: 6rem 0 12rem;
    }
    section.white-flow {
        padding: 12rem 0 8rem;
    }
    section.white-caution {
        padding: 10rem 0;
    }
    section.white-contact {
        padding: 12rem 0;
    }
    section.white-case{
        padding-top: 12rem;
    }
    .white-f12-16 {
        font-size: 16px;
    }
    .white-sp-width {
        max-width: 80rem;
    }
    .white-bg-blue {
        padding: 3rem;
    }
    .white-features .white-feature-item {
        position: absolute;
        width: 18rem;
    }
    .white-features .white-feature-item.item-2 {
        left: 25%;
    }
    .white-img-middle {
        max-width: 70rem;
        margin: 5rem auto 0;
    }
    .white-office, .white-home {
        max-width: 45rem;
        margin: 0 auto;
    }
    .white-tion, .white-answer {
        font-size: 14px;
    }
    .white-dual .white-box-title.round {
        max-width: 100%;
    }
    .white-flow td .white-flow-img {
        margin-top: 10px;
        width: 100%;
        max-width: 30rem;
    }
    .white-flow td .white-flow-text {
        width: 100%;
    }
    .white-normal-table th {
        width: 6rem;
    }
    .white-care-item {
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    .white-care-text {
        height: 100%;
    }    
    .white-contact-btn.active{
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        max-width: 6rem;
        height: 20rem;
        box-shadow: -2px 2px 2px rgba(0, 127, 170, 0.2);
        border-radius: 10px 0 0 10px;
        bottom: 17rem;
        right: 0;
        
    }
}
@media (min-width: 992px){
    .white-bg-blue {
        padding: 4rem;
    }
    .white-contact .container {
        max-width: 1030px;
    }
    .white-contact-item {
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    .white-address {
        height: 100%;
    }
        
    .white-border {
        border: none;
    }
}
@media (max-width: 400px){
	.white-about-table{
		width: 100%;
	}
	.white-about-table th, .white-about-table td{
		display: block;
		width: 100%;
		text-align: center;
	}
	.white-normal-table th{
		white-space: nowrap;
	}
}


/* 症例紹介 */
.case-list{
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
}
.case-item{
    display: flex;
    flex-direction: column;
    width: 100%;
    border: 1px solid var(--color-main);
    padding: 4rem 3rem 5rem;
}
.case-title{
    border-bottom: 1px solid var(--color-main);
    padding-bottom: 2rem;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.3;
}
.case-bf-af{
    display: flex;
    gap: 30px;
}
.case-bf-af figure{
    width: calc((100% - 30px) / 2);
}
.case-before{
    position: relative;
}
.case-before::after{
    content: "";
    position: absolute;
    left: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%);
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: 15px solid var(--color-main);
    border-right: 0;
}
.case-dtl-title{
    background-color: var(--color-pale);
    padding: 1rem 2rem;
    color: var(--color-main);
    font-size: 18px;
    line-height: 1.5;
}
.case-table th,
.case-table td{
    border: 1px solid #ddd;
    padding: 10px 2rem;
    text-align: left;
    font-size: 14px;
}
.case-table th{
    background-color: var(--color-pale);
    min-width: 6em;
}
.case-button{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
    margin-top: auto;
    border-radius: 10px;
    background-color: var(--color-main);
    padding: 15px;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
}
.case-button i{
    padding-right: 1.5rem;
    font-size: 2.4rem;
    text-align: right;
    vertical-align: middle;
}

@media (min-width: 576px){
    .case-bf-af{
        gap: 50px;
    }
    .case-bf-af figure{
        width: calc((100% - 50px) / 2);
    }
    .case-before::after{
        left: calc(100% + 15px);
        border-top: 30px solid transparent;
        border-bottom: 30px solid transparent;
        border-left: 20x solid var(--color-main);
    }   
}
@media (min-width: 768px){
    .case-item{
        width: calc((100% - 3rem) / 2);
    }
    .case-bf-af{
        gap: 30px;
    }
    .case-bf-af figure{
        width: calc((100% - 30px) / 2);
    }
    .case-before::after{
        left: calc(100% + 8px);
        border-top: 20px solid transparent;
        border-bottom: 20px solid transparent;
        border-left: 15px solid var(--color-main);
    }   
}
@media (min-width: 992px){
    .case-bf-af{
        gap: 50px;
    }
    .case-bf-af figure{
        width: calc((100% - 50px) / 2);
    }
    .case-before::after{
        left: calc(100% + 15px);
        border-top: 30px solid transparent;
        border-bottom: 30px solid transparent;
        border-left: 20px solid var(--color-main);
    }   
}

@media (max-width: 768px){
    .case-table th,
    .case-table td{
        display: block;
    }
    .case-table th{
        white-space: normal;
    }
}