.contact [hidden], .thanks-page [hidden] { display: none !important; }
.contact-form .form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-status { max-width: 900px; margin: 24px auto 0; padding: 16px; font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; border: 1px solid #bdbdbd; background: #f6f6f6; color: #222; }
.contact-status:empty { display: none; }
.contact-status.error { color: #8d1b1b; border-color: #8d1b1b; background: #fff6f6; }
.contact-status.success { color: #164c2a; border-color: #164c2a; background: #f3faf5; }
.contact-mail-help { margin: 20px auto 0; text-align: center; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; color: #333; }
.contact-mail-help a { color: inherit; text-decoration: underline; }
.contact .btn-submit:disabled, .contact .btn-edit:disabled { opacity: .6; cursor: wait; }
.contact-confirmation { max-width: 900px; margin: auto; padding: 36px; background: #fff; border: 1px solid #d8d8d8; scroll-margin-top: 120px; }
.contact-form { scroll-margin-top: 120px; }
.confirmation-label { color: #6b4d39; letter-spacing: .18em; font-size: 12px; margin-bottom: 8px; }
.contact-confirmation h3 { font-size: clamp(22px, 4vw, 28px); line-height: 1.6; margin-bottom: 16px; }
.confirmation-intro, .confirmation-notice { font-size: 16px; line-height: 1.8; color: #333; }
.confirmation-details { margin: 28px 0; border-top: 1px solid #ddd; }
.confirmation-details > div { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 24px; padding: 18px 0; border-bottom: 1px solid #ddd; }
.confirmation-details dt { font-size: 15px; color: #555; }
.confirmation-details dd { margin: 0; font-size: 17px; color: #222; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.confirmation-actions { display: flex; align-items: stretch; gap: 16px; margin-top: 32px; }
.confirmation-actions .btn-submit, .confirmation-actions .btn-edit { flex: 1; width: auto; min-width: 0; font-size: 16px; padding: 18px 16px; }
.btn-edit { border: 1px solid #666; background: #fff; color: #222; cursor: pointer; font-family: inherit; }
.btn-edit:hover { background: #f4f4f4; }
.contact-confirmation :focus-visible, .thanks-page :focus-visible { outline: 3px solid #84634c; outline-offset: 4px; }
.thanks-page { margin: 0; background: #fafafa; color: #222; font-family: "Noto Sans JP", "Yu Gothic", sans-serif; }
.thanks-page *, .thanks-page *::before, .thanks-page *::after { box-sizing: border-box; }
.thanks-header { background: #fff; padding: 24px max(24px, 6vw); border-bottom: 1px solid #ddd; }
.thanks-header img { display: block; width: auto; max-width: 65vw; height: 72px; filter: brightness(0); }
.thanks-main { width: min(760px, calc(100% - 40px)); margin: 64px auto; }
.thanks-card { background: #fff; border: 1px solid #ddd; padding: clamp(24px, 5vw, 52px); }
.thanks-eyebrow { color: #6b4d39; font-size: 12px; letter-spacing: .2em; margin-bottom: 20px; }
.thanks-card h1 { font-size: clamp(25px, 5vw, 34px); line-height: 1.6; margin-bottom: 24px; }
.thanks-card p { line-height: 1.9; font-size: 16px; margin-bottom: 20px; }
.receipt-box { padding: 22px; background: #f5f5f5; margin: 28px 0; }
.receipt-box dt { font-size: 14px; color: #555; margin-bottom: 10px; }
.receipt-box dd { font-family: monospace; font-size: 20px; margin: 0; overflow-wrap: anywhere; }
.thanks-note { border-top: 1px solid #ddd; padding-top: 24px; color: #555; }
.thanks-links { display: grid; gap: 14px; margin-top: 30px; }
.thanks-links a { padding: 16px; text-align: center; border: 1px solid #6b4d39; text-decoration: none; color: #fff; background: #6b4d39; font-size: 16px; }
.thanks-links a:last-child { background: #fff; color: #333; border-color: #aaa; }
.thanks-card a:not(.thanks-links a) { color: inherit; text-decoration: underline; }
.thanks-footer { text-align: center; padding: 24px; font-size: 12px; color: #666; }
@media (max-width: 600px) {
    .contact-confirmation { padding: 24px 18px; }
    .confirmation-details > div { grid-template-columns: 1fr; gap: 8px; }
    .confirmation-actions { flex-direction: column-reverse; }
    .thanks-main { margin-top: 30px; }
}
