/* -------------------------------------------------------------------
   CTA Section
------------------------------------------------------------------- */
.cta-section {
    padding: 80px 0 160px;
    position: relative;
    overflow: hidden;
}

.cta-box {
    background: linear-gradient(135deg, rgba(27, 117, 188, 0.85) 0%, rgba(42, 90, 138, 0.9) 100%), url('../images/bg_ProjectConsultation.webp');
    background-size: cover;
    background-position: center;
    border-radius: var(--radius-lg);
    padding: 80px 40px;
    text-align: center;
    color: #fff;
    position: relative;
    box-shadow: 0 30px 60px rgba(25, 62, 101, 0.15);
    overflow: hidden;
    margin-bottom: 60px;
}
@media (max-width: 768px) {
    .cta-box {
        background: linear-gradient(135deg, rgba(27, 117, 188, 0.85) 0%, rgba(42, 90, 138, 0.9) 100%), url('../images/bg_ProjectConsultation_sp.webp');
        background-size: cover;
        background-position: center;
    }
}

/* Recruit CTA */
.cta-box--recruit {
    background: linear-gradient(135deg, rgba(27, 117, 188, 0.85) 0%, rgba(42, 90, 138, 0.9) 100%), url('../images/bg_cta.webp');
    background-size: cover;
    background-position: center;
}
@media (max-width: 768px) {
    .cta-box--recruit {
        background: linear-gradient(135deg, rgba(27, 117, 188, 0.85) 0%, rgba(42, 90, 138, 0.9) 100%), url('../images/bg_cta_sp.webp');
        background-size: cover;
        background-position: center;
    }
}

.cta-box h2 {
    font-size: clamp(28px, 4vw, 40px); font-weight: 500;
    line-height: 1.5; letter-spacing: 0.05em;
    margin-bottom: 48px; position: relative; z-index: 1;
}
/* SP時のみ追加改行 */
.cta-box h2 .sp-br { display: none; }
@media (max-width: 768px) {
    .cta-box h2 .sp-br { display: block; }
}

/* -------------------------------------------------------------------
   Link Cards Grid
------------------------------------------------------------------- */
.links-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    position: relative;
    z-index: 1;
}
.link-card {
    position: relative; border-radius: var(--radius-lg);
    overflow: hidden; background: var(--color-secondary-light);
    padding: 60px; display: flex; flex-direction: column;
    justify-content: center; transition: var(--transition-smooth);
}
.link-card.blue { background: var(--color-blue-light); }
.link-card:hover { box-shadow: 0 15px 35px rgba(0,0,0,0.04); transform: translateY(-4px); }

.link-card h3 {
    font-family: var(--font-en); font-size: 32px; font-weight: 400;
    letter-spacing: 0.1em; margin-bottom: 16px;
    display: flex; align-items: center;
}
.link-card h3::before {
    content: ''; display: inline-block; width: 30px; height: 2px;
    background-color: currentColor; opacity: 0.3;
    transform: rotate(-45deg); margin-right: 16px;
}
.link-card p { font-size: 15px; color: var(--color-text-light); margin-bottom: 32px; }

/* Link Card Decoration (isome illustration) */
.link-card__deco {
    position: absolute;
    bottom: 0;
    left: 0;
    width: clamp(140px, 18vw, 220px);
    height: auto;
    opacity: 0.45;
    z-index: 0;
    pointer-events: none;
}

@media (max-width: 768px) {
    .cta-section { padding: 40px 0 48px; }
    .cta-box { margin-bottom: 40px; }
    .links-grid { gap: 20px; }
    .link-card { padding: 40px 24px; }
}

@media (max-width: 900px) {
    .cta-box { padding: 60px 24px; }
    .links-grid { grid-template-columns: 1fr; gap: 24px; }
    .link-card { padding: 48px 32px; }
    .link-card__deco {
        bottom: 0;
        left: 0;
        width: 100px;
        opacity: 0.35;
    }
}
