/* =============================================
   Heading
   ============================================= */
.heading {
    display: flex; flex-direction: column;
    align-items: center; gap: 0.69vw; padding: 4.17vw 0;
}
.heading-en {
    color: #E84F7B; font-family: 'Inter', sans-serif;
    font-size: 0.83vw; font-weight: 700;
    letter-spacing: 0.1em; line-height: 1.4;
}
.heading-ja {
    color: #E84F7B; font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.08vw; font-weight: 700; line-height: 1.4;
}
.heading-line {
    width: 2.78vw; height: 2px;
    background: #E84F7B; margin-top: 0.35vw;
}

/* =============================================
   Support Section
   ============================================= */
.support-section { width: 100%; background: #fff; padding: 0 0 6.94vw; }
.support-inner { width: 100%; display: flex; align-items: center; gap: 6.94vw; }
.support-left { flex: 1; padding-left: 6.94vw; }
.support-content {
    display: flex; flex-direction: column;
    gap: 3.47vw; max-width: 43.06vw;
}
.support-heading { display: flex; flex-direction: column; gap: 0.67vw; }
.support-num {
    color: #E84F7B; font-family: 'Noto Sans JP', sans-serif;
    font-size: 4.44vw; font-weight: 700; line-height: 1;
}
.support-title {
    color: #333333; font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.5vw; font-weight: 900; line-height: 1.4;
}
.support-desc {
    color: #333333; font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.3vw; font-weight: 350; line-height: 2;
}
.support-btn {
    width: 18vw; display: inline-flex; align-items: center; gap: 1.39vw;
    padding: 1.04vw 2.08vw;
    background: linear-gradient(346deg, #F71D6A 0%, #F71D6A 47%, #EC898F 100%);
    border-radius: 48px; color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.39vw; font-weight: 700; line-height: 1.6;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.support-btn:hover { opacity: 0.85; transform: translateY(-2px) scale(1.03); }
.support-btn-icon { width: 1.25vw; height: auto; filter: brightness(0) invert(1); }
.support-right {
    flex-shrink: 0; width: 43.06vw; height: 27.78vw;
    background: #EEEEEE;
    border-top-left-radius: 16px; border-bottom-left-radius: 16px;
    overflow: hidden; position: relative;
}
.support-img {
    position: absolute; left: 50%;
    transform: translateX(-50%);
    height: 100%; width: auto; object-fit: cover;
}

/* =============================================
   LINE Contact Section
   ============================================= */
.line-contact-section {
    width: 100%;
    background: linear-gradient(165deg, #06C755 0%, #46C7FF 100%);
    padding: 6.94vw 0;
}
.line-contact-inner {
    width: 75vw; margin: 0 auto;
    display: flex; flex-direction: column;
    align-items: center; gap: 3.47vw;
}
.line-contact-heading {
    display: flex; flex-direction: column;
    align-items: center; gap: 1.39vw;
}
.line-contact-title {
    color: #fff; font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.22vw; font-weight: 700; line-height: 1.4; text-align: center;
}
.line-contact-title-line { width: 6.94vw; height: 3px; background: #fff; }
.line-contact-btn {
    display: inline-flex; align-items: center; gap: 1.39vw;
    padding: 1.04vw 2.08vw; background: #fff; border-radius: 32px;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.line-contact-btn:hover { opacity: 0.85; transform: translateY(-2px) scale(1.03); }
.line-contact-btn-icon { width: 1.67vw; height: auto; }
.line-contact-btn span {
    color: #06C755; font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.11vw; font-weight: 700; line-height: 1.4; white-space: nowrap;
}

/* =============================================
   SP版レスポンシブ（768px以下）
   ============================================= */
@media (max-width: 768px) {

    .contact-header__inner { gap: 0; justify-content: space-between; }
    .contact-header__title-wrap { width: auto; height: auto; position: static; }
    .contact-header__title { position: static; font-size: 6vw; line-height: 1.4; }
    .contact-header__logo-wrap { width: 10vw; height: auto; }
    .contact-header__logo-img { position: static; width: 10vw; height: auto; }

    .heading { padding: 8vw 0 6vw; gap: 2vw; }
    .heading-en { font-size: 3vw; }
    .heading-ja { font-size: 6vw; }
    .heading-line { width: 8vw; margin-top: 1vw; }

    .support-section { padding: 0 0 10vw; }
    .support-inner { flex-direction: column; gap: 0; }
    .support-left { width: 100%; padding: 0 6vw; order: 2; }
    .support-content { max-width: 100%; gap: 5vw; padding: 6vw 0; }
    .support-heading { gap: 2vw; }
    .support-num { font-size: 10vw; }
    .support-title { font-size: 6vw; }
    .support-desc { font-size: 3.5vw; line-height: 1.9; }
    .support-btn { width: auto; font-size: 4vw; padding: 3.5vw 7vw; gap: 3vw; }
    .support-btn-icon { width: 4vw; }
    .support-right { width: 100%; height: 55vw; border-radius: 0; order: 1; }

    .sns-inner { width: 90vw; padding: 6vw 4vw; gap: 4vw; }
    .sns-title img { width: 80vw; }
    .sns-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3vw; }
    .sns-item { height: auto; padding: 3vw 2vw; border-radius: 12px; flex: none; }
    .sns-item-icon { width: 5vw; height: 5vw; }
    .sns-item-label { font-size: 3vw; }

    .line-contact-section { padding: 10vw 0; }
    .line-contact-inner { width: 88vw; gap: 5vw; }
    .line-contact-heading { gap: 3vw; }
    .line-contact-title { font-size: 5.5vw; }
    .line-contact-title-line { width: 15vw; }
    .line-contact-btn { padding: 3.5vw 8vw; gap: 3vw; border-radius: 24px; }
    .line-contact-btn-icon { width: 5vw; }
    .line-contact-btn span { font-size: 4vw; }

    .footer-cta-item { padding: 4vw 2vw; gap: 2vw; }
    .footer-cta-icon img { width: 7vw; }
    .footer-cta-label { font-size: 3vw; }
    .footer-cta-divider { height: 18vw; }
    .footer-nav-wrap { padding: 5vw 0; }
    .footer-nav-inner { width: 90vw; flex-direction: column; align-items: flex-start; gap: 4vw; }
    .footer-logo { font-size: 7vw; }
    .footer-nav { gap: 3vw; justify-content: flex-start; }
    .footer-nav-link { font-size: 3.2vw; }
    .footer-info-wrap { padding: 5vw 0; }
    .footer-info-inner { width: 90vw; flex-direction: column; gap: 5vw; align-items: flex-start; }
    .footer-info-name { font-size: 3.8vw; }
    .footer-info-address { font-size: 3.2vw; }
    .footer-map { width: 100%; height: 55vw; }
    .footer-copyright p { font-size: 2.5vw; }
}
