@charset "utf-8";
/* 480px以上は写さない */
@media (min-width: 480px) {
  .sp-only {
    display: none !important;
  }
  .sp-mv {
    display: none !important;
  }
  .sub-mv-sp {
    display: none !important;
  }
}
@media (min-width: 960px) {
  .tb-only {
    display: none !important;
  }
  .tb-mv {
    display: none !important;
  }
}

@media screen and (max-width: 1500px) {
  .content-area {
    flex: 2;
  }
}

@media screen and (max-width: 1100px) {
  .content-area {
    flex: 1.5;
  }
}

/* 960px以下に適用されるCSS（タブレット用） */
@media screen and (max-width: 960px) {
  body {
    font-size: 16px;
  }
  .pc-only {
    display: none !important;
  }
  .cp {
    font-size: 20px;
    width: 70%;
  }
  .f-45 {
    font-size: 30px;
  }
  .f-60 {
    font-size: 40px;
  }
  .cp-top {
    padding-bottom: 0;
  }
  .f-30 {
    font-size: 24px;
  }
  .news-content {
    margin: 30px auto 0;
  }
  #info {
    flex-direction: column;
  }
  .info-wrap,
  #info .info-wrap,
  #info .blog {
    width: 100%;
  }
  .accordion-001,
  .accordion-002 {
    max-width: 700px;
  }
  .accordion-001 summary,
  .accordion-002 summary {
    padding: 1em;
    font-size: 24px;
  }
  .accordion-002 summary::after {
    border-radius: calc(16 / 1299 * 100vw);
    width: calc(160 / 1299 * 100vw);
    height: calc(31 / 1299 * 100vw);
  }
  .fea01::before,
  .fea02::before,
  .fea03::before {
    height: calc(560 / 1299 * 100vw);
  }
  .fea-content {
    padding-top: 60px;
    padding-bottom: 70px;
  }
  .fea-inner {
    width: 60%;
    padding-left: calc(40 / 1299 * 100vw);
  }
  .fea-txtbox {
    padding-top: 45px;
    padding-bottom: 20px;
  }
  .fea-txtbox .ttl {
    padding-bottom: 30px;
  }
  .fea-txtbox .txt {
    width: 90%;
  }
  .fea02-btm {
    padding: 0px 0 30px;
  }
  .fea02-btm .container {
    width: 95%;
  }
  .white.f-30.ttl {
    padding: 6px 0;
    font-size: 20px;
  }
  .fea04-img {
    padding: 0 0 20px;
  }
  .fea05 .container {
    width: 95%;
  }
  .fea05-item {
    width: 95%;
  }
  .fea05-txtbox {
    padding: 20px 0;
  }
  .fea05-txtbox .f-30 {
    font-size: 20px;
  }
  .link-btn {
    width: 40%;
  }
  .btn span {
    font-size: 16px;
  }
  #greeting {
    margin-bottom: 60px;
  }
  #greeting .flex {
    flex-direction: column;
  }
  #greeting .flex-2 {
    width: 100%;
  }
  #greeting::before {
    width: 60%;
    height: 45%;
  }
  #greeting::after {
    background-size: 95%;
  }
  .d-demo__item {
    width: calc(290vw / 6);
  }
  #top-medical {
    margin-top: 60px;
  }
  .medical-list {
    width: 100%;
    margin: 20px auto;
  }
  .list {
    margin-top: 40px;
  }
  .list-name {
    padding: 10px 0;
  }
  ul.list-explain {
    padding-top: 10px;
  }
  .list-explain li {
    margin-bottom: 10px;
    padding-left: 0px;
  }
  .medical-btm {
    padding-top: 50px;
  }
  .med-btm.flex {
    flex-direction: column-reverse;
  }
  .med-btm-inner,
  .med-img {
    width: 100%;
  }
  .med-btm-inner .txtbox {
    width: 85%;
    padding-top: 50px;
    padding-bottom: 20px;
  }
  .med-point {
    bottom: 240px;
    right: 17%;
    width: 32%;
  }
  .med-point.med07 {
    left: -14%;
  }
  #contact {
    padding: 50px 0;
  }
  .contact-bg {
    padding: 30px 0;
    width: 90%;
  }
  .f-40 {
    font-size: 30px;
  }
  .contact-wrap {
    width: 95%;
    margin: 20px auto;
  }
  .contact-inner {
    width: 90%;
    padding: 40px 0;
  }
  .recruit-btn {
    width: 80%;
    margin: 20px auto;
  }
  .f-25 {
    font-size: 20px;
  }
  #top-recruit::after {
    height: 140px;
  }
  .footer-top {
    padding: 50px 0;
  }
  .footer-top .flex {
    flex-direction: column;
  }
  .footer-top .flex-2 {
    width: 100%;
  }
  .footer-bnr {
    flex-direction: row !important;
  }
  .page-ttl {
    padding: 25px 0;
  }
  .f-50 {
    font-size: 40px;
  }
  .title {
    padding: 25px 0;
    border-top: 3px solid #707070;
    border-bottom: 3px solid #707070;
  }
  .title::before {
    top: 7px;
  }
  .title::after {
    bottom: 7px;
  }
  .content {
    padding-top: 50px;
  }
  .content-ttl {
    padding-bottom: 16px;
    margin-bottom: 30px;
  }
  #biz-hour .flex,
  #access .flex,
  #doctor .flex {
    flex-direction: column;
  }
  #biz-hour .flex-2,
  #access .flex-2,
  #doctor .flex-2 {
    width: 100%;
    margin-bottom: 20px;
  }
  .access-ttl {
    padding: 15px 0;
  }
  .access-wrap {
    padding: 30px 0;
  }
  .name {
    width: 40%;
  }
  .payment-item {
    width: 45%;
  }
  .shouni-kyousei {
    width: 90%;
    margin: 50px auto 0;
    padding: 30px 0 40px;
  }
  .inner {
    padding: 30px 0;
  }
  .check {
    width: 100%;
    padding-top: 20px;
  }
  .flex-2 {
    width: 48%;
  }
  .price {
    width: 95%;
    margin: 30px auto;
  }
  .price dt {
    width: 320px;
  }
  .price dd {
    width: calc(100% - 320px);
  }
  .flow-flex {
    padding-bottom: 20px;
  }
  .flow-num {
    width: 65px;
    height: 65px;
    line-height: 65px;
  }
  .recruit-list dt {
    width: 100px;
  }
  .recruit-list dd {
    width: calc(100% - 100px);
  }
  .slider,
  .slider-item {
    height: 55vh;
  }
  .point {
    width: 100%;
  }
  .points-3 .ttl {
    font-size: 20px;
  }
  .home-merit ul li::before {
    width: 25px;
    height: 25px;
  }
  .home-merit ul li {
    width: 50%;
    padding-left: 30px;
  }
}

@media screen and (max-width: 800px) {
  .news-category {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .main-content {
    display: block;
  }

  .sidebar {
    margin-top: 30px;
    border-top: 1px solid #e0e0e0;
  }

  .category-list h3 {
    margin-top: 20px;
    margin-left: -20px;
  }

  .category-list {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .category-item:first-of-type .category-count {
    margin-left: 5px;
  }

  .category-link-news {
    margin-left: -42px;
  }
}

@media screen and (max-width: 768px) {
  .news-item {
    display: block;
  }
  #news {
    padding: 50px 0 30px 0;
  }
  .news-detail {
    display: block;
  }
  .news-single-date {
    font-size: 16px;
  }
  .news-content-detail {
    font-size: 16px;
  }
  .news-single {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .blog-single {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .blog-single-date,
  .blog-content-detail {
    font-size: 16px;
  }
}

@media screen and (max-width: 650px) {
  .blog-item a {
    display: block;
  }
}

/* 480px以下に適用されるCSS（スマホ用） */
@media screen and (max-width: 480px) {
  .tb-mv {
    display: none !important;
  }
  .sub-mv-pc {
    display: none !important;
  }
  .sp-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: fixed;
  }
  .nav_wrapper {
    position: fixed;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    bottom: 0;
  }
  .nav_wrapper div:first-child {
    border-left: 1px solid #b1a2c1;
  }
  .nav_wrapper div {
    width: 25%;
    display: flex;
    background: #e5dcee;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #b1a2c1;
    border-top: 1px solid #b1a2c1;
  }
  .nav_wrapper a {
    padding: 10px;
  }
  #page_top {
    width: 50px;
    height: 50px;
    right: 9px;
    bottom: 80px;
  }
  #page_top a {
    width: 50px;
    height: 50px;
  }
  .header-logo {
    width: 40%;
  }
  .cp {
    font-size: 16px;
    width: 85%;
  }
  .f-45 {
    font-size: 25px;
  }
  .f-60 {
    font-size: 35px;
  }
  .cp-btm li {
    margin-bottom: 10px;
  }
  .container {
    width: 85%;
  }
  .info-inner,
  .blog-inner {
    width: 100%;
  }
  .info-inner::before,
  .blog-inner::before {
    background-size: 60%;
    left: 0;
  }
  #covid19,
  #cancel-policy {
    padding: 2rem 0;
  }
  .accordion-001,
  .accordion-002 {
    max-width: 350px;
  }
  .accordion-001 summary,
  .accordion-002 summary {
    font-size: 18px;
    text-align: center;
  }
  .accordion-open {
    padding: 1rem;
  }
  .covid19-list {
    width: 50%;
    padding: 10px 0;
  }
  .covid19-list span {
    font-size: 14px;
  }
  .accordion-002 summary::after {
    border-radius: calc(22 / 750 * 100vw);
    width: calc(224 / 750 * 100vw);
    height: calc(25 / 750 * 100vw);
  }
  .fea-ttl-txt {
    max-width: 350px;
    font-size: 19px;
  }
  .fea01::before,
  .fea02::before,
  .fea03::before {
    height: calc(404 / 750 * 100vw);
    width: 100%;
  }
  .fea-inner {
    width: 100%;
    padding-left: 0;
    max-width: calc(702 / 750 * 100vw);
    margin-left: auto;
    margin-right: auto;
  }
  .fea-content {
    padding-top: 250px;
  }
  .f-30 {
    font-size: 20px;
  }
  .txt p {
    margin-bottom: 15px;
  }
  .flex {
    flex-direction: column;
  }
  .flex-2,
  .flex-3 {
    width: 100%;
    margin-bottom: 20px;
  }
  .fea-bg {
    background-image: url("../img/top/fea_bg_sp.png");
  }
  .fea04 {
    padding-top: 20px !important;
  }
  .fea04-inner::after {
    height: 98%;
  }
  .fea05-ttl {
    padding-top: 0;
  }
  .fea05 {
    padding-bottom: 30px;
  }
  .clinic-link {
    margin: 60px auto;
  }
  .link-btn {
    width: 65%;
  }
  #greeting {
    padding-top: 40px;
    margin-bottom: 40px;
  }
  #greeting::before {
    width: 65%;
    height: 25%;
  }
  .doctor {
    padding: 10px;
    width: 70%;
  }
  .top-ttl {
    font-size: 50px;
  }
  .greeting-ttl::after {
    width: 65%;
  }
  .d-demo__item {
    width: calc(400vw / 6);
  }
  #top-medical {
    margin-top: 40px;
  }
  .f-25 {
    font-size: 17px;
  }
  .f-40 {
    font-size: 27px;
  }
  .med-ttl span {
    font-size: 25px;
  }
  .med-point {
    bottom: 255px;
    right: 28%;
    width: 52%;
  }
  .med-point.med07 {
    left: -25%;
    bottom: 230px;
  }
  .med09 {
    bottom: 230px;
  }
  .br-blue::after {
    border-left: 18px solid transparent;
    border-bottom: 18px solid #066c9d;
  }
  .br-pink::after {
    border-left: 18px solid transparent;
    border-bottom: 18px solid #f4aeb8;
  }
  .br-purple::after {
    border-left: 18px solid transparent;
    border-bottom: 18px solid #b1a2c1;
  }
  .contact-inner {
    width: 95%;
    padding: 20px 0;
  }
  .contact-wrap::before {
    height: 97%;
  }
  .contact-link .tel,
  .contact-link .web {
    width: 100%;
    margin-bottom: 20px;
  }
  .f-50 {
    font-size: 30px;
  }
  #policy,
  #safety,
  #biz-hour,
  #access {
    padding-top: 50px;
  }
  .content {
    padding-top: 30px;
  }
  .footer-web {
    width: 65%;
  }
  .access-wrap {
    padding: 25px 0;
    width: 85%;
  }
  .name {
    width: 55%;
  }
  .doctor-img::before {
    width: 97%;
  }
  .txt dt {
    width: 30%;
  }
  .txt dd {
    width: 70%;
  }
  .payment-item {
    width: 80%;
  }
  .shouni-kyousei-txt {
    margin: 30px auto;
  }
  .border-btm {
    padding-bottom: 0;
  }
  .price dt,
  .recruit-list dt {
    width: 100%;
    border-right: none;
    padding: 15px 0;
  }
  .price dd,
  .recruit-list dd {
    width: 100%;
  }
  .flow-flex {
    flex-direction: column;
  }
  .flow-txtbox {
    margin-left: 10px;
    width: 100%;
    margin-top: 10px;
  }
  .flow-num {
    width: 55px;
    height: 55px;
    line-height: 55px;
  }
  .faq summary {
    padding: 1rem;
  }
  .flow {
    padding-bottom: 50px;
  }
  #dental-dock,
  .flow {
    padding-top: 50px;
  }
  .section {
    margin: 50px auto 80px;
  }
  .slider,
  .slider-item {
    height: 55vh;
  }
  .points-3 .ttl {
    font-size: 18px;
  }
  .home-merit {
    width: 100%;
  }
  .home-merit ul li {
    width: 100%;
  }
  .nav-link {
    padding: 10px 15px;
  }
  .blog-detail {
    display: inline;
  }
  .blog-image {
    text-align: center;
  }
  .blog-image img {
    display: inline;
  }
}
