/* Keep the reference ID specificity while allowing unique form IDs. */
:is(#sm-contact-public, .sm-contact-public) {
    --sm-green:#10b981;
    --sm-green-dark:#059669;
    --sm-blue:#3b82f6;
    --sm-blue-dark:#2563eb;
    --sm-gray-600:#4b5563;
    --sm-border:#e5e7eb;
    --sm-bg:#ffffff;
    --sm-radius:16px;
    --sm-shadow:0 8px 20px rgba(0,0,0,.08);
    --sm-danger:#ef4444;
    --sm-danger-bg:#fef2f2;
    --sm-danger-border:#fecaca;

    font-family:
      system-ui,
      -apple-system,
      Segoe UI,
      Roboto,
      "Helvetica Neue",
      Arial,
      "Noto Sans",
      "Apple Color Emoji",
      "Segoe UI Emoji";

    color:#111827;
    background-color:var(--sm-form-background, #c0bfbf);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-card {
    background:var(--sm-bg);
    border:1px solid var(--sm-border);
    border-radius:var(--sm-radius);
    box-shadow:var(--sm-shadow);
    padding:18px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-row {
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-col {
    flex:1 1 280px;
    min-width:0;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-divider {
    height:1px;
    background:var(--sm-border);
    margin:14px 0;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-note {
    font-size:.88rem;
    color:var(--sm-gray-600);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-muted {
    color:var(--sm-gray-600);
    font-size:.92rem;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-field {
    margin-top:12px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-field label {
    display:block;
    font-weight:600;
    margin-bottom:6px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-required {
    color:var(--sm-danger);
    font-weight:700;
    margin-left:4px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-optional {
    color:var(--sm-gray-600);
    font-weight:400;
    margin-left:4px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-input {
    width:100%;
    border:1px solid var(--sm-border);
    border-radius:12px;
    padding:12px 12px;
    font-size:1rem;
    outline:none;
    transition:border-color .15s, box-shadow .15s;
    background:#fff;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-input:focus {
    border-color:rgba(59,130,246,.7);
    box-shadow:0 0 0 4px rgba(59,130,246,.15);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-help {
    font-size:.85rem;
    color:var(--sm-gray-600);
    margin-top:6px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-field-error .sm-input {
    border-color:var(--sm-danger);
    box-shadow:0 0 0 4px rgba(239,68,68,.12);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-error-text {
    font-size:.85rem;
    color:#7f1d1d;
    margin-top:6px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-consent {
    display:flex;
    gap:10px;
    align-items:flex-start;
    padding:12px;
    border:1px solid var(--sm-border);
    border-radius:14px;
    background:#fff;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-consent input {
    margin-top:3px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-consent p {
    margin:0;
    font-size:.92rem;
    color:var(--sm-gray-600);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-consent.sm-field-error {
    border-color:var(--sm-danger-border);
    background:var(--sm-danger-bg);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-actions {
    display:flex;
    justify-content:center;
    margin-top:14px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn {
    appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:13px;
    box-sizing:border-box;
    width:auto;
    max-width:100%;
    min-height:62px;
    border:1px solid transparent;
    border-radius:12px;
    padding:10px 23px 10px 12px;
    font-family:Arial, Helvetica, sans-serif;
    font-size:16px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:.01em;
    text-align:center;
    white-space:normal;
    cursor:pointer;
    background:linear-gradient(110deg, #a52b52, #76102f);
    color:#fff;
    box-shadow:0 3px 8px rgba(118,16,47,.18);
    transition:transform .15s, box-shadow .15s, filter .15s;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 38px;
    box-sizing:border-box;
    width:38px;
    height:38px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:6px;
    background:rgba(255,255,255,.14);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn-icon svg {
    display:block;
    width:23px;
    height:21px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn-text {
    min-width:0;
    overflow-wrap:anywhere;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn:hover:not(:disabled) {
    color:#fff;
    filter:brightness(1.06);
    transform:translateY(-1px);
    box-shadow:0 5px 12px rgba(118,16,47,.22);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn:focus-visible {
    outline:3px solid rgba(127,23,52,.35);
    outline-offset:3px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn:active:not(:disabled) {
    transform:translateY(0px);
    filter:brightness(.98);
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-btn[disabled] {
    cursor:not-allowed;
    opacity:.65;
    box-shadow:none;
    transform:none;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-state {
    padding:10px 12px;
    border-radius:10px;
    margin-top:12px;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-loading {
    background:#f9fafb;
    border:1px dashed var(--sm-border);
    color:#6b7280;
    display:none;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-success {
    background:#ecfdf5;
    border:1px solid #a7f3d0;
    color:#065f46;
    display:none;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-error {
    background:var(--sm-danger-bg);
    border:1px solid var(--sm-danger-border);
    color:#7f1d1d;
    display:none;
  }

  @media (max-width:680px) {
    :is(#sm-contact-public, .sm-contact-public) .sm-btn {
      width:100%;
      min-height:60px;
      padding:10px 18px;
      gap:12px;
    }
  }

  @media (max-width:640px) {
    :is(#sm-contact-public, .sm-contact-public) .sm-card {
      padding:16px;
    }

    :is(#sm-contact-public, .sm-contact-public) .sm-actions {
      justify-content:stretch;
    }
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-input {
    color:#111827;
  }

  :is(#sm-contact-public, .sm-contact-public) .sm-input::placeholder {
    color:#b8bec8;
    opacity:1;
  }
