/* 移植用。フォームの親要素に class="dm-contact" を付けて読み込みます。 */
.dm-contact .wpcf7 { max-width: 640px; }
.dm-contact .wpcf7 label { display: block; font-weight: 600; }
.dm-contact .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.dm-contact .wpcf7 select,
.dm-contact .wpcf7 textarea {
    display: block; width: 100%; margin-top: 6px; padding: 12px;
    border: 1px solid #999; border-radius: 4px; background: #fff; color: #222; font: inherit;
}
.dm-contact .wpcf7 textarea { min-height: 180px; resize: vertical; }
.dm-contact .wpcf7 input[type="checkbox"],
.dm-contact .wpcf7 input[type="radio"] { width: auto; }
.dm-contact .wpcf7 input[type="submit"] {
    padding: 12px 32px; border: 0; border-radius: 4px;
    background: #222; color: #fff; font: inherit; cursor: pointer;
}
.dm-contact .wpcf7 input[type="submit"]:disabled { opacity: .5; cursor: wait; }
.dm-contact .wpcf7 :is(input, select, textarea, a):focus-visible { outline: 3px solid #175ca4; outline-offset: 3px; }
.dm-contact .wpcf7 .wpcf7-not-valid-tip { font-size: .875rem; }
.dm-contact .wpcf7 .wpcf7-response-output { margin-inline: 0; }
.dm-contact .wpcf7 .wpcf7-list-item { margin-left: 0; margin-right: 1em; }

/* 広告用詳細フォーム。既存テーマ全体には適用しません。 */
.dm-form-page > h1 { text-align: center; }
.dm-contact-ad .wpcf7 { max-width: none; }
.dm-contact-ad .form-group { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; padding: 20px 0; border-bottom: 1px dashed #ccc; }
.dm-contact-ad .form-group > label, .dm-contact-ad .form-group > p { margin: 0; }
.dm-contact-ad .form-group > label span { color: #c00; }
.dm-contact-ad .form-group:has(input[type="file"]) label { font-size: inherit; font-weight: 600; }
.dm-contact-ad .forms, .dm-contact-ad .forms > div, .dm-contact-ad .forms p { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.dm-contact-ad .forms .wpcf7-form-control-wrap { max-width: 110px; }
.dm-contact-ad .forms > span, .dm-contact-ad .textarea > span, .dm-contact-ad .note { font-size: .875rem; }
.dm-contact-ad .tel-split { flex-wrap: nowrap; }
.dm-contact-ad .tel-split > div { min-width: 0; }
.dm-contact-ad .wpcf7 .form-radio label { display: inline; font-weight: 400; }
.dm-contact-ad .birthday-selects { display: flex; gap: 8px; }
.dm-contact-ad .birthday-field { flex: 1; min-width: 0; }
.dm-contact-ad .birthday-selects p { display: contents; }
.dm-contact-ad .sp { display: none; }
.dm-contact-ad .contact-submit { margin-block: 32px; text-align: center; }
.dm-contact-ad .contact-submit p { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.dm-contact-ad .contact-submit p br { display: none; }
.dm-contact-ad .contact-submit .wpcf7-spinner { margin: 0; flex-shrink: 0; }
.dm-contact-ad .recaptcha-text { font-size: .75rem; text-align: center; }
.dm-contact-ad [hidden] { display: none !important; }
.dm-contact-fallback { margin-top: 40px; padding: 24px; border: 1px solid #ddd; border-radius: 4px; }
.dm-contact-fallback > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.dm-contact-fallback a { padding: 12px; color: #fff; text-align: center; text-decoration: none; font-weight: bold; border-radius: 8px; overflow-wrap: anywhere; }
.dm-contact-fallback a[href^="tel:"] { background-color: #E1306C; }
.dm-contact-fallback a[href^="mailto:"] { background-color: #ff8600; }
.dm-contact-fallback a[href^="https://lin.ee/"] { background-color: #06C755; }
/* PCもラベルと入力欄の基準線を揃え、装飾を増やさずコンパクトにする。 */
@media (min-width: 641px) {
    .dm-contact-ad .form-group { grid-template-columns: minmax(0, 24%) minmax(0, 1fr); gap: 24px; align-items: center; padding: 14px 0; font-size: 14px; line-height: 1.6; }
    .dm-contact-ad .form-group > * { min-width: 0; }
    .dm-contact-ad .form-group p { margin: 0; }
    .dm-contact-ad .form-group > label, .dm-contact-ad .form-group > p > label { font-weight: 600; }
    .dm-contact-ad .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .dm-contact-ad .wpcf7 select, .dm-contact-ad .wpcf7 textarea { margin-top: 0; padding: 8px 10px; min-width: 0; }
    .dm-contact-ad .forms, .dm-contact-ad .forms > div, .dm-contact-ad .forms p { align-items: center; }
    .dm-contact-ad .forms > div { min-width: 0; flex-wrap: nowrap; }
    .dm-contact-ad .forms .wpcf7-form-control-wrap { display: block; width: 120px; min-width: 0; max-width: 120px; }
    .dm-contact-ad .forms > div:has(#residence_month, #work_month) .wpcf7-form-control-wrap { width: 64px; }
    .dm-contact-ad .tel-split { gap: 8px; }
    .dm-contact-ad .tel-split > div { flex: 0 1 100px; }
    .dm-contact-ad .tel-split .wpcf7-form-control-wrap { width: 100%; }
    .dm-contact-ad .form-radio .wpcf7-form-control { display: flex; flex-wrap: wrap; gap: 8px 16px; }
    .dm-contact-ad .form-radio .wpcf7-list-item { margin: 0; }
    .dm-contact-ad .form-radio label { display: inline-flex; align-items: center; gap: 4px; }
    .dm-contact-ad .form-radio input { margin: 0; }
    .dm-contact-ad .birthday-selects { align-items: center; }
    .dm-contact-ad .wpcf7 input[type="file"] { max-width: 100%; font-size: 13px; }
}
@media (max-width: 640px) {
    .dm-form-page > h1 { font-size: 24px; line-height: 1.5; }
    .dm-contact-ad .form-group { grid-template-columns: minmax(0, 33%) minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 0; font-size: 12px; line-height: 1.6; }
    .dm-contact-ad .form-group > * { min-width: 0; }
    .dm-contact-ad .form-group p { margin: 0; }
    .dm-contact-ad .form-group > label, .dm-contact-ad .form-group > p > label { font-weight: 700; }
    .dm-contact-ad .form-group:has(input[type="file"]) label { font-size: inherit; font-weight: 700; }
    .dm-contact-ad .sp { display: inline; }
    .dm-contact-ad .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .dm-contact-ad .wpcf7 select, .dm-contact-ad .wpcf7 textarea { margin-top: 0; padding: 8px; background: #fff; border: 1px solid #999; border-radius: 4px; min-width: 0; font-size: 12px; }
    .dm-contact-ad .wpcf7 input[type="file"] { max-width: 100%; font-size: 11px; }
    .dm-contact-ad .form-radio .wpcf7-form-control { display: flex; flex-wrap: wrap; gap: 6px 10px; }
    .dm-contact-ad .form-radio .wpcf7-list-item { margin: 0; }
    .dm-contact-ad .form-radio label { display: inline-flex; align-items: center; gap: 3px; }
    .dm-contact-ad .form-radio input { margin: 0; }
    .dm-contact-ad .forms { gap: 8px; }
    .dm-contact-ad .forms > div { width: 100%; min-width: 0; flex-wrap: nowrap; }
    .dm-contact-ad .forms > div > p { display: flex; width: 100%; min-width: 0; flex-wrap: nowrap; }
    .dm-contact-ad .forms .wpcf7-form-control-wrap { flex: 1; min-width: 0; max-width: none; }
    .dm-contact-ad .forms > span, .dm-contact-ad .textarea > span { font-size: 11px; }
    .dm-contact-ad .forms > div:has(#residence_month, #work_month) .wpcf7-form-control-wrap { flex: 0 1 52px; }
    .dm-contact-ad .tel-split { gap: 6px; }
    .dm-contact-ad .tel-split > div { flex: 1; width: auto; }
    .dm-contact-ad .birthday-selects { gap: 6px; }
    .dm-contact-ad .birthday-selects select { padding: 8px 2px; }
    .dm-contact-ad .wpcf7-not-valid-tip { font-size: 11px; }
    .dm-contact-fallback > div { grid-template-columns: 1fr; }
}
