.contact-main{max-width:1040px;margin:0 auto;padding:48px 24px 72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:48px;align-items:start}
.contact-intro h1{font-size:clamp(30px,4vw,44px);line-height:1.1;margin:6px 0 14px}
.contact-intro p{color:var(--muted)}
.contact-tips{color:var(--muted);padding-left:18px;margin-top:18px}
.contact-tips li{margin:6px 0}
.contact-form{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px;display:flex;flex-direction:column;gap:6px;box-shadow:0 10px 30px rgba(25,23,37,.06)}
.contact-form label{font-weight:600;font-size:14px;margin-top:10px}
.contact-form .optional{font-weight:400;color:var(--muted)}
.contact-form input,.contact-form select,.contact-form textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);width:100%;box-sizing:border-box}
.contact-form textarea{resize:vertical;min-height:150px}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--purple);outline-offset:1px;border-color:transparent}
.contact-form button{margin-top:16px;align-self:flex-start}
.contact-form button:disabled{opacity:.6;cursor:progress}
.contact-count{margin:2px 0 0;font-size:12px;color:var(--muted);text-align:right}
.contact-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-status{min-height:1.5em;margin:10px 0 0;font-size:14px}
.contact-status.error{color:#b42318}
.contact-status.ok{color:#067647;font-weight:600}
@media (max-width:760px){.contact-main{grid-template-columns:1fr;gap:24px;padding:28px 16px 48px}.contact-form{padding:18px}}
.contact-feedback{border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px;margin:12px 0 0;background:#faf9ff}
.contact-feedback[hidden]{display:none}
.contact-feedback legend{font-weight:700;font-size:13px;padding:0 6px;color:var(--purple)}
.contact-feedback textarea{min-height:84px}
.fb-label{margin:4px 0 8px;font-weight:600;font-size:14px}
.fb-rate{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.contact-form .fb-rate label{margin:0;font-weight:400}
.fb-rate input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.fb-rate span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;font-size:17px;cursor:pointer}
.fb-rate small{font-weight:400;font-size:11px;color:var(--muted)}
.fb-rate span:hover{border-color:var(--purple)}
.fb-rate input:checked+span{background:var(--purple);border-color:var(--purple);color:#fff}
.fb-rate input:checked+span small{color:#fff}
.fb-rate input:focus-visible+span{outline:2px solid var(--purple);outline-offset:2px}
.contact-form .fb-check{display:flex;align-items:center;gap:8px;font-weight:400;margin-top:12px}
.fb-check input{width:auto}
