@charset "utf-8";

@font-face {
  font-family: 'Zen Kaku Gothic New';
  src: url('./assets/fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Zen Kaku Gothic New';
  src: url('./assets/fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Zen Maru Gothic';
  src: url('./assets/fonts/Zen_Maru_Gothic/ZenMaruGothic-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Zen Maru Gothic';
  src: url('./assets/fonts/Zen_Maru_Gothic/ZenMaruGothic-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Condensed';
  src: url('./assets/fonts/Roboto/static/Roboto_Condensed-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}


/*** reset css ***/
a{
	text-decoration: none;
	color: initial;
}
em{
	font-style: initial;
}
ul,p,h1,h2,h3,h4,h5,figure{
	margin: 0;
	padding: 0;
}
ul{
	list-style: none;
}
button{
	background-color: initial;
	border: none;
}
/*** reset css ***/


:root{
	--fontSize: 16px;
	--mainFont: "Zen Kaku Gothic New", sans-serif;
	--subFont: "Zen Maru Gothic", sans-serif;
	--enFont: "Roboto Condensed", sans-serif;
	--FontColor: #222;
	--mainColor: #007FAD;
	--red: #DA3101;
	--white: #fff;
	--transtion: all .5s;
	--lineHeight: 1.6;
	--letterSpacing: .1em;
	--letterSpacingNegative: -0.25em;
	--backColor: #FEF4E5;
}
img{
	max-width: 100%;
}
strong{
	font-weight: bold;
	color: var(--red);
}
strong.bold-b{
	font-weight: bold;
	color: var(--mainColor);
}
strong.bold-bl{
	font-weight: bold;
	color: var(--FontColor);
}
em{
	font-size: 1.3em;
}
p{
	line-height: var(--lineHeight);
	letter-spacing: var(--letterSpacing);
}
body{
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    font-size: var(--fontSize);
    font-family: var(--mainFont);
    color: var(--FontColor);
    position: relative;
    height: auto;
    overflow: auto;
    overflow-x: hidden;
}
html{
	scroll-behavior: smooth;
}
main{
	height: 100%;
	margin-bottom: 4rem;
}
h1{
	font-size: 1.5rem;
    letter-spacing: .1rem;
    font-family: var(--subFont);
    position: relative;
    padding: 1.5rem 0.5rem;
    text-align: center;
}
h2{
	font-size: 1.5rem;
    letter-spacing: .1rem;
	font-family: var(--subFont);
	position: relative;
    padding: 2.5rem 0.5rem 1.5rem 0.5rem;
}
h2:before{
	content: "";
    width: 74px;
    height: 74px;
	background: url(../matsumoto/assets/img/common/h2_ico.png);
	background-position: center;
    background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
    top: 10px;
    left: 0;
    z-index: -1;
}
h3{
	font-size: 1.15rem;
    font-weight: bold;
    font-family: var(--subFont);
    color: var(--mainColor);
    align-items: center;
    display: flex;
    justify-content: start;
	margin-top: 2rem;
    margin-bottom: 1rem;
	letter-spacing: var(--letterSpacing);
	line-height: var(--lineHeight);
}
h3:after{
	content: "";
    background-color: var(--mainColor);
    height: 2px;
    width: 50px;
    margin-left: 0.5rem;
}
h3.gothic{
	font-size: 1.15rem;
    font-weight: bold;
    font-family: var(--mainFont);
	color: var(--FontColor);
}
h3.gothic:after{
	content: none;
}

h4{
	margin-bottom: .5rem;
	letter-spacing: var(--letterSpacing);
}
h4.text-r{
	font-family: var(--subFont);
	font-size: 18px;
	font-weight: bold;
}
h4.text-r span{
	font-family: var(--enFont);
	font-size: .8em;
	margin-left: 0.5rem;
    letter-spacing: .1em;
}
.mt-5r{
	margin-top: 5rem;
}
.border-bottom.dot{
	border-bottom-style: dotted !important;
}
.inner{
    padding: 0 1rem;
}
.text-r{
	color: var(--red);
}
.bg-r{
	background-color: #FEF4E5;
    padding: 1.5rem;
}
.bg-g{
	background-color: #f2f2f2;
    padding: 1.5rem;
}
.bg-b{
	background-color: var(--mainColor);
}
.bg-beige{
	background-color: #F2EDEB;
    padding: 1.5rem;
}
.notes{
	font-size: .8em;
	color: #666;
	font-weight: bold;
}
.text-sub{
	font-family: var(--subFont);
}
.main-container{
	height: 100%;
	display: flex;
    flex-wrap: wrap;
/*
    padding-top: 65px;
    margin-top: 65px;
*/
}
.lp-layout{

}
.main-slide .swiper{
	border-radius: 6px;
	height: 20vh;
}

a.button{
	padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    border-radius: 50px;
	transition: 0.3s ease-in-out;
}

a.button.f:after{
    content: '';
    width: 10px;
    height: 10px;
    border-top: 2px solid #222;
    border-right: 2px solid #222;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 20px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}
a.button.f{
    background-color: #fff;
    color: var(--FontColor);
    overflow: hidden;
    position: relative;
    z-index: 1;
	font-family: var(--subFont);
}
a.button.f:hover,
a.button.gr:hover{
	background: #E2D7D2;
}
a.button.gr:after{
    content: '';
    width: 10px;
    height: 10px;
    border-top: 2px solid #222;
    border-right: 2px solid #222;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 20px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}
a.button.gr{
    background-color: #F2EDEB;
    color: var(--FontColor);
    overflow: hidden;
    position: relative;
    z-index: 1;
	font-family: var(--subFont);
}
a.text-link{
	text-decoration: underline;
}

.category{
	background: var(--mainColor);
	color: #fff;
	font-size: .8em;
	padding: .2rem 1.5rem;;
    border-radius: 5px;
}
.category-g{
	background: #0E8A00;
	color: #fff;
	font-size: .8em;
	padding: .2rem 1.5rem;;
    border-radius: 5px;
}
.category-bl{
	background: #000;
	color: #fff;
	font-size: .8em;
	padding: .2rem 1rem;;
    border-radius: 5px;
}
time{
	font-size: .9em;
	font-family: var(--enFont);
}
.catch{
	font-size: 1.15em;
    font-weight: bold;
}
.anchor-target {
  scroll-margin-top: 75px;
}
.breadcrumbs{
	font-size: .8em;
}

/*** header ***/
header{
	width: 100%;
 	position: fixed; 
	top: 0;
 	z-index: 10;
	background: #fff;
}
header .navbar{
	background-color: #fff !important;
}
header .navbar .nav-btn{
	width: 66px;
    height: 60px;
	background-color: #F2EDEB;
	
}
header .navbar .nav-btn span{
	font-size: 0.65em;
    letter-spacing: 0.1em;
	font-weight: bold;
}
header .navbar .nav-btn img{
	margin-bottom: 0.3rem;
}
header .navbar .nav-btn:nth-child(3){
	background-color: var(--mainColor);
	color: #fff;
}
header .navbar .navbar-toggler{
	width: 66px;
    height: 60px;
    background-color: #fff;
}
header .navbar .navbar-toggler .navbar-tex{
    font-size: 0.65em;
    letter-spacing: 0.1em;
    font-weight: bold;
	font-family: var(--enFont)
}
header .navbar-brand img{
	width: 100%;
	max-width: 190px;
    min-width: 83px;
	height: auto;
}
.main-slide .swiper-wrapper{
	transition-timing-function: linear;
}
.main-slide .swiper-slide img{
	height: auto;
	width: 100%;
}
.main-slide .footer-slide{
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}
.main-slide .swiper3{
	overflow-x: hidden;
}
.navbar-collapse{
	border-bottom: 1px solid rgb(226, 215, 210);
    border-top: 1px solid rgb(226, 215, 210);
    background: #F2EDEB;
}
.nav-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
.navbar-nav .nav-link {
	position: relative;
	padding: 1rem 4rem 1rem 2.5rem;
	color: #222;
	transition: color 0.3s ease, background 0.3s ease;
}
.navbar-nav .nav-link:hover{
	background: #E2D7D2;
}
.nav-arrow::after {
	content: '';
	width: 10px;
	height: 10px;
	border-top: 2px solid #222;
	border-right: 2px solid #222;
	transform: rotate(45deg) translateY(-50%);
	position: absolute;
	top: 50%;
	right: 30px;
	border-radius: 1px;
	transition: 0.3s ease-in-out;
}
.nav-reserve {
	color: var(--mainColor);
	font-weight: 600;
}
.nav-reserve::after {
	border-color: var(--mainColor);
}


/*** フッター***/
footer{
	margin-top: 1rem;
}
footer .swiper-wrapper{
	transition-timing-function: linear;
}
footer .swiper-slide img{
	height: auto;
	width: 100%;
}
footer .footer-slide{
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}
footer .swiper2{
	overflow-x: hidden;
}
footer .footer-logo,
footer .footer-tel{
	text-align: center;
}
footer .footer-logo img,
footer .footer-tel img{
	width: 80%;
}
footer .footer-logo p{
	font-size: .9em;
}
footer .footer-tel p{
	font-size: 1.05em;
}
footer .footer-tel .notes{
    font-size: .8em !important;
    color: #666;
	font-weight: normal;
}
footer .footer-copy {
    font-size: 0.8em;
    /* margin: 0 calc(50% - 50vw); */
    /* width: 100vw; */
    display: block;
    justify-content: space-around;
    border-top: dashed #ccc;
    margin-top: 2rem;
    padding-top: 0.7rem;
    padding-bottom: 15px;
    margin-bottom: 55px;
    /* margin: auto 0; */
    text-align: center;
}
footer .footer-copy p{
    letter-spacing: 0.05em;
}
footer .banner{
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 1;
}
footer .banner p:after{
	content: "";
    width: 13px;
    height: 11px;
	background: url(../matsumoto/assets/img/common/ico_exlink.svg);
	background-position: center;
    background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
    top: 23px;
    margin-left: 0.4rem;
}

/*** TOP ***/

.home .important .bg-r{
	border-left: 2px solid #DA3101;
}
.home .slide-inner{
	margin-top: 60px;
}
.home .calendar .c-red{
    color: #e67d73;
}
.home .calendar .c-blue{
    color: #3f51b5;
}
.home .calendar table{
	font-size: .9em;
}
.home .calendar table thead.table-bg{
	background: #f2f2f2;
}
.home .calendar table tr{
	
}
.home .calendar table tr th{
	
}
.home .calendar table tr td{
	
}
.home .calendar table tr td.bg-blue{
	background: var(--mainColor);
	color: #fff;
}
.home .calendar table tr td span{
	font-size: .9em;
}
.home .medical .hero,
.home .access .hero{
	position: relative;
}
.home .medical .hero .hero-ttl,
.home .access .hero .hero-ttl{
    position: absolute;
    background: #fff;
    z-index: 0;
    bottom: -2rem;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
}
.home .medical .hero .hero-ttl .home-ttl,
.home .access .hero .hero-ttl .home-ttl{
    text-align: center;
}
.home .medical .hero .hero-ttl h2:before,
.home .access .hero .hero-ttl h2:before{
    top: 10px;
    left: 50%;
    transform: translateX(-100%);
}
.home .medical h3.number{
	position: relative;
	padding-left: 2.5rem;
	line-height: 1.5em;
	margin-top: 0;
    padding-bottom: 1rem;
    border-bottom: dashed #ccc;
}
.home .medical h3.number:before{
	content: attr(data-number);
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
	text-align: center;
	border-radius: 50%;
	background-color: #fff;
	color: var(--red);
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--enFont);
	font-weight: normal;
}
.home .medical .m-flow h3.number:before{
	content: attr(data-number);
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
	text-align: center;
	border-radius: 50%;
	background-color: var(--mainColor);
	color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--enFont);
	font-weight: normal;
}
.home .medical .m-flow .number{
	padding-bottom: 0;
	border-bottom: none;
}
.news ul li{
    border-bottom: dashed #ccc;
}


/*** 下層 共通 ***/
.page .main-slide{
		display: none;
}
.h1-bg .hero{
	position: relative;
	margin-top: 45px;
}
.h1-bg .hero .hero-img{
	height: 22vh;
    width: 100%;
}
.h1-bg .hero .h1-ttl{
	position: absolute;
    background: #fff;
    z-index: 0;
    bottom: -2rem;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
}
.h1-ttl{
	padding: 1.5rem 0.5rem;
	padding-top: 1.0rem;
}
.h1-ttl .date{
	text-align: center;
	margin-bottom: 5px;
}
.h1-ttl h1{
	padding: 0;
}

table.basic tr{
	border-top: 1px dotted #ccc;
}
table.basic th{
    min-width: 8rem;
    padding-right: 1rem;
}
table.basic th,
table.basic td{
	padding: 1.5rem 0 1.5rem 1.5rem;
    padding-left: 0;
    letter-spacing: var(--letterSpacing);
}

ul.list li{
	line-height: 2em;
    letter-spacing: var(--letterSpacing);
}
ul.list li:before{
	content: '●';
	color: var(--mainColor);
	margin-right: 0.2em;
}

.wp-pagenavi span.current{
	background: var(--mainColor);
    color: #fff !important;
}
.wp-pagenavi .current,
.wp-pagenavi a{
	padding: 0.5em 0.8em;
    border-color: var(--mainColor) !important;
    color: var(--mainColor) !important;
}
.wp-pagenavi .pages{
	display: none;
}
.wp-pagenavi{
	text-align: center;
    margin-top: 3rem;
}


/*** 下層 まつもと眼科とは ***/
.about .policy .s-txt{
	font-size: .9rem;
    line-height: 2;
}

/*** 下層 募集要項 ***/
.application-requirement .no_entry{
	margin: 3em 0;
}
/*** 下層 採用情報 ***/
.recruit .person .p-list{
	text-align: center;
  width: 40%;
  border: 1px solid #000;
  padding: 30px;
  
  display: flex;　/* 直下の要素を並列に */
  flex-direction: column; /* 直下の要素を縦積みに */
}
.recruit .person .p-list .p-text{
	text-align: left;
  font-size: 34px;
  
  flex-grow: 1; /* 比率を指定 */
}
.recruit .person h3.number{
    position: relative;
    padding-left: 2.5rem;
    line-height: 1.5em;
    margin-top: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.recruit .person .m-flow h3.number:before{
	content: attr(data-number);
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
	text-align: center;
	border-radius: 50%;
	background-color: var(--mainColor);
	color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--enFont);
	font-weight: normal;
}

/*** 下層 投稿（詳細共通） ***/
.single .h1-bg .hero .h1-ttl{
	position: absolute;
    background: #fff;
    z-index: 0;
    bottom: -3rem;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
}
.single .main_content img{
	margin: 1rem 0;
}
.single .main_content p{
	margin-bottom: .6em;
}


/* -----------------------------------------------------------------------------
/* 投稿詳細ページ */
body.single{
}
body.single figure{
/*    max-width: 560px;
   width: max-content; */
   margin: 0 auto 1rem;
   text-align: center;
}
body.single .movie_banner{
   text-align: center;
   margin-bottom: 50px;
}

/* -----------------------------------------------------------------------------
/* 年別お知らせアーカイブページ */
body.archive section .news-info .cat.news {
    background-color: #ef7b7d;
}

body.archive section .news-info .cat.covid19 {
    background-color: #d2af1b;
}

/*** 下層 院長ブログ ***/
.accordion-button:not(.collapsed){
    background-color: #F2EDEB;
	color: #000;
}
.accordion-body .btn-outline-secondary {
    color: #000;          /* 文字色 */
    border-color: #000;   /* 枠線の色 */
}
.accordion-body .btn-outline-secondary:hover {
    color: #fff;          /* 文字色 */
    background-color: #000; /* 背景色 */
    border-color: #000;
}
.doctor_blog .blog-category{
	padding: 1.5em;
    background-color: #F2EDEB;
    margin-top: 5.5em;
    font-size: .8em;
}

#collapseCategory li.active a,
#collapseArchive li.active a {
    background: #000;
    color: white;
}


/* iPad表示時 */
@media (min-width: 576px) {
	footer .footer-copy{
        font-size: 0.8em;
        margin: 0 calc(50% - 50vw);
        width: 100vw;
        display: flex;
        justify-content: space-around;
        border-top: dashed #ccc;
        margin-top: 2rem;
        padding-top: 0.7rem;
        padding-bottom: 15px;
        margin-bottom: 55px;
	}
}


/* pc表示時 */
@media (min-width: 767px) {
	body{
/* 		height: 100svh;
        overflow: hidden; */
	}
	body.page main,
	body.home main{
		
	}
	main{
        height: inherit;
	}
	body.error404 main{
/* 		margin-top: 66px; */
	}
	.main-slide .swiper {
        border-radius: 6px;
        height: 400px;
	}
	.main-slide .swiper-slide {
/*     height: 400px; */
}
	.main-slide .swiper .swiper-wrapper .swiper-slide img{
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
	}
	.home .important{
		margin-top: 60px;
	}
	.home .slide-inner{
	margin-top: 0px;
	}
	header .navbar{
        background-color: transparent !important;
	}
	footer .footer-info{
		
	}
	main{
		padding-bottom: 100px;
	}
/*
	footer .footer-copy{
		padding-bottom: 40px;
	}
*/
	.inner{
    padding: 0 3.5rem;
}
	.page .main-slide{
		display: block;
	}
	
	/*** header ***/
	.nav-grid {
    grid-template-columns: 1fr 1fr;
  }


}


/*** footer ***/
