:root{--green:#176018;--deep:#0d4812;--cream:#f7f2e9;--line:#d9d1c6;--ink:#201914;--red:#b42222}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;line-height:1.7;background:linear-gradient(135deg,#e8f5fb 0,#fff 24%,#fff 76%,#e5f3fb 100%)}
a{color:var(--green)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,.privacy-text:focus-visible{outline:3px solid #e5a900;outline-offset:3px}
.form-header{height:68px;display:flex;align-items:center;border-bottom:1px solid #d7cec4;background:#fff;box-shadow:0 2px 10px rgba(51,34,20,.06)}
.form-brand{width:min(900px,calc(100% - 36px));margin:auto;display:flex;align-items:center;gap:13px;color:#18120f;text-decoration:none;font-weight:800;letter-spacing:.06em}
.form-brand img{width:43px;height:34px;object-fit:contain}
.form-brand span{font-size:18px}
.contact-main{width:min(820px,calc(100% - 32px));margin:0 auto;padding:18px 0 58px}
.breadcrumb{display:flex;gap:10px;align-items:center;margin-bottom:16px;font-size:13px;color:#675f58}
.contact-intro{padding:30px 28px;text-align:center;background:linear-gradient(115deg,#f8f3eb,#fff);border:1px solid #e4ddd4;border-radius:12px;box-shadow:0 10px 28px rgba(53,38,24,.07)}
.contact-kicker{margin:0;color:var(--green);font-size:14px;font-weight:800;letter-spacing:.08em}
.contact-intro h1{margin:4px 0 7px;font-family:serif;font-size:34px;letter-spacing:.1em}
.contact-intro>p:not(.contact-kicker):not(.callback-note){margin:0;font-size:15px}
.callback-note{margin:18px auto 0;padding:13px 16px;max-width:610px;border-left:5px solid var(--green);background:#eef6eb;text-align:left;font-size:14px}
.callback-note a{font-size:18px;font-weight:900;white-space:nowrap}
.contact-form{margin-top:20px;padding:28px;background:#fff;border:1px solid #ddd5ca;border-radius:12px;box-shadow:0 12px 32px rgba(51,34,20,.09)}
.required-guide{margin:0 0 20px;text-align:right;font-size:12px;color:#665e56}
.required-badge{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:3px;background:var(--red);color:#fff;font-size:11px;font-weight:800;line-height:1.55;vertical-align:2px}
.form-field{margin-bottom:24px}
.form-field label{display:block;margin-bottom:7px;font-size:16px;font-weight:800}
input[type="text"],input[type="tel"],input[type="email"],textarea{display:block;width:100%;border:1px solid #aaa198;border-radius:7px;background:#fff;padding:12px 13px;color:#201914;font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}
input[type="text"],input[type="tel"],input[type="email"]{min-height:50px}
textarea{resize:vertical;min-height:170px}
input:hover,textarea:hover{border-color:#6d665f}
input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,96,24,.13)}
input:user-invalid,textarea:user-invalid{border-color:var(--red)}
.field-help{margin:6px 0 0;color:#5d554e;font-size:13px}
.honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.privacy{margin:30px 0 22px}
.privacy h2{margin:0 0 9px;font-size:18px}
.privacy-text{height:250px;overflow-y:auto;padding:17px 19px;border:1px solid #aaa198;border-radius:7px;background:#faf9f7;font-size:13px;line-height:1.75}
.privacy-text h3{margin:15px 0 2px;font-size:14px}
.privacy-text p{margin:0 0 8px}
.consent{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #cfc7bd;border-radius:8px;background:#f7f3ed;cursor:pointer;font-size:14px;font-weight:700}
.consent input{width:22px;height:22px;flex:0 0 22px;margin:2px 0 0;accent-color:var(--green)}
.consent b{color:var(--red)}
.submit-button{display:block;width:min(420px,100%);min-height:60px;margin:26px auto 0;border:0;border-radius:8px;background:linear-gradient(#287d28,#105012);box-shadow:0 5px 0 #093c0b;color:#fff;font:inherit;font-size:18px;font-weight:900;letter-spacing:.06em;cursor:pointer}
.submit-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}
.submit-button:disabled{background:#aaa7a2;box-shadow:0 5px 0 #77736f;color:#eee;cursor:not-allowed}
.submit-help{margin:10px 0 0;text-align:center;color:#625a52;font-size:12px}
.form-status{margin:22px 0 -8px;padding:13px 15px;border-radius:7px;background:#fff0f0;border:1px solid #c75d5d;color:#8b1616;font-size:14px;font-weight:700}
.form-status.success{background:#edf7ea;border-color:#66a565;color:#174d19}
.back-link{display:block;width:max-content;margin:24px auto 0;font-weight:800}
.form-footer{padding:27px 18px;text-align:center;color:#fff;background-color:#113f18;background-image:repeating-linear-gradient(8deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px),linear-gradient(135deg,#123f19,#195523 48%,#0d3814)}
.form-footer strong{font-size:19px;letter-spacing:.06em}
.form-footer p,.form-footer address{margin:3px 0;font-size:12px;font-style:normal}
.form-footer a{color:#fff;font-size:16px;font-weight:900;text-decoration:none}
@media(max-width:600px){
  .form-header{height:60px}.form-brand{width:calc(100% - 28px);gap:10px}.form-brand img{width:38px;height:30px}.form-brand span{font-size:15px}
  .contact-main{width:min(100% - 22px,820px);padding:12px 0 42px}.breadcrumb{margin-left:3px;font-size:12px}
  .contact-intro{padding:23px 16px}.contact-intro h1{font-size:28px}.contact-intro>p:not(.contact-kicker):not(.callback-note){font-size:14px}.callback-note{font-size:13px;padding:12px}
  .contact-form{padding:20px 15px}.required-guide{margin-bottom:17px}.form-field{margin-bottom:21px}.form-field label{font-size:15px}
  .privacy-text{height:230px;padding:14px;font-size:12px}.consent{padding:13px 12px;font-size:13px}.submit-button{min-height:58px;font-size:17px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
