/* 既存の7つのCSSに対するフォーム専用の補足。 */
#form.contact-php .form-steps {display:flex;gap:8px;list-style:none;padding:0;margin:0 0 24px;counter-reset:contact-step;}
#form.contact-php .form-steps li {list-style:none;margin:0;flex:1;counter-increment:contact-step;text-align:center;background:#f1f1f1;color:#555;padding:10px 8px;border-radius:4px;font-weight:700;}
#form.contact-php .form-steps li::before {content:counter(contact-step) ". ";}
#form.contact-php .form-steps li.current {background:#007d38;color:#fff;}
#form.contact-php dl {display:grid;grid-template-columns:13em minmax(0,1fr);}
#form.contact-php dt {float:none;width:auto;margin:0;}
#form.contact-php dd {margin:0;min-width:0;}
#form.contact-php .radio label {display:inline-flex;align-items:baseline;gap:4px;margin:5px 20px 5px 0;}
#form.contact-php input[type="text"],#form.contact-php input[type="email"],#form.contact-php input[type="tel"] {max-width:100%;min-width:0;background:#fff;color:#111;}
#form.contact-php input:focus-visible,#form.contact-php textarea:focus-visible,#form.contact-php button:focus-visible,#form.contact-php a:focus-visible {outline:3px solid #006bb0;outline-offset:3px;}
#form.contact-php .hint {display:inline-block;font-size:.95em;}
#form.contact-php .address-line {display:flex;gap:8px;align-items:center;margin-bottom:6px;}
#form.contact-php .address-line>span {flex:0 0 4em;}
#form.contact-php .address-line input {flex:1;width:auto;}
#form.contact-php #zip,#form.contact-php #pref {flex:0 1 11em;}
#form.contact-php textarea {min-height:240px;resize:vertical;}
#form.contact-php .form-errors {padding:16px;border:2px solid #b00020;background:#fff4f5;color:#9b001c;margin:20px 0;}
#form.contact-php .form-errors ul {list-style:disc;padding-left:1.5em;}
#form.contact-php .field-error {display:block;color:#b00020;margin-top:6px;font-weight:700;}
#form.contact-php [aria-invalid="true"] {border:2px solid #b00020;}
#form.contact-php .consent {text-align:center;background:#ffffcc;padding:16px;margin:16px 0;}
#form.contact-php .contact-actions {display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:28px 0;}
#form.contact-php button,#form.contact-php .contact-link {appearance:none;border:0;border-radius:6px;background:#0071bc;color:#fff;font:inherit;font-weight:700;font-size:18px;line-height:1.5;padding:12px 28px;cursor:pointer;box-shadow:0 4px 0 #00558d;display:inline-block;text-decoration:none;}
#form.contact-php button.back {background:#666;box-shadow:0 4px 0 #444;}
#form.contact-php button:hover {filter:brightness(.92);}
#form.contact-php button:disabled {opacity:.6;cursor:wait;}
#form.contact-php .confirm-row {display:contents;}
#form.contact-php .confirmation dd {overflow-wrap:anywhere;white-space:normal;}
#form.contact-php .completion {padding:24px 0;line-height:1.9;}
#form.contact-php .completion p {margin-bottom:20px;}
#form.contact-php .contact-trap {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
#form.contact-php .sending-note {text-align:center;}
@media(max-width:739px) {
 #form.contact-php dl {display:block;}
 #form.contact-php dt {padding:10px;background:#f1f1f1;}
 #form.contact-php dd {padding:14px 10px;}
 #form.contact-php input[type="text"],#form.contact-php input[type="email"],#form.contact-php input[type="tel"] {width:100%;font-size:16px;}
 #form.contact-php .hint {display:block;margin-top:5px;}
 #form.contact-php .address-line {align-items:flex-start;flex-direction:column;gap:4px;}
 #form.contact-php .address-line>span {flex:auto;}
 #form.contact-php .address-line input,#form.contact-php #zip,#form.contact-php #pref {flex:auto;width:100%;}
 #form.contact-php textarea {font-size:16px;}
 #form.contact-php .form-steps {gap:4px;margin:10px;}
 #form.contact-php .form-steps li {padding:10px 3px;font-size:14px;}
 #form.contact-php .form-errors {margin:12px;}
}

/* 確認用ラベルの改行と住所補完の案内 */
#form.contact-php label[for="email_confirm"] {display:inline-block;}
#form.contact-php .postal-status {font-size:14px;line-height:1.6;margin:8px 0 0;padding:0;}
