@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* スライダーのwrapper */
.swiper-wrapper {
  transition-timing-function: linear;　//等倍速で画像が移動する
}
.swiper-slide img {
  height: auto;
  width: 100%;
}
.swiper {
    overflow: initial !important;
}
.swiper-button-prev, .swiper-rtl .swiper-button-next {
    display: none !important;
}
.swiper-button-next, .swiper-rtl .swiper-button-prev {
    display: none !important;
}
/*スライドタイトル*/
.p-mainVisual__slideTitle {
    font-size: 4em;
}
.p-mainVisual__slideTitle, h1.c-headLogo.-txt, .c-headLogo.-txt {
    font-family: 'Herr Von Muellerhoff', cursive;
}
/*コンセプト*/
 .post_content div>:last-child, .post_content>:last-child {
    margin-bottom: 20px !important;
}

/*ローディングアニメーション*/
/* 全体 */
#loader_wrap {
	z-index: 9999;
	position: fixed;
	display: none;
	align-items: center;
	justify-content: center;
	width: 100vw;
	height: 100vh;
	top: 0;
	left: 0;
	background: #fff;
	pointer-events: all;
	transition: opacity 0.6s ease-out;
	opacity: 1;
}

/* ローダーコンテナ */
.loader-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* ぐるぐる */
.loader-rotate {
 	width: 40px;
 	height: 40px;
	margin: 0 auto 20px auto;
 	border-radius: 50%;
 	border: solid 4px;
 	border-color: #4c6d70 #00000010 #00000010;
 	position: relative;
 	animation: spin 1s infinite linear;
}

/* ローディングテキスト */
.loader-text {
    font-family: 'Herr Von Muellerhoff', cursive;
    font-size: 36px;
    color: #4c6d70;
    text-align: center;
    opacity: 0;
    animation: fadeInText 2s ease-in-out infinite alternate;
}

/* テキストフェードアニメーション */
@keyframes fadeInText {
    0% {
        opacity: 0.3;
        transform: translateY(5px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* スクロールアニメーション：上から下へフェードイン */
.scroll-fade-in {
    opacity: 0;
    transform: translateY(-50px);
    transition: all 0.2s ease-out;
    transition-delay: 0s;
}

.scroll-fade-in.animated {
    opacity: 1;
    transform: translateY(0);
}

/* 要素ごとの遅延設定 */
.scroll-fade-in:nth-child(1) { transition-delay: 0.1s; }
.scroll-fade-in:nth-child(2) { transition-delay: 0.2s; }
.scroll-fade-in:nth-child(3) { transition-delay: 0.3s; }
.scroll-fade-in:nth-child(4) { transition-delay: 0.4s; }
.scroll-fade-in:nth-child(5) { transition-delay: 0.5s; }
.scroll-fade-in:nth-child(6) { transition-delay: 0.6s; }

/* 個別要素の設定 */
h1.scroll-fade-in,
h2.scroll-fade-in,
h3.scroll-fade-in {
    transition-duration: 0.25s;
    transform: translateY(-60px);
}

img.scroll-fade-in {
    transition-duration: 0.25s;
    transform: translateY(-40px);
}

p.scroll-fade-in,
.text-block.scroll-fade-in {
    transition-duration: 0.2s;
    transform: translateY(-30px);
}

/* カード系要素 */
.card.scroll-fade-in,
.post-item.scroll-fade-in,
.blog-card.scroll-fade-in {
    transition-duration: 0.25s;
    transform: translateY(-45px);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .scroll-fade-in {
        transform: translateY(-30px);
        transition-duration: 0.15s;
    }
    
    h1.scroll-fade-in,
    h2.scroll-fade-in,
    h3.scroll-fade-in {
        transform: translateY(-35px);
    }
}

/* プリフェアーズ・リデュースド・モーション対応 */
@media (prefers-reduced-motion: reduce) {
    .scroll-fade-in {
        transition: opacity 0.3s ease-out;
        transform: none;
    }
}

/* アニメーション最適化 */
.scroll-fade-in {
    will-change: opacity, transform;
}

.scroll-fade-in.animated {
    will-change: auto;
}

/* スピンアニメーション（既存） */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


