/* Contact-only presentation; shared containers and Hero typography are preserved. */
.p-contact .p-hero { padding:48px 0; }
.p-contact .p-hero h1 { font-size:clamp(34px,3.8vw,52px); }
.contact-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(36px,5vw,72px); align-items:start; }
.p-contact > .p-section { padding:48px 0 56px; }
.p-contact h2 { font-size:28px; line-height:1.35; font-weight:500; margin-bottom:24px; }
.p-contact p { font-size:17px; }
.p-contact .p-facts { margin:0; }
.p-contact .p-facts div { border:0; padding:0 0 22px; }
.p-contact .p-facts div:last-child { padding-bottom:0; }
.p-contact .p-facts dt { font-size:14px; line-height:1.5; }
.p-contact .p-facts dd { font-size:17px; font-weight:450; line-height:1.65; margin:5px 0 0; overflow-wrap:anywhere; }
.contact-address { font:inherit; font-style:normal; line-height:1.65; }
.p-contact .contact-pending,.contact-channel-status { color:#617287; font-size:14px; font-weight:400; }
.p-contact .contact-pending { color:#5b6c81; }
.contact-channel-status { display:block; margin-top:3px; }
.p-contact .p-facts a { text-decoration:underline; text-underline-offset:4px; }
.p-contact .p-facts a:focus-visible,.contact-social-link:focus-visible { outline:3px solid #315f9e; outline-offset:3px; }
.contact-social { margin-top:28px; }
.p-contact .contact-social h3 { font-size:18px; font-weight:500; line-height:1.45; margin:0 0 10px; letter-spacing:0; }
.contact-social ul { display:flex; flex-wrap:wrap; gap:8px 10px; list-style:none; margin:0; padding:0; }
.contact-social li { display:flex; }
.contact-social-link,.contact-social-placeholder { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; }
.contact-social img { display:block; width:22px; height:22px; object-fit:contain; }
.contact-social-placeholder img { opacity:.55; }
.contact-development { padding:12px 16px; background:#e0e8f0; border-left:2px solid #7e98b6; margin:0 0 24px; }
.p-contact .contact-development { font-size:14px; line-height:1.7; }
#contact-form fieldset { border:0; padding:0; margin:0; min-width:0; }
#contact-form label { display:block; font-size:15px; font-weight:500; line-height:1.5; margin:16px 0 6px; }
#contact-form fieldset > label:first-of-type { margin-top:0; }
#contact-form .contact-optional { font-size:14px; font-weight:400; color:#617287; }
#contact-form input:not([type=checkbox]),#contact-form select,#contact-form textarea { width:100%; min-width:0; border:1px solid #8299b2; background:#f9fbfd; color:#17283e; padding:11px 13px; font-family:inherit; font-size:16px; border-radius:2px; line-height:1.5; }
#contact-form input:not([type=checkbox]),#contact-form select { height:48px; }
#contact-form textarea { resize:vertical; height:176px; min-height:160px; }
#contact-form :focus-visible { outline:3px solid #315f9e; outline-offset:3px; }
#contact-form .contact-ack { display:flex; align-items:flex-start; gap:10px; margin:16px 0 18px; font-size:14px; font-weight:400; line-height:1.65; }
.contact-ack input { margin:3px 0 0; width:18px; height:18px; flex-shrink:0; accent-color:#315f9e; }
.p-contact .contact-help { font-size:13px; line-height:1.5; margin:5px 0 0; }
.p-contact .contact-privacy { font-size:14px; line-height:1.75; max-width:72ch; margin:18px 0 0; }
.contact-privacy a { text-decoration:underline; text-underline-offset:3px; }
#contact-form button { margin-top:16px; min-height:48px; padding:12px 24px; cursor:pointer; font-family:inherit; font-size:15px; line-height:1.5; }
#contact-form button:disabled { opacity:.6; cursor:not-allowed; }
#contact-feedback { min-height:24px; overflow-wrap:anywhere; margin:14px 0 0; }
.p-contact #contact-feedback { font-size:15px; line-height:1.6; font-weight:500; }
.contact-trap,.contact-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#contact-challenge { min-height:65px; margin-top:4px; }
html[lang="zh-CN"] .p-contact h2 { letter-spacing:0; }
html[lang="zh-CN"] .p-contact label { letter-spacing:0; }
@media(max-width:900px) { .contact-grid { grid-template-columns:minmax(0,1fr); gap:36px; } .p-contact > .p-section { padding:40px 0 48px; } }
@media(max-width:640px) { .p-contact .p-hero { padding:36px 0; } .p-contact h2 { font-size:25px; margin-bottom:20px; } .p-contact p { font-size:16px; } .p-contact .p-facts dd { font-size:16px; } .p-contact > .p-section { padding:32px 0 40px; } #contact-form textarea { height:160px; } }

.contact-details > h2 { font-size:clamp(27px,2.7vw,39px); font-weight:600; line-height:1.2; margin:0 0 16px; }
.p-contact .contact-details .p-facts > div { position:relative; padding:9px 0 9px 40px; border-top:1px solid #d4deea; }
.contact-details .p-facts dt .reference-icon { position:absolute; left:0; top:12px; width:25px; height:25px; }
.p-contact .contact-details .p-facts dt { font-size:13px; font-weight:600; }
.p-contact .contact-details .p-facts dd { margin-top:3px; font-weight:500; line-height:1.52; }
.contact-details #contact-public-notice { margin-top:18px; }
.contact-details #contact-public-notice h2 { font-size:20px; margin:0 0 6px; }
.contact-details #contact-public-notice p { font-size:15px; line-height:1.65; margin:0 0 4px; }
.contact-details #contact-public-notice a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.contact-illustration img { height:auto; aspect-ratio:1.32; border-radius:7px; }
.contact-illustration figcaption { padding:8px 0 0; font-size:12px; line-height:1.5; }

@media (min-width:901px) { .p-contact .contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,.95fr); } }
