/* お問い合わせページのスタイル */

/* パンくずリスト */
.breadcrumb {
    display: flex;
    align-items: center;
    align-self: stretch;
    gap: 8px;
    padding: 8px 64px;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
}

.breadcrumb a {
    font-size: 14px;
    font-weight: 500;
    color: #666;
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
    color: #EB6D26;
}

.breadcrumb span {
    font-size: 10px;
    color: #666;
    letter-spacing: 8.58%;
}

.breadcrumb .current {
    font-weight: 700;
    color: #333;
    font-size: 14px;
}

/* お問い合わせセクション */
.contact-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    gap: 80px;
    padding: 0 240px;
    max-width: 1440px;
    margin: 0 auto 88px;
}

/* お問い合わせヘッダー */
.contact-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    gap: 8px;
    padding: 0 0 24px;
    border-bottom: 1px solid #666;
    width: 100%;
}

.contact-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.subtitle {
    font-size: 10px;
    font-weight: 500;
    color: #C4B3A5;
    letter-spacing: 12.5%;
    line-height: 1.2;
}

.contact-title h1 {
    font-size: 20px;
    font-weight: 700;
    color: #333;
    letter-spacing: 1.25%;
    line-height: 1.2;
    margin: 0;
}

/* お問い合わせボタン */
.contact-buttons {
    display: flex;
    justify-content: center;
    align-self: stretch;
    flex-wrap: wrap;
    gap: 56px;
}

.user-button .contact-user-image.hover,
.contact-button .contact-company-image.hover {
    display: none;
}

.user-button:hover .contact-user-image.normal {
    display: none;
}

.user-button:hover .contact-user-image.hover {
    display: block;
}

.company-button:hover .contact-company-image.normal {
    display: none;
}

.company-button:hover .contact-company-image.hover {
    display: block;
}

/*
.contact-button {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 30px;
    width: 300px;
    height: 60px;
    border-radius: 7px;
    text-decoration: none;
    transition: all 0.3s ease;
    background-color: #FFF;
    border: 2.34px solid #EB6D26;
}

.user-button {
    background-color: #EB6D26;
    border: 2.34px solid #FFF;
}

.button-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: #EB6D26;
    font-size: 25px;
    margin-right: 15px;
}

.button-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: -8px;
    flex: 1;
}

.button-text p {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 10%;
    margin: 0;
    color: #EB6D26;
}

.contact-button:hover {
    background-color: #EB6D26;
    border: 2.34px solid #FFF;
}

.contact-button:hover p{
    color: white;
}

.contact-button:hover .button-icon{
    color: white;
}
*/

/* お問い合わせフォーム用スタイル */
.breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 64px;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
}

.breadcrumb a {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    text-decoration: none;
}

.breadcrumb span {
    font-size: 10px;
    color: #999;
}

.breadcrumb .current {
    font-weight: 700;
    color: #333;
}

.contact-form-section {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 0 80px;
}

.contact-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 0 0 24px;
    border-bottom: 1px solid #666;
    width: 100%;
    margin-bottom: 40px;
}

.contact-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.subtitle {
    font-size: 10px;
    font-weight: 500;
    color: #C4B3A5;
    letter-spacing: 0.125em;
}

.form-description {
    text-align: center;
    font-size: 14px;
    color: #333;
    margin-top: 16px;
}

/* 入力フォームスタイル */
.help-text {
    margin-bottom: 30px;
    font-size: 14px;
}

.form-container {
    background-color: #FDFBF3;
    border-radius: 4px;
    padding: 40px 64px 64px;
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
}

.form-row {
    display: flex;
    margin-bottom: 24px;
}

.form-label {
    width: 200px;
    padding: 24px 0;
    font-size: 14px;
    font-weight: 500;
    color: #1F2C37;
    display: flex;
    align-items: center;
}

.required::after {
    content: "*";
    color: #FF0000;
    margin-left: 2px;
    font-size: 16px;
}


.form-input {
    flex: 1;
    padding: 12px 16px;
}

input[type="checkbox"] {
    appearance: none;
    background-color: transparent;
    margin: 0;
    font: inherit;
    color: currentColor;
    width: 1.5em;
    height: 1.5em;
    border: 1px solid #CAC9C5;
    border-radius: 0.15em;
    transform: translateY(-0.075em);
    display: grid;
    place-content: center;
}

input[type="checkbox"]::before {
    content: "";
    width: 0.8em;
    height: 0.8em;
    transform: scale(0);
    box-shadow: inset 1em 1em black;
    transform-origin: bottom left;
    clip-path: polygon(14% 44%, 0 62%, 49% 100%, 100% 16%, 87% 0%, 43% 62%);
}


input[type="checkbox"]:checked::before {
    transform: scale(1);
}

input[type="radio"] {
    /* Add if not using autoprefixer */
    -webkit-appearance: none;
    appearance: none;
    /* For iOS < 15 to remove gradient background */
    background-color: #fff;
    /* Not removed via appearance */
    margin: 0;
    font: inherit;
    color: #C4C4C4;
    border: 0.15em solid #A9A9A9;
    border-radius: 50%;
    display: grid;
    place-content: center;
    cursor: pointer;
    width: 23px;
    height: 23px;
}

input[type="radio"]::before {
    content: "";
    width: 0.45em;
    height: 0.45em;
    border-radius: 50%;
    transform: scale(0);
    box-shadow: inset 1em 1em white;
    position: relative;
    left: -0.2px;
    top: 0.1px;
}

input[type="radio"]:checked {
    background-image: linear-gradient(to bottom, #4d4d4d, #4a4a4a, #484848, #454545, #434343);
}

input[type="radio"]:checked::before {
    transform: scale(1);
}


.text-input,
.textarea-input,
.select-input {
    width: 80%;
    padding: 12px 16px;
    border: 1px solid #BEBEBE;
    border-radius: 6px;
    font-size: 14px;
}

.choices{
    width: 80%;
    font-size: 14px;
}
.choices__inner {
    background-color: white;
    border: 1px solid #BEBEBE;
    border-radius: 6px;
}
.choices__item[aria-disabled*="true"]{
    color: #999;
}
.choices[data-type*="select-one"] .choices__inner {
    padding-top: 7px;
    padding-bottom: 10px;
    padding-left: 12px;
}

.text-input.zip {
    width: 120px;
}

.textarea-input {
    height: 180px;
    resize: vertical;
}

.form-error {
    color: #FF0000;
    font-size: 14px;
    margin-top: 8px;
}

.radio-group,
.checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding: 12px 0;
}

.radio-item,
.checkbox-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.service-checkboxes {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.privacy-container {
    margin-top: 32px;
    text-align: center;
}

.privacy-check {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
}

.submit-button {
    background-color: #FF7800;
    color: #FFF;
    border: none;
    border-radius: 8px;
    padding: 16px 0;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    width: 336px;
    margin: 40px auto 0;
    display: block;
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.4);
}

.submit-button:hover {
    background-color: #E56E00;
}

.privacy-content{
    max-height: 290px;
    max-width: 750px;
    margin-bottom: 30px;
    text-align: center;
    border: 2px solid #C4C4C4;
    overflow: scroll;
    background-color: white;
    margin-top: 20px;
    padding: 18px;
    border-radius: 10px;
    margin-left: 30px;
}


/* 確認画面用スタイル */
.form-description {
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: #333;
    margin-bottom: 40px;
}

.confirm-form{
    padding-left: 100px;
}
.confirm-item {
    display: flex;
    margin-bottom: 0;
    border-bottom: none;
    align-items: center;
}

.confirm-label {
    width: 28%;
    padding: 24px 16px;
    font-size: 14px;
    font-weight: 500;
    color: #1F2C37;
}

.confirm-value {
    flex: 1;
    background-color: white;
    padding: 24px 26px;
    font-size: 14px;
    font-weight: 700;
    color: #333;
    line-height: 1;
}

.confirm-value.email {
    color: #000;
}

.confirm-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin-top: 40px;
}

.back-button {
    background-color: #FFF;
    color: #666;
    border: 1px solid #D8D8D8;
    border-radius: 8px;
    padding: 16px 0;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.4);
    width: 107px;
}

.back-button:hover {
    background-color: #F5F5F5;
}

.confirm-services {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.confirm-textarea {
    white-space: pre-wrap;
    line-height: 1.5;
}

/* レスポンシブスタイル */
@media (max-width: 1200px) {
    .contact-form-section {
        padding: 0 120px 80px;
    }

    .breadcrumb {
        padding: 8px 120px;
    }
}

@media (max-width: 992px) {
    .contact-form-section {
        padding: 0 64px 80px;
    }

    .breadcrumb {
        padding: 8px 64px;
    }

    .form-container {
        padding: 32px;
    }

    .form-row,
    .confirm-item {
        flex-direction: column;
    }

    .form-label,
    .confirm-label {
        width: 100%;
        padding: 12px 0;
    }

    .form-input,
    .confirm-value {
        width: 100%;
    }

    .service-checkboxes {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .contact-form-section {
        padding: 0 16px 60px;
    }

    .breadcrumb {
        padding: 8px 16px;
        margin-bottom: 20px;
    }

    .form-container {
        padding: 24px 16px;
    }

    .radio-group,
    .checkbox-group {
        gap: 12px;
    }

    .service-checkboxes {
        grid-template-columns: 1fr;
    }

    .submit-button,
    .back-button {
        width: 100%;
        padding: 12px 0;
    }

    .confirm-actions {
        flex-direction: column-reverse;
        gap: 16px;
    }
}


/* レスポンシブ対応 */
@media (max-width: 1200px) {
    .contact-section {
        padding: 0 120px;
    }
}

@media (max-width: 992px) {
    .contact-section {
        padding: 0 60px;
    }
}

@media (max-width: 768px) {
    .breadcrumb {
        padding: 8px 24px;
    }

    .text-input, .textarea-input{
        width: 100%;
    }
    .privacy-content{
        margin: 0;
    }
    .confirm-form{
        padding: 0;
    }

    .contact-section {
        padding: 0 24px;
        gap: 40px;
    }

    .contact-buttons {
        gap: 24px;
    }

    .contact-button {
        width: 100%;
        max-width: 300px;
    }
}

@media (max-width: 480px) {

    .button-text p {
        font-size: 16px;
    }
}