/* =============================================
   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;
}

/* =============================================
   Contact Form Section
   ============================================= */
.contact-form-section { width: 100%; background: #fff; padding: 0 0 6.94vw; }
.contact-form-inner {
    width: 75vw; margin: 0 auto;
    display: flex; flex-direction: column;
    align-items: center; gap: 3.47vw;
}
.contact-form-desc {
    color: #333333; font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.25vw; font-weight: 400; line-height: 2;
    width: 100%; text-align: center;
}
.contact-form-box {
    width: 100%; padding: 3.47vw; background: #fff;
    box-shadow: 0px 2px 5px rgba(0,0,0,0.20);
    border-radius: 16px; outline: 2px solid #E84F7B;
}
.contact-form { width: 100%; display: flex; flex-direction: column; gap: 0; }
.contact-form-field {
    display: flex; flex-direction: column;
    gap: 0.69vw; padding: 1.39vw 0;
}
.contact-form-label {
    display: flex; align-items: center; gap: 0.35vw;
    color: #333333; font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.25vw; font-weight: 700; line-height: 0;
}
.contact-form-required {
    padding: 0.35vw 0.35vw; background: #E84F7B;
    border-radius: 4px; color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 0.83vw; font-weight: 700; line-height: 1;
}
.contact-form-input {
    width: 100%; height: 3.47vw; background: #EEEEEE;
    border-radius: 8px; border: none; outline: none;
    padding: 0 1.11vw; font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.11vw; color: #333333;
}
.contact-form-input:focus { outline: 2px solid #E84F7B; }
.contact-form-textarea {
    width: 100%; height: 11.11vw; background: #EEEEEE;
    border-radius: 8px; border: none; outline: none;
    padding: 0.69vw 1.11vw; font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.11vw; color: #333333; resize: vertical;
}
.contact-form-textarea:focus { outline: 2px solid #E84F7B; }
.contact-form-btn-wrap { display: flex; justify-content: center; padding-top: 3.47vw; }
.contact-form-btn {
    display: inline-flex; align-items: center; gap: 1.39vw;
    padding: 1.04vw 2.08vw;
    background: linear-gradient(16deg, #F77062 0%, #FE5196 100%);
    border-radius: 32px; border: none; color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.25vw; font-weight: 700; cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.contact-form-btn:hover { opacity: 0.85; transform: translateY(-2px) scale(1.03); }
.contact-form-btn-icon {
    width: 1.25vw; height: auto;
    filter: brightness(0) invert(1);
}

/* =============================================
   Phone Contact Section
   ============================================= */
.phone-contact-section { width: 100%; background: #FFF5E4; padding: 6.94vw 0; }
.phone-contact-inner {
    width: 75vw; margin: 0 auto;
    display: flex; flex-direction: column;
    align-items: center; gap: 2.08vw;
}
.phone-contact-heading {
    display: flex; flex-direction: column;
    align-items: center; gap: 1.39vw;
}
.phone-contact-title {
    color: #333333; font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.22vw; font-weight: 900; line-height: 1.4; text-align: center;
}
.phone-contact-title-line { width: 6.94vw; height: 3px; background: #E84F7B; }
.phone-contact-card {
    width: 100%; background: #fff; border-radius: 20px;
    padding: 3.47vw 2.08vw;
    display: flex; justify-content: center; align-items: center;
}
.phone-contact-tel-wrap {
    display: flex; flex-direction: column;
    align-items: center; gap: 0.35vw;
}
.phone-contact-tel-badge {
    padding: 0.69vw 1.39vw; background: #E84F7B;
    border-radius: 16px; color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.39vw; font-weight: 700; line-height: 1;
}
.phone-contact-tel-number {
    color: #E84F7B; font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.5vw; font-weight: 700; line-height: 1.4;
    text-decoration: none; transition: opacity 0.2s ease;
}
.phone-contact-tel-number:hover { opacity: 0.75; }

/* =============================================
   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; }

    .contact-form-section { padding: 0 0 10vw; }
    .contact-form-inner { width: 88vw; gap: 5vw; }
    .contact-form-desc { font-size: 3.2vw; text-align: left; line-height: 1.8; }
    .contact-form-box { padding: 5vw 4vw; border-radius: 12px; }
    .contact-form-field { gap: 2vw; padding: 3vw 0; }
    .contact-form-label { font-size: 3.5vw; gap: 1.5vw; }
    .contact-form-required { font-size: 2.5vw; padding: 0.8vw 1.5vw; }
    .contact-form-input { height: 11vw; border-radius: 6px; padding: 0 3vw; font-size: 3.5vw; }
    .contact-form-textarea { height: 30vw; border-radius: 6px; padding: 2.5vw 3vw; font-size: 3.5vw; }
    .contact-form-btn-wrap { padding-top: 6vw; }
    .contact-form-btn { font-size: 4vw; padding: 3.5vw 8vw; gap: 3vw; border-radius: 32px; }
    .contact-form-btn-icon { width: 4vw; }

    .phone-contact-section { padding: 10vw 0; }
    .phone-contact-inner { width: 88vw; gap: 5vw; }
    .phone-contact-heading { gap: 3vw; }
    .phone-contact-title { font-size: 5.5vw; }
    .phone-contact-title-line { width: 15vw; height: 2px; }
    .phone-contact-card { padding: 8vw 4vw; border-radius: 12px; }
    .phone-contact-tel-wrap { gap: 2vw; }
    .phone-contact-tel-badge { font-size: 3.5vw; padding: 1.5vw 4vw; border-radius: 10px; }
    .phone-contact-tel-number { font-size: 7vw; }
}
