.form-section{max-width:920px;padding-bottom:100px}.form-intro h2{margin-bottom:25px}.form-intro p{margin-bottom:35px}.form-steps{list-style:none;display:flex;padding:0;margin:0 0 45px;border-bottom:1px solid var(--line);gap:30px}.form-steps li{flex:1;padding:14px 0;color:#737867;font-size:14px;letter-spacing:.09em}.form-steps li span{margin-left:14px}.form-steps li[aria-current]{color:var(--green);border-bottom:2px solid var(--green)}.form-row{margin-bottom:30px}.form-row>label{display:flex;align-items:center;gap:16px;margin-bottom:12px;font-weight:600;font-size:16px}.required-mark,.optional-mark{display:inline-block;font-size:12px;padding:0 7px;line-height:1.8;vertical-align:middle;font-weight:400;letter-spacing:.04em}.required-mark{color:var(--red);background:#ede3dc}.optional-mark{color:#636b5d;background:#e6e9e0}.form-row input,.form-row select,.form-row textarea{display:block;width:100%;background:var(--white);border:1px solid #b7bfaf;border-radius:2px;padding:15px 18px;color:var(--ink);font:inherit;line-height:1.7;font-size:16px}.form-row textarea{resize:vertical;min-height:210px}.form-row input::placeholder,.form-row textarea::placeholder{color:#777c70;font-size:14px}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid var(--green);outline-offset:2px}.field-note{font-size:13px;color:var(--muted);margin:8px 0 0}.form-privacy{background:#e8ece2;padding:28px;margin:40px 0}.form-privacy h3{font-size:18px;margin-bottom:15px}.form-privacy p{font-size:14px}.consent-label{display:flex;gap:13px;align-items:flex-start;cursor:pointer;font-size:15px}.consent-label input{width:20px;height:20px;flex-shrink:0;accent-color:var(--green);margin-top:5px}.form-primary{font:inherit;font-size:15px;border:0;margin:30px auto 0;min-width:300px;cursor:pointer}.form-primary:disabled{background:#68715e;cursor:default}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:25px}.form-back{border:0;background:none;font:inherit;font-size:14px;padding:14px 0;text-decoration:underline;color:var(--green)}.form-actions .form-primary{margin:0}.review-list{margin:30px 0 45px}.review-list>div{display:grid;grid-template-columns:190px 1fr;gap:25px;border-bottom:1px solid var(--line);padding:22px 0}.review-list dt{font-size:14px;color:var(--green)}.review-list dd{white-space:pre-wrap;overflow-wrap:anywhere}.form-success{padding:65px 35px;background:#e8ece2;text-align:center}.form-success h3{font-size:26px;margin-bottom:25px}.form-success .text-link{margin-top:20px}.form-error,.form-notice{padding:20px 24px;margin-bottom:30px;border:1px solid #b5a27b;background:#eee8d8;font-size:15px}.form-error{border-color:var(--red);color:#8f0000;background:#f5e8e1}.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-section [hidden]{display:none!important}@media(max-width:800px){.form-section{padding-bottom:65px}.form-steps{gap:18px}.form-steps li span{margin-left:8px}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-primary{min-width:0;width:100%}.form-privacy{padding:22px}.review-list>div{grid-template-columns:1fr;gap:8px}.form-success{padding:40px 22px}.form-success h3{font-size:22px}.consent-label{font-size:14px}}

.recaptcha-notice{margin-top:32px;line-height:2}.recaptcha-notice a{text-decoration:underline}.grecaptcha-badge{bottom:80px!important}

/* 説明と同意操作を分け、チェック位置を明確に */
.consent-panel{margin:28px 0 40px;padding:28px;border:2px solid var(--green);background:#fffefa;border-radius:5px}.consent-title{font-weight:700;color:var(--green);margin:0 0 18px;font-size:17px}.consent-panel .consent-label{padding:20px;background:#edf1e7;align-items:center;font-size:16px;font-weight:700;line-height:1.9}.consent-panel .consent-label input{width:26px;height:26px;margin:0}.consent-panel .required-mark{background:#b20000;color:#fff;margin-right:8px;font-weight:700}.consent-help{font-size:13px;margin:14px 0 0;color:var(--muted)}.consent-panel:has(input:checked){background:#e8efe2}.consent-panel:focus-within{outline:2px solid var(--green);outline-offset:4px}@media(max-width:800px){.consent-panel{padding:20px 16px}.consent-panel .consent-label{padding:16px 12px;font-size:15px;align-items:flex-start}.consent-panel .consent-label input{margin-top:3px}}
