.contact-page { background:#101318; color:#eff0f4; font-family:"Yu Gothic",Meiryo,sans-serif; }
.contact-page [hidden] { display:none!important; }
.contact-main { max-width:850px; padding:140px 24px 80px; margin:auto; }
.contact-main h1 { font:400 clamp(30px,5vw,46px) "Yu Mincho",serif; margin:16px 0; }
.contact-kicker { font-size:12px; letter-spacing:.16em; color:#dfbf77; }
.contact-lead { font-size:18px; margin:20px 0 10px; }
.contact-main a { color:#e6c77e; text-decoration:underline; }
.contact-panel { padding:32px; margin-top:28px; border:1px solid #48505c; background:#191e27; border-radius:10px; }
.contact-notice { margin:24px 0; padding:16px 20px; border-left:3px solid #dfbf77; background:#26251e; color:#eee1c0; }
.contact-panel label { display:block; font-weight:bold; margin:28px 0 10px; }
.contact-panel label span { font-size:12px; font-weight:normal; color:#e6c77e; margin-left:8px; }
.contact-panel input,.contact-panel select,.contact-panel textarea { width:100%; min-width:0; padding:12px; border:1px solid #78818e; border-radius:5px; color:#f5f5f5; background:#10151e; font:inherit; }
.contact-panel textarea { resize:vertical; line-height:1.8; }
.contact-panel ::placeholder { color:#a9b1bd; }
.field-help,.required-note { font-size:13px; color:#bac1cd; margin:8px 0; }
#detail-count { display:block; text-align:right; }
.contact-panel button { padding:13px 22px; border-radius:5px; font:inherit; cursor:pointer; margin:20px 0 8px; }
.contact-primary { background:#dfbf77; border:1px solid #dfbf77; color:#151719; font-weight:bold!important; }
.contact-secondary { background:#242c38; color:#fff; border:1px solid #86909e; }
.contact-panel button:disabled { opacity:.55; cursor:not-allowed; }
.contact-page :focus-visible { outline:3px solid #efd18a; outline-offset:4px; }
.contact-panel dt { margin-top:24px; color:#dfbf77; }
.contact-panel dd { margin:8px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; }
.contact-page .mobile-nav { height:100dvh; overflow:auto; padding:90px 20px 35px; }
@media(max-width:600px) { .contact-main { padding:110px 16px 50px; } .contact-panel { padding:20px; } }
.contact-actions #compose-email { display:inline-block; padding:13px 22px; border-radius:5px; margin:20px 0 8px; text-decoration:none; color:#151719; }
.mail-fallback { margin-top:24px; padding-top:20px; border-top:1px solid #48505c; }
.mail-fallback summary { cursor:pointer; color:#e6c77e; }
.mail-fallback p { margin-top:14px; overflow-wrap:anywhere; }
#mail-status { margin-top:16px; }
