/* strong{
	color:#b4a045;
}
main{
    margin-bottom: 100px;	
}
.link_text{
    color: #6387c1;
    text-decoration:underline !important;
}
.mt80_40{
	margin-top: clamp(40px, 4vw, 80px)!important;
}
.mt50_30{
	margin-top: clamp(30px, 4vw, 50px)!important;
}
.mt30_15{
    margin-top: clamp(15px, 4vw, 30px)!important;
}
.mt15_8{
    margin-top: clamp(8px, 4vw, 15px)!important;
}

.mb50_30{
	margin-bottom: clamp(30px, 4vw, 50px) !important;
}
.mb30_15{
	margin-bottom: clamp(15px, 4vw, 30px)!important;
}
.mb15_8{
	margin-bottom: clamp(8px, 4vw, 15px)!important;
}


.strong{
font-weight:600;
    color: #509470;
} */


.tac {
    text-align: center;
}

.pdb10 {
    padding-bottom: 10px;
    !important
}

.pdb20 {
    padding-bottom: 20px;
    !important
}

.pdb30 {
    padding-bottom: 30px;
    !important
}

.pdb40 {
    padding-bottom: 40px;
    !important
}

.pdb50 {
    padding-bottom: 50px;
    !important
}


.mgt10 {
    margin-top: 10px;
    !important
}

.mgt20 {
    margin-top: 20px;
    !important
}

.mgt30 {
    margin-top: 30px;
    !important
}

.mgt40 {
    margin-top: 40px;
    !important
}

.mgt50 {
    margin-top: 50px;
    !important
}

.mgt60 {
    margin-top: 60px;
    !important
}


.two-column {
    display: flex;
    justify-content: space-around;
}

.two-column img {
    width: 100%;
    max-width: 300px;
    padding-bottom: 10px;
}

.colum20 {
    width: 15%;
}

.colum30 {
    width: 25%;
}

.colum40 {
    width: 35%;
}

.colum50 {
    width: 45%;
}

.colum60 {
    width: 55%;
}

.colum70 {
    width: 65%;
}

.colum80 {
    width: 75%;
}

@media screen and (max-width: 750px) {
    .two-column {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .two-column .column_img {
        text-align: center;
    }

    .colum20 {
        width: 100%;
    }

    .colum30 {
        width: 100%;
    }

    .colum40 {
        width: 100%;
    }

    .colum50 {
        width: 100%;
    }

    .colum60 {
        width: 100%;
    }

    .colum70 {
        width: 100%;
    }

    .colum80 {
        width: 100%;
    }
}

img {
    font-size: 0;
    line-height: 0;
    vertical-align: bottom;
    height: auto;
    max-width: 100%;
    object-fit: cover;
}

.sub_top {
    background-image: url("../img/sub-img/sub_top.jpg");
    background-position: center;
    height: 400px;
    background-size: cover;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 100px;
}

.sub_top h2 {
    display: flex;
    text-align: center;
    font-size: 2rem;
    flex-direction: column-reverse;
    line-height: 1.4;
    font-weight: bold;
    color: #fff;
}

.sub_top h2 span {
    font-weight: 400;
    color: #5ecad6;
    font-size: 120%;
    font-family: "oskar", sans-serif;
}

.inner {
    max-width: 1100px;
    margin: 0 auto;
    width: 96%;
}

@media screen and (max-width: 750px) {
    .sub_top {
        height: 300px;
    }

    .sub_top h2 {
        font-size: 1.6rem;
        line-height: 1.2;
    }

    .sub_top h2 span {
        font-size: 90%;
    }

}

/* .text_box{
    margin: 0px 50px 50px;
} 

.text_box li{
    margin-top: 0.2vw;
	    margin-left: 1em;
	    position: relative;
}
.nom_list li{
	list-style: decimal !important;	
}

.border_box{
	    border: solid 2px #ddd;
    padding: 20px;
}
.linktext{
     color: #81c7bc;
    font-weight: 500;
}
.text_box_p{
    padding-top: 0.5em;
}
.text_box_p span{
font-weight: 600;	
}
.center{
	text-align: center;
}
.linkbtn{
    width: fit-content;
    padding: 8px 30px;
    border-radius: 30px;
    margin: 10px 0 0 auto;
    display: flex;
    align-items: center;
   background-color: #b8935e;
    font-weight: 500;
    color: #fff;
}
.linkbtn img{
    width: 8px;
    margin-left: 20px;	
}
.linkbtn a{
		display: flex;
	align-items: center;
	
}
.link_p{
    color: #007eff;	
}
.map iframe{
	width: 100%;
}
.map{
	margin-bottom: 50px;
}

.kinds-box h4.title:not(:first-of-type) {
	margin-top: 35px;
} */

/* sub疾患ページ */

h2.title {
    text-align: center;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1;
    position: relative;
    padding: 25px 0;
    margin: 100px auto 60px;
    color: #666;
    background-color: #f8f7f2;
    border-bottom: solid 3px #84cea2;
    width: 100%;
}

h2.title span.first-letter {
    color: #f2b39b;
    font-weight: bold;
}

h3.title {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    position: relative;
}

h3.title::after {
    display: block;
    content: '';
    position: absolute;
    width: 50px;
    height: 4px;
    background: linear-gradient(90deg, rgb(192, 234, 209), rgb(231, 186, 169));
    border-radius: 2.5px;
    top: 0;
    right: 0;
    bottom: -15px;
    left: -2px;
    margin: auto auto 0;
}

h4.title {
    font-size: 1.2rem;
    display: block;
    padding: 10px 0 10px 15px;
    color: #FFF;
    background-color: #84cea2;
    border-radius: 8px;
    margin-bottom: 20px;
}


.sub_main {
    color: #666;
    font-size: 17px;
}

.sub_main span.bold {
    color: #f2b39b;
    font-weight: 600;
}

.sub_main p span.pink {
    color: #f2b39b;
}

.sub_menu_btn {
    position: relative;
    height: 100%;
}

.sub_menu_btn::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 27px;
    width: 0;
    height: 0;
    margin: auto;
    border-top: 6px solid transparent;
    border-right: 0 solid transparent;
    border-left: 9px solid #f8c7b3;
    border-bottom: 6px solid transparent;
    box-sizing: border-box;
}

.sub_menu_wrap a.sub_menu {
    display: block;
    background-color: #fff;
    border-radius: 10px;
    padding: 20px 40px;
    text-align: center;
    align-items: center;
    font-size: 17px;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    height: 100%;
    transition: .3s;
}

.sub_menu_wrap a.sub_menu:hover {
    opacity: 0.5;
}

.sub_main a.sub_out_btn {
    display: inline-block;
    background-color: #f8f7f2;
    border-radius: 8px;
    margin-top: 30px;
    padding: 10px 40px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    transition: .3s;
}

.sub_main a.sub_out_btn:hover {
    color: #f8c7b3;
}

.sub_main a.sub_out_btn span {
    padding-left: 10px;
}

.sub_menu_box {
    background-color: #f8f7f2;
    border-radius: 10px;
}

.sub_menu_wrap {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin: 50px auto;
    padding: 50px 20px;
}

.sub_menu_box02 .sub_menu_wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

@media screen and (max-width: 1000px) {

    .sub_menu_wrap,
    .sub_menu_box02 .sub_menu_wrap {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (max-width: 750px) {
    .sub_menu_wrap {
        grid-template-columns: repeat(2, 1fr);
    }

    .sub_menu_box02 .sub_menu_wrap {
        grid-template-columns: repeat(1, 1fr);
    }
}

@media screen and (max-width: 500px) {
    .sub_menu_wrap {
        grid-template-columns: repeat(1, 1fr);
    }

    .sub_menu_wrap a.sub_menu {
        padding: 10px 20px;
    }

    .sub_menu_wrap {
        gap: 10px;
        padding: 30px 20px;
    }
}

.sub_content_box {
    display: flex;
    justify-content: space-around;
    align-items: center;
    max-width: 1200px;
    margin: 100px auto 90px;
}

.sub_content_box.not-flex {
    display: block;
}

.sub_img {
    width: 48%;
    max-width: 450px;
}

.sub_img img {
    border-radius: 10px 10px 10px 10px;
    box-shadow: -12px 12px 2px 1px rgba(231, 186, 169, 1);
}

.sub_textbox {
    width: 48%;
    max-width: 550px;
}

.sub_heading {
    margin-bottom: 20px;
}

.sub_textbox .sub_heading span {
    font-size: 115%;
    font-weight: 500;
    color: #f2b39b;
}

@media screen and (max-width: 1100px) {
    .sub_content_box {
        width: 90%;
    }
}

@media screen and (max-width: 750px) {
    .sub_textbox {
        width: 100%;
        margin-top: 30px;
        max-width: initial;
    }

    .sub_img {
        width: 100%;
        max-width: 500px;
    }

    .sub_textbox span {
        font-size: 110%;
    }

    .sub_content_box {
        flex-direction: column;
        align-items: center;
    }

    .sub_main .kinds-box .btn_box {
        text-align: center;
    }

    .sub_main {
        font-size: 16px;
    }
}

@media screen and (max-width: 600px) {
    .sub_textbox span {
        font-size: 107%;
        margin-bottom: 10px;
    }

    .sub_content_box {
        margin: 40px auto 40px;
        width: 100%;
    }

    .sub_textbox {
        margin: 30px auto;
        width: 98%;
    }
}

dl.sub_dl dt {
    font-size: 1.15rem;
    border-bottom: solid 2px #ddd0ab;
    padding: 0 0 5px 10px;
}

dl.sub_dl dt:not(:first-of-type) {
    padding-top: 30px;
}

dl.sub_dl dd {
    padding-top: 10px;
}

.sub_main .kinds-box {
    margin-bottom: 100px;
}

.sub_main ul.sub_list,
.sub_main ul.sub_list02,
.sub_main ol.sub_list_num {
    margin: 20px 0;
}

.sub_main ul.sub_list li {
    position: relative;
    list-style-type: none !important;
    vertical-align: middle;
    color: #666666;
    text-indent: -1em;
    padding-left: 2em;
}

.sub_main ul.sub_list li:before {
    display: inline-block;
    vertical-align: middle;
    content: '';
    width: .5em;
    height: .5em;
    background: rgb(231 186 169);
    border-radius: 50%;
    margin: 0 8px 5px 0;
}

.sub_main ul.sub_list p {
    margin-left: 2em;
}

.sub_main ol.sub_list_num {
    list-style-type: decimal;
    margin-left: 2em;
    vertical-align: middle;
    color: #666666;
}

ol.sub_list_num li {
    padding-left: 10px;
}

ol.sub_list_num li::marker {
    color: #f2b39b;
}

.sub_main ul.sub_list02 li {
    position: relative;
    padding: 0 0 0 35px;
    margin-bottom: 10px;
    color: #4d392f;
    line-height: 1.8;
}

.sub_main ul.sub_list02 li::before {
    content: "✓";
    position: absolute;
    left: 10px;
    color: #f2b39b;
    font-size: 18px;
    font-weight: bold;
}



@media (max-width: 750px) {
    .sub_heading {
        margin-bottom: 10px;
    }

    .sub_main ol.sub_list_num {
        margin-left: 1.5em;
    }

    .sub_main ol.sub_list_num li {
        padding-left: 0px;
    }
}

/* 美容施術メニューページ */
.sub_cosmetic h2.title {
    border-bottom: solid 3px #e3b4ed;
}

.sub_cosmetic h4.title {
    background-color: #e3b4ed;
}

.sub_cosmetic .sub_img img {
    border-radius: 10px 10px 10px 10px;
    box-shadow: -12px 12px 2px 1px rgba(224, 222, 166, 1);
}

.sub_main ol.flow li {
    position: relative;
    padding-bottom: 30px;
}

.sub_main ol.flow li::after {
    content: "▼";
    position: absolute;
    color: #e3b4ed;
    bottom: -1px;
    left: 10%;
}

.sub_main ol.flow li:last-child::after {
    content: none;
}

@media screen and (max-width: 600px) {
    .sub_main ol.flow li::after {
        left: 20%;
    }
}

.sub_main .sub_flow_dl dt span {
    font-size: 1.3rem;
    padding-right: 15px;
    color: #ddd0ab;
}

.sub_main .sub_flow_dl dd {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    align-items: center;
}


/* 簡単な料金表 */
.price-table {
    width: 100%;
    border-collapse: collapse;
    max-width: 900px;
    margin: 20px auto;
    border: 2px solid #d2c5a0;
}

.price-table td {
    border-bottom: 2px solid #d2c5a0;
}

.price-table tr:last-child td {
    border-bottom: none;
}

.left-cell {
    background-color: #ddd0ab;
    border: 2px solid #d2c5a0;
    color: #fff;
    width: 40%;
    min-width: 180px;
    padding: 10px;
    text-align: center;
    vertical-align: middle;
}

.right-cell {
    background-color: #FFF;
    padding: 10px 0 10px 20px;
    vertical-align: middle;
}

.time-annotation-box {
    margin-bottom: 8px;
}

h4.time-annotation {
    border-bottom: solid #ddd0ab 2px;
}

.annotation-text {
    font-size: 0.9em;
}

/* 矢印 レスポンシブ*/
#doctors-cosme02 .column_img01 {
    position: relative;
}

#doctors-cosme02 .column_img01:after {
    content: "";
    position: absolute;
    width: 50px;
    height: 50px;
    background-image: url(https://taiza.kiddotest.xyz/wp-content/themes/taiza/img/arrow.png);
    background-size: contain;
    background-repeat: no-repeat;
    right: -60%;
    top: 50%;
    transform: translateY(-50%);
}

@media screen and (max-width: 750px) {
    #doctors-cosme02 .column_img01 {
        padding-bottom: 80px;
    }

    #doctors-cosme02 .column_img01:after {
        left: 50%;
        top: 255px;
        transform: translateX(-50%) rotate(90deg);
    }
}

/* お悩み一覧ページ */
#worries-page dl.sub_dl dt {
    padding: 0px 0 5px 10px;
}

#worries-page ul.sub_list li a {
    border-bottom: solid 2px #f2b39b;
    transition: .3s;
}

#worries-page ul.sub_list li a:hover {
    opacity: 0.5;
}


/* 料金表ページ */
.sub_cosmetic h3.price-h3 {
    padding: .5em .7em;
    margin: 40px 0 10px 0;
    border-left: 5px solid #e3b4ed;
    color: #666666;
}

/* 脱毛料金表のスクロール */
@media screen and (max-width: 750px) {
    .scroll-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .scroll-table table {
        min-width: 800px;
        width: 100%;
        border-collapse: collapse;
    }
}


/* クリニック紹介 */
.clinic-info .table-area {
    max-width: initial;
    width: 100%;
}

.sub_content_box.message {
    margin: 60px auto 90px;
    background-color: #f5f5f5;
    padding: 25px;
}

a.doctor-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 60px;
    line-height: 1.1;
    text-align: center;
    margin: 70px auto 0;
    font-size: 20px;
    box-shadow: 0 4px 10px #bfbfbf;
    padding: 12px 0;
    background-color: #f2b39b;
    color: #fff;
    border: none;
    border-radius: 10px;
    transition: transform 0.2s ease-out;
}

a.doctor-button:hover {
    transform: translateX(2px) translateY(2px);
    box-shadow: 0 1px 10px #bfbfbf;
}


.sub_content_box.grid-box {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.sub_content_box.grid-box figure {
    text-align: center;
}

.sub_content_box.grid-box figure img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
}

.sub_content_box.grid-box figcaption {
    margin-top: 10px;
    font-size: 14px;
    color: #555;
}

.kinds-box.privacy .sub_content_box {
    background-color: #f5f5f5;
    margin: 50px auto 90px;
    padding: 40px;
}

.privacy-box {
    margin-top: 20px;
}

p.privacy-head {
    font-weight: bold;
}

ul.privacy-list {
    margin: 10px 0;
}

ul.privacy-list li {
    list-style-type: disc;
    margin-left: 30px;
}

.sub_content_box.doctor {
    justify-content: center;
    align-items: center;
    gap: 60px;
}

.sub_content_box.doctor .sub_img {
    width: 48%;
    max-width: 300px;
}

h4.doctor-name,
h4.career {
    position: relative;
    font-size: 1.4rem;
    color: #fff;
    background: #84cea2;
    text-align: center;
}

h4.doctor-name::before,
h4.career::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 2px;
    background-color: #84cea2;
    background-repeat: no-repeat;
    bottom: -5px;
    left: 0;
}

h4.doctor-name::after,
h4.career::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 2px;
    background-color: #84cea2;
    background-repeat: no-repeat;
    top: -5px;
    left: 0;
}

.sub_content_box.doctor .sub_img img {
    box-shadow: -12px 12px 2px 1px #84cea270;
}

.doctor-main-text {
    margin-top: 20px;
}

@media screen and (max-width: 750px) {
    .sub_content_box.grid-box {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 5px 10px;
    }
}

/* ===============================
   Doctor Profile Layout
=============================== */
.doctor-profile__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 10px;
    margin-top: 40px;
}

/* --- 略歴 DL --- */
.career-list {
    padding: 15px 0 15px 20px;
    display: grid;
    grid-template-columns: 140px 1fr;
    column-gap: 18px;
    background-color: #f5f5f5;
}

.career-list dt,
.career-list dd {
    margin: 0;
    padding: 6px 0;
    line-height: 1.6;
}

/* 左カラム：年号 */
.career-list dt {
    font-weight: bold;
    color: #444;
}

/* 右カラム：内容 */
.career-list dd {
    border-left: 2px solid #e0d4c8;
    padding-left: 12px;
    color: #555;
}

/* --- 所属学会 UL --- */
.society-list {
    list-style: disc inside;
    padding: 15px 0 15px 20px;
    background-color: #f5f5f5;
}

.society-list li {
    margin-bottom: 10px;
    padding-left: 4px;
    color: #555;
}

@media screen and (max-width: 1000px) {
    .doctor-profile__grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 750px) {
    a.doctor-button {
        width: 200px;
        height: 50px;
        text-align: center;
        margin: 70px auto 0;
        font-size: 16px;
        box-shadow: 0 4px 10px #bfbfbf;
        background-color: #f2b39b;
        color: #fff;
        border: none;
        border-radius: 10px;
    }

    .sub_content_box.doctor {
        width: 100%;
        grid-template-columns: repeat(2, 1fr);
        gap: 5px;
    }

    .kinds-box.privacy .sub_content_box {
        background-color: #f5f5f5;
        margin: 50px auto 90px;
        padding: 25px;
    }
}

@media screen and (max-width: 600px) {
    .doctor-profile__block--career br.sp {
        display: block;
    }

    .career-list {
        padding: 15px 5px 15px 20px;
        grid-template-columns: 80px 1fr;
        column-gap: 18px;
    }
}

/* 当日診療受付 */
.reception-box {
    margin: 70px auto 0;
    padding: 34px 40px 38px;
    background: rgba(255, 255, 255, 0.82);
    border: 2px solid #f9e2d6;
    border-radius: 10px;
    box-shadow: 8px 8px 0 rgba(249, 226, 214, 0.8);
    color: #4d392f;
}

.reception-box h3.title {
    color: #4d392f;
    background: transparent;
    padding-top: 0;
}

.reception-card {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 30px;
    align-items: center;
    max-width: 920px;
    margin: 28px auto 0;
}

.reception-button {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 88px;
    padding: 20px 46px 20px 28px;
    background: #f2b39b;
    border: 3px solid #f2b39b;
    border-radius: 10px;
    box-shadow: 0 4px 10px #bfbfbf;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}

.reception-button span {
    font-size: 15px;
}

.reception-button::after {
    position: absolute;
    content: "";
    right: 22px;
    top: 50%;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}

.reception-button:hover {
    transform: translate(2px, 2px);
    box-shadow: 0 1px 10px #bfbfbf;
}

.reception-text {
    font-size: 16px;
    line-height: 1.8;
}

.reception-text p:not(:first-child) {
    margin-top: 10px;
}

.reception-note {
    color: #d95f5f;
    font-weight: 700;
}

/* 担当医表 */
.doctor-schedule-section {
    margin: 70px auto 0;
}

.doctor-schedule-scroll {
    width: 100%;
    margin-top: 30px;
}

.doctor-schedule-hint {
    display: none;
}

.doctor-schedule-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid #eadbd3;
    border-radius: 8px;
    overflow: hidden;
}

.doctor-schedule-table thead th:first-child,
.doctor-schedule-table tbody th {
    width: 104px;
}

.doctor-schedule-table th,
.doctor-schedule-table td {
    border-right: 1px solid #eadbd3;
    border-bottom: 1px solid #eadbd3;
    padding: 18px 10px;
    text-align: center;
    vertical-align: top;
    line-height: 1.45;
}

.doctor-schedule-table th:last-child,
.doctor-schedule-table td:last-child {
    border-right: none;
}

.doctor-schedule-table tbody tr:last-child th,
.doctor-schedule-table tbody tr:last-child td {
    border-bottom: none;
}

.doctor-schedule-table thead th {
    background: #f9e2d6;
    color: #4d392f;
    font-weight: 700;
}

.doctor-schedule-table tbody th {
    background: #fff7f2;
    color: #4d392f;
    font-weight: 700;
    vertical-align: middle;
}

.schedule-doctor {
    display: block;
    width: fit-content;
    min-width: 70px;
    margin: 0 auto 8px;
    padding: 5px 12px 6px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.schedule-doctor:last-child {
    margin-bottom: 0;
}

.schedule-doctor--male {
    background: #edf5fb;
    color: #2f547a;
}

.schedule-doctor--female {
    background: #fff1f1;
    color: #d95f5f;
}

.schedule-doctor--parttime {
    background: #fff5df;
    color: #c97921;
}

.doctor-schedule-off {
    background: #fafafa;
    color: #9a9a9a;
    font-weight: 700;
    vertical-align: middle;
}

.doctor-schedule-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 22px;
    margin-top: 22px;
    color: #4d392f;
    font-size: 15px;
}

.doctor-schedule-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.legend-mark {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.legend-mark--male {
    background: #2f547a;
}

.legend-mark--female {
    background: #d95f5f;
}

.legend-mark--parttime {
    background: #c97921;
}

.doctor-schedule-note {
    margin-top: 18px;
    color: #d95f5f;
    font-weight: 700;
    line-height: 1.7;
}

/* 一般皮膚科/形成外科 ・美容皮膚科*/
.sub_main.plastic_menu,
.sub_main.beauty_menu {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    width: 100%;
    padding: 0 10px 100px;
}

.sub_main.plastic_menu {
    background-image: url(../img/medical-bg-01.png);
}

.sub_main.beauty_menu {
    background-image: url(../img/medical-bg-02.png);
}

.sub_main.plastic_menu h2,
.sub_main.beauty_menu h2 {
    background-color: initial;
    padding: 100px 0 25px;
    margin: -100px auto 60px;
}

.sub_main.plastic_menu .kinds-box:last-of-type,
.sub_main.beauty_menu .kinds-box:last-of-type {
    margin-bottom: 0;
    padding-bottom: 45px;
}

@media screen and (max-width: 900px) {
    .doctor-schedule-hint {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        margin: 40px 0 8px;
        color: #9b7d6d;
        font-size: 13px;
        font-weight: 700;
    }

    .doctor-schedule-hint::after {
        content: "";
        width: 32px;
        height: 8px;
        border-right: 2px solid #9b7d6d;
        border-bottom: 2px solid #9b7d6d;
        transform: skewX(-35deg);
    }

    .doctor-schedule-scroll {
        margin-top: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 8px;
    }

    .doctor-schedule-scroll::-webkit-scrollbar {
        height: 6px;
    }

    .doctor-schedule-scroll::-webkit-scrollbar-track {
        background: #f8ede7;
        border-radius: 999px;
    }

    .doctor-schedule-scroll::-webkit-scrollbar-thumb {
        background: #e8b9a4;
        border-radius: 999px;
    }

    .doctor-schedule-table {
        width: 720px;
        min-width: 720px;
    }

    .doctor-schedule-table thead th:first-child,
    .doctor-schedule-table tbody th {
        width: 76px;
    }

    .doctor-schedule-table th,
    .doctor-schedule-table td {
        padding: 14px 8px;
        font-size: 14px;
        line-height: 1.4;
    }

    .doctor-schedule-table thead th:first-child {
        font-size: 0;
    }

    .doctor-schedule-table thead th:first-child::before {
        content: "時間";
        font-size: 13px;
    }

    .doctor-schedule-table td.doctor-schedule-off {
        background: #fafafa;
        color: #9a9a9a;
        vertical-align: middle;
    }

    .schedule-doctor {
        min-width: 64px;
        margin-bottom: 6px;
        padding: 4px 8px 5px;
        border-radius: 999px;
        font-size: 13px;
        line-height: 1.25;
        white-space: nowrap;
    }
}

@media screen and (max-width: 750px) {
    .reception-box {
        margin-top: 50px;
        padding: 28px 18px 32px;
        border-radius: 8px;
    }

    .reception-card {
        grid-template-columns: 1fr;
        gap: 26px;
        margin-top: 26px;
    }

    .reception-button {
        min-height: 96px;
        font-size: 20px;
    }

    .reception-button span {
        font-size: 16px;
    }

    .reception-text {
        font-size: 15px;
    }

    .doctor-schedule-section {
        margin-top: 50px;
    }

    .doctor-schedule-scroll {
        margin-top: 0;
    }

    .doctor-schedule-table {
        width: 680px;
        min-width: 680px;
    }

    .doctor-schedule-note {
        font-size: 14px;
        text-align: left;
    }
}

@media screen and (max-width: 420px) {
    .doctor-schedule-table thead th:first-child,
    .doctor-schedule-table tbody th {
        width: 62px;
    }

    .doctor-schedule-table th,
    .doctor-schedule-table td {
        padding: 12px 6px;
        font-size: 13px;
    }

    .doctor-schedule-table {
        width: 640px;
        min-width: 640px;
    }

    .schedule-doctor {
        min-width: 58px;
        padding: 3px 6px 4px;
        font-size: 12px;
    }

    .doctor-schedule-legend {
        gap: 8px 12px;
        font-size: 13px;
    }

    .doctor-schedule-note {
        font-size: 13px;
    }
}

/* 美容のお悩み：IDジャンプ用（固定ヘッダー80px対策） */
#worries01,
#worries02,
#worries03,
#worries04,
#worries05,
#worries06,
#worries07,
#worries08,
#worries09,
#worries10,
#worries11,
#worries12 {
    scroll-margin-top: 80px;
}


/* アクセス */
.sub_content_box.access-table {
    margin: 35px auto 90px;
}

/* あざ */
.sub_main.bruise .kinds-box .btn_box {
    text-align: center;
}

/* ビタミン点滴 */
.sub_main ul.sub_list02.vitamin-drip_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px 24px;
    list-style: none;
    padding-left: 35px;
    margin: 16px 0;
}

@media screen and (max-width: 750px) {
    .sub_main ul.sub_list02.vitamin-drip_list {
        grid-template-columns: repeat(2, 1fr);
        padding-left: 15px;
    }
}

/* リフトアップレーザー（レーザーシャワー） */
.laser-lift-structure-box .laser-lift-structure-item-01 .column_img {
    position: relative;
}

.laser-lift-structure-box .laser-lift-structure-item-01 .column_img::before {
    position: absolute;
    content: "→";
    font-size: 2em;
    font-weight: bold;
    color: #000;
    top: 50%;
    right: -25%;
    transform: translateY(-50%);
}

.laser-lift-structure-box .laser-lift-text {
    display: inline-block;
    text-align: left;
}

@media screen and (max-width: 750px) {
    .laser-lift-structure-box {
        gap: 30px;
    }

    .laser-lift-structure-box.laser-lift-structure-box-02 {
        margin-top: 30px;
    }

    .laser-lift-structure-box .laser-lift-structure-item-01 .column_img::before {
        content: none;
    }
}

/* 予約キャンセルフォーム */
/* ====== Form Container ====== */
.cancel-form-wrap {
    background: #fbf6f2;
    border-radius: 10px;
    padding: 28px 18px;
}

.cancel-form {
    max-width: 620px;
    margin: 0 auto;
}

/* ====== Definition List Layout ====== */
.cancel-dl {
    margin: 0;
}

.cancel-row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 16px 18px;
    padding: 14px 0;
    border-bottom: 1px solid #e7dfd8;
}

.cancel-row:last-child {
    border-bottom: none;
}

.cancel-dt {
    margin: 0;
    font-weight: 600;
    line-height: 1.4;
    color: #333;
}

.cancel-dd {
    margin: 0;
}

.cancel-label {
    display: inline-block;
}

span.red {
    color: #c10000;
}

.cancel-page p span.red {
    font-weight: bold;
    margin-left: 5px;
}

.cancel-page .cancel-form-wrap p span.red {
    font-size: 0.8em;
}

@media (max-width: 768px) {
    .cancel-page br.sp {
        display: block;
    }
}

/* ====== Inputs ====== */
.cancel-input,
.cancel-textarea {
    width: 100%;
    border: 1px solid #666;
    border-radius: 4px;
    padding: 10px 12px;
    font-size: 16px;
    background: #fff;
    color: #111;
}

.cancel-textarea {
    resize: vertical;
    min-height: 180px;
}

.cancel-note {
    margin: 8px 0 0;
    font-size: 13px;
    color: #333;
}

.cancel-help {
    margin-top: 10px;
    font-size: 13px;
    color: #333;
    line-height: 1.6;
}

.cancel-privacy {
    margin: 18px 0 14px;
    font-size: 13px;
    color: #333;
    line-height: 1.7;
}

/* ====== Checkbox ====== */
.cancel-accept {
    margin: 8px 0 18px;
}

.cancel-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13px;
    line-height: 1.6;
    color: #333;
}

.cancel-check input {
    margin-top: 3px;
}

/* ====== Submit ====== */
.cancel-submit {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.cancel-btn {
    appearance: none;
    border: none;
    border-radius: 8px;
    padding: 14px 28px;
    font-size: 16px;
    font-weight: 700;
    background: #c65b5b;
    color: #fff;
    cursor: pointer;
}

.cancel-btn:hover {
    filter: brightness(0.95);
}

.cancel-btn:active {
    transform: translateY(1px);
}

/* ====== Screen reader only ====== */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ====== Responsive ====== */
@media (max-width: 768px) {
    .cancel-form-wrap {
        padding: 20px 12px;
    }

    .cancel-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .cancel-dt br {
        display: none;
    }
}

/* 美容予約キャンセルページ（ポルトガル） */
.cancel-privacy-section {
    margin-top: 60px;
}

.cancel-privacy-text {
    max-width: 720px;
    margin: 0 auto;
    line-height: 1.8;
    font-size: 15px;
}

.cancel-privacy-text p {
    margin-bottom: 18px;
}

.cancel-privacy-list {
    margin: 10px 0 18px 20px;
}

.cancel-privacy-list li {
    margin-bottom: 6px;
}

.cancel-privacy-note {
    font-size: 14px;
    color: #444;
}

/* 美容予約キャンセルフォーム汎用 */
/* ===== Cancel Page Base ===== */
.cancel-page {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 30px 150px;
}

.cancel-lead {
    margin: 18px 0 10px;
    text-align: center;
}

.cancel-desc {
    text-align: center;
}

.cancel-annotation {
    font-size: 0.8em;
    text-align: center;
}

span.cancel-annotation {
    margin-left: 15px;
}

/* ===== Wrap ===== */
.cancel-form-wrap {
    background: #fbf6f2;
    border-radius: 10px;
    padding: 28px 18px;
}

/* ===== CF7 form base ===== */
.cancel-page .wpcf7 form {
    max-width: 720px;
    margin: 0 auto;
}

.cancel-page .wpcf7 form p {
    margin: 0 0 16px;
    line-height: 1.2;
}

/* labelを項目名として扱う */
.cancel-page .wpcf7 form label {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 12px 18px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #e7dfd8;
    color: #333;
    font-weight: 600;
    line-height: 1.4;
}

.cancel-page .wpcf7 form label:last-of-type {
    border-bottom: none;
}

/* CF7の入力欄 */
.cancel-page .wpcf7 input[type="text"],
.cancel-page .wpcf7 input[type="email"],
.cancel-page .wpcf7 textarea {
    width: 100%;
    border: 1px solid #666;
    border-radius: 4px;
    padding: 10px 12px;
    font-size: 16px;
    background: #fff;
    color: #111;
    box-sizing: border-box;
    font-weight: 400;
    margin-top: 10px;
}

.cancel-page .wpcf7 textarea {
    min-height: 180px;
    resize: vertical;
}

/* 必須（CF7がspan必須マーク出す場合） */
.cancel-page .wpcf7 .wpcf7-not-valid-tip {
    font-size: 13px;
    margin-top: 6px;
}

/* acceptance（同意チェック） */
.cancel-page .wpcf7 .wpcf7-acceptance {
    display: block;
}

.cancel-page .wpcf7 .wpcf7-acceptance label {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    border-bottom: none;
    padding: 10px 0 0;
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
}

.cancel-page .wpcf7 .wpcf7-acceptance input {
    margin-top: 6px;
}

/* 送信ボタン */
.cancel-page .wpcf7 input[type="submit"] {
    appearance: none;
    border: none;
    border-radius: 8px;
    padding: 14px 28px;
    font-size: 16px;
    font-weight: 700;
    background: #c65b5b;
    color: #fff;
    cursor: pointer;
    display: block;
    margin: 40px auto 0;
}

.cancel-page .wpcf7 input[type="submit"]:hover {
    filter: brightness(0.95);
}

/* レスポンシブ */
@media (max-width: 768px) {
    .cancel-page {
        max-width: 980px;
        margin: 0 auto;
        padding: 0 15px 150px;
    }

    .cancel-form-wrap {
        padding: 25px;
    }

    .cancel-page .wpcf7 form label {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}
