section#contact{
    background:#000;
    /* 2026-09-13 左右16pxに統一 */
    /* 2026-09-14 下はフッターのロケットの居場所。
       これを削ると、ロケットが本文の白い要素に重なる。
       必要な高さの根拠は css/footer.css の a.top-rocket を参照。 */
    padding:140px 16px 390px;

    @media screen and (max-width:640px){
        padding-bottom: 200px;
    }
}

section#contact .inner{
    max-width:800px;
    margin:0 auto;
}

section#contact h3{
    margin-bottom:24px;
}

section#contact .tmp-h3{
    color:#fff;
}

section#contact .tmp-h3::after{
    border-color:#fff;
}

section#contact .tmp-h3 span.jp{
    color:#fff;
}

section#contact p.explain{
    color:#fff;
    line-height:1.9;
    margin-bottom:48px;
}

section#contact form{
    background:#fff;
    border-radius:16px;
    padding:48px;
}

section#contact .form-item{
    margin-bottom:32px;
}

section#contact label{
    display:block;
    font-weight:bold;
    margin-bottom:12px;
}

section#contact .must{
    display:inline-block;
    background:#d33;
    color:#fff;
    font-size:.75rem;
    line-height:1;
    padding:4px 8px;
    border-radius:3px;
    margin-right:8px;
    vertical-align:middle;
}

section#contact .any{
    display:inline-block;
    background:#e8e8e8;
    color:#666;
    font-size:.75rem;
    line-height:1;
    padding:4px 8px;
    border-radius:3px;
    margin-right:8px;
    vertical-align:middle;
}

section#contact p.label{
    font-weight:bold;
    margin-bottom:12px;
}

section#contact p.note{
    color:#666;
    font-size:.85rem;
    line-height:1.7;
    margin-bottom:12px;
    margin-top:-4px;
}

section#contact .form-item.type ul{
    display:flex;
    gap:16px;
}

section#contact .form-item.type li{
    flex:1 1 0;
    min-width:0;
}

/* reset.cssで input に appearance:none が当たっているため、
   ラジオ本体は隠してラベル側で見た目を作る */
section#contact .form-item.type input[type=radio]{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}

section#contact .form-item.type label{
    display:flex;
    align-items:center;
    gap:12px;
    height:100%;
    box-sizing:border-box;
    margin:0;
    padding:20px;
    border:1px solid #d8d8d8;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
    transition:.2s;
}

section#contact .form-item.type label::before{
    content:"";
    flex:0 0 auto;
    box-sizing:border-box;
    width:20px;
    height:20px;
    border:1px solid #b8b8b8;
    border-radius:50%;
    background:#fff;
    transition:.2s;
}

section#contact .form-item.type label:hover{
    border-color:#007ec6;
}

section#contact .form-item.type input[type=radio]:checked + label{
    border-color:#007ec6;
    background:rgba(0,126,198,.06);
}

section#contact .form-item.type input[type=radio]:checked + label::before{
    border:6px solid #007ec6;
}

section#contact .form-item.type input[type=radio]:focus-visible + label{
    border-color:#007ec6;
    box-shadow:0 0 0 3px rgba(0,126,198,.12);
}

@media screen and (max-width:640px){

    section#contact .form-item.type ul{
        flex-direction:column;
        gap:12px;
    }

    section#contact .form-item.type label{
        padding:16px;
    }

}

section#contact input[type=text],
section#contact input[type=email],
section#contact textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid #d8d8d8;
    border-radius:8px;
    padding:14px 16px;
    font-size:1rem;
    transition:.2s;
    background:#fff;
}

section#contact textarea{
    resize:vertical;
    min-height:160px;
}

section#contact input::placeholder,
section#contact textarea::placeholder{
    color:#aaa;
}

section#contact input:focus,
section#contact textarea:focus{
    outline:none;
    border-color:#007ec6;
    box-shadow:0 0 0 3px rgba(0,126,198,.12);
}

section#contact .submit{
    margin-top:48px;
    margin-bottom:0;
}

section#contact .submit input{
    display:block;
    width:100%;
    max-width:320px;
    margin:0 auto;
    cursor:pointer;
}

section#contact .error-message{
    color:#d33;
    font-size:.9rem;
    margin-top:8px;
}

/* reCAPTCHA v3 のバッジ（右下に固定表示される）を隠す。
   フッターの「TOP」ロケットと重なるため。Googleの規約では、代わりに
   下の p.recaptcha の文言を表示していれば非表示にしてよい。 */
.grecaptcha-badge{
    visibility:hidden;
}

section#contact .recaptcha{
    margin-top:32px;
    color:#666;
    font-size:.8rem;
    line-height:1.8;
}

section#contact .recaptcha a{
    color:#007ec6;
}

section#contact .form-item.submit{
    text-align:center;
    margin-top:48px;
}

section#contact .form-item.submit input{
    appearance:none;
    border:none;
    background:#000;
    color:#fff;
    font-size:1rem;
    font-weight:700;
    letter-spacing:.08em;
    padding:18px 64px;
    border-radius:999px;
    cursor:pointer;
    transition:.25s;
    min-width:260px;
    box-shadow:0 8px 24px rgba(0,0,0,.18);
}

section#contact .form-item.submit input:hover{
    background:#007ec6;
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(0,126,198,.25);
}

section#contact .form-item.submit input:active{
    transform:translateY(0);
}

@media screen and (max-width:640px){

    section#contact .form-item.submit input{
        width:100%;
        min-width:0;
        padding:18px 24px;
    }

}



section#contact .contact-complete{

    max-width:720px;

    margin:60px auto 0;

    padding:64px 48px;

    background:#fff;

    border-radius:12px;

    text-align:center;

    box-sizing:border-box;

}

section#contact .contact-complete .text-top{

    font-size:2rem;

    font-weight:700;

    margin-bottom:28px;

    color:#000;

}

section#contact .contact-complete .text-bottom{

    color:#555;

    line-height:2;

    margin-bottom:48px;

}

section#contact .contact-complete .text-bottom span{

    display:block;

}

section#contact .contact-complete a.btn-green{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:320px;

    max-width:100%;

    height:60px;

    border-radius:30px;

    background:#007ec6;

    color:#fff;

    text-decoration:none;

    font-weight:bold;

    transition:.25s;

}

section#contact .contact-complete a.btn-green:hover{

    background:#005e95;

    transform:translateY(-2px);

}

@media screen and (max-width:640px){

    section#contact .contact-complete{

        margin-top:40px;

        padding:40px 24px;

    }

    section#contact .contact-complete .text-top{

        font-size:1.5rem;

        line-height:1.6;

        margin-bottom:20px;

    }

    section#contact .contact-complete .text-bottom{

        font-size:.95rem;

        line-height:1.9;

        margin-bottom:36px;

    }

    section#contact .contact-complete a.btn-green{

        width:100%;

        height:56px;

    }

}