@charset "utf-8";

/* ==========================================
cover
========================================== */

.cover-logo {
    width: 100%;
    max-width: 48.5rem;
    text-align: left;
    margin-top: 2.3rem;
}

.cover-title-box {
    position: relative;
    padding-bottom: 20.3rem;
}

.cover-title-box::after {
	content: '';
	border-bottom: 0.7rem dotted var(--secondary);
	max-width: 54rem;
	width: 100%;
	display: block;
	margin-top: 5rem;
}

.cover-title01 {
    font-size: 4.5rem;
    letter-spacing: 0.05em;
    line-height: 1.5em;
}

.cover-title02 {
    font-size: 3rem;
    letter-spacing: 0.05em;
    line-height: 1.5em;
}

.cover-title-set {
    display: flex;
    gap: 1rem;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.cover-title-set01 {
    align-items: center;
}

.cover-title-set02 {
    align-items: baseline;
}

.cover-title-wrapper {
    padding: 0 1.5rem 0 10rem;
    max-width: 91rem;
    width: 47.4%;
}

.cover-frame {
    overflow: hidden;
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-direction: row;
}

.cover-loop-container {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.9rem;
    display: grid;
    position: absolute;
    width: 100%;
    height: 100%; /* 高さを100%に設定 */
    top: 0;
    left: 0;
}

.cover-loop-item-set {
    gap: 0.9rem;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.cover-loop-item-set-first,
.cover-loop-item-set-last {
    grid-template-columns: repeat(1, 1fr);
    gap: 0.9rem;
    display: grid;
    width: 100%;
}

.cover-loop-item {
    width: 100%;
    padding-top: 75.07%;
    border-radius: 0.8rem;
    overflow: hidden;
    position: relative;
}

.cover-loop-item-color01 {
    background-color: var(--secondary-light);
}

.cover-loop-item-color02 {
    background-color: var(--secondary);
}

.cover-loop-item-image > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 100%;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100%;
    object-fit: cover;
}

.cover-loop-wrapper {
    max-width: 112.5rem;
    width: 58.59%;
    position: relative;
    padding-top: 44.52%;
    overflow: hidden;
    margin: 0 -13rem 0 auto;
}

/* スライダーの配置 */
.cover-loop-item-set01 {
    justify-content: flex-start;
}

.cover-loop-item-set02 {
    justify-content: flex-end;
}

/* アニメーションのキーフレームを修正 */
@keyframes slideUp {
    0% {
        transform: translateY(0);
    }
    100% {
        /* 2つのアイテムセットの合計の高さ（アイテム+ギャップ）分だけ移動 */
        transform: translateY(calc(-100% - 0.9rem));
    }
}

@keyframes slideDown {
    0% {
        /* 2つのアイテムセットの合計の高さ（アイテム+ギャップ）分だけ移動 */
        transform: translateY(calc(-100% - 0.9rem));
    }
    100% {
        transform: translateY(0);
    }
}

/* アニメーションの適用と遅延時間の調整 */
.cover-loop-item-set01 .cover-loop-item-set-first {
    animation: slideUp 40s linear infinite;
}

.cover-loop-item-set01 .cover-loop-item-set-last {
    animation: slideUp 40s linear infinite;
}

.cover-loop-item-set02 .cover-loop-item-set-first {
    animation: slideDown 40s linear infinite;
}

.cover-loop-item-set02 .cover-loop-item-set-last {
    animation: slideDown 40s linear infinite;
}

/* ==========================================
TOP共通
========================================== */

.index-inner01 {
    max-width: 122rem;
    width: 100%;
    margin: 0 auto;
}

.index-frame {
    width: 100%;
    position: relative;
}

.index-frame01 {
    margin: 12.9rem auto 0;
}

.index-frame02 {
    margin: 11rem auto 0;
    overflow: hidden;
}

.index-frame03 {
    margin: 7.3rem auto 0;
    padding: 12rem 0;
    background: var(--white);
}

.index-frame04 {
    margin: 13.3rem auto 0;
}

.index-frame05 {
    margin: 13.7rem auto 0;
}


/* ==========================================
about
========================================== */

.index-frame01 {
    padding: 0 1.5rem 0 0;
}

.index-about-wrapper {
    max-width: 164.5rem;
    width: 100%;
    margin: 0 auto;
}

.index-about-flex-box {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
}

.index-about-flex-box .flex-image-box {
    max-width: 100rem;
    width: 100%;
}

.index-about-flex-box .flex-text-box {
    max-width: 100rem;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.index-about-flex-box .flex-text-box .flex-text-list-box {
    margin-top: 5rem;
}

/* .index-about-flex-box .flex-text-box .com-btn01 {
    margin: 5rem 0 0;
}

.index-about-flex-box .flex-text-box .top-about-btn {
    margin: 3rem 0 0;
} */

.index-about-btn-area {
    margin: 5rem 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 3rem;
}

/* ==========================================
service
========================================== */

.index-service-text-box {
    max-width: 100rem;
    width: 100%;
    margin: 5.5rem auto 0;
    line-height: 2.188em;
}

.index-service-container {
    width: 100%;
    margin: 0rem auto 0;
    overflow: hidden;
}

.index-service-container .index-service-area {
    max-width: 140rem;
    width: 100%;
    margin: 4.5rem auto 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 7.5rem;
    position: relative;
}

/* .index-service-container .index-service-area .flex-image-box {
    max-width: 63.3rem;
    width: 45.21%;
    position: relative;
    z-index: 2;
    margin: 0 -3.3rem 0 0;
}

.index-service-container .index-service-area .flex-text-box {
    max-width: 80rem;
    width: 57.14%;
    border: 0.3rem solid #E2C6F9;
    background-color: #fff;
    margin-top: 4rem;
    padding: 6rem 8.7rem 6rem 9.3rem;
}

.index-service-container .index-service-area .flex-text-box .flex-text-list-set-box .flex-text-list-box {
    line-height: 2.188em;
    margin-top: 4rem;
}

.index-service-container .index-service-area:nth-child(even) {
    flex-direction: row-reverse;
}

.index-service-container .index-service-area:nth-child(even) .flex-image-box {
    margin: 0 0 0 -3.3rem;
}

.index-service-container .index-service-area:nth-child(even) .flex-text-box {
    padding: 6rem 9.3rem 6rem 8.7rem;
} */

.index-service-container .index-service-area .flex-image-box {
    max-width: 63.3rem;
    width: 45.2%;
    position: relative;
    z-index: 2;
    margin: 0;
}

.index-service-container .index-service-area .flex-text-box {
    max-width: 73rem;
    width: 54%;
    margin-top: 0;
    padding: 4rem 8.7rem 6rem 5rem;
}

.index-service-container .index-service-area.adult {
    padding: 2rem 4rem;
    border: 0.3rem solid var(--secondary);
}

.index-service-container .index-service-area.kids {
    padding: 4rem 6rem;
    gap: 4rem;
    border-radius: 5rem;
    border: 0.3rem solid var(--sixth);
    background-color: var(--sixth-light);
    align-items: center;
}

.index-service-container .index-service-area.kids .flex-text-box {
    max-width: 73rem;
    width: 54%;
    margin-top: 0;
    padding: 0 !important;
    position: relative;
    z-index: 1;
}

.index-service-container .index-service-area .flex-text-list-set-box {
    position: relative;
    z-index: 1;
}

.index-service-container .index-service-area.kids .flex-title01 {
    position: relative;
}

.index-service-container .index-service-area.kids .flex-title01:after {
    content: '';
    border-bottom: 0.7rem dotted var(--sixth);
    max-width: 54rem;
    width: 100%;
    display: block;
    margin-top: 2rem;
}

.index-service-container .index-service-area .flex-text-box .flex-text-list-set-box .flex-text-list-box {
    line-height: 2.188em;
    margin-top: 4rem;
}

.index-service-container .index-service-area:nth-child(even) {
    flex-direction: row-reverse;
}

.index-service-deco01 {
    position: absolute;
    right: -12%;
    bottom: 0;
    max-width: 23.4rem;
    width: 16.71%;
}

.index-service-deco02 {
    position: absolute;
    left: -10%;
    bottom: 0;
    max-width: 23.7rem;
    width: 16.93%;
}


/* ==========================================
merit
========================================== */

.index-merit-text-box {
    max-width: 80rem;
    width: 100%;
    margin: 5.5rem auto 0;
    text-align: center;
    line-height: 2.5em;
}

.index-merit-flex-image-item {
    max-width: 48rem;
    width: 39.34%;
}

.index-merit-flex-image-item .icon-image-box {
    margin: 0 0 0 auto;
}

.index-merit-flex-text-item {
    max-width: 61rem;
    width: 50%;
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
}

.index-merit-flex-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
    margin-top: 7rem;
}

.index-merit-flex-box-set {
    margin-top: 5.5rem;
}

.index-merit-flex-box-set .index-merit-flex-box:first-child {
    margin-top: 0;
}

.index-merit-flex-box-set .index-merit-flex-box:nth-child(even) {
    flex-direction: row-reverse;
}

.index-merit-flex-box-set .index-merit-flex-box:nth-child(even) .index-merit-flex-image-item .icon-image-box {
    margin: 0 auto 0 0;
}

.index-merit-flex-number01 {
    font-size: 2.2rem;
    font-weight: 500;
    color: var(--tertiary);
}

.index-merit-flex-number02 {
    font-size: 3.5rem;
    font-weight: 500;
    color: var(--tertiary);
}

.index-merit-flex-number-set {
    display: inline-flex;
    align-items: baseline;
    gap: 1rem;
    color: #FF6F7D;
    line-height: 1.4em;
    writing-mode: sideways-lr;
    margin: 1rem 0 0 0;
}

.index-merit-flex-title-set-box {
    flex: 1;
}

.index-merit-flex-title {
    font-size: 4rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.5em;
}

.index-merit-flex-text {
    margin-top: 3.5rem;
    max-width: 55rem;
}

.index-merit-flex-box-set .index-merit-flex-box:nth-child(even) .index-merit-flex-text-item {
    max-width: 66rem;
    width: 60%;
}

.flex-text {
    display: flex;
}

/* ==========================================
news
========================================== */

.index-news-flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-direction: row;
}

.index-news-flex .flex-titlex-box {
    max-width: 28.6rem;
    width: 100%;
    margin: 0 3rem 0 0;
}

.index-news-flex .flex-news-box {
    max-width: 84.6rem;
    width: 100%;
    margin-top: 1.7rem;
}

.index-news-pc {
    margin: 10rem auto 0;
    display: block;
}

.index-news-sp {
    margin: 4rem auto 0;
    display: none;
    text-align: center;
}

.top-news-section .top-news-article:first-child {
    margin-top: 0;
}

/* .top-news-section .top-news-article {
    margin-top: 4.2rem;
} */

.top-news-article {
    border-bottom: 1px solid var(--border-primary);
    font-family: var(--font-family01);
}

.top-news-section .top-news-article:first-child .top-news-link {
    padding: 0 6rem 2.2rem 0;
}

.top-news-link {
    display: block;
    padding: 4.2rem 6rem 2.2rem 0;
    position: relative;
    transition: all .3s;
    cursor: pointer;
}

.top-news-flex:before {
    content: "\f061";
    font-family: "Font Awesome 5 Free";
    position: absolute;
    width: 3.7rem;
    height: 3.7rem;
    border-radius: 50%;
    background-color: var(--white);
    z-index: 3;
    right: 1rem;
    font-weight: bold;
    font-size: 1.7rem;
    bottom: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 0.4rem;
    transition: all .5s;
    color: var(--primary);
    box-shadow: 0 .3rem .6rem 0 rgba(0, 0, 0, 0.16);
    rotate: 90deg;;
}

.top-news-link:hover .top-news-flex:before {
    background-color: var(--primary);
    color: var(--white);
}

.top-news-link:hover {
	opacity: 0.7;
}

.top-news-flex.is-active:before {
	transform: scaleX(-1);
}

.top-news-flex {
    display: flex;
    align-items: center;
}

.top-news-flex .date {
    font-size: 1.8rem;
    font-weight: bold;
    margin: 0 4rem 0 0;
}

.top-news-flex .cate {
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.2307;
    border-radius: 4rem;
    color: var(--primary);
}

.top-news-title {
    margin: 1.5rem 0 0 0;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.2222;
    position: relative;
}

.news-detail-block.js-accordion-content {
	display: none;
    padding: 0 0 4.2rem;
}

/* ==========================================
company
========================================== */

.index-company-logo {
    max-width: 30rem;
    width: 100%;
    margin: 0 auto;
}

.index-company-flex-text-item {
    max-width: 44rem;
    width: 36.07%;
}

.index-company-flex-text-box {
    max-width: 29.9rem;
    width: 100%;
    margin: 0 0 0 auto;
}

.index-company-flex-image-item {
    max-width: 61rem;
    width: 50%;
}

.index-company-flex-image {
    max-width: 53.6rem;
    width: 100%;
    margin: 0 auto 0 0;
}

.index-company-flex {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 7rem;
    flex-direction: row;
}

.index-company-flex-text-box {
    text-align: center;
}

.company-info-set {
    margin-top: 3rem;
}

.company-info-text {
    line-height: 1.563em;
    margin-top: 1.5rem;
}

.company-info-set .company-info-text:first-child {
    margin-top: 0;
}

.index-company-btn-m {
    margin-top: 4rem;
}

.company-tel-flex {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <= 1920px) {



}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <= 1550px) {

	.cover-title01 {
	    font-size: 3.5rem;
	}
	
	.cover-title02 {
	    font-size: 2.5rem;
	}

}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <= 1024px) {

	.cover-title01 {
	    font-size: 2rem;
	}
	
	.cover-title02 {
	    font-size: 1.6rem;
	}

	.cover-title-box {
	    padding-bottom: 10.3rem;
	}

	.cover-title-wrapper {
	    padding: 0 1.5rem 0 3rem;
	    width: 50%;
	}

	.cover-logo {
	    max-width: 30.5rem;
	}

	.index-merit-flex-title {
	    font-size: 3.5rem;
	}

	.index-service-container .index-service-area:nth-child(even) .flex-text-box {
	    padding: 6rem 4.3rem 6rem 4.7rem;
	}

	.index-service-container .index-service-area .flex-text-box {
	    padding: 6rem 4.7rem 6rem 4.3rem;
	}
	
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <= 768px) {

	.cover-frame {
	    align-items: center;
	    justify-content: space-between;
	    flex-direction: column-reverse;
	}

	.cover-loop-wrapper {
	    width: 100%;
	    margin: 0 auto 5rem auto;
	    padding-top: 70%;
	}

	.cover-title-box {
	    padding-bottom: 5.3rem;
	}

	.cover-title-wrapper {
	    padding: 0 1.5rem 0 1.5rem;
	    width: 100%;
	}

    .index-news-pc {
        display: none;
    }

    .index-news-sp {
        display: block;
    }

	.index-about-wrapper {
	    margin: 0 auto;
	}

	.index-about-flex-box {
	    flex-direction: column;
	}

	.index-news-flex {
	    align-items: center;
	    flex-direction: column;
	}

	.index-news-flex .flex-news-box {
	    margin-top: 4rem;
	}

    .index-news-flex .flex-titlex-box {
        margin: 0 auto;
    }

	.index-company-flex {
	    margin-top: 4rem;
	    flex-direction: column-reverse;
	}

	.index-company-flex-text-item {
	    width: 100%;
	    margin-top: 3rem;
	}
	
	.index-company-flex-text-box {
	    margin: 0 auto;
	}
	
	.index-company-flex-image-item {
	    width: 100%;
	}
	
	.index-company-flex-image {
	    margin: 0 auto;
	}

    .index-merit-flex-box {
        flex-direction: column;
        margin-top: 3.5rem;
    }

    .index-merit-flex-box-set .index-merit-flex-box:nth-child(even) {
        flex-direction: column;
    }

    .index-merit-flex-image-item {
        width: 100%;
    }

    .index-merit-flex-image-item .icon-image-box {
        margin: 0 auto;
    }

    .index-merit-flex-box-set .index-merit-flex-box:nth-child(even) .index-merit-flex-image-item .icon-image-box {
        margin: 0 auto;
	}
	
	.index-merit-flex-text-item {
	    width: 100%;
	    margin-top: 1.5rem;
	    display: block;
	}

	.index-merit-flex-box-set .index-merit-flex-box:nth-child(even) .index-merit-flex-text-item {
	    width: 100%;
	}

	.index-merit-flex-number-set {
	    writing-mode: unset;
	    margin: 0 0 1rem;
	}

	.index-about-flex-box .flex-image-box {
	    width: 100%;
	}
	
	.index-about-flex-box .flex-text-box {
	    width: 100%;
	    margin-top: 3rem;
	}

	.index-about-flex-box .flex-text-box .com-btn01 {
	    text-align: center;
	}

	.index-service-container .index-service-area {
	    align-items: center;
	    padding-bottom: 3.5rem;
	    flex-direction: column;
	}
	
	.index-service-container .index-service-area .flex-image-box {
	    width: 100%;
	    margin: 0 auto;
	}
	
	.index-service-container .index-service-area .flex-text-box {
	    width: 100%;
	    margin-top: 4rem;
	    padding: 0;
	}

    .index-service-container .index-service-area.kids .flex-text-box {
        width: 100%;
    }

    .index-service-container .index-service-area.adult {
        padding: 4rem;
    }

    .index-service-container .index-service-area.kids {
        padding: 4rem;
    }

	.index-service-deco01 {
	    right: 0;
	}
	
	.index-service-deco02 {
	    left: 0;
	}

	.index-service-container .index-service-area:nth-child(even) {
	    flex-direction: column;
	}

	.index-service-container .index-service-area:nth-child(even) .flex-image-box {
	    margin: 0 auto;
	}

	.index-service-container .index-service-area:nth-child(even) .flex-text-box {
	    padding: 4rem;
	}

	.index-frame01 {
	    margin: 8rem auto 0;
	    padding: 0 1.5rem;
	}
	
	.index-frame02 {
	    margin: 8rem auto 0;
	}
	
	.index-frame03 {
	    margin: 8rem auto 0;
	    padding: 0;
	}
	
	.index-frame04 {
	    margin: 8rem auto 0;
	}
	
	.index-frame05 {
	    margin: 8rem auto 0;
	}

}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <= 576px) {

	.index-merit-flex-title {
	    font-size: 2.5rem;
	}

	.index-service-container .index-service-area .flex-text-box .flex-text-list-set-box .flex-text-list-box {
	    margin-top: 2.5rem;
	}

}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <= 414px) {

	.index-merit-flex-title {
	    font-size: 2.2rem;
	}

	.cover-title01 {
	    font-size: 2rem;
	}
	
	.cover-title02 {
	    font-size: 1.4rem;
	}

    .main-title-box {
        gap: 2rem;
    }

}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */