@charset "UTF-8";

/* メインコンテンツ */
main{
	position: relative;
	z-index: 1;
}
	.background-text {
		opacity:0;
	    position: absolute;
	    top: 100px;
	    right: 80px;
	    font-size: 150px; /* サイズアップ */
	    font-weight: 900;
	    color: rgb(255 235 205 / 34%); /* やや濃いめに調整 */
	    line-height: 0.9;
	    pointer-events: none;
	    z-index: -1;
	    text-transform: uppercase;
	}
		
	/* フィロソフィー */
	.philosophy-container {
	    position: relative;
	    width: calc(100% - 50px);
	    padding: 80px 30px 0px 20px;
	    overflow: hidden;
	    background: #fffaf0c9;
	    z-index: 1;
	    /*mask-image: linear-gradient(to bottom, black 0%, black calc(100% - 100px), transparent 100%);
	    -webkit-mask-image: linear-gradient(to bottom, black 0%, black calc(100% - 100px), transparent 100%);*/
	}
		.philosophy-title{
			opacity: 0;
		}

		.philosophy {
		    font-size: 14px;
		    font-weight: 600;
		    letter-spacing: 2px;
		    color: #ff9900; /* オレンジ色に変更 */
		    margin-bottom: 20px;
		    text-transform: uppercase;
		}

	/* 制度 */
    .benefits-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        margin-top: 40px;
    }
        .benefit-panel {
            flex: 1;
            min-width: 280px;
            border-radius: 6px;
            padding: 24px 0px;
            position: relative;
            overflow: hidden;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        
		.benefit-title {
		    margin-top: 45px;
		    font-size: clamp( 23px, calc( 20.5px + 0.625vw ), 28px );
		    font-weight: 700;
		    color: #404040;
		    margin-bottom: 40px;
		    position: relative;
		    padding-left: 1px;
		    line-height: 1.2;
		}
		.benefit-title:after {
		    content: none; /* 下線を削除 */
		}
			
		.benefit-body{
			display: flex;
			flex-direction: row;
			flex-wrap: nowrap;
			align-items: center;
			justify-content: space-around;
			gap: 80px;
		}
		.benefit-containt{
			width: 50%;
		}
			.benefit-img {
			    opacity: 0;
			    background: url(../img/benefit.png);
			    background-size: 1500px;
			    background-repeat: no-repeat;
			    background-position: -500px 0px;
			    width: 50%;
			    height: 1000px;
			    border-radius: 20px;
			    transition: background-position 0.5s ease-out, opacity 0.5s ease; 
			}
				
			.benefits-card-list {
			    opacity: 0;
			    list-style: none;
			    padding: 0;
			}

				.benefit-card-item {
				    position: relative;
				    padding: 20px 0px 20px 5px;
				    border-bottom: 2px solid #c3c3c375;
				    transition: background-color 0.3s ease;
				}
					
					/* スクロール位置にあるカードのアニメーション */
					.benefit-card-item.in-view{
					    background-color: rgb(255 165 0 / 15%);
					    transition: 0.3s ease;
					}
					/* アコーディオントグルボタンのアニメーション */
					@keyframes pulse-scale {
					  0% {
					    transform: translateY(-50%) scale(1);
					  }
					  50% {
					    transform: translateY(-50%) scale(1.2);
					  }
					  100% {
					    transform: translateY(-50%) scale(1);
					  }
					}

					/* ホバー時にトグルボタンのアニメーションを適用 */
					.benefit-card-item:hover .accordion-toggle {
					  animation: pulse-scale 0.8s ease-in-out infinite;
					  background-color: #ff9900; /* ホバー時に少し明るい色に変更 */
					  box-shadow: 0 0 8px rgba(237, 168, 62, 0.7); /* グロー効果を追加 */
					}

					/* アコーディオンが開いている時はアニメーションを停止 */
					.benefit-card-item.accordion-active:hover .accordion-toggle {
					  animation: none;
					  background-color: #eda83ebf; /* 元の色に戻す */
					  box-shadow: none;
					}

					/* アイコンの回転アニメーションを少し速く */
					.benefit-card-item:hover .accordion-toggle .accordion-icon {
					  transition: transform 0.2s ease;
					}
				.benefit-card-item:nth-child(1){
					border-top:2px solid #c3c3c375;
				}

				.benefit-card-item:before {
				    content: '';
				    position: absolute;
				    left: 14px;
				    top: 32px;
				    width: 8px;
				    height: 8px;
				    border-radius: 50%;
				    background-color: #eda83e;
				}

				.benefit-card-item-sub {
				    font-size: 15px;
				    letter-spacing: .05em;
				    color: #333;
				    margin: 0;
				    margin-bottom: 7px;
				    padding-left: 27px;
				}
				.benefit-card-item-title {
					position:relative;
					font-size: 17px;
					letter-spacing: .05em;
					color: #333;
					margin: 0;
				}
					.benefit-card-item-title .sub{
						display: block;
						font-size: clamp( 11px, calc( 7.3076923076923075px + 0.7692307692307693vw ), 15px );
					}
			        
        .panel-corner {
            position: absolute;
            width: 80px;
            height: 80px;
            right: -40px;
            top: -40px;
            border-radius: 50%;
            background-color: rgba(255, 235, 205, 0.2);
            z-index: 0;
        }
        
/* アコーディオンボタン */
.accordion-toggle {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    background: #eda83ebf;
    border: none;
    cursor: pointer;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s;
}

	.accordion-toggle:hover {
	    background-color: rgba(0, 0, 0, 0.05);
	}

	.accordion-icon {
	    font-size: 12px;
	    color: white;
	    transition: transform 0.3s;
	}

	.accordion-active .accordion-icon {
	    transform: rotate(180deg);
	}

	/* アコーディオンコンテンツ */
	.accordion-content {
	    max-height: 0;
	    overflow: hidden;
	    transition: max-height 0.3s ease;
	    padding: 0 15px 0 30px;
	    margin-top: 5px;
	    opacity: 0;
	}
		.accordion-active .accordion-content {
		    max-height: 200px;
		    opacity: 1;
		    transition: max-height 0.3s ease, opacity 0.3s ease;
		}

		.accordion-content p {
		    margin: 20px 0 0 0;
		    font-size: 16px;
		    line-height: 1.5;
		    color: #666;
		}

		.detail-link {
		    display: inline-block;
		    margin-top: 10px;
		    margin-bottom: 10px;
		    color: #4299e1;
		    text-decoration: none;
		    font-size: 13px;
		    font-weight: 600;
		    padding: 6px 16px;
		    border-radius: 4px;
		    background-color: rgba(66, 153, 225, 0.1);
		    transition: all 0.3s ease;
		    position: relative;
		}
			.detail-link:hover {
			    background-color: rgba(66, 153, 225, 0.2);
			    transform: translateY(-2px);
			    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
			}

			.detail-link:hover:after {
			    transform: translateX(3px);
			}

			/* benefit-card-itemを相対位置に設定 */
			.benefit-card-item {
			    position: relative;
			    padding: 25px 45px 25px 5px; /* 右側の余白を増やす */
			}
				.benefit-card-item-ampersand{
					font-weight: bold;
   					font-size: 14px;
				}

/* リクルートセクション */
.recruit-section {
    position: relative;
    margin-top: 100px;
    padding: 80px 10px 0px 20px;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-around;
    gap: 30px;
    z-index: 2;
}


	/* テキストが繰り返されるように設定 */
	.recruit-scrolling-text{
		position: relative;
		margin-top: 30px;
	}
		.recruit-scrolling-text ul{
			position: absolute;
			width: 100%;
			top: -23px;
			left: 0;
			z-index: 2;
			display: flex;
			list-style: none;
			padding-inline: 0;
			margin-inline: 0;
			gap: 0;
			overflow: hidden;
		}
		.recruit-scrolling-text li {
			color: #f9e3c2;
			font-family: var(--s-font-94afd7fe);
			font-size: 180px;
			font-weight: 900;
			height: auto;
			line-height: 1;
			text-align: left;
			white-space: nowrap;
			padding: 0 50px 0 0;
			margin: 0;
			animation: marquee-left 50s linear infinite;
		}
	.recruit-containt {
		height: 450px;
		margin-top: 50px;
		width: 100%;
		max-width: 400px;
	}
		/* ヘッダー部分 */
		.recruit-header {
		    display: flex;
		    align-items: center;
		    margin-bottom: 20px;
		}

		.recruit-bar {
		    width: 4px;
		    height: 30px;
		    background-color: #333;
		    margin-right: 10px;
		    position: relative;
		    border-radius: 10px;
		}

		.recruit-bar:before {
		    content: '';
		    position: absolute;
		    top: -14px;
		    left: 0;
		    width: 100%;
		    height: 11px;
		    background-color: #4299e1;
		    border-radius: 10px;
		}

		.recruit-label {
		    font-size: 14px;
		    font-weight: 600;
		    color: #4299e1;
		    letter-spacing: 1px;
		    text-transform: uppercase;
		}

		.recruit-sub {
		    font-size: 14px;
		    color: #121212;
		    margin-top: 5px;
		}
		
		/* メッセージ部分 */
		.recruit-message {
		    /* margin-bottom: 50px; */
		}
		
		.recruit-title {
		    font-size: clamp( 35px, calc( 33.5px + 0.375vw ), 38px );
		    line-height: 1.5;
		    font-weight: 700;
		    color: #323232;
		    margin-top: 50px;
		    margin-bottom: 10px;
		}
		
		/* ボタン */
		.recruit-enrty-body{
			min-width: 425px;
			max-width: 425px;
			margin: 0 auto;
		}
		.recruit-entry-container{
			width: 100%;
			display: flex;
			flex-direction: column;
			align-items: center;
		}
		.recruit-button-container {
		    display: flex;
		    justify-content: flex-start;
		    margin-top: 40px;
		}

		.recruit-button {
		    display: flex;
		    align-items: center;
		    justify-content: space-between;
		    background-color: #ff9900;
		    color: white;
		    padding: 20px 30px;
		    border-radius: 10px;
		    text-decoration: none;
		    font-size: 16px;
		    font-weight: 600;
		    transition: all 0.3s ease;
		    width: 255px;
		}

		.recruit-button:hover {
		    background-color: #d3912e;
		    transform: translateY(-2px);
		    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
		}

		.button-circle {
		    width: 30px;
		    height: 30px;
		    border-radius: 50%;
		    display: flex;
		    align-items: center;
		    justify-content: center;
		}
		
			.button-circle:hover .button-arrow-svg path {
			    fill: #c97a08; /* マウスホバー時に少し暗めの色に */
			}
			.button-arrow-svg {
			    width: 30px;
			    height: 30px;
			}
				
    /* 採用カード */
    .recruit-cards-container {
        max-width: 1000px;
        margin: 0 auto;
        position: relative;
        min-width: 1000px;
    }
        .background-image-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
            opacity: 0.2;
            pointer-events: none;
        }
        .background-image-container img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .recruit-cards {
            display: flex;
            gap: 2px;
            position: relative;
            flex-wrap: wrap;
        }
        .recruit-cards > div {
            display: flex;
            flex-direction: column;
            gap: 2px;
            flex: 1;
            min-width: 300px;
        }
        .recruit-card {
            box-shadow: 0 4px 8px 0px rgb(0 0 0 / 40%);
            transition: all 0.3s ease;
            height: 180px;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            max-width: 870px;
        }
        
        /* 各カードの外側の角だけ丸める */
        .recruit-cards > div:first-child > .recruit-card:first-child {
            border-top-left-radius: 12px;
        }
        .recruit-cards > div:nth-child(2) > .recruit-card:first-child {
            border-top-right-radius: 12px;
        }
        .recruit-cards > div:first-child > .recruit-card:last-child {
            border-bottom-left-radius: 12px;
        }
        .recruit-cards > div:nth-child(2) > .recruit-card:last-child {
            border-bottom-right-radius: 12px;
        }
        
        .recruit-card:hover {
            transform: translateY(-1px);
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
        }
        
        /* カード内部の要素順序調整 */
        /* 企業情報と制度のカード（情報上、画像下） */
        .recruit-cards > div:first-child > .recruit-card:first-child .recruit-card-info,
        .recruit-cards > div:nth-child(2) > .recruit-card:first-child .recruit-card-info {
            order: 1;
        }
        .recruit-cards > div:first-child > .recruit-card:first-child .recruit-card-image,
        .recruit-cards > div:nth-child(2) > .recruit-card:first-child .recruit-card-image {
            order: 2;
        }
        
        /* 福利厚生と採用お申し込みのカード（画像上、情報下） */
        .recruit-cards > div:first-child > .recruit-card:last-child .recruit-card-image,
        .recruit-cards > div:nth-child(2) > .recruit-card:last-child .recruit-card-image {
            order: 1;
        }
        .recruit-cards > div:first-child > .recruit-card:last-child .recruit-card-info,
        .recruit-cards > div:nth-child(2) > .recruit-card:last-child .recruit-card-info {
            order: 2;
        }
        
        .recruit-card-image {
            flex: 1;
            position: relative;
            background-color: white;
            overflow: hidden;
        }
        .recruit-card-image img {
            position: absolute;
            width: 200%;
            height: 200%;
            object-fit: cover;
        }
        
        /* 画像の位置調整 - 各カードで画像の異なる部分を表示 */
        .recruit-cards > div:first-child > .recruit-card:first-child .recruit-card-image img {
            top: 0;
            left: 0;
            transform-origin: top left;
        }
        .recruit-cards > div:nth-child(2) > .recruit-card:first-child .recruit-card-image img {
            top: 0;
            right: 0;
            transform-origin: top right;
        }
        .recruit-cards > div:first-child > .recruit-card:last-child .recruit-card-image img {
            bottom: 0;
            left: 0;
            transform-origin: bottom left;
        }
        .recruit-cards > div:nth-child(2) > .recruit-card:last-child .recruit-card-image img {
            bottom: 0;
            right: 0;
            transform-origin: bottom right;
        }
        
        .recruit-card-info {
            background-color: #ffa51f;
            padding: 15px;
            display: flex;
            height: 60px;
        }
        .recruit-card-bullet {
            margin-right: 8px;
            color: white;
            font-size: 12px;
            padding-top: 3px;
        }
        .recruit-card-content {
            flex: 1;
            display: flex;
            flex-direction: column;
        }
        .recruit-card-title {
            font-size: 16px;
            font-weight: 600;
            color: white;
            margin-bottom: 5px;
            letter-spacing: 0.5px;
        }
        .recruit-card-description {
            font-size: 14px;
            color: rgba(255, 255, 255, 0.9);
            line-height: 1.4;
        }

