*{box-sizing:border-box}
body{background:#f4f1eb;color:#30453b;font:16px/1.8 system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;margin:0}
main{max-width:880px;margin:24px auto;padding:16px 24px}
.brand{letter-spacing:.3em;font:24px Georgia,serif}
.brand a{color:inherit;text-decoration:none}
h1{font-family:serif;font-size:30px;margin:12px 0 4px}
h2{font-family:serif;font-size:24px;margin-top:0}
.cf-steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 20px;counter-reset:s}
.cf-steps li{flex:1;text-align:center;padding:6px;border-bottom:3px solid #d7dcd3;color:#7a8a7d;font-size:14px}
.cf-steps li[aria-current]{border-color:#405c49;color:#30453b;font-weight:bold}
.note{padding:12px 15px;background:#e7eddf;border-radius:6px;margin:12px 0}
.cf-alert{padding:15px;background:#fbe9e5;border-left:4px solid #b4442c;color:#7a2a1a}
.cf-alert p{margin:0}
.cf-alert ul{margin:8px 0 0;padding-left:1.2em}
.cf-alert a{color:inherit}
form,section{background:#fff;border:1px solid #d7dcd3;border-radius:12px;padding:12px 28px 24px}
.cf-row{margin-top:14px}
label{display:block;margin-bottom:5px}
.cf-req,.cf-opt{font-size:12px;padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle}
.cf-req{background:#405c49;color:#fff}
.cf-opt{background:#e3e7e0;color:#52634f}
input,textarea,select{width:100%;font:inherit;padding:12px;border:1px solid #a5b2a6;border-radius:5px;background:#fff;color:inherit}
input:not([type=checkbox]),select{height:48px}
input[type=date]{line-height:normal}
textarea{min-height:120px}
[aria-invalid=true]{border-color:#b4442c;background:#fffaf8}
.cf-err{color:#b4442c;margin:4px 0 0;font-size:14px}
.cf-check{display:flex;gap:8px;align-items:center}
.cf-check input{width:auto}
.cf-note{font-size:14px;color:#52634f;margin-top:20px}
.cf-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;padding:0;border:0;background:none}
section .cf-btns{margin-top:24px}
button,.btn{font:inherit;background:#405c49;color:#fff;border:0;border-radius:6px;padding:12px 22px;cursor:pointer;text-decoration:none;display:inline-block}
button.sub{background:#fff;color:#405c49;border:1px solid #405c49}
dt{font-weight:bold;margin-top:15px}
dd{margin:0;overflow-wrap:anywhere}
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
:focus-visible{outline:3px solid #b69055;outline-offset:3px}
/* PCでは2項目を横並び、スマートフォンでは縦並び */
.cf-pair{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;align-items:start}
.cf-pair textarea{min-height:110px}
@media(max-width:640px){.cf-pair{grid-template-columns:1fr}}
@media(max-width:540px){main{margin:10px auto;padding:15px}form,section{padding:20px}h1{font-size:26px}}
