/* Contact-only layout; shared header, footer and tokens remain authoritative. */
.cm-contact-page {
  font-size:14px;
  margin:0;
  padding:0;
}
.cm-contact-page .wp-block-post-content {
  margin:0;
}
.cm-contact-hero,.cm-contact-section {
  padding-inline:max(var(--site-gutter,32px),calc((100% - 1580px)/2));
}
.cm-contact-hero {
  padding-block:44px 36px;
  border-bottom:1px solid var(--line);
}
.cm-contact-hero h1 {
  color:var(--red);
  font-size:clamp(38px,3.2vw,44px);
  margin:0 0 16px;
}
.cm-contact-hero h1::after {
  content:"";
  display:block;
  width:48px;
  height:4px;
  margin-top:16px;
  background:var(--yellow);
}
.cm-contact-hero p {
  max-width:76ch;
  margin:0;
  font-size:14px;
}
.cm-contact-section {
  margin:0;
  padding-block:40px 52px;
}
.cm-contact-section .cm-contact-columns {
  display:grid;
  grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr);
  gap:clamp(40px,6vw,100px);
  align-items:start;
  margin:0;
}
.cm-contact-columns>.wp-block-column {
  min-width:0;
  margin:0;
}
.cm-contact-intro h2 {
  font-size:clamp(28px,2.4vw,34px);
  margin:0 0 18px;
}
.cm-contact-intro p {
  margin:0 0 16px;
  font-size:14px;
}
.cm-contact-intro ul {
  padding-left:20px;
  margin:0 0 28px;
}
.cm-contact-intro li {
  padding-left:4px;
  margin:10px 0;
}
.cm-contact-intro li::marker {
  color:var(--red);
}
.cm-contact-intro .cm-contact-independent {
  max-width:54ch;
  border-top:1px solid var(--line);
  padding-top:22px;
  color:var(--muted);
}
.cm-contact-form-wrap {
  border:1px solid var(--line);
  border-radius:14px;
  padding:28px;
  background:var(--surface);
  font-size:14px;
  min-width:0;
  scroll-margin-top:24px;
}
.cm-contact-form .cm-contact-required {
  color:var(--muted);
  margin:0 0 20px;
  font-size:14px;
}
.cm-contact-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.cm-contact-field-subject,.cm-contact-field-message {
  grid-column:1/-1;
}
.cm-contact-field label {
  display:block;
  font-weight:650;
  margin-bottom:7px;
}
.cm-contact-field input,.cm-contact-field textarea {
  display:block;
  width:100%;
  min-width:0;
  min-height:46px;
  border:1px solid var(--line-strong);
  border-radius:8px;
  padding:11px 12px;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  line-height:1.5;
  outline-offset:4px;
}
.cm-contact-field textarea {
  resize:vertical;
  min-height:130px;
}
.cm-contact-field :is(input,textarea):hover {
  border-color:var(--ink);
}
.cm-contact-field [aria-invalid=true] {
  border-color:var(--red);
}
.cm-contact-field .cm-contact-field-error {
  color:var(--red);
  margin:7px 0 0;
  font-size:14px;
}
.cm-contact-submit {
  margin-top:24px;
  border:2px solid var(--red);
  border-radius:8px;
  padding:12px 24px;
  min-height:48px;
  font:inherit;
  font-weight:650;
  background:var(--red);
  color:var(--surface);
}
.cm-contact-submit:hover {
  background:var(--surface);
  color:var(--red);
}
.cm-contact-submit:disabled {
  cursor:wait;
  background:var(--line);
  border-color:var(--line);
  color:var(--ink);
}
.cm-contact-trap {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
}
.cm-contact-notice {
  border:1px solid var(--red);
  border-radius:8px;
  padding:16px;
  margin-bottom:24px;
}
.cm-contact-notice p {
  margin:4px 0 0;
  font-size:14px;
}
.cm-contact-notice ul {
  margin:12px 0 0;
  padding-left:20px;
}
.cm-contact-success {
  border-color:var(--yellow);
}
@media(max-width:767px) {
  .cm-contact-hero { padding-block:28px; }
  .cm-contact-section { padding-block:28px 36px; }
  .cm-contact-section .cm-contact-columns { grid-template-columns:minmax(0,1fr); gap:24px; }
  .cm-contact-intro ul { margin-bottom:20px; }
  .cm-contact-intro .cm-contact-independent { margin-bottom:0; padding-top:18px; }
  .cm-contact-form-wrap { padding:20px; }
  .cm-contact-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
  /* Native controls need 16px on touch devices to avoid focus zoom. Body stays 14px. */
  .cm-contact-field input,.cm-contact-field textarea { font-size:16px; }
  .cm-contact-submit { width:100%; }
}
