@charset "utf-8";
/* Generic Child-joint : front-page ONLY
    フロントページのみに適用されるスタイル
　　　-body
　　　-コンテナ div id="container" #container
　　　-共通要素 （ .btn.more-link ） 
    　-メインビジュアルスライダーdiv id="main-vis" #main-vis （bxslider）
    　-各コンテンツ section
　　　-メディアクエリ（ブレイクポイントごと）
*/
/*
    font-family: "IBM Plex Sans", sans-serif;
    font-family: "Noto Sans JP", sans-serif;
    font-family: "Noto Serif JP", serif;
*/
/* Color 
Blue : #3778ac rgba(55,120,172,1.00)
Red : #d5413d rgba(213,65,61,1.00)
*/

/* ローディングアニメーション
---------------------------------------------------- */
/* ローディング画面 */
#loading {
    align-items: center;
    background-color: rgba(55,120,172,1.00);
    display: flex;
    height: 100vh;
    justify-content: center;
    position: fixed;
      top: 0;
      left: 0;
    transition: all 1s;
    z-index: 10000;
    width: 100vw;
}
.loader {
    width: 45px;
    aspect-ratio: 1;
    --c:no-repeat linear-gradient(rgba(213,65,61,1.00) 0 0);
    background: 
        var(--c) 0    0,
        var(--c) 0    100%, 
        var(--c) 50%  0,  
        var(--c) 50%  100%, 
        var(--c) 100% 0, 
        var(--c) 100% 100%;
    animation: l12 1s infinite;
}
@keyframes l12 {
    0%,100%{background-size:20% 50%}
    16.67% {background-size:20% 30%, 20% 30%, 20% 50%, 20% 50%, 20% 50%, 20% 50%}
    33.33% {background-size:20% 30%, 20% 30%, 20% 30%, 20% 30%, 20% 50%, 20% 50%}
    50%    {background-size:20% 30%, 20% 30%, 20% 30%, 20% 30%, 20% 30%, 20% 30%}
    66.67% {background-size:20% 50%, 20% 50%, 20% 30%, 20% 30%, 20% 30%, 20% 30%}
    83.33% {background-size:20% 50%, 20% 50%, 20% 50%, 20% 50%, 20% 30%, 20% 30%}
}
.loaded {
    opacity: 0;
    visibility: hidden;
}

/* コンテナ div id="container" #container
---------------------------------------------------- */
#container {
    background-color: transparent;
    margin: 0 auto;
    width: 100%;
}
/*メインコンテンツ - メインカラム*/
main.content {
    float: none;
    margin: 0;
    padding: 00;
    width: 100%;
}
/* 共通要素
---------------------------------------------------- */
/* .btn.more-link */
p.btn.more-link {}
p.btn.more-link a {
    align-items: center;
    background-color: rgba(55,120,172,1.00);
    border: rgba(55,120,172,1.00) solid 1px;
    border-radius: 5px;
    color: rgba(255, 255, 255, 1.0);
    display: inline-flex;
    justify-content: center;
    line-height: normal;
    padding: .5em 2em;
    text-decoration: none;
}
p.btn.more-link a:hover {
    background-color: rgba(255, 255, 255, 1.0);
    color: rgba(55,120,172,1.00);
}
/* section / .section-wrap --- */
#container .content section {
    background-color: rgba(255, 255, 255, 0.00);
}
section .section-wrap {
    background-color: rgba(255, 255, 255, 0.00);
    margin: 0 auto;
    width: 1240px;
}
/* header / h2 --- */
section .section-wrap header {
    align-items: center;
    display: flex;
    justify-content: center;
    line-height: 1;
    margin: 0 0 2rem;
}
section .section-wrap header h2 {
    color: rgba(55,120,172,1.00);
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.75rem;
    font-weight: normal;
    margin: 0;
}
section .section-wrap header::before, section .section-wrap header::after {
    background-color: rgba(55,120,172,1.00);
    content: "";
    height: 56px;
    width: 2px;
}
section .section-wrap header::before {
    margin-right: 1.5rem;
    transform: rotate(30deg);
}
section .section-wrap header::after {
    margin-left: 1.5rem;
    transform: rotate(30deg);
}
/* .entry-list（お知らせ新着表示） --- */
.entry-list .section-wrap .article-list {
    margin: 0 auto;
}
.entry-list .section-wrap .article-list article {
    align-items: center;
    background-color: #fff;
    border-bottom: #ddd dotted 1px;
    display: flex;
    font-family: "Noto Sans JP", sans-serif;
    justify-content: flex-start;
    margin: 0;
    padding: 1rem 0;
    position: relative;
    transition: .3s;
}
.entry-list .section-wrap .article-list article:first-child {
    border-top: #ddd dotted 1px;
}
.entry-list .section-wrap .article-list article::after {
    color: rgba(25, 68, 142, 1.00);
    content: '\e5df';
    display: inline-block;
    font-family: 'Material Icons';
    padding: 0;
}
.entry-list .section-wrap .article-list article:hover {
    background-color: #f7f7f7;
}
.entry-list .section-wrap .article-list article .entry-meta {
    color: #666;
    margin: 0;
}
/* --- 投稿日付 */
.entry-list .section-wrap .article-list article .entry-meta .entry-time {
    display: inline-block;
    padding: 0 0 0 .5em;
}
/* --- 投稿カテゴリ */
.entry-list .section-wrap .article-list article .entry-meta .entry-category {
    background-color:rgba(255,255,255,1.00);
    border: rgba(55,120,172,1.00) solid 1px;
    border-radius: 5px;
    color: #666;
    display: inline-block;
    line-height: 100%;
    margin: 0 0 0 .5em;
    padding: .15em 1em;
    text-align: center;
}
/* --- 投稿タイトル */
.entry-list .section-wrap .article-list article .entry-title {
    flex: 1;
    font-size: 1rem;
    font-weight: bold;
    padding: 0 0 0 1em;
}
.entry-list .section-wrap .article-list article .entry-title a {
    color: rgba(55,120,172,1.00);
    text-decoration: none;
}
.entry-list .section-wrap .article-list article .entry-title a::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    pointer-events: auto;
    content: "";
    background-color: rgba(0, 0, 0, 0);
}
.entry-list .section-wrap p.btn.more-link {
    margin: 2rem auto;
    text-align: center;
}

/* メインビジュアル section id="main-vis" #main-vis 
---------------------------------------------------- */
#main-vis {
    margin: 0;
    padding: 0;
    position: relative;
}
/* メインビジュアル - スライダー（bxslider）*/
/*  - スライダー（bxslider）：スタイルリセット*/
#main-vis .bx-wrapper {
    border: none;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    margin: 0;
    overflow: hidden;
    padding: 0;
}
#main-vis .bx-wrapper .bx-viewport {
    margin: 0 auto;
}
/*  - スライダー（bxslider）：スライド設定*/
#main-vis .bx-wrapper .bx-viewport .slider > div {
    height: fit-content;
    top: 0;
    position: relative;
}
/* メインビジュアル - コピー*/
#main-vis .catch{
    color: #fff;
    padding: 0 0 1rem;
    position: absolute;
        bottom: 0;
        left: 10vw;
    width: fit-content;
}
#main-vis .catch p {
    margin: 0;
}
#main-vis .catch p.lead {
    text-shadow: 0px 0px 6px rgba(0, 0, 0, 1);
}
#main-vis .catch p.sign {
    text-align: right;
}

/* 医師紹介・診療内容 section class="profile-wrap" .profile-wrap 
---------------------------------------------------- */
.profile-wrap {
    padding: 100px 0;
    position: relative;
}
.profile-wrap::before {
    background-color: rgba(55,120,172,.20);
    clip-path: polygon(100% 0%, 0% 100%, 0% 0%);
    content: "";
    display: block;
    height:100%;  /* 三角形の「脚」の長さ（縦方向） */
    position: absolute;
        top: 0;
        left: 0;
    width: 20vw;   /* 三角形の「脚」の長さ（横方向） */
    z-index: -2;
}
.profile-wrap::after {
    content: "Profile";
    color: #fff;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 5vmax;
    font-style: italic;
    font-weight: 200;
    position: absolute;
        top: 1rem;
        left: 1rem;
    text-align: right;
    z-index: -1;
}

/* 医師紹介 section id="profile" #profile 
---------------------------------------------------- */
#container .content section#profile {
    padding: 0 0 100px;
}
#profile .section-wrap .contents {
    display: flex;
    justify-content: space-between;
}
#profile .section-wrap .contents .photo {
    margin: 0;
    width: 40%;
}
#profile .section-wrap .contents .photo img {
    height: auto;
    width: 100%;
}
#profile .section-wrap .contents .profiles {
    padding: 1rem;
    width: 55%;
}
#profile .section-wrap .contents .profiles h4 {
    color: rgba(55,120,172,1.00);
    font-family: "Noto Serif JP", serif;
    font-size: 1.5rem;
    margin: 0 0 1rem;
}
#profile .section-wrap .contents .profiles h4 span{
    font-size: 1rem;
    padding: 0 1rem 0 0;
}
#profile .section-wrap .contents .profiles dl dt {
    color: rgba(55,120,172,1.00);
    padding: .5rem 0;
}

/* 診療内容 section id="treatment" #treatment 
---------------------------------------------------- */
#container .content section#treatment {}
#treatment .section-wrap .contents h3 {
    color: rgba(55,120,172,1.00);
    font-family: "Noto Serif JP", serif;
    text-align: center;
}
#treatment .section-wrap .contents h4 {
    margin: 2rem auto;
    padding: 1rem;
    position: relative;
    text-align: center;
    width: fit-content;
}
#treatment .section-wrap .contents h4::before ,
#treatment .section-wrap .contents h4::after{
    content: "";
    display: block;
    height: 2rem;
    width: 4rem;
}
#treatment .section-wrap .contents h4::before{
    border-top: rgba(55,120,172,1.00) double 3px;
    border-left: rgba(55,120,172,1.00) double 3px;
    position: absolute;
        top: 0;
        left: -1rem;
}
#treatment .section-wrap .contents h4::after{
    border-bottom: rgba(55,120,172,1.00) double 3px;
    border-right: rgba(55,120,172,1.00) double 3px;
    position: absolute;
        bottom: 0;
        right: -1rem;
}
#treatment .section-wrap .contents > p {
    text-align: center;
}
#treatment .section-wrap .contents .treatment-list {
    align-items: center;
    display: flex;
    justify-content: center;
}
#treatment .section-wrap .contents .treatment-list li{
    align-items: center;
    display: flex;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    padding: 1rem;
}
#treatment .section-wrap .contents .treatment-list li::before {
    content: "";
    background: url("../images/front/treatment/ico_treatment.png") no-repeat center;
    background-size: contain;
    display: block;
    height: 2rem;
    margin: 0 1rem 0 0 ;
    width: 2rem;
}

/* お知らせ section id="news" #news 
---------------------------------------------------- */
#container .content section#news {
    background: url("../images/front/news/bg_news.jpg") no-repeat center;
    background-size: cover;
    padding: 100px 0;
    position: relative;
}
#news .section-wrap {
    background-color: rgba(255,255,255,1.00);
    padding: 1rem;
    width: 960px;
}
#news .section-wrap .article-list{
    width: 80%;
}

/* メディア section id="media" #media 
---------------------------------------------------- */
#container .content section#media {
    padding: 100px 0;
    position: relative;
}
#container .content section#media::before {
    background-color: rgba(55,120,172,.20);
    clip-path: polygon(100% 100%, 0% 100%, 100% 0%);
    content: "";
    display: block;
    height:100%;  /* 三角形の「脚」の長さ（縦方向） */
    position: absolute;
        bottom: 0;
        right: 0;
    width: 20vw;   /* 三角形の「脚」の長さ（横方向） */
    z-index: -2;
}
#container .content section#media::after {
    content: "Media";
    color: #fff;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 5vmax;
    font-style: italic;
    font-weight: 200;
    position: absolute;
        bottom: 1rem;
        right: 1rem;
    text-align: right;
    z-index: -1;
}
#media .section-wrap {
    width: 100%;
}
#media .section-wrap .contents > p {
    text-align: center;
}
#media .section-wrap .contents .media_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
#media .section-wrap .contents .media_list li{
    background-color: rgba(255,255,255,1.00);
    margin: 0 1%;
    width: 20%;
}
#media .section-wrap .contents .media_list li a {
    align-items: center;
    border: 0 solid #fff;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    padding: 1rem;
    position: relative;
}
#media .section-wrap .contents .media_list li a::before,
#media .section-wrap .contents .media_list li a::after,
#media .section-wrap .contents .media_list li a span::before,
#media .section-wrap .contents .media_list li a span::after {
    content: '';
    display: block;
    position: absolute;
    background-color: rgba(55,120,172,1.00);
}
#media .section-wrap .contents .media_list li a::before {
    right: 0;
    top: 0;
    height: 2px;
    transition: width 200ms;
    width: 0%;
}
#media .section-wrap .contents .media_list li a::after {
    right: 0;
    top: 0;
    height: 0%;
    transition: height 200ms;
    width: 2px;
}
#media .section-wrap .contents .media_list li a span::before {
    left: 0;
    bottom: 0;
    height: 2px;
    transition: width 200ms;
    width: 0%;
}
#media .section-wrap .contents .media_list li a span::after {
    left: 0;
    bottom: 0;
    height: 0%;
    transition: height 200ms;
    width: 2px;
}
#media .section-wrap .contents .media_list li a:hover::before ,
#media .section-wrap .contents .media_list li a:hover span::before {
  width: 100%;
}
#media .section-wrap .contents .media_list li a:hover::after ,
#media .section-wrap .contents .media_list li a:hover span::after {
  height: 100%;
}


/* メディアクエリ（ブレイクポイントごと）
---------------------------------------------------- */
@media(max-width:1366px) {}
@media(max-width:1260px) {
/* 共通要素
---------------------------------------------------- */
    /* section / .section-wrap --- */
    section .section-wrap {
        width: 90%;
    }

/* メインビジュアル section id="main-vis" #main-vis 
---------------------------------------------------- */
    /* メインビジュアル - コピー*/
    #main-vis .catch{
        left: 10vw;
        width: 80vw;
    }
    #main-vis .catch p br {
        display: none;
    }
    
/* お知らせ section id="news" #news 
---------------------------------------------------- */
    #news .section-wrap {
        width: 90%;
    }
}
@media(max-width:1024px) {
    /* 共通要素
---------------------------------------------------- */
    /* header / h2 --- */
    section .section-wrap header h2 {
        font-size: 1.5rem;
    }
    section .section-wrap header::before, section .section-wrap header::after {
        height: 28px;
    }
    /* .entry-list（お知らせ新着表示） --- */
    .entry-list .section-wrap .article-list article {
        border-bottom: #ccc dotted 1px;
        flex-wrap: wrap;
        padding: .5rem 0;
    }
    .entry-list .section-wrap .article-list article::after {
        display: none;
    }
    .entry-list .section-wrap .article-list article .entry-meta, .entry-list .section-wrap .article-list article .entry-title {
        width: 100%;
    }
    .entry-list .section-wrap .article-list article .entry-meta {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
    }
    .entry-list .section-wrap .article-list article .entry-meta .entry-time {
        padding: 0;
        width: auto;
    }
    .entry-list .section-wrap .article-list article .entry-title {
        padding: .5em 0 0;
    }

/* メインビジュアル section id="main-vis" #main-vis 
---------------------------------------------------- */
    /* メインビジュアル - コピー*/
    #main-vis .catch{
        background-image: linear-gradient(-45deg, rgba(55,120,172,.85), rgba(0,0,0,.85));
        padding: 1rem;
        position: relative;
            bottom: 0;
            left: 0;
        width: 100%;
    }
    #main-vis .catch p.lead {
        text-shadow: none;
    }
    
/* 医師紹介 section id="profile" #profile 
---------------------------------------------------- */
    #profile .section-wrap .contents {
        align-items: center;
        flex-direction: column;
    }
    #profile .section-wrap .contents .profiles {
        width: 100%;
    }

/* 診療内容 section id="treatment" #treatment 
---------------------------------------------------- */
    #treatment .section-wrap .contents .treatment-list {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }
    #treatment .section-wrap .contents .treatment-list li {
        padding: .5rem;
    }
    #treatment .section-wrap .contents .treatment-list li br {
        display: none;
    }
    
/* お知らせ section id="news" #news 
---------------------------------------------------- */
    #news .section-wrap {
        padding: 2rem;
    }
    #news .section-wrap .article-list{
        width: 100%;
    }
}
@media(min-width:769px) {}
@media(max-width:768px) {
/* メディア section id="media" #media 
---------------------------------------------------- */
    #container .content section#media::before {
        width: 40vw;   /* 三角形の「脚」の長さ（横方向） */
    }
    #container .content section#media::after {
        bottom: .5rem;
        right: .5rem;
    }
    #media .section-wrap .contents .media_list li{
        width: 48%;
    }
}
@media(max-width:767px) {}
@media(max-width:576px) {
/* 共通要素
---------------------------------------------------- */
    /* .btn.more-link */
    p.btn.more-link {}
    p.btn.more-link a {
        border-radius: 1em;
        height: 2em;
        padding: .25em 1em;
    }
    /* .entry-list（お知らせ新着表示） --- */
    .entry-list .section-wrap .article-list article .entry-title {
        line-height: 120%;
    }
    
/* 医師紹介・診療内容 section class="profile-wrap" .profile-wrap 
---------------------------------------------------- */
    .profile-wrap {
        padding: 100px 0 50px;
    }
    .profile-wrap::before {
        width: 60vw;   /* 三角形の「脚」の長さ（横方向） */
    }

/* 医師紹介 section id="profile" #profile 
---------------------------------------------------- */
    #container .content section#profile {
        padding: 0 0 50px;
    }
    #profile .section-wrap .contents .photo {
        width: 100%;
    }
    
/* 診療内容 section id="treatment" #treatment 
---------------------------------------------------- */
    #treatment .section-wrap .contents h3 {
        text-align: left;
    }
    #treatment .section-wrap .contents > p {
        text-align: left;
    }
    #treatment .section-wrap .contents > p br {
        display: none;
    }
    #treatment .section-wrap .contents .treatment-list {
        align-items: flex-start;
    }
    #treatment .section-wrap .contents .treatment-list li{
        font-size: 1rem;
    }
    #treatment .section-wrap .contents .treatment-list li::before {
        height: 1.5rem;
        margin: 0 .5rem 0 0 ;
        width: 1.5rem;
    }    

/* お知らせ section id="news" #news 
---------------------------------------------------- */
    #container .content section#news {
        padding: 50px 0;
    }
    
/* メディア section id="media" #media 
---------------------------------------------------- */
    #container .content section#media {
        padding: 50px 0 ;
    }
    #container .content section#media::before {
        width: 60vw;   /* 三角形の「脚」の長さ（横方向） */
    }
    #media .section-wrap .contents > p {
        text-align: left;
    }    
    #media .section-wrap .contents .media_list li{
        margin: 1rem 0;
        width: 80%;
    }
    #media .section-wrap .contents .media_list li a {
        padding: .5rem;
    }
}
@media(max-width:350px) {}