.contact-page{background:var(--paper);min-height:100vh}
.contact-main{max-width:var(--max);margin:0 auto;padding:92px 22px 116px;display:grid;grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);gap:110px;align-items:start}
.contact-intro{position:sticky;top:48px}
.contact-intro .section-number{margin-bottom:28px}
.contact-intro h1{font-size:clamp(56px,6vw,86px);line-height:1.05;letter-spacing:-.05em;margin:0;font-weight:900}
.contact-intro>p:not(.section-number){font-size:14px;line-height:2;margin:36px 0 0}
.contact-direct{margin-top:58px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.contact-direct span{font-size:10px;font-weight:700;letter-spacing:.12em;margin-bottom:4px}
.contact-direct a{font-size:13px;width:max-content;border-bottom:1px solid transparent}
.contact-direct a:hover{border-bottom-color:var(--ink)}
.contact-form-panel{border-top:1px solid var(--ink);padding-top:26px}
.form-heading{margin-bottom:40px}
.form-heading .section-number{margin-bottom:20px}
.form-heading h2{font-size:clamp(38px,4vw,58px);line-height:1.12;letter-spacing:-.04em;margin:0;font-weight:900}
.form-heading>p:last-child{font-size:11px;margin:20px 0 0}
.required-mark,.form-field b{color:#d7b600;font-size:8px}
.form-field{display:block;border-top:1px solid var(--line);padding:22px 0 24px}
.form-field>span{display:block;font-size:12px;font-weight:700;margin-bottom:11px}
.form-field input,.form-field textarea{width:100%;border:0;background:transparent;color:var(--ink);font:500 16px/1.7 "Inter","Noto Sans JP",system-ui,sans-serif;padding:8px 0;outline:none;border-bottom:1px solid #b9bab3;border-radius:0}
.form-field textarea{resize:vertical;min-height:190px}
.form-field input:focus,.form-field textarea:focus{border-bottom-color:var(--ink);box-shadow:0 1px 0 var(--ink)}
.form-field input::placeholder,.form-field textarea::placeholder{color:#979991;font-weight:400}
.form-privacy{font-size:11px;color:#666861;margin:22px 0}
.contact-form-panel button{border:0;background:var(--yellow);color:var(--ink);min-width:280px;border-radius:999px;padding:17px 28px;font:700 14px/1 "Inter","Noto Sans JP",system-ui,sans-serif;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:transform .2s ease,background .2s ease}
.contact-form-panel button:hover{transform:translateY(-2px);background:#ffe45e}
.form-errors{background:#fff3ef;border-left:4px solid #c84328;padding:16px 18px;margin-bottom:28px;font-size:13px}
.form-errors ul{margin:8px 0 0;padding-left:20px}
.form-success{min-height:480px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.form-success>span{font-size:10px;letter-spacing:.16em;font-weight:700;color:#9b8100}
.form-success h2{font-size:clamp(48px,6vw,74px);line-height:1.1;margin:18px 0 12px}
.form-success p{font-size:14px}
.form-success a{display:inline-block;background:var(--yellow);border-radius:999px;padding:15px 28px;margin-top:26px;font-size:13px;font-weight:700}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:800px){
  .contact-main{padding:58px 20px 82px;grid-template-columns:1fr;gap:66px}
  .contact-intro{position:static}
  .contact-intro h1{font-size:clamp(48px,14vw,62px)}
  .contact-intro>p:not(.section-number){font-size:14px;margin-top:28px}
  .contact-direct{margin-top:38px}
  .contact-direct a{font-size:12px}
  .form-heading h2{font-size:38px}
  .form-field{padding:20px 0 22px}
  .form-field input,.form-field textarea{font-size:16px}
  .contact-form-panel button{width:100%;min-width:0}
  .form-success{min-height:360px}
}
