.exceed-step-form{--ex-primary:#20584f;--ex-accent:#b58145;max-width:820px;margin:32px auto;padding:clamp(20px,4vw,44px);background:#fff;border:1px solid #dbe4df;border-radius:16px;color:#253c36;font-size:16px;line-height:1.8;box-sizing:border-box}
.exceed-step-form *{box-sizing:border-box}
.exceed-step-form .ex-progress{display:none;list-style:none;padding:0;margin:0 0 32px;gap:8px}
.exceed-step-form.ex-ready .ex-progress{display:grid;grid-template-columns:repeat(4,1fr)}
.exceed-step-form .ex-progress li{font-size:13px;text-align:center;padding:10px 4px;border-bottom:4px solid #e4eae7;color:#66756f}
.exceed-step-form .ex-progress li[aria-current=step]{color:var(--ex-primary);border-color:var(--ex-primary);font-weight:700}
.exceed-step-form h3{color:var(--ex-primary);font-size:24px;margin:0 0 24px}
.exceed-step-form .ex-field{margin-bottom:22px}
.exceed-step-form label{display:block;font-weight:600}
.exceed-step-form input:not([type=checkbox]):not([type=submit]),.exceed-step-form select,.exceed-step-form textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #b8c8c0;border-radius:6px;background:#fff;color:#253c36;font:inherit;min-height:48px}
.exceed-step-form textarea{min-height:160px}
.exceed-step-form .ex-required{display:inline-block;background:var(--ex-primary);color:#fff;font-size:11px;padding:1px 7px;border-radius:3px;margin-left:8px}
.exceed-step-form .ex-hint{display:block;color:#626e67;font-size:13px;font-weight:400;margin:6px 0}
.exceed-step-form .ex-actions{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:30px}
.exceed-step-form button,.exceed-step-form input[type=submit]{border:0;border-radius:7px;padding:14px 28px;background:var(--ex-primary);color:#fff;font:inherit;font-weight:700;cursor:pointer;min-height:50px}
.exceed-step-form [data-ex-prev]{background:#edf2ef;color:var(--ex-primary)}
.exceed-step-form button:disabled,.exceed-step-form input:disabled{opacity:.55;cursor:wait}
.exceed-step-form :focus-visible{outline:3px solid #b58145;outline-offset:3px}
.exceed-step-form [hidden]{display:none!important}
.exceed-step-form .ex-nav{display:none}
.exceed-step-form.ex-ready .ex-nav{display:block}
.exceed-step-form .ex-error{color:#a52626;margin:12px 0}
.exceed-step-form .ex-error:empty{display:none}
.exceed-step-form [aria-invalid=true]{border-color:#a52626!important}
.exceed-step-form .ex-summary{margin:0}
.exceed-step-form .ex-summary dt{font-weight:700;background:#f1f5f2;padding:10px 14px;margin-top:10px}
.exceed-step-form .ex-summary dd{margin:0;padding:10px 14px;white-space:pre-wrap;overflow-wrap:anywhere}
.exceed-step-form .ex-privacy{margin-top:24px;font-size:14px}
.exceed-step-form .ex-privacy a{color:var(--ex-primary);text-decoration:underline}
.exceed-step-form .wpcf7-list-item{margin:10px 0}
.exceed-step-form .wpcf7-list-item label{display:flex;gap:10px;align-items:center}
.exceed-step-form input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
@media(max-width:540px){.exceed-step-form{margin:16px auto;border-radius:10px}.exceed-step-form .ex-progress li{font-size:11px}.exceed-step-form .ex-actions>*{width:100%}.exceed-step-form h3{font-size:21px}}

.exceed-step-form .ex-address-ui{margin:8px 0 16px}
.exceed-step-form button.ex-address-toggle{background:#edf2ef;color:var(--ex-primary);font-size:14px;padding:8px 14px;min-height:40px;margin-top:8px}
.exceed-step-form .ex-address-ui input[type=search]{font-size:14px;min-height:42px}

/* 郵便番号の入力と住所補完ボタンを近づける */
.exceed-step-form .ex-postcode-field>p,
.exceed-step-form .ex-postcode-field>label,
.exceed-step-form .ex-postcode-field>p>label{margin-top:0;margin-bottom:0;padding-bottom:0}
.exceed-step-form .ex-postcode-field label br{display:none}
.exceed-step-form .ex-postcode-field .wpcf7-form-control-wrap{display:block;margin-bottom:0}
.exceed-step-form .ex-postcode-field input[name=postcode]{margin-bottom:0}
.exceed-step-form .ex-postcode-field p:empty{display:none}
.exceed-step-form .ex-postcode-actions{margin:10px 0 16px;padding:0;display:grid;gap:8px}
.exceed-step-form .ex-postcode-actions .ex-hint{margin:0}
.exceed-step-form .ex-postcode-actions .ex-hint:empty{display:none}
.exceed-step-form button.ex-postcode-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:0;padding:12px 18px;min-height:48px;border:1px solid var(--ex-primary);border-radius:8px;background:var(--ex-primary);color:#fff;font-size:15px;font-weight:700;line-height:1.5;box-shadow:0 3px 7px rgba(32,88,79,.18);transition:background .15s,box-shadow .15s}
.exceed-step-form button.ex-postcode-button::after{content:'→';font-size:20px;line-height:1}
.exceed-step-form button.ex-postcode-button:hover:not(:disabled){background:#17483f;box-shadow:0 4px 9px rgba(32,88,79,.24)}
.exceed-step-form button.ex-postcode-button:active:not(:disabled){box-shadow:none}
