@charset "utf-8";


/* ----------------------------------------------------------------------
	header
---------------------------------------------------------------------- */

/* l-home-header */
.l-home-header-column {
    position: relative;
    padding: 80px 0 100px;
    margin: 0 auto;
    display: flex;
    min-width: 1240px;
    max-width: 1600px;
}

.l-home-header {
    position: relative;
    padding-left: 65px;
    width: 320px;
}

@media screen and (max-width: 1500px) {
    .l-home-header-column { padding: 100px 0 120px; }
}

@media screen and (max-width: 990px) {
    .l-home-header-column {
        padding: 0 0 16vw;
        display: block;
        min-width: inherit;
        max-width: inherit;
    }

    .l-home-header {
        position: relative;
        padding-left: 0;
        width: auto;
    }
}


/* l-home-header-nav */
.l-home-header-nav {
    position: absolute;
    top: 50%;
    left: 80px;
    transform: translateY(-30%);
}
.l-home-header-nav nav > ul  { display: block; }
.l-home-header-nav nav > ul > li { margin: 0 0 1.4em; }
.l-home-header-nav nav > ul > li > a {
    text-align: left;
    width: 160px;
}

@media screen and (max-width: 1500px) {
    .l-home-header-nav nav > ul > li { margin: 0 0 1em; }
}


/* l-home-header-tel */
.l-home-header-tel {
   position: absolute;
   left: 80px;
   bottom: -10px;
}


@media screen and (max-width: 1240px) {
    .l-home-header {
        width: 280px;
        padding-left: 45px;
    }
    
    .l-home-header-nav,
    .l-home-header-tel { left: 60px; }
}

@media screen and (max-width: 990px) {
    .l-home-header {
        width: auto;
        padding-left: 0;
    }
    
    .l-home-header-nav,
    .l-home-header-tel { display: none; }
}


/* l-home-mainimg */
.l-home-mainimg {
    position: relative;
    width: calc(100% - 640px);
}

.l-home-mainimg__slider img {
    width: 100%;
    height: 800px;
    object-fit: cover;
    
}

@media screen and (max-width: 1500px) {
    .l-home-mainimg__slider img { height: 700px; }
}

@media screen and (max-width: 1240px) {
    .l-home-mainimg { width: calc(100% - 560px); }
}

@media screen and (max-width: 990px) {
     .l-home-mainimg {
         margin: 0 30px;
         width: auto;
    }
     
    .l-home-mainimg__slider img { height: calc(100svh - 80px - 42.666vw); }
}

@media screen and (max-width: 990px) and  (orientation: landscape) {
    .l-home-mainimg__slider img { height: 600px; }
}


.l-home-mainimg .slick-dotted.slick-slider { margin-bottom: 0; }

.l-home-mainimg .slider-dots {
    position: absolute;
	left: 50%;
    transform: translateX(-50%);
    margin-left: -58px;
    bottom: -22px;
    width: 46px;
    height: 46px;
}

.l-home-mainimg .slider-dots li {
    position: relative;
    z-index: 1;
	background: var(--color-orange);
	text-align: center;
    width: 46px;
	height: 46px;
    box-shadow: 0 0 0.6rem rgb(0 0 0 / 8%);
	overflow: hidden;
    border-radius: 50%;
    display: none;
}

.l-home-mainimg .slider-dots li::before {
    content: "";
	display: block;
	position: absolute;
	top: 0;
	left: -23px;
	width: 46px;
	height: 46px;
	background: var(--color-white);
	transform-origin: right 23px;
	z-index: 2;
}

.l-home-mainimg .slider-dots li::after {
    content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 23px;
	width: 46px;
	height: 46px;
	background: var(--color-white);
	transform-origin: left 23px;
	z-index: 3;
}

.l-home-mainimg .slider-dots li.slick-active { display: block; }

.l-home-mainimg .slider-dots li.slick-active::before { animation: rotate-circle-left 5s linear forwards; }

.l-home-mainimg .slider-dots li.slick-active::after { animation: rotate-circle-right 5s linear forwards; }

.l-home-mainimg .slider-dots button {
	position: absolute;
	top: 2px;
	left: 2px;
    color: var(--color-black);
    font-family: var(--font-en);
	font-weight: 600;
	background: var(--color-white);
    width: 42px;
	height: 42px;
    border: none;
	border-radius: 50%;
	z-index: 4;
}

@keyframes rotate-circle-right {
	0%   {
		transform: rotate(0deg);
		background: var(--color-white);
	}
	50%  {
		transform: rotate(180deg);
		background: var(--color-white);
	}
	50.01% {
		transform: rotate(360deg);
		background: var(--color-orange);
	}
	100% {
		transform: rotate(360deg);
		background: var(--color-orange);
	}
}

@keyframes rotate-circle-left {
	0%   { transform: rotate(0deg); }
	50%  { transform: rotate(0deg); }
	100% { transform: rotate(180deg); }
}

@media screen and (max-width: 990px) {
    .l-home-mainimg .slider-dots {
        margin-left: -48px;
        bottom: -17px;
        width: 36px;
        height: 36px;
    }

    .l-home-mainimg .slider-dots li {
        width: 36px;
        height: 36px;
    }

    .l-home-mainimg .slider-dots li::before {
        left: -18px;
        width: 36px;
        height: 36px;
        transform-origin: right 18px;
    }

    .l-home-mainimg .slider-dots li::after {
        left: 18px;
        width: 36px;
        height: 36px;
        transform-origin: left 18px;
    }

    .l-home-mainimg .slider-dots button {
        top: 1px;
        left: 1px;
        width: 34px;
        height: 34px;
    }
}


.l-home-mainimg__slider-navi {
    position: absolute;
    left: 50%;
    bottom: -23px;
    transform: translateX(-50%);
    margin-left: 58px;
    font-family: var(--font-en);
	font-weight: 600;
	width: 46px;
	height: 46px;
	text-align: center;
	line-height: 46px;
	background: var(--color-white);
	border-radius: 50%;
	box-shadow: 0 0 0.6rem rgb(0 0 0 / 8%);
}
.l-home-mainimg__slider-navi::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -50px;
    transform: translateY(-50%);
	background: var(--color-white);
    width: 30px;
	height: 2px;
}

@media screen and (max-width: 990px) {
    .l-home-mainimg__slider-navi {
        margin-left: 48px;
        bottom: -18px;
        width: 36px;
        height: 36px;
        line-height: 36px;
    }
    .l-home-mainimg__slider-navi::before { left: -45px; }
}


/* l-home-maincatch */
.l-home-maincatch {
    position: absolute;
    top: 140px;
    right: -320px;
    width: 320px;
}

.l-home-maincatch__txt {
    background: var(--color-bg);
    text-align: center;
}

.l-home-maincatch__txt img { display: inline-block; }

@media screen and (max-width: 1500px) {
    .l-home-maincatch { top: 80px; }
}

@media screen and (max-width: 1240px) {
    .l-home-maincatch {
        right: -280px;
        width: 280px;
    }
}

@media screen and (max-width: 990px) {
    .l-home-maincatch {
        top: 0;
        left: 0;
        right: inherit;
        width: 100%;
        height: 100%;
    }
    
    .l-home-maincatch__txt {
        position: relative;
        background: none;
        text-align: left;
        height: calc(100svh - 80px - 42.666vw);
    }
    
    .l-home-maincatch__txt-01 img {
        position: absolute;
        top: 8vw;
        left: 8vw;
        width: 25.333vw; 
    }
    
    .l-home-maincatch__txt-02 img {
        position: absolute;
        top: 8vw;
        left: 8vw;
        width: 25.333vw; 
    }
    
    .l-home-maincatch__txt-03 img {
        position: absolute;
        right: 8vw;
        bottom: 16vw;
        width: 34.666vw;
    }
        
    .l-home-maincatch__txt-04 img {
        position: absolute;
        top: 8vw;
        left: 8vw;
        width: 25.333vw; 
    }
    
    .l-home-maincatch__txt-05 img {
        position: absolute;
        left: 12vw;
        top: 8vw;
        width: 16vw;
    }
}

@media screen and (max-width: 990px) and  (orientation: landscape) {
    .l-home-maincatch__txt { height: 600px; }
}


/* l-home-header-side */
.l-home-header-side {
    position: relative;
    width: 320px;
}

@media screen and (max-width: 1240px) {
    .l-home-header-side { width: 280px; }
}

@media screen and (max-width: 990px) {
    .l-home-header-side { display: none; }
}


/* l-home-header-link */
.l-home-header-link {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 220px;
}

.l-home-header-link li { margin: 0 0 20px; }
.l-home-header-link li:last-child { margin: 0; }

.l-home-header-link li a {
    position: relative;
    color: var(--color-black);
    text-decoration: none;
    padding: 10px 0 0 86px;
    height: 70px;
    display: block;
}

.l-home-header-link li.l-home-header-link__reserve a { padding-top: 2px; }

.l-home-header-link li a:hover { opacity: 0.7; }

.l-home-header-link li a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 70px;
    height: 70px;
    border-radius: 100%;
    display: block;
}

.l-home-header-link li a::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: url("../img/icon_a_gray.svg")  center center no-repeat;
    background-size: 17px 11px;
    width: 17px;
    height: 11px;
    display: block;
    transition: 0.2s;
}

.l-home-header-link li a:hover::after { right: -10px; }

.l-home-header-link__access a::before {
    background: url("../img/icon_access.svg") center center var(--color-orange) no-repeat;
    background-size: 26px 36px;
}

.l-home-header-link__hours a::before {
    background: url("../img/icon_hours.svg") center center var(--color-blue-gray) no-repeat;
    background-size: 36px 36px;
}

.l-home-header-link__reserve a::before {
    background: url("../img/icon_reserve.svg") center center var(--color-dark-gray) no-repeat;
    background-size: 36px 28px;
}

.l-home-header-link li a .font-en {
    color: var(--color-gray);
    font-size: 1.3rem;
    display: block;
}


/* l-home-header-bori-en */
.l-home-header-bori-en {
    position: absolute;
    left: 50%;
    bottom: -40px;
    transform: translateX(-50%);
    width: 1000px;
}

@media screen and (max-width: 990px) {
    .l-home-header-bori-en {
        left: 0;
        bottom: -3.2vw;
        transform: translateX(0);
        padding: 0 30px;
        width: 100%;
    }
    
    .l-home-header-bori-en img {
        width: 100%;
    }
}


/* l-home-header-scroll-down */
.l-home-header-scroll-down {
    position: absolute;
    right: 70px;
    bottom: -40px;
    height: 120px;
}

.l-home-header-scroll-down a {
  position: absolute;
  top: 50px;
  left: 22px;
  color: var(--color-black);
  font-size: 1.4rem;
  writing-mode: vertical-lr;
  text-decoration: none;
}

.l-home-header-scroll-down__brush,
.l-home-header-scroll-down__brush::before,
.l-home-header-scroll-down__brush::after {
    background: var(--color-black);
    width: 15px;
    height: 2px;
    display: block;
}

.l-home-header-scroll-down__brush {
    position: absolute;
    top: 11px;
    left: 7px;
}

.l-home-header-scroll-down__brush::before,
.l-home-header-scroll-down__brush::after {
    content: "";
    position: relative;
}

.l-home-header-scroll-down__brush::before {
    top: -7px;
    left: 0;
}

.l-home-header-scroll-down__brush::after {
    top: 5px;
    left: 0;
}

.l-home-header-scroll-down::before {
  content: "";
  position: absolute;
  top: 0;
  left: -6px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--color-blue);
  animation:
    circlemove 1.6s ease-in-out infinite,
    cirlemovehide 1.6s ease-out infinite;
}

@keyframes circlemove{
  0% { top: 25px; }
  100% { top: 106px; }
}

@keyframes cirlemovehide{
  0% { opacity: 0 }
  50% { opacity: 1; }
  80% { opacity: 0.9; }
  100% { opacity: 0; }
}

.l-home-header-scroll-down::after{
  content:"";
  position: absolute;
  bottom:0;
  left: 0;
  width: 2px;
  height: 120px;
  background: var(--color-black);
}

@media screen and (max-width: 990px) {
    .l-home-header-scroll-down {
        position: absolute;
        left: 15px;
        right: inherit;
        bottom: 40px;
        height: 120px;
    }
    
    .l-home-header-scroll-down a {
        top: inherit;
        bottom: 0;
  }
}


/* ----------------------------------------------------------------------
	 l-home-new
---------------------------------------------------------------------- */

.l-home-news {
    background: var(--color-white);
    padding: 160px 0;
}

.l-home-news-inner {
    position: relative;
    padding: 40px 100px;
    margin: 0 auto;
    max-width: 1100px;
    min-height: 220px;
    display: flex;
    justify-content: space-between;
}

.l-home-news-inner::before,
.l-home-news-inner::after {
    content: "";
    position: absolute;
    top: 0;
    width: 40px;
    height: 100%;
    border: 2px solid var(--color-black);
}

.l-home-news-inner::before {
    left: 0;
    border-right: none;
    border-radius: 10px 0 0 10px;
}

.l-home-news-inner::after {
    right: 0;
    border-left: none;
    border-radius: 0 10px 10px 0;
}

.l-home-news-ttl {
    color: var(--color-black);
    line-height: 1.4;
}

.l-home-news-ttl__en {
    font-size: 4rem;
}

.l-home-news-ttl__ja {
    font-size: 2rem;
    font-weight: normal;
}

.l-home-news-btn {
    position: absolute;
    left: 100px;
    bottom: 36px;
}

.l-home-news-list { width: 640px; }

.l-home-news-list li { margin: 0 0 40px; }
.l-home-news-list li:last-child { margin: 0; }

.l-home-news-list a { text-decoration: none; }

.l-home-news-list dl {
    display: flex;
    gap: 0 20px;
}

.l-home-news-list dl dt { color: var(--color-gray); }

@media screen and (max-width: 990px) {
    .l-home-news { padding: 16vw 15px 90px; }

    .l-home-news-inner {
        padding: 35px 30px;
        min-height: inherit;
        display: block;
    }

    .l-home-news-inner::before,
    .l-home-news-inner::after { width: 30px; }

    .l-home-news-ttl { margin: 0 0 1.4em; }

    .l-home-news-ttl__en { font-size: 3rem; }

    .l-home-news-ttl__ja { font-size: 1.8rem; }

    .l-home-news-btn {
       position: static;
       text-align: right;
    }

    .l-home-news-list {
        width: auto;
        margin: 0 0 30px;
    }

    .l-home-news-list li { margin: 0 0 20px; }

    .l-home-news-list dl { display: block; }
}


/* ----------------------------------------------------------------------
	 l-home-about
---------------------------------------------------------------------- */

.l-home-about {
    position: relative;
    text-align: center;
    padding: 30px 0 140px;
}

.l-home-about::before {
    content: "";
    position: absolute;
    top: -60px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-bg);
    width: 460px;
    height: 460px;
    border-radius: 100%;
    display: block;
}

.l-home-about-inner {
    position: relative;
    margin: 0 auto;
    width: 100%;
    max-width: 1500px;
}

.l-home-about-catch {
    background: url("../img/icon_family.svg") center top no-repeat;
    background-size: 104px 54px;
    color: var(--color-blue);
    padding: 70px 0 0;
    margin: 0 0 2em;
}

.l-home-about-catch__ja {
    font-size: clamp(2.2rem, 1.9vw, 2.9rem);
    letter-spacing: .15em;
    margin: 0 0 0.6em;
}

.l-home-about-catch__en { font-size: clamp(1.4rem, 1.14vw, 1.8rem); }

.l-home-about-txt { margin: 0 0 3em; }

.l-home-about-txt p {
    font-size: clamp(1.4rem, 1.14vw, 1.8rem);
    line-height: 2em;
    margin: 0 0 1em;
}

.l-home-about-txt p:last-child { margin: 0; }

.l-home-about-btn {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px 40px;
}

.l-home-about-btn li a { width: 240px; }

.l-home-about-ph01 {
    position: absolute;
    top: calc( ( 110 / 1400 ) * 100%);
    right: calc( ( 80 / 1400 ) * 100%);
    width: calc( ( 340 / 1400 ) * 100%);
}

.l-home-about-ph02 {
    position: absolute;
    top: calc( ( 220 / 1400 ) * 100%);
    left: calc( ( 40 / 1400 ) * 100%);
    width: calc( ( 380 / 1400 ) * 100%);
}

.l-home-about-ph03 {
    position: absolute;
    right: calc( ( 0 / 1400 ) * 100%);
    bottom: calc( ( 40 / 1400 ) * 100%);
    width: calc( ( 320 / 1400 ) * 100%);
}

.l-home-about-ph04 {
    position: absolute;
    left: calc( ( -20 / 1400 ) * 100%);
    bottom: calc( ( 180 / 1400 ) * 100%);
    width: calc( ( 360 / 1400 ) * 100%); 
}

@media screen and (max-width: 990px) {
    .l-home-about { padding: 30px 0 80px; }

    .l-home-about::before {
        top: -50px;
        width: 300px;
        height: 300px;
    }

    .l-home-about-inner {
        position: relative;
        margin: 0 auto;
        width: 100%;
        max-width: 1500px;
    }

    .l-home-about-catch__ja { font-size: 2.2rem; }

    .l-home-about-catch__en { font-size: 1.4rem; }

    .l-home-about-txt { margin: 0 0 2em; }

    .l-home-about-txt p { font-size: 1.6rem; }

    .l-home-about-btn {
        margin: 0 30px 50px;
        display: block;
    }

    .l-home-about-btn li { margin: 0 0 30px; }
    .l-home-about-btn li:last-child { margin: 0; }

    .l-home-about-btn li a { width: 100%; }
    
     .l-home-about-ph {
        position: relative;
        height: 90vw;
    }
    
    .l-home-about-ph img,
    .l-home-about-ph01 img { width: 100%; }
    
    .l-home-about-ph01 {
        position: static;
        margin: 0 30px 20px;
        width: auto
    }

    .l-home-about-ph02 {
        top: 0;
        left: 0;
        width: 52vw;
    }

    .l-home-about-ph03 {
        top: 11vw;
        right: 0;
        bottom: inherit;
        width: 42vw;
    }

    .l-home-about-ph04 {
        left: 20vw;
        bottom: 0;
        width: 60vw;
    }
}


/* ----------------------------------------------------------------------
	 l-home-medical
---------------------------------------------------------------------- */

.l-home-medical {
    position: relative;
    margin: 0 auto 120px;
    max-width: 1500px;
}

.l-home-medical-ttl {
    position: absolute;
    top: calc( ( 50 / 1400 ) * 100% );
    right: 0;
    width: calc( ( 520 / 1400 ) * 100% );
}

.l-home-medical-ph { display: flex; }

.l-home-medical-ph__01 { width: calc( ( 880 / 1400 ) * 100% ); }

.l-home-medical-ph__02 {
    padding: 0 calc( ( 80 / 1400 ) * 100% );
    padding-top: calc( ( 180 / 1400 ) * 100% );
    width: calc( ( 520 / 1400 ) * 100% );
}

.l-home-medical-ph__01 img,
.l-home-medical-ph__02 img { width: 100%; }

.l-home-medical-nav {
    margin: 0 auto;
    max-width: 1100px;
}

.l-home-medical-lead {
    font-size: 1.8rem;
    line-height: 1.8;
    padding-left: calc( ( 70 / 1400 ) * 100% );
    margin: -2em auto 110px;
    max-width: 1100px;
}

@media screen and (max-width: 990px) {
    .l-home-medical { margin: 0 auto 50px; }

    .l-home-medical-ttl {
        position: static;
        text-align: left;
        margin: -1.4em 30px 1.6em;
        width: auto;
    }

    .l-home-medical-ph { justify-content: space-between; }

    .l-home-medical-ph__01 { width: 61.333vw; }

    .l-home-medical-ph__02 {
        padding: 11.733vw 0 0;
        width: 32vw;
    }

    .l-home-medical-ph { display: flex; }

    .l-home-medical-lead {
        font-size: 1.6rem;
        padding-left: 0;
        margin: 0 30px 2.4em;
    }
    
    .l-home-medical-nav { margin: 0 30px; }
}


/* ----------------------------------------------------------------------
	 l-home-doctor
---------------------------------------------------------------------- */

.l-home-doctor-mainimg { margin: 0 0 50px; }

.l-home-doctor-mainimg img {
    width: 100%;
    height: 600px;
    object-fit: cover;
}

.l-home-doctor-inner {
    margin: 0 auto;
    max-width: 840px;
    display: flex;
    justify-content: space-between;
}

.l-home-doctor-catch {
    color: var(--color-black);
    font-size: 2.4rem;
    text-align: center;
    letter-spacing: .15em;
    margin: 0 0 1.6em;
}

.l-home-doctor-lead {
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: .1em;
    width: 400px;
}

.l-home-doctor-btn { width: 400px; }

.l-home-doctor-btn a {
    color: var(--color-black);
    position: relative;
    text-decoration: none;
    padding: 20px 0;
    display: block;
    border-top: 1px solid var(--color-border); 
    border-bottom: 1px solid var(--color-border);
}

.l-home-doctor-btn a:hover img { opacity: 1; }

.l-home-doctor-btn a:hover { color: var(--color-orange); }

.l-home-doctor-btn a::before {
    content: "";
    position: absolute;
    top: 50%;
    right:0;
    transform: translateY(-50%);
    background: url("../img/icon_a_default.svg") 10px center var(--color-dark-gray) no-repeat;
    background-size: 6px 12px;
    width: 24px;
    height: 24px;
    border-radius: 100%;
    display: block;
    transition: 0.4s;
}

.l-home-doctor-btni a:hover::before { background-color: var(--color-orange); }

.l-home-doctor-btn a figure {
    display: flex;
    align-items: center;
    gap: 0 30px;
}

.l-home-doctor-btn__txt { font-size: 1.8rem; }

.l-home-doctor-btn__txt .font-en {
    color: var(--color-gray);
    font-size: 1.4rem;
    margin-top: 0.4em;
    display: block;
}

@media screen and (max-width: 1500px) {
    .l-home-doctor-mainimg img {
        height: auto;
        object-fit: contain;
    }
}

@media screen and (max-width: 990px) {
    .l-home-doctor-mainimg { margin: 0 0 30px; }
    
    .l-home-doctor-inner {
        margin: 0 30px;
        display: block;
    }

    .l-home-doctor-catch {
        font-size: 1.8rem;
        text-align: center;
        letter-spacing: .1em;
        margin: 0 0 0.6em;
    }

    .l-home-doctor-btn__ph img { width: 80px; }

    .l-home-doctor-lead {
        font-size: 1.6rem;
        letter-spacing: .05em;
        margin: 0 0 1.6em;
        width: 100%;
    }

    .l-home-doctor-btn { width: 100%; }

    .l-home-doctor-btn a { padding: 15px 0; }

    .l-home-doctor-btn a figure { gap: 0 15px; }

    .l-home-doctor-btn__txt { font-size: 1.6rem; }

    .l-home-doctor-btn__txt .font-en { font-size: 1.2rem; }
}







