/* ==============================================
   フォームコンポーネント
   ============================================== */

/* お問い合わせセクション */
.contact-section {
    width: 100%;
    max-width: 1440px;
    height: 636px;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    padding: 15px 163px;
    gap: 114px;
    text-align: left;
    font-size: var(--font-size-36);
    color: var(--color-black);
    font-family: var(--font-lato);
}

/* ▼▼▼ ここから修正 ▼▼▼ */
.contact-section__text {
    width: 100%;
    max-width: 445px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center; /* 中央揃えに変更 */
    padding: 30px 0; /* heightの代わりにpaddingで高さを制御 */
}

.contact-section__title {
    margin: 0;
    width: 100%;
    max-width: 445px;
    position: relative;
    font-size: var(--font-size-36);
    font-weight: 600;
    font-family: inherit;
    display: inline-block;
    margin-bottom: 15px; /* 説明文との間に余白を設定 */
}

.contact-section__description {
    width: 100%;
    max-width: 434px;
    position: relative;
    font-size: var(--font-size-14);
    line-height: 140%;
    text-align: justify;
    display: inline-block;
}
/* ▲▲▲ ここまで修正 ▲▲▲ */

/* フォーム */
.form {
    width: 100%;
    max-width: 542px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    box-sizing: border-box;
    padding: var(--padding-20) 0;
    gap: 25px;
}

.form__grid {
    width: 100%;
    max-width: 542px;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 23px;
}

/* 入力フィールド */
.form__field {
    width: 100%;
    max-width: 540px;
    height: 60px;
    border-radius: var(--br-6);
    border: 1px solid var(--color-darkslategray);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 0 31px;
}

.form__input {
    width: 100%;
    border: 0;
    outline: 0;
    font-family: var(--font-lato);
    font-size: var(--font-size-16);
    background-color: transparent;
    height: 24px;
    position: relative;
    color: var(--color-gray-400);
    text-align: left;
    display: inline-block;
    padding: 0;
}

.form__input:focus {
    border-color: var(--color-cornflowerblue);
    box-shadow: 0 0 0 2px rgba(100, 149, 237, 0.2);
    outline: none;
}

.form__input.error {
    border-color: #dc143c !important;
    box-shadow: 0 0 0 2px rgba(220, 20, 60, 0.2);
}

/* 名前フィールド */
.form__name-group {
    width: 100%;
    max-width: 542px;
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 32px;
}

.form__name-field {
    width: 100%;
    max-width: 255px;
    height: 60px;
    border-radius: var(--br-6);
    border: 1px solid var(--color-darkslategray);
    box-sizing: border-box;
    overflow: hidden;
    flex-shrink: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 0 34px;
    min-width: 200px;
}

.form__name-field:last-child {
    padding: 0 34px;
}

/* テキストエリア */
.form__textarea {
    border: 1px solid var(--color-darkslategray);
    background-color: transparent;
    height: 112px;
    width: 100%;
    max-width: 540px;
    outline: 0;
    border-radius: var(--br-6);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 21px 31px;
    font-family: var(--font-lato);
    font-size: var(--font-size-16);
    color: var(--color-gray-400);
    resize: vertical;
}

.form__textarea:focus {
    border-color: var(--color-cornflowerblue);
    box-shadow: 0 0 0 2px rgba(100, 149, 237, 0.2);
    outline: none;
}

.form__textarea.error {
    border-color: #dc143c !important;
    box-shadow: 0 0 0 2px rgba(220, 20, 60, 0.2);
}

/* フィールドグループ */
.form__email-group {
    width: 100%;
    max-width: 542px;
    height: 346px;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 17px;
}

.form__phone-group {
    width: 100%;
    max-width: 542px;
    height: 217px;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: var(--gap-24);
}

.form__name-container {
    width: 100%;
    max-width: 542px;
    height: 133px;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 13px;
}
