@charset "utf-8";

body {
    background-image: none!important;
}
.fv {
    width: 100%;
    height: 70vh;
    min-height: 620px;
    max-height: 750px;
    position: relative;
    background: #e6ebeb;
    margin-top: 25px;
    overflow: hidden;
}
.fv img {
    position: absolute;
    bottom: -1px;
}

/* スライダー本体と各スライドの高さ確保 */
ul.sliderTop,
.sliderTop li {
    width: 100%;
    height: 70vh;
    min-height: 620px;
    max-height: 750px;
    list-style: none;
}

.sliderTop,
.sliderTop li,
.sliderTop li * {
    cursor: default !important;
}

/* 各スライドの背景画像設定 */
.fv .sliderTop li.first {
    background: url(/assets/img/top/img01.jpg) no-repeat center center;
    background-size: cover;
}
/* .fv .sliderTop li.second {
    background: url(/assets/img/top/img02.jpg) no-repeat center center;
    background-size: cover;
} */
/* .fv .sliderTop li.third {
    background: url(/assets/img/top/img03.jpg) no-repeat center center;
    background-size: cover;
} */
/* .fv .sliderTop li.fourth {
    background: url(/assets/img/top/img04.jpg) no-repeat center center;
    background-size: cover;
} */


.fv h1{
	font-size: clamp(28px, 3.5vw, 50px);
    text-shadow: 2px 2px 4px #000;
	font-weight: normal;
	letter-spacing: 0.08em;
    line-height: 1.4em;
	position: absolute;
	left: 3%;
    top: 25%;
    z-index: 2;
    color: #fff;
}
.fv h1 span {
    color: #fff;
    font-size: clamp(18px, 3.5vw, 28px);
}


@media only screen and (max-width: 890px) {
    .fv, ul.sliderTop, .sliderTop li{
        width: 100%;
        height: calc(100vh - 165px);
        min-height: auto;
        max-height: 620px;
    }
    .fv h1{
        left: 6%;
        top: 20%;
        line-height: 1.8;
    }

    /*スライドショー*/
    .fv .sliderTop li:first-child {
        background: url(/assets/img/top/img01_sp.png) no-repeat center;
        background-size: cover;
    }
    /* .fv .sliderTop li:nth-child(2) {
        background: url(/assets/img/top/top_fv_slide01.png) no-repeat center;
        background-size: cover;
    }
    .fv .sliderTop li:nth-child(3) {
        background: url(/assets/img/top/img01.jpg) no-repeat center;
        background-size: cover;
    }
    .fv .sliderTop li:nth-child(4) {
        background: url(/assets/img/top/top_fv_slide01.png) no-repeat center;
        background-size: cover;
    } */
}


/* FV下波の装飾 */
.decoration {
    position: absolute;
    bottom: -2px;
    display: flex;

}

/* アバウト */
.about {
    display: flex;
    justify-content: flex-end;
    position: relative;
    z-index: 1;
}
.about .top-title {
    text-align: left;
}
.about .about-txt {
    position: relative;
    z-index: 10;
    width: 50%;
}
.about picture {
    width: 50%;
}

/* アバウト後ろのオブジェクト */
.fluid {
    position: absolute;
    transform: translateY(-50%);
    z-index: 5;
    background-image: linear-gradient(68deg, #e9f6fc 0%, #f5fbf0);
    width: 60%;
    height: 90%;
    left: -10%;
    bottom: -36%;
    animation: fluid-animation 10s ease 0s infinite normal;
}

@keyframes fluid-animation {
    0%, 100% {
        border-radius: 59% 41% 21% 79% / 62% 53% 47% 38%;
    }
    50% {
        border-radius: 26% 74% 52% 48% / 52% 32% 68% 48%;
    }
}

@media only screen and (max-width: 890px) {
    .about {
        display: block;
    }
    .about .top-title {
        text-align: center;
    }
    .about .about-txt {
        width: 100%;
    }
    .about picture img {
        width: 100%;
        padding-top: 50px;
    }
    .fluid {
        width: 100%;
        height: 50%;
        left: 0%;
        bottom: 19%;
    }
    .about .about-txt .top-subtitle,
    .about .about-txt p {
        text-align: center;
    }
}

/* サービス */
.service {
    position: relative;
    max-width: 1000px;
    padding-top: 100px;
}
.service .top02 {
    width: 100%;
    max-width: 390px;
    z-index: 100;
    position: absolute;
    left: -10%;
    bottom: -19%;
}
.service ul {
    text-align: center;
    font-size: 0;
}
.service ul li {
    display: inline-flex;
    margin: 10px;
}
.service ul li a {
    background-image: linear-gradient(68deg, #e5f7ff 0%, #f2ffe7);
    border-radius: 50%;
    width: 220px;
    height: 210px;
    padding: 50px 10px;
    text-align: center;
    font-size: clamp(12px, 2.5vw, 15px);
    line-height: 1.6;
}
.service ul li a span {
    font-size: clamp(13px, 2.5vw, 14px);
}
.service ul li a div {
    display: flex;
    justify-content: center;
}
.service ul li a .corp, .service ul li a .ind {
    display: block;
    font-size: clamp(12px, 2.5vw, 14px);
    border-radius: 50px;
}
.service ul li a strong {
    color: #91d2f1;
}

.service ul li :hover{
    animation: fluidshape 10s ease .1s infinite;
    background-image: repeating-linear-gradient(68deg, #91d2f180 0%, #d0edb380);
}
.service ul li:hover span,
.service ul li:hover strong,
.service ul li:hover div,
.service ul li:hover div .corp,
.service ul li:hover div .ind
 {
    background-image:none;
}

.service ul li:hover div .corp,
.service ul li:hover div .ind{
    animation-play-state: paused;
}

/* 各サービスの後ろのオブジェクト */
@keyframes fluidshape {
    0% {
        border-radius: 61% 35% 52% 44%/53% 46% 50% 43%;
    }

    15% {
        border-radius: 38% 58% 52% 44%/47% 58% 38% 49%;
    }

    30% {
        border-radius: 52% 44% 36% 60%/47% 68% 28% 49%;
    }

    45% {
        border-radius: 59% 37% 53% 43%/59% 36% 60% 37%;
    }

    60% {
        border-radius: 59% 37% 65% 31%/68% 48% 48% 28%;
    }

    75% {
        border-radius: 48% 48% 32% 64%/54% 66% 30% 42%;
    }

    90% {
        border-radius: 44% 52% 48% 48%/33% 59% 37% 63%;
    }

    100% {
        border-radius: 61% 35% 52% 44%/53% 46% 50% 43%;
    }
}

@media only screen and (max-width: 890px) {
    .service {
        padding-top: 0;
    }
    .service ul {
        margin: 10px;
    }
    .service ul li {
        display: inline-grid;
        margin: 0;
        padding-top: 10px;
        margin: 2px;
    }
    .service ul li a {
        width: 170px;
        height: 160px;
        padding: 30px 8px;
        line-height: 1.8;
    }
    .service .top02 {
        max-width: 150px;
        left: -5%;
        bottom: -103px;
    }
}

/* スタッフ */
.staff span {
    font-weight: bold;
}
.staff-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    row-gap: 30px;
    column-gap: 20px;
}
.staff-list li {
    font-size: 13px;
}
/*リンク位置の調整*/
.staff-label #links01,
.staff-label #links02,
.staff-label #links03,
.staff-label #links04,
.staff-label #links05,
.staff-label #links06,
.staff-label #links07,
.staff-label #links08,
.staff-label #links09 {
    padding-top: 175px;
    margin-top: -175px;
}
/*ここからアコーディオンの設定用CSS*/
/*クリックするとチェックボックスにチェックが入るラベル（ボタン）*/
label.staff-label {
    padding: 20px;
    margin-top: 10px;
    display: block;
    width: calc(33% - 10px);
    background-color: #fff;
    border-radius: 20px;
    cursor: pointer;
    position: relative;
}
/*トップページではこちらを動作させる*/
.top-page-original .staff-label a {
    pointer-events: all;
}
.top-page-original label.staff-label {
    transition: box-shadow 0.35s ease-out, transform 0.35s ease-out !important;
}
.top-page-original label.staff-label:hover {
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
}
/*スタッフページではこちらを動作させる*/
.staff-page-original .staff-label a {
    pointer-events: none;
}
/*inputでスタッフの表示非表示切り替え、チェックボックスは非表示にする*/
.staff-check-box {
    display: none;
}
/*表示非表示の切り替えが行われるボックス*/
[ type="checkbox" ] + .staff-label {
    max-height: 1200px;
    overflow: hidden;
    transition: max-height 0.8s ease;
}
[ type="checkbox" ]:checked + .staff-label {
    height: 400px;
    max-height: 400px;
    overflow: hidden;
    transition: height 0.8s ease;
    cursor: pointer;
    overflow: hidden;
}
/*非表示の時のクリック用ボタン*/
[ type="checkbox" ]:checked + .staff-label:after {
    content: "詳細を表示";
    font-size: clamp(13px,2.5vw,14px);
    text-align: center;
    padding-top: 80px;
    margin: auto;
    background: linear-gradient(to bottom, transparent 25%, #fff 70%);
    background: -webkit-linear-gradient(top, transparent 25%, #fff 70%);
    background: -moz-linear-gradient(top, transparent 25%, #fff 70%);
    height: 50px;
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
}
/*ここまでアコーディオンの設定用CSS*/
.staff-list ul.license {
    margin-top: 10px;
    margin-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
}
.staff-list .license li {
    position: relative;
    padding: 0 0 0 13px;
    display: block;
    width: 100%;
    margin-bottom: 3px;
    line-height: 1.5em;
}
.staff-list .license li:before {
    content: "";
    position: absolute;
    top: 6px;
    left: 3px;
    width: 8px;
    height: 8px;
    border-radius: 100%;
    background-color: #91d2f1;
}
.staff-link {
    position: relative;
}
.staff-link .comments p {
    font-size: 14px;
}
.specialty {
    position: absolute;
    top: 0;
    right: 0px;
}
.rehabili, .instructor {
    color: #fff;
    font-size: 15px;
    display: inline-table;
    width: 30px;
    border-radius: 20px;
    text-align: center;
    margin-right: 2px;
}
.rehabili {
    background-color: #9adbd8;
}
.instructor {
    background-color: #efc1bd;
}

.staff-list img {
    width: 120px;
    display: block;
    margin: 0 auto 15px;
}
.staff .tag {
    line-height: 1.8;
    margin-bottom: 10px;
    text-align: left;
}
.staff .tag li {
    background-color: #e9f6fc;
    margin-right: 5px;
    padding: 0px 10px;
    border-radius: 5px;
    font-size: 12px;
    display: inline-block;
}
@media only screen and (max-width: 1052px) {
    label.staff-label {
        width: calc(50% - 10px);
    }
}
@media only screen and (max-width: 890px) {
    label.staff-label {
        width: 100%;
    }
}
/*スタッフ トップページのみの独自CSS */
.staff .staff-list.top-page-original ul.tag {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    align-content: center;
}
.staff-list.top-page-original ul.license {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.top-page-original div.comments,
.top-page-original [ type="checkbox" ]:checked + .staff-label:after {
    display: none !important;
}
.top-page-original [ type="checkbox" ]:checked + .staff-label {
    height: auto !important;
    pointer-events: none !important;
}
/*スタッフ トップページのみの独自CSS ここまで */



/* メッセージ */
.message .message-wrap {
    display: flex;
    max-width: 1000px;
    justify-content: space-around;
    position: relative;
}
.message .message-image {
    width: 40%;

}
.message .item04-1 {
    position: absolute;
    bottom: 16%;
    max-width: 90px;
    left: 35%;
}
.message .item04-2 {
    position: absolute;
    top: 8%;
    left: 0%;
    max-width: 100px;
}
.message .message-txt {
    width: 50%;
}
.message .message-txt ul li {
    position: relative;
    padding: 0 0 0 28px;
    display: inline-block;
}
.message .message-txt ul li:before {
    content: "";
    position: absolute;
    top: 17px;
    left: 16px;
    transform: translateY(-60%) translateX(0%);
    width: 8px;
    height: 8px;
    border-radius: 100%;
    background-color: #91d2f1;
}
.message-name {
    font-size: clamp(16px, 3.5vw, 20px);
    padding-top: 20px;
}
.message-name small {
    padding-right: 8px;
}
@media only screen and (max-width: 890px) {
    .message .message-wrap {
        display: block;
    }
    .message .message-image,.message .message-txt {
        width: 100%;
    }
}


/* 会社概要 */
.parts02-container {
    width: 100%;
    line-height: 0;
    overflow: hidden;
}

.parts02 {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: -1px;
    position: relative;
    z-index: 5;
}

.company.inner60 {
    padding-top: 20px;
    position: relative;
    z-index: 1;
}
.company-wrap table {
    width: 100%;
    max-width: 1000px;
}
.company .company-wrap table tr  {
    border-bottom: solid 1px #000;
}
.company .company-wrap table tr th, .company .company-wrap table tr td {
    padding: 2%;
    line-height: 1.6;
}
.company .company-wrap table tr td a {
    position: relative;
}
.company .company-wrap table tr td a img {
    width: 22px;
    margin-left: 5px;
    position: absolute;
    bottom: 2px;
}

@media only screen and (max-width: 890px) {
    .company .company-wrap table tr {
        display: grid;
    }
    .company .company-wrap table tr {
    padding: 2%;
    }
    .company .company-wrap table tr th, .company .company-wrap table tr td {
        padding: 0;
    }
    .company .company-wrap table tr td a img {
        width: 18px;
    }
}



/* そのスペースは残しつつ非表示 */
.none {
    pointer-events: none;
    visibility: hidden;
}