/* ========================================
   トップページ専用スタイル
======================================== */

/* ========================================
   メインビジュアル
======================================== */
.hero-visual {
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.hero-visual__content {
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
	padding-top: var(--header-height-sp);
}

.vegas-slide-inner {
    /* Vegasが生成する個々のスライド要素 */
    background-size: cover ; /* contain に変更して、全体を表示させる */
    background-repeat: no-repeat ; /* 繰り返しなし */
    background-position: center bottom 30% ; /* 中央に配置 */
}

.hero-visual__logo {
    width: clamp(320px, 50vw, 560px);
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 2px 8px rgb(190, 190, 190, 0.2));
    text-shadow: 
    0 2px 8px rgba(190, 190, 190, 0.5),
    0 4px 16px rgba(190, 190, 190, 0.3);
}

@media (min-width: 1080px) {
    
    .hero-visual__content {
        padding-top: var(--header-height-pc); /* PCヘッダー分の余白 */
    }
}

/* ========================================
   Policyセクション
======================================== */
.policy-section {
    background: url('../images/top-image2.jpg');
    background-size: auto 100%;
    background-position: center center;
    background-repeat: no-repeat;
    padding: clamp(4rem, 10vw, 5rem) var(--padding-sp);
    position: relative;
    z-index: 2;
    min-height: clamp(400px, 60vw, 600px);
}

@media (min-width: 768px) {
    .policy-section {
        padding: clamp(5rem, 8vw, 6rem) clamp(4rem, 8vw, 7.5rem);
        background-size: cover;
        background-position: center center;
        min-height: clamp(500px, 50vw, 700px);
        /* ヒーローセクションとの間の白い余白を消す */
    }
}

@media (min-width: 1200px) {
    .policy-section {
        background-size: 100% auto;
        background-position: center center;
        min-height: 600px;
    }
}

.policy-section__inner {
    max-width: var(--container-width);
    margin: 0 auto;
}

.policy-section__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(2rem, 5vw, 3.5rem);
}

.policy-section__header {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* スクロールアニメーション用の初期状態（一旦オフ） */
/*
.policy-section__en-title,
.policy-section__ja-title,
.policy-section__text,
.policy-section__button {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.8s ease, transform 0.8s ease, color 0.3s ease;
}
*/

/* アニメーション発動時（一旦オフ） */
/*
.policy-section__en-title.is-visible {
    opacity: 1;
    transform: translateX(0);
    transition-delay: 0s;
}

.policy-section__ja-title.is-visible {
    opacity: 1;
    transform: translateX(0);
    transition-delay: 0.2s;
}

.policy-section__text.is-visible {
    opacity: 1;
    transform: translateX(0);
    transition-delay: 0.4s;
}

.policy-section__button.is-visible {
    opacity: 1;
    transform: translateX(0);
    transition-delay: 0.6s;
    transition: opacity 0.8s ease, transform 0.8s ease, color 0.3s ease, box-shadow 0.3s ease;
}
*/

.policy-section__en-title {
    font-family: var(--font-en);
    font-size: clamp(2rem, 4vw, 2.5rem);
    font-weight: 400;
    color: var(--color-white);
    line-height: 1.2;
    letter-spacing: 0.02em;
    position: relative;
    padding-bottom: 0.25rem;
    width: max-content;
}

/* Policy - Mission タイトルに装飾を追加 */
/* SP/PCサイズ共通: 左寄せ */
.policy-section__en-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 80px;
    height: 2px;
    background: linear-gradient(90deg, 
       #9B7BB4 0%,
        transparent 100%
    );
}

.policy-section__ja-title {
    font-family: var(--font-ja);
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 500;
    color: var(--color-white);
    line-height: var(--heading-line-height);
    letter-spacing: var(--heading-letter-spacing);
}

.policy-section__text {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2.5vw, 1.5rem);
    color: var(--color-white);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
    align-self: stretch;
}

.policy-section__button-wrapper {
    align-self: flex-end;
}

@media (min-width: 768px) {
    .policy-section__text {
        line-height: var(--body-line-height-pc);
    }
}

/* 統一ボタンスタイルを使用 */
.policy-section__button {
    align-self: flex-end;
}

/* ========================================
   事業内容セクション
======================================== */
.business-section {
    padding: var(--section-padding-sp);
    position: relative;
    z-index: 2;
    background-color: var(--color-white);
}

.business-section__inner {
    max-width: 1400px;
    margin: 0 auto;
}

.business-section__layout {
    display: flex;
    flex-direction: column;
    gap: clamp(3rem, 5vw, 4rem);
}

.business-section__header-wrapper {
    display: flex;
    flex-direction: column;
    gap: clamp(2rem, 3vw, 2rem);
}

/* スクロールアニメーション用の初期状態（一旦オフ） */
/*
.business-section .section-header,
.business-section__description {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.business-section .section-header.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.business-section__description.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.2s;
}
*/

.business-section__description {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2vw, 1.1rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
    text-align: left;
}

@media (min-width: 768px) {
    .business-section__description {
        line-height: var(--body-line-height-pc);
        text-align: center;
    }
}

/* 事業アイテム（不動産事業・総合建設業） */
.business-item {
    position: relative;
    width: 100%;
    min-height: clamp(500px, 70vw, 600px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.business-item__content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: clamp(1.5rem, 4vw, 2rem);
    background: rgba(255, 255, 255, 0.7);
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2vw, 1.5rem);
    justify-content: center;
    align-items: center;
}

.business-item__title {
    font-family: var(--font-ja);
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    position: relative;
    padding-bottom: 0.25rem;
    text-align: center;
    width: max-content;
}

/* SPサイズ: 中央配置 */
.business-item__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 75%;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%,
        #9B7BB4 20%, 
        #9B7BB4 80%,
        transparent 100%
    );
}

/* PCサイズ: 左寄せ */
@media (min-width: 768px) {
    .business-item__title::after {
        left: 0;
        transform: none;
        width: 80px;
        background: linear-gradient(90deg, 
           #9B7BB4 0%,
            transparent 100%
        );
    }
}

.business-item__text {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2vw, 1.1rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
    font-weight: 500;
}

@media (min-width: 768px) {
    .business-item__text {
        line-height: var(--body-line-height-pc);
        font-weight: 400;
    }
}

/* 統一ボタンスタイルを使用 */
.business-item__button-wrapper {
    width: 100%;
    display: flex;
    justify-content: flex-end;
}

/* 画像ラッパー - スマホでは絶対配置で背景化 */
.business-item__image-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.business-item__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
    border-radius: 8px;
}

.business-item:hover .business-item__image {
    transform: scale(1.02);
}

/* 不動産事業（画像を大きく） */
.business-item--realestate {
    min-height: clamp(550px, 75vw, 650px);
}

/* 総合建設業（画像を少し小さく） */
.business-item--construction {
    min-height: clamp(500px, 70vw, 600px);
}

@media (min-width: 768px) {
    .business-section {
        margin-top: 64px;
        padding: 4rem 2rem 2rem;
    }
    
    .business-section__layout {
        gap: clamp(4rem, 6vw, 6rem);
    }
    
    .business-section .section-header {
        text-align: center;
        margin-bottom: 0;
    }
    
    /* タブレット/PC: 横並びレイアウト */
    .business-item {
        display: flex;
        flex-direction: row;
        align-items: center;
        min-height: auto;
        border-radius: 12px;
        overflow: visible;
        box-shadow: none;
    }
    
    .business-item__content {
        position: static;
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        padding: 0;
        align-items: flex-start;
    }
    
    .business-item__image-wrapper {
        position: relative;
        flex-shrink: 0;
        border-radius: 8px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    }
    
    .business-item__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    /* 不動産事業：画像右、コンテンツ左 */
    .business-item--realestate {
        flex-direction: row;
        gap: clamp(2rem, 4vw, 4rem);
    }
    
    .business-item--realestate .business-item__content {
        flex: 0 0 40%;
        order: 1;
    }
    
    .business-item--realestate .business-item__image-wrapper {
        flex: 0 0 55%;
        width: 55%;
        height: clamp(400px, 35vw, 500px);
        order: 2;
    }
    
    /* 総合建設業：画像左、コンテンツ右 */
    .business-item--construction {
        flex-direction: row;
        gap: clamp(2rem, 4vw, 4rem);
    }
    
    .business-item--construction .business-item__image-wrapper {
        flex: 0 0 45%;
        width: 45%;
        height: clamp(360px, 30vw, 450px);
        order: 1;
    }
    
    .business-item--construction .business-item__content {
        flex: 0 0 50%;
        order: 2;
    }
}

/* ========================================
   土地販売情報セクション
======================================== */
.land-section {
    padding: var(--section-padding-sp);
    background-color: var(--color-white);
    position: relative;
    z-index: 2;
}

.land-section .section-header {
    margin-bottom: 2rem;
}

/* スクロールアニメーション用の初期状態（一旦オフ） */
/*
.land-section .section-header,
.land-section__description {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.land-section .section-header.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.land-section__description.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.2s;
}
*/

.land-section__description {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2vw, 1.1rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
    text-align: left;
    margin-bottom: clamp(1rem, 3vw, 2rem);
}

@media (min-width: 768px) {
    .land-section__description {
        line-height: var(--body-line-height-pc);
    }
}

.land-section__slider-wrapper {
    position: relative;
    overflow: hidden;
    width: 100%;
}

.land-section__slider {
    display: flex;
    width: max-content;
    animation: scrollSlider 35s linear infinite;
    overflow: hidden;
}

/* SPサイズ：1枚ずつ表示 */
.land-section__slide {
    flex-shrink: 0;
    width: 100vw;
    max-width: 100%;
    height: clamp(240px, 40vw, 320px);
    position: relative;
    background: linear-gradient(135deg, #e8e8e8 0%, #f5f5f5 100%);
}

.land-section__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* リンクボタンは固定位置 */
.land-section__link-overlay {
    position: absolute;
    bottom: clamp(0.5rem, 2vw, 2rem);
    right: clamp(0.5rem, 2vw, 2rem);
    z-index: 10;
    pointer-events: all;
}

.land-section__arrow {
    display: none;
}

/* PCサイズ：3枚横並び */
@media (min-width: 768px) {
    .land-section {
		margin-top: 64px;
        padding: 4rem 0;
    }
	
	
	.land-section__description {
    text-align: center;
  
}
    
    .land-section__slider {
        animation: scrollSlider 35s linear infinite;
    }
    
    .land-section__slide {
        width: calc((100vw - 4rem) / 3); /* 画面幅30fb3枚で均等配置 */
        max-width: calc((1100px - 4rem) / 3); /* 最大幅制限 */
        height: 320px;
    }
    
    /* PCサイズ時のリンクボタンの位置 */
    .land-section__link-overlay {
        bottom: 2rem;
        right: 2rem;
    }
}

/* スライダーアニメーション */
@keyframes scrollSlider {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%); /* 5枚の半分（2セットのうち1セット分） */
    }
}

/* ========================================
   土地活用セクション
======================================== */
.land-utilization-section {
    padding: var(--section-padding-sp);
    position: relative;
    z-index: 2;
    background: url('../images/land-utilization-img.jpg');
}

.land-utilization-section__inner {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.land-utilization-section__layout {
    display: flex;
    flex-direction: column;
    gap: clamp(3rem, 5vw, 4rem);
}

.land-utilization-section__header-wrapper {
    display: flex;
    flex-direction: column;
    gap: clamp(2rem, 3vw, 2rem);
}

/* スクロールアニメーション用の初期状態（一旦オフ） */
/*
.land-utilization-sections .section-header,
.land-utilization-section__description {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.land-utilization-section .section-header.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.land-utilization-section__description.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.2s;
}
*/

.land-utilization-section__description {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2vw, 1.1rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
    text-align: left;
}

/* イントロテキスト */
.land-utilization-section__intro {
    text-align: center;
    margin: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem);
}

.land-utilization-section__intro p {
    font-family: var(--font-ja);
    font-size: clamp(1.125rem, 3vw, 1.5rem);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.6;
    letter-spacing: 0.05em;
}

/* Q&Aカードコンテナ */
.land-qa-container {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 2rem);
}

.land-q-container {
    width: 100%;
    display: flex;
    justify-content: flex-start;
}

.land-a-container {
    width: 100%;
    display: flex;
    justify-content: flex-end;
}
/* Q&Aカード共通スタイル */
.land-qa-card {
    background: rgba(255, 255, 255, 0.7);
    border-radius: 8px;
    padding: clamp(1.5rem, 3vw, 2rem);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    position: relative;
}

/* 質問カード */
.land-qa-card--question {
    width: max-content;
}

/* 回答カード */
.land-qa-card--answer {
    width: max-content;
}


/* Q/Aバッジ */
.land-qa-card__badge {
    position: absolute;
    top: -12px;
    left: clamp(0.75rem, 3vw, 1rem);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-en);
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.land-qa-card--question .land-qa-card__badge {
    background: linear-gradient(135deg, 
    /* やや明るさを抑えたハイライト */
    #F0F0F0 0%, 
    #D9D9D9 20%, 
    /* 中間色 */
    #B0B0B0 40%, 
    #A3A3A3 60%, 
    /* シャドウを明るくしてマットな印象に */
    #919191 80%, 
    #696969 100%
  );
  
}

.land-qa-card--answer .land-qa-card__badge {
    /* 線形グラデーション（マットなトーンを合わせる） */
    background: linear-gradient(135deg, 
    /* 明るく落ち着いた紫（シルバーの#F0F0F0に相当） */
    #E1BEE7 0%, 
    #CC99DA 20%, 
    /* 中間色（シルバーの#B0B0B0に相当） */
    #A062C9 40%, 
    #884BA5 60%, 
    /* 暗く落ち着いた紫（シルバーの#696969に相当） */
    #6B3C84 80%, 
    #582A6B 100%
  );
}

/* カードコンテンツ */
.land-qa-card__content {
    padding-top: 1rem;
}

.land-qa-card__title {
    font-family: var(--font-ja);
    font-size: clamp(1.25rem, 3vw, 1.5rem);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.5;
    letter-spacing: 0.02em;
    margin-bottom: clamp(0.75rem, 2vw, 1rem);
}

.land-qa-card__text {
    font-weight: 500;
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2.5vw, 1.1rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
}

/* 回答カードのレイアウト */
.land-qa-card__layout {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 2rem);
}

/* リスト */
.land-qa-card__list {
    list-style: none;
    padding: 0;
    margin: clamp(1rem, 2vw, 1.5rem) 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.land-qa-card__list li {
    font-weight: 500;
    font-family: var(--font-ja);
    font-size: clamp(0.9rem, 2.5vw, 1rem);
    color: var(--color-text);
    line-height: 1.6;
    padding-left: 1.5rem;
    position: relative;
}

.land-qa-card__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--color-primary);
    font-weight: bold;
}

/* ボタンラッパー */
.land-qa-card__button-wrapper {
    margin-top: clamp(1rem, 2vw, 1.5rem);
    display: flex;
    width: 100%;
    justify-content: flex-end;
}

/* 画像ラッパー */
.land-qa-card__image-wrapper {
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.land-qa-card__image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

@media (min-width: 768px) {

    .land-utilization-section {
		margin-top: 64px;
        padding: var(--section-padding-pc);
    }


    .land-utilization-section__description {
        line-height: var(--body-line-height-pc);
        text-align: center;
    }
    
    /* PC時のQ&Aカードレイアウト */
    .land-qa-card__layout {
        flex-direction: row;
        align-items: center;
        gap: clamp(2rem, 3vw, 3rem);
    }
    
    .land-qa-card__layout .land-qa-card__content {
        flex: 1;
    }
    
    .land-qa-card__layout .land-qa-card__image-wrapper {
        flex: 0 0 40%;
        max-width: 400px;
    }
    
    /* サポートグリッド */
    .land-support__grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .land-qa-card__text,
    .land-support__item-text {
        line-height: var(--body-line-height-pc);
    }
}




/* ========================================
   活動拠点セクション
======================================== */

/* 活動拠点セクションのタイトルに装飾を追加 */
.area-section-pc__title-group .section-header__ja-title,
.area-section-sp__title-box .area-section-sp__title {
    position: relative;
    padding-bottom: 0.25rem;
    width: max-content;
}

/* SPサイズ: 中央配置 */
.area-section-pc__title-group .section-header__ja-title::after,
.area-section-sp__title-box .area-section-sp__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 75%;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%,
        #9B7BB4 20%, 
        #9B7BB4 80%,
        transparent 100%
    );
}

/* PCサイズ: 左寄せ（白色） */
@media (min-width: 768px) {
    .area-section-pc__title-group .section-header__ja-title::after {
        left: 0;
        transform: none;
        width: 80px;
        background: linear-gradient(90deg, 
           #ffffff 0%,
            transparent 100%
        );
    }
}


/* ========================================
   スタッフ募集バナーセクション
======================================== */

/* スタッフ募集セクションのタイトルに装飾を追加 */
.recruit-section-pc__text-group .section-header__ja-title,
.recruit-section-sp__text-area .area-section-sp__title {
    position: relative;
    padding-bottom: 0.25rem;
    width: max-content;
}

/* SPサイズ: 中央配置 */
.recruit-section-pc__text-group .section-header__ja-title::after,
.recruit-section-sp__text-area .area-section-sp__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 75%;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%,
        #9B7BB4 20%, 
        #9B7BB4 80%,
        transparent 100%
    );
}

/* PCサイズ: 左寄せ（白色） */
@media (min-width: 768px) {
    .recruit-section-pc__text-group .section-header__ja-title::after {
        left: 0;
        transform: none;
        width: 80px;
        background: linear-gradient(90deg, 
           #ffffff 0%,
            transparent 100%
        );
    }
}
.recruit-banner-section {
    padding: clamp(2rem, 4vw, 3rem) var(--padding-sp);
    background-color: var(--color-white);
    position: relative;
    z-index: 2;
}

.recruit-banner-section__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.recruit-banner {
    border-radius: 12px;
    padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem);
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 2rem);
    align-items: center;
    text-align: center;
    box-shadow: 0 4px 20px rgba(139, 92, 246, 0.3);
    position: relative;
    overflow: hidden;
}

.recruit-banner__content {
    position: relative;
    z-index: 1;
}

.recruit-banner__title {
    font-family: var(--font-ja);
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: 0.05em;
    margin-bottom: clamp(0.75rem, 2vw, 1rem);
}

.recruit-banner__text {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2.5vw, 1.125rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
}

.recruit-banner__button-wrapper {
    position: relative;
    z-index: 1;
}

.recruit-banner__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.875rem 2rem;
    background: var(--color-white);
    border: 2px solid var(--color-white);
    border-radius: 50px;
    color: var(--color-primary);
    font-family: var(--font-ja);
    font-size: clamp(0.9375rem, 2vw, 1.0625rem);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.recruit-banner__button:hover {
    background: transparent;
    color: var(--color-white);
    border-color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(255, 255, 255, 0.3);
}

.recruit-banner__button-arrow {
    font-size: 1.2em;
    transition: transform 0.3s ease;
}

.recruit-banner__button:hover .recruit-banner__button-arrow {
    transform: translateX(4px);
}

@media (min-width: 768px) {
    .recruit-banner-section {
        margin-top: 64px;
        padding: clamp(3rem, 5vw, 4rem) clamp(4rem, 8vw, 7.5rem);
    }
    
    .recruit-banner {
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
        padding: clamp(2.5rem, 4vw, 3rem) clamp(3rem, 5vw, 4rem);
    }
    
    .recruit-banner__content {
        flex: 1;
    }
    
    .recruit-banner__button-wrapper {
        flex-shrink: 0;
    }
    
    .recruit-banner__text {
        line-height: var(--body-line-height-pc);
    }
}

/* ========================================
   お知らせセクション
======================================== */
.news-section {
    padding: var(--section-padding-sp);
    background-color: var(--color-white);
    position: relative;
    z-index: 2;
}

.news-section__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 2rem;
}

/* ボタン（一番下に右寄せ配置） */
.news-section__button {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
}

.news-section__list {
    display: flex;
    flex-direction: column;
    gap: clamp(0.5rem, 2vw, 0.5rem);
}

.news-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-bottom: clamp(0.5rem, 2vw, 1rem);
    border-bottom: 1px solid var(--color-border);
}

.news-item__date {
    font-family: var(--font-ja);
    font-size: clamp(0.8rem, 2vw, 0.875rem);
    color: var(--color-text);
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.news-item__new {
    display: inline-block;
    background-color: #ff4444;
    color: white;
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.125rem 0.375rem;
    border-radius: 2px;
    letter-spacing: 0.05em;
}

.news-item__title {
    font-family: var(--font-ja);
    font-size: clamp(1rem, 2vw, 1.1rem);
    color: var(--color-text);
    line-height: var(--body-line-height-sp);
    letter-spacing: var(--body-letter-spacing);
    transition: 0.3s ease;
}

.news-item__title a:hover{
    color: var(--color-primary);
    opacity: 0.7;
}

.news-item__category {
    color: var(--color-primary);
    font-weight: 600;
    margin-right: 0.25rem;
}

@media (min-width: 768px) {
    .news-item__title {
        line-height: var(--body-line-height-pc);
    }
}

@media (min-width: 768px) {
    .news-section {
		margin-top: 64px;
        padding: var(--section-padding-pc);
    }
    
    .news-section__inner {
        padding: 0 7.5rem;
    }
}

@media (max-width: 1200px) {
    .news-section {
        margin-top: 0px;
    }
}

/* ========================================
   レスポンシブ最適化
======================================== */
@media (min-width: 1200px) {
    :root {
        --padding-sp: 2rem;
        --padding-pc: 4rem;
    }
}
