/* module.css */

.m_frame {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	padding: 0 30px;
}
.m_frame.m_narrow {
	max-width: 900px;
}
.m_frame.m_middle {
	max-width: 1080px;
}

.m_title_h3 {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto 45px;
	padding: 15px 30px;
	background: linear-gradient(to right, #d3c7b8, #e6e1d4);
	color: #333;	
	font-size: 2.4rem;
 	font-weight: bold;
	text-align: center;	
}
.m_subtitle {
	display: block;
	margin-bottom: 15px;
	padding: 7.5px 15px;
	background: #f8f2f0;
	font-size: 2rem;
}

.m_text {
	font-size: 1.75rem;
}
.m_text_s {
	font-size: 1.5rem;
}
.m_text_m {
	font-size: 2rem;
}
.m_text_l {
	font-size: 2.5rem;
}
.m_indent li {
	font-size: 1.75rem;
	padding-left: 1.75rem;
	text-indent: -1.75rem;
}
.m_list.m_c {
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
}
.m_list li {
	font-size: 1.75rem;
	list-style: outside disc;
	margin-left: 2rem;
}
.m_bb {
	color: #6a4d1d;
	font-weight: bold;
}

.m_center {
	text-align: center!important;
}
.m_brown {
	color: #ac9778;
}
	
	.m_frame {
		padding: 0 20px;
	}
	
	.m_title_h3 {
		margin: 0 auto 24px;
		padding: 10px 12px;
		font-size: 1.8rem;
	}
	.m_subtitle {
		margin-bottom: 12px;
		padding: 6px 12px;
		font-size: 1.625rem;
	}
	
	.m_text {
		font-size: 1.5rem;
	}
	.m_text_s {
		font-size: 1.25rem;
	}
	.m_text_m {
		font-size: 1.875rem;
	}
	.m_text_l {
		font-size: 2.5rem;
	}	
	.m_indent li {
		font-size: 1.5rem;
		padding-left: 1.5rem;
		text-indent: -1.5rem;
	}
	.m_list li {
		font-size: 1.5rem;
		margin-left: 1.75rem;
	}	
	
	.m_center.tb_left {
		text-align: left!important;
	}	

	.m_center.sp_left {
		text-align: left!important;
	}
	.sp_center {
		text-align: center!important;
	}

/*----- comp -----*/

.m_box {
	width: calc(100% - 30px);
	margin: 15px auto;
	padding: 30px;
	background: #fff;
	border-radius: 15px;
	box-shadow: 0 0 15px rgba(0,0,0,.1); 
}
.m_box .m_title {
	text-align: center;
}
.m_box .m_title h3 {
	display: inline-block;
	min-width: 75%;
	margin-bottom: 20px;
	padding: 0 15px 10px;
	border-bottom: 2px solid #8d6e63;
	font-size: 2.5rem;
}

.m_col {
	display: flex;
	justify-content: space-between;
	margin-bottom: 60px;
}
.m_col_conts {
	width: 56%;
}
.m_col.m_opp .m_col_conts {
	order: 2;
}
.m_col_pic {
	width: 40%;
	text-align: center;
}


.m_treat_box {
	display: flex;
	justify-content: space-between;
	gap: 0 40px;
	margin-bottom: 45px;
	padding-bottom: 30px;
	border-bottom: 1px solid #e4dfd7;
}
.m_treat_conts {
	width: calc(52.5% - 20px);	
}
.m_treat_box:nth-of-type(2n) .m_treat_conts {
	order: 2;	
	padding-left: 15px;
}
.m_treat_conts h3 {
	margin-bottom: 10px;
	color: #545454;
	font-size: 3rem;
}
.m_treat_pic {
	width: calc(47.5% - 15px);
}
.m_treat_pic img {
	border-radius: 10px;
	box-shadow: 15px 15px 0 #d4cfc7;
}

.m_char_title {
	margin-bottom: 30px;
	font-size: 2rem;
}
.m_char_title b {
	margin: 0 5px;
	color: #333;
	font-size: 2.75rem;
	font-weight: bold;
}
.m_char_title span {
	margin-right: 5px;
	font-size: 2.25rem;
}
.m_char_list {
	width: fit-content;
	margin: 0 auto;
}
.m_char_list li {
	display: flex;	
	margin: 10px 0;
	font-size: 2.25rem;
	line-height: 1.5;
}
.m_char_list li span {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(200deg, #a89752, #d4c588, #a89752);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;    
    box-shadow: 2px 2px 5px rgba(0,0,0,.2);
}
.m_char_list li > div {
	width: calc(100% - 40px);
	padding: 5px 0 0 15px;
}

img.m_cavity_01 {
	margin: auto;
	width: min(300px,87.5%)!important;
}
img.m_cavity_02a {
	margin: auto;	
	width: min(259px,87.5%)!important;
}
img.m_cavity_02b {
	margin: auto;	
	width: min(164px,60%)!important;
}
img.m_periodontal_01 {
	margin: auto;	
	width: min(258px,87.5%)!important;
}
img.m_mouthpiece_01 {
	margin: auto;	
	width: min(300px,87.5%)!important;
	border-radius: 15px;
}

.m_prevention_box {
	margin: 15px 0;
	padding: 15px 20px;
	background: #f8f2f0;
	color: #933;
}
.m_prevention_box .m_text {
	font-size: 1.4rem;	
}
	
	.m_treat_box {
		display: block;
		margin-bottom: 30px;
		padding-bottom: 0;		
	}
	.m_treat_conts {
		width: 100%;	
	}
	.m_treat_box:nth-of-type(2n) .m_treat_conts {
		padding-left: 0;
	}
	.m_treat_conts h3 {
		font-size: 2.25rem;
		text-align: center;
	}
	.m_treat_pic {
		width: min(600px,100%);
		margin: 0 auto 45px;
	}
	.m_treat_pic img {
		border-radius: 8px;
		box-shadow: 10px 10px 0 #d4cfc7;
	}

	.m_box {
		width: calc(100% - 20px);
		margin: 10px auto;
		padding: 20px;
		border-radius: 10px;
		box-shadow: 0 0 10px rgba(0,0,0,.1); 
	}
	.m_box .m_title h3 {
		min-width: 87.5%;
		margin-bottom: 15px;
		padding: 0 0 10px;
		font-size: 2rem;
	}
	
	.m_col {
		display: block;
		margin-bottom: 40px;
	}
	.m_col_conts {
		margin-bottom: 15px;
		width: 100%;
	}
	.m_col_pic {
		width: 100%;
	}	
	.m_col_pic img {
		margin: auto;
		width: min(400px,100%);
	}
	
	.m_char_title {
		margin-bottom: 20px;
		font-size: min(4.25vw,1.75rem);
	}
	.m_char_title b {
		margin: 0 3px;
		font-size: min(5vw,2.25rem);
	}
	.m_char_title span {
		display: block;
		margin: 5px 0;
		padding: 5px 0;
		background: #f8f2f0;
		font-size: min(4.5vw,2rem);
	}
	.m_char_list li {
		margin: 10px 0;
		font-size: 1.6rem;
	}
	.m_char_list li span {
		width: 30px;
		height: 30px;
	}
	.m_char_list li > div {
		width: calc(100% - 30px);
		padding: 3px 0 0 10px;
	}	
	
	.m_prevention_box {
		margin: 12px 0;
		padding: 15px 12px;
	}
	.m_prevention_box .m_text {
		font-size: 1.2rem;	
		line-height: 1.5;
	}	

/*----- mb -----*/

.mb5 {
    margin-bottom: 5px !important;
}
.mb15 {
    margin-bottom: 15px !important;
}
.mb30 {
    margin-bottom: 30px !important;
}
.mb45 {
    margin-bottom: 45px !important;
}
.mb60 {
    margin-bottom: 60px !important;
}
.mt30 {
	margin-top: 30px;
}
	
	.mb15 {
	    margin-bottom: 12px !important;
	}
	.mb30 {
   		margin-bottom: 24px !important;
	}
	.mb45 {
    	margin-bottom: 30px !important;
	}		
	.mb60 {
    	margin-bottom: 40px !important;
	}	

	br.pc {
		display: none;
	}	

/* single, archive */

.single_area {
	margin: 30px 0 40px;
}
.sgl {
	margin-bottom: 60px;
}
.sgl h1 {
	font-size: 28px;
}
.sgl h2 {
	font-size: 24px;
}
.sgl.blg h2 {
    margin-bottom: 10px;
    text-align: left;
}
.sgl h3 {
	display: inline-block;
	margin: 20px 0 5px;
	padding: 5px 10px;
	background: #f8f2f0;
	color: #524636;
	font-size: 20px;
}
.sgl h4 {
	font-size: 18px;
}
.sgl.blg h3,
.sgl.blg h4 {
	margin: 20px 0 10px;
}
.sgl .wp-block-image {
	margin: 30px 0;
}
.sgl p {
	margin-bottom: 10px;
}
.sgl ul {
	margin-bottom: 10px;
}
.sgl ul li {
    list-style: outside disc;
    margin-left: 20px;
    font-size: 1.75rem;
    line-height: 1.8;
}
.sgl.blg figure {
    margin-bottom: 10px;
}

.archive_area {
	margin: 30px 0 120px;
}
.archive_list {
	margin-bottom: 60px;
}
.archive_list a.new-post-item {
	display: flex;
	justify-content: space-between;
	font-size: 1.75rem;
	padding: 10px 0;
}
.archive_list a .new-post-date {
	width: 120px;
}
.archive_list a .new-post-title {
	width: calc(100% - 120px);
}
.archive_title {
    background: linear-gradient(to right, #d3c7b8, #e6e1d4);
    margin-bottom: 30px;
    padding: 15px 30px;
    color: #333;
    font-size: 2.4rem;    
    font-weight: bold;
}

    .archive_title {
        margin-bottom: 20px;
        padding: 12px 24px;
        font-size: 2rem;    
    }

    .sgl ul li {
        margin-left: 20px;
        font-size: 1.5rem;
    }

	.single_area {
		margin: 30px 0 0;
	}

	.sgl h1 {
		font-size: 24px;
	}
	.sgl h2 {
		font-size: 20px;
	}
	.sgl h3 {
		margin: 15px 0 5px;
		padding: 4px 8px;
		font-size: 17px;
	}
	.sgl h4 {
		font-size: 15px;
	}
	
	.archive_area {
		margin: 30px 0 0;
	}
    .archive_title {
        margin-bottom: 20px;
        padding: 10px 20px;
        font-size: 1.6rem;    
    }

	.archive_list {
		margin-bottom: 30px;
	}
	.archive_list a.new-post-item {
		display: block;
		font-size: 1.5rem;
	}
	.archive_list a .new-post-date {
		width: 100%;
	}
	.archive_list a .new-post-title {
		width: 100%;
	}	
    .archive_title {
        padding: 10px 15px;
    }

/* blog */

.blog_frame {
    display: flex;
    justify-content: space-between;
    margin: 15px 0 0;
}
.blog_main {
    width: 75%;
}

.blog_side {
    width: 22%;
    background: #f8f8f8;
}
.blog_side .bs_title {
    padding: 10px 15px;
    background: #524636;
    color: #fff;
    font-size: 1.5rem;
}
.blog_side ul {
    padding: 15px 10px 30px 15px;
}
.blog_side ul.bs_list li {
    list-style: outside disc;
    margin-left: 16px;
}

.blog_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.blog_cat {
    display: flex;
    align-items: center;
}
.blog_cat ul {
    display: flex;
    align-items: center;
}
.blog_cat ul li {
    margin-left: 5px;
}

.case_cat {
    text-align: center;
}
.case_cat_text {
    display: inline-block;
	margin: 20px 0 5px;
	padding: 5px 10px;
	background: #f8f2f0;
	color: #524636;
	font-size: 20px;
}
.archive_list .case-slider {
    position: relative;
}
.archive_list .case-slider .case-card {
    box-shadow: none!important;
}
.archive_list .case-slider .slick-dots {
    position: absolute;
    top: auto;
    bottom: 0;
    display: flex;
    justify-content: center;
}

    .blog_frame {
        margin-right: 50px;        
    }
    
    .blog_side .bs_title {
        padding: 8px 12px;
        font-size: 1.25rem;
    }
    .blog_side ul {
        padding: 12px 10px 20px 12px;
    }
    .blog_side ul li {
        font-size: 1.25rem;
    }
    .blog_side ul.bs_list li {
        margin-left: 14px;
    }
    
    .case_frame .case-card,
    .archive_list .case-slider .case-card {
        width: 66.66vw;
    }

    .blog_frame {
        margin-right: 0;        
    }
    
    .blog_frame {
        display: block;
    }
    .blog_main {
        width: 100%;
    }
    .blog_main .m_title_h3 {
        text-align: left;
    }
    .blog_header {
        display: block;
    }

    .blog_side {
        width: 100%;
    }
