/* 批准的联系页转为正式路由：隔离所有样式，不扩大导航与其他页比例。 */
html.contact-route { background:#faf9ff; scroll-behavior:smooth; scrollbar-color:#b3a6ce #faf9ff; }
body.is-contact { --page:#faf9ff; --ink:#111322; --soft:#626276; --accent:#f34d24; --accent-deep:#bb3210; --action:#db3b12; --line:#d9d6e8; --lilac:#f4f2fc; margin:0; color:var(--ink); background:var(--page); font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif; font-synthesis:none; -webkit-font-smoothing:antialiased; }
body.is-contact [hidden] { display:none!important; }
body.is-contact .page-atmosphere,body.is-contact .page-art,body.is-contact .page-brand,body.is-contact > .site-footer { display:none; }
body.is-contact main { overflow:visible; }
/* 加载/错误/关闭页面仍是明确的轻量反馈，不能显示完整内容假装读取成功。 */
body.is-contact .page-opening { display:block; width:min(86%,1120px); min-height:340px; padding:60px 0; }
body.is-contact .page-opening h1 { font-size:32px; }
body.is-contact .page-opening .page-intro { font-size:16px; }
body.is-contact .page-opening-actions { display:none; }
body.is-contact *,body.is-contact *::before,body.is-contact *::after { box-sizing:border-box; }
body.is-contact h1,body.is-contact h2,body.is-contact p,body.is-contact dl,body.is-contact dd { margin:0; }
body.is-contact a { color:inherit; text-decoration:none; text-underline-offset:.3em; }
body.is-contact button,body.is-contact input,body.is-contact textarea { font:inherit; }
body.is-contact img { display:block; max-width:100%; }
body.is-contact ::selection { background:#ffd6c9; color:#742811; }
body.is-contact :focus-visible { outline:2px solid var(--accent-deep); outline-offset:4px; }
body.is-contact .skip-link { position:fixed; z-index:100; top:8px; left:16px; padding:12px 20px; background:#fff; color:var(--accent-deep); transform:translateY(-180%); }
body.is-contact .skip-link:focus { transform:none; }
body.is-contact .site-header { background:#fcfbff; }
body.is-contact .contact-shell { width:min(86%,1120px); margin-inline:auto; }
/* 文字和材质各占自己的区域；表单限宽490px，移动端正常重排而非整体缩放。 */
body.is-contact .contact-opening { display:grid; grid-template-columns:minmax(0,1fr) 490px; gap:72px; padding-block:56px 52px; }
body.is-contact .invitation { min-width:0; padding-top:18px; }
body.is-contact h1 { font-size:46px; line-height:1.4; font-weight:750; letter-spacing:-.03em; text-wrap:balance; }
body.is-contact h1 span { color:var(--accent); }
body.is-contact .invitation-lead { margin-top:25px; max-width:470px; font-size:16px; line-height:1.9; color:var(--soft); }
body.is-contact .invitation-note { margin-top:20px; font-size:16px; line-height:1.9; color:var(--ink); }
body.is-contact .dialogue-art { position:relative; height:190px; margin-top:24px; overflow:hidden; background:var(--page); mask-image:linear-gradient(180deg,transparent,#000 15%,#000 80%,transparent); }
body.is-contact .dialogue-art img { width:100%; height:100%; object-fit:cover; object-position:70% 60%; }
body.is-contact .invitation-caption { font-size:13px; line-height:1.8; color:var(--soft); margin-top:10px; }
body.is-contact .message-panel { align-self:start; padding:30px; border:1px solid var(--line); border-radius:14px; background:#fff; min-width:0; }
body.is-contact .message-panel h2 { font-size:24px; line-height:1.5; letter-spacing:-.025em; font-weight:700; }
body.is-contact .form-intro { font-size:14px; line-height:1.8; color:var(--soft); margin-top:10px; }
body.is-contact #message-form { display:grid; gap:19px; margin-top:25px; scroll-margin-top:24px; }
body.is-contact .identity-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
body.is-contact #message-form label { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; font-size:14px; line-height:1.6; font-weight:600; }
body.is-contact .field-hint { color:var(--soft); font-size:12px; font-weight:400; }
/* 输入边界沿已审阅的高对比版本；正文与输入保留16px可读尺度。 */
body.is-contact #message-form input,body.is-contact #message-form textarea { display:block; width:100%; min-width:0; min-height:48px; border:1px solid #8d829f; border-radius:6px; padding:12px 13px; background:#fcfbff; color:var(--ink); font-size:16px; font-weight:400; line-height:1.65; caret-color:var(--action); }
body.is-contact #message-form textarea { min-height:174px; resize:vertical; }
body.is-contact #message-form input::placeholder,body.is-contact #message-form textarea::placeholder { color:#6d6980; font-size:14px; }
body.is-contact #message-form input:focus-visible,body.is-contact #message-form textarea:focus-visible { outline:2px solid var(--accent-deep); outline-offset:2px; border-color:var(--accent-deep); }
body.is-contact #message-form .honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body.is-contact .message-meta { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-top:-11px; color:var(--soft); font-size:12px; line-height:1.8; }
body.is-contact .message-meta output { flex-shrink:0; font-variant-numeric:tabular-nums; }
body.is-contact .privacy-note { font-size:12px; line-height:1.8; color:var(--soft); }
body.is-contact .primary-button { justify-self:start; display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:46px; padding:11px 22px; border:0; border-radius:7px; background:var(--action); color:#fff; font-size:14px; font-weight:600; line-height:1.6; cursor:pointer; transition:background 180ms ease; }
body.is-contact .primary-button:hover { background:var(--accent-deep); }
body.is-contact .primary-button:disabled { opacity:.6; cursor:not-allowed; }
body.is-contact .arrow-icon { position:relative; display:inline-block; width:20px; height:14px; flex-shrink:0; }
body.is-contact .arrow-icon::before { content:''; position:absolute; left:0; right:0; top:50%; height:1px; background:currentColor; }
body.is-contact .arrow-icon::after { content:''; position:absolute; top:50%; right:1px; width:8px; height:8px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:translateY(-50%) rotate(45deg); }
body.is-contact .delivery-note { font-size:12px; line-height:1.8; color:var(--soft); margin-top:-9px; }
body.is-contact .contact-status { color:var(--accent-deep); background:#fff2ec; padding:12px 14px; border-radius:6px; font-size:14px; line-height:1.75; overflow-wrap:anywhere; }
body.is-contact .contact-status.is-error { color:#9e2910; }
body.is-contact .direct-contact { background:var(--lilac); padding-block:35px; }
body.is-contact .direct-inner { display:flex; align-items:center; justify-content:space-between; gap:48px; }
body.is-contact .direct-inner h2 { font-size:23px; line-height:1.6; font-weight:600; letter-spacing:-.02em; }
body.is-contact .direct-inner p { color:var(--soft); font-size:14px; line-height:1.8; margin-top:10px; }
body.is-contact .contact-channels { display:flex; flex-wrap:wrap; gap:42px; min-width:0; }
body.is-contact .contact-channels > div { display:grid; gap:7px; min-width:90px; }
body.is-contact .contact-channels dt { font-size:14px; font-weight:600; }
body.is-contact .contact-channels dd { color:var(--soft); font-size:13px; overflow-wrap:anywhere; }
body.is-contact #contact-email a { color:var(--accent-deep); text-decoration:underline; }
body.is-contact .contact-additional { padding-block:30px; }
body.is-contact .contact-additional article { border-top:1px solid var(--line); padding-block:24px; }
body.is-contact .contact-additional h2 { font-size:24px; line-height:1.5; margin-bottom:16px; }
body.is-contact .contact-additional p { font-size:16px; line-height:1.85; color:var(--soft); max-width:70ch; overflow-wrap:anywhere; }
body.is-contact .contact-additional p + p { margin-top:12px; }
body.is-contact .contact-footer { background:#fff; padding-block:26px; }
body.is-contact .footer-row { display:flex; align-items:center; gap:36px; }
body.is-contact .footer-brand { display:inline-flex; font-size:20px; font-weight:750; letter-spacing:-.04em; }
body.is-contact .footer-brand span { color:var(--accent); }
body.is-contact .footer-row nav { display:flex; flex-wrap:wrap; align-items:center; gap:24px; font-size:12px; }
body.is-contact .footer-row nav a { display:inline-flex; align-items:center; min-height:44px; }
body.is-contact .footer-row nav a:hover { color:var(--accent-deep); }
body.is-contact .footer-row > p { font-size:12px; color:var(--soft); margin-left:auto; line-height:1.8; }
@media (max-width:1180px) {
  body.is-contact .contact-opening { grid-template-columns:minmax(0,1fr) 460px; gap:42px; }
  body.is-contact h1 { font-size:42px; }
  body.is-contact .message-panel { padding:26px; }
  body.is-contact .direct-inner { gap:32px; }
  body.is-contact .contact-channels { gap:26px; }
}
@media (max-width:960px) {
  body.is-contact .contact-opening { grid-template-columns:minmax(0,1fr); gap:32px; padding-block:35px 44px; }
  body.is-contact .invitation { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.75fr); gap:18px 32px; padding:0; }
  body.is-contact .invitation h1 { grid-row:1; grid-column:1; }
  body.is-contact .invitation-lead { grid-row:2; grid-column:1; margin:0; }
  body.is-contact .invitation-note { grid-row:3; grid-column:1; margin:0; }
  body.is-contact .dialogue-art { grid-column:2; grid-row:1/4; height:auto; margin:0; }
  body.is-contact .invitation-caption { grid-column:1/-1; margin:0; }
  body.is-contact .message-panel { width:min(100%,620px); }
  body.is-contact .direct-inner { display:grid; gap:24px; }
  body.is-contact .footer-row { flex-wrap:wrap; gap:8px 24px; }
  body.is-contact .footer-row > p { width:100%; margin-left:0; }
}
@media (max-width:600px) {
  body.is-contact .contact-shell { width:calc(100% - 40px); }
  body.is-contact .contact-opening { padding-top:30px; gap:25px; }
  body.is-contact .page-opening { width:calc(100% - 40px); }
  body.is-contact .invitation { display:block; }
  body.is-contact h1 { font-size:clamp(30px,8.5vw,36px); line-height:1.4; }
  body.is-contact .invitation-lead { margin-top:20px; }
  body.is-contact .invitation-lead br,body.is-contact .invitation-note br { display:none; }
  body.is-contact .invitation-note { margin-top:14px; }
  body.is-contact .dialogue-art { height:110px; margin-top:15px; }
  body.is-contact .invitation-caption { margin-top:6px; }
  body.is-contact .message-panel { padding:22px 18px; }
  body.is-contact .message-panel h2 { font-size:22px; }
  body.is-contact .identity-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
  body.is-contact .message-meta { align-items:flex-start; }
  body.is-contact .message-meta p { max-width:17em; }
  body.is-contact .direct-inner h2 { font-size:22px; }
  body.is-contact .direct-inner p { font-size:13px; }
  body.is-contact .footer-row nav { gap:8px 20px; }
}
@media (prefers-reduced-motion:reduce) { html.contact-route { scroll-behavior:auto; } body.is-contact *,body.is-contact *::before,body.is-contact *::after { transition:none!important; } }
