/* NPU EE v17.41 · Contact and privacy-mode case handling. */
.contact-page { background:#f8faf8; min-height:65vh; }
.contact-shell { padding-block:38px 58px; }
.contact-heading { max-width:680px; margin:0 0 25px; }
.contact-heading .contact-kicker { margin:0 0 10px; font-size:12px; font-weight:800; color:#8d6c40; letter-spacing:.08em; }
.contact-heading h1 { margin:0; font-size:clamp(28px,4vw,38px); color:#113f31; }
.contact-heading p:last-child { margin:13px 0 0; font-size:14px; color:#617569; line-height:1.85; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(230px,.75fr); gap:22px; align-items:start; }
.contact-form-panel,.contact-side-note,.contact-success { background:#fff; border:1px solid #dbe6df; border-radius:13px; padding:clamp(22px,3.5vw,33px); }
.contact-form-panel h2,.contact-side-note h2,.contact-success h2 { margin:0 0 22px; color:#163d31; font-size:21px; }
.contact-form-panel form { display:grid; gap:11px; }
.contact-form-panel form > label:not(.contact-choice) { font-weight:730; font-size:13px; color:#254839; margin-top:5px; }
.contact-form-panel input[type=email],.contact-form-panel input[type=text],.contact-form-panel textarea { width:100%; min-height:44px; border:1px solid #cbd9d0; border-radius:9px; padding:11px 13px; color:#163c31; background:#fff; font:inherit; line-height:1.6; }
.contact-form-panel textarea { resize:vertical; }
.contact-form-panel :is(input,textarea):focus-visible { outline:2px solid #418263; outline-offset:2px; }
.contact-choice { display:flex; gap:12px; align-items:flex-start; cursor:pointer; color:#294a3c; line-height:1.7; }
.contact-choice input { flex:none; margin-top:5px; width:17px; height:17px; accent-color:#17553e; }
.contact-choice span { display:grid; gap:4px; font-size:13px; }
.contact-choice small { font-size:12px; color:#63776a; }
.contact-privacy-control { margin-top:9px; padding:16px; border:1px solid #b7d1c0; border-radius:10px; background:#f4f9f5; }
.contact-privacy-detail { padding-top:14px; margin-top:14px; border-top:1px solid #d5e3d9; font-size:12px; color:#4d6858; line-height:1.85; }
.contact-privacy-detail[hidden] { display:none; }
.contact-privacy-detail strong { color:#214f39; }
.contact-privacy-detail p { margin:7px 0 0; }
.contact-notice { padding:17px 18px; margin-top:8px; background:#f8f9f7; border-radius:10px; border:1px solid #e0e8e2; }
.contact-notice > strong { color:#214839; font-size:13px; }
.contact-notice p { margin:8px 0 0; color:#5f7466; font-size:12px; line-height:1.9; }
.contact-notice a { color:#175b41; text-decoration:underline; }
.contact-consent { padding-top:5px; }
.contact-submit { margin-top:12px; min-height:46px; justify-content:center; }
.contact-honeypot { position:absolute!important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-error { color:#9c2f2f; border:1px solid #efc6c6; background:#fff3f3; border-radius:9px; padding:12px 14px; }
.contact-side-note p { color:#667a6d; font-size:13px; line-height:1.9; }
.contact-success { max-width:750px; }
.contact-success p { color:#65786a; line-height:1.8; }
.contact-success .button { margin-top:15px; }
.contact-admin { display:grid; gap:18px; padding-bottom:22px; }
.contact-admin-intro h2 { margin:0 0 7px; color:#1a4737; }
.contact-admin-intro p { margin:0; color:#697e70; font-size:13px; line-height:1.8; }
.contact-admin-grid { display:grid; grid-template-columns:minmax(270px,.72fr) minmax(0,1.3fr); gap:16px; align-items:start; }
.contact-admin-panel { border:1px solid #dde8df; border-radius:12px; background:#fff; padding:20px; min-width:0; }
.contact-admin-panel > h3 { display:flex; flex-wrap:wrap; align-items:center; gap:10px; justify-content:space-between; margin:0 0 18px; font-size:18px; color:#173d32; }
.contact-admin-panel > h3 span { font-size:11px; color:#6d8376; font-weight:500; }
.contact-admin-list { margin:0; padding:0; list-style:none; }
.contact-admin-list li+li { border-top:1px solid #ebf0eb; }
.contact-admin-list a { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:14px 6px; color:#173f32; text-decoration:none; }
.contact-admin-list a:hover,.contact-admin-list a[aria-current=page] { background:#f2f7f3; }
.contact-admin-list time { margin-left:auto; color:#6f8476; font-size:11px; }
.contact-admin-private { color:#886239; font-size:11px; border-radius:5px; background:#faf1e3; padding:4px 7px; }
.contact-admin-empty { color:#77877d; line-height:1.7; }
.contact-admin-detail dl { display:grid; grid-template-columns:110px minmax(0,1fr); gap:14px; margin:0; }
.contact-admin-detail dt { color:#708173; font-size:12px; }
.contact-admin-detail dd { margin:0; overflow-wrap:anywhere; color:#244338; font-size:13px; line-height:1.8; }
.contact-admin-message { padding:14px; background:#f8faf8; border-radius:8px; white-space:normal; }
.contact-admin-operations { display:grid; gap:18px; margin-top:23px; }
.contact-admin-operations form { display:grid; gap:10px; border-top:1px solid #e5ede7; padding-top:18px; }
.contact-admin-operations label { color:#28473b; font-size:13px; font-weight:700; }
.contact-admin-operations textarea { width:100%; border:1px solid #cedcd2; border-radius:8px; padding:12px; font:inherit; }
.contact-admin-operations form > p { margin:0; font-size:12px; line-height:1.7; color:#758679; }
.contact-admin-operations button { justify-self:start; }
.contact-admin-check { display:flex; align-items:center; gap:8px; }
.contact-admin-alert,.contact-admin-success { padding:12px 16px; border-radius:10px; font-size:13px; }
.contact-admin-alert { background:#fff4f4; color:#923131; border:1px solid #edcaca; }
.contact-admin-success { background:#eef8f0; color:#265b36; border:1px solid #b6ddc1; }
@media(max-width:900px){.contact-layout,.contact-admin-grid{grid-template-columns:1fr;}}
@media(max-width:520px){.contact-shell{padding-block:25px 37px}.contact-admin-panel{padding:14px}.contact-admin-detail dl{grid-template-columns:1fr;gap:5px}.contact-admin-detail dt:not(:first-child){margin-top:9px}.contact-form-panel,.contact-side-note{padding:19px}}

.contact-form-panel select { width:100%;min-height:45px;border:1px solid #cbd9d0;border-radius:9px;padding:11px 13px;background:#fff;color:#163c31;font:inherit; }
