.cm-contact { --cmc-blue:#1b3a80; --cmc-ink:#122457; --cmc-gold:#e3b325; --cmc-paper:#fffaf0; --cmc-error:#a12323; color:var(--cmc-ink); max-width:780px; }
.cm-contact [hidden] { display:none !important; }
.cm-contact-form { position:relative; margin:12px 0 0; }
.cm-contact-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.cm-contact-field { min-width:0; }
.cm-contact-field label { display:block; font-weight:600; margin:0 0 4px; font-size:16px; }
.cm-contact-field input,.cm-contact-field select,.cm-contact-field textarea { display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0; min-height:44px; padding:9px 10px; border:1px solid #8493b1; border-radius:4px; background:var(--cmc-paper); color:var(--cmc-ink); font:400 16px/1.45 Arial,sans-serif; }
.cm-contact-field textarea { min-height:140px; resize:vertical; }
.cm-contact-field input:focus-visible,.cm-contact-field select:focus-visible,.cm-contact-field textarea:focus-visible,.cm-contact button:focus-visible,.cm-contact a:focus-visible { outline:3px solid var(--cmc-gold); outline-offset:2px; }
.cm-contact-field [aria-invalid="true"] { border:2px solid var(--cmc-error); }
.cm-contact-field small { display:block; margin:4px 0 0; font:400 13px/1.4 Arial,sans-serif; }
.cm-contact-error { display:block; color:var(--cmc-error); font:600 14px/1.4 Arial,sans-serif; margin-top:4px; }
.cm-contact-error:empty { display:none; }
.cm-contact .cm-contact-privacy { margin:12px 0; font-size:14px; line-height:1.5; }
.cm-contact a,.cm-contact a:hover,.cm-contact a:focus { text-decoration:none; color:var(--cmc-blue); font-weight:600; }
.cm-contact a:hover { background:#e3b32525; }
.cm-contact-actions { display:flex; flex-wrap:wrap; gap:8px; }
.cm-contact-copy { margin:0; padding:0; }
.cm-contact .cm-contact-copy-prompt { margin:0 0 8px; font-size:16px; line-height:1.5; }
.cm-contact-copy button { margin:0; min-height:44px; }
.cm-contact-copy .cm-contact-status { margin:10px 0 0; }
.cm-contact button { box-sizing:border-box; max-width:100%; min-height:44px; padding:10px 16px; border:1px solid var(--cmc-blue); border-radius:4px; background:var(--cmc-blue); color:var(--cmc-paper); font:600 16px/1.35 Arial,sans-serif; cursor:pointer; }
.cm-contact button:disabled { opacity:.65; cursor:wait; }
.cm-contact button[data-cm-refresh] { background:var(--cmc-paper); color:var(--cmc-blue); }
.cm-contact-status { padding:10px 12px; margin:0 0 12px; border-left:3px solid var(--cmc-gold); background:#f7f0de; font:400 16px/1.5 Arial,sans-serif; overflow-wrap:anywhere; }
.cm-contact-hp { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); left:0; top:0; }
.cm-contact-plain { background:#f7f0de; padding:16px; margin:0; font:400 16px/1.5 Arial,sans-serif; }
.cm-contact-plain main { margin:auto; padding:16px; background:#fffaf0; box-sizing:border-box; }
.cm-contact-plain h1 { font-family:Georgia,serif; font-size:clamp(26px,6vw,38px); margin:0 0 16px; }
@media(min-width:620px) { .cm-contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cm-contact-wide { grid-column:1/-1; } }
