/* === CONTACT PAGE === */
.contact-hero{background:var(--cream);padding-top:8rem;min-height:100vh}
.contact-hero .s-desc{margin-bottom:3rem;margin-left:auto;margin-right:auto}
.contact-hero .s-label,.contact-hero .s-title{text-align:center;display:block}
.contact-hero .s-desc{text-align:center}

/* Form */
.cf{max-width:640px;margin:0 auto}
.cf-group{margin-bottom:1.8rem}
.cf-label{display:block;font-size:.92rem;font-weight:700;color:var(--dark);margin-bottom:.5rem}
.cf-req{display:inline-block;background:var(--red);color:var(--white);font-size:.65rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;margin-left:.5rem;vertical-align:middle}
.cf-opt{display:inline-block;background:var(--gray-mid);color:var(--white);font-size:.65rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;margin-left:.5rem;vertical-align:middle}
.cf-input{width:100%;padding:1rem 1.2rem;border:2px solid var(--gray-border);border-radius:12px;font-size:1rem;font-family:var(--jp);font-weight:500;color:var(--dark);background:var(--white);transition:border-color .3s,box-shadow .3s;outline:none}
.cf-input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,0,18,.1)}
.cf-input::placeholder{color:var(--gray-mid);font-weight:400}
.cf-textarea{min-height:200px;resize:vertical;line-height:1.9}
.cf-submit{margin-top:2.5rem}
.cf-submit .btn{font-size:1rem;padding:1rem 3rem}

/* ハニーポット（非表示） */
.cf-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* サンクスメッセージ */
.thanks-box{max-width:640px;margin:0 auto;text-align:center;padding:4rem 2rem}
.thanks-box h2{font-size:1.8rem;font-weight:900;color:var(--dark);margin-bottom:1.5rem}
.thanks-box p{font-size:1rem;color:var(--body);line-height:2;margin-bottom:1rem;font-weight:500}
.thanks-box .btn{margin-top:2rem}

/* Mobile */
@media(max-width:900px){
  .contact-hero{padding-top:6rem}
}
