/* ============================================================
   Support & contact (support.html) — one page for what support.html and
   contact.html used to split. The form on the left, three facts on the
   right, the common questions straight under both: compact enough that the
   questions sit inside a laptop's first screen, so they are seen before
   anybody writes (docs/mockups/web-support-contact.html, A1).
   Loaded after styles.css, which owns the tokens, nav, buttons and footer.
   ============================================================ */

.sup-hero { padding: 40px 0 0; }
.sup-hero h1 { font-size: clamp(32px, 4vw, 42px); }
.sup-hero p { margin-top: 10px; font-size: 16.5px; max-width: 70ch; }

.sup-main { padding: 26px 0 0; }
.sup-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.sup-card { background: var(--card); border: 1px solid var(--rule-soft); border-radius: 18px; padding: 22px 24px; box-shadow: var(--shadow-sm); }

/* ---- The form ---- */
.cf { display: flex; flex-direction: column; gap: 12px; }
.cf[hidden] { display: none; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cf label { display: flex; flex-direction: column; gap: 6px; font: 600 12.5px/1.2 var(--sans); color: var(--ink); }
.cf label small { font-weight: 400; color: var(--meta); }
/* the topic's label with the expected reply beside it; on a phone it wraps under */
.cf-lbl { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 10px; }
.cf-lbl > span:first-child { white-space: nowrap; }
.cf-route { font: 500 12px/1.2 var(--sans); color: var(--meta); white-space: nowrap; }
.cf input, .cf select, .cf textarea { height: 44px; padding: 0 14px; border: 1px solid var(--field-rule); border-radius: 11px; background: var(--field); font: 400 15px/1.3 var(--sans); color: var(--ink); transition: border-color .15s, box-shadow .15s; width: 100%; box-sizing: border-box; }
.cf select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C97A3' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; padding-right: 40px; }
.cf textarea { height: 92px; padding: 11px 14px; resize: vertical; }
.cf input:focus, .cf select:focus, .cf textarea:focus { outline: none; border-color: var(--cta); box-shadow: 0 0 0 3px rgba(42,122,148,.18); }
/* the honeypot: off-screen for people, still a field to a bot */
.cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.cf-extra { display: none; flex-direction: column; gap: 12px; }
.cf-extra.on { display: flex; }
.cf-note { border-radius: 11px; padding: 10px 13px; font-size: 13.5px; line-height: 1.45; background: var(--accent-wash); color: var(--accent-text); }
.cf-note.danger { background: var(--danger-soft); color: var(--danger-text); }  /* signal700, dangerOnWash in light */

/* attachments: one quiet line, the files as chips on it */
.att { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cf .att-add { display: inline-flex; flex-direction: row; align-items: center; gap: 7px; height: 34px; padding: 0 12px; border: 1.5px dashed var(--field-rule); border-radius: 99px; cursor: pointer; font: 600 12.5px/1 var(--sans); color: var(--accent-text); background: var(--field); transition: border-color .15s, background .15s; }
.cf .att-add:hover, .cf .att-add.over { border-color: var(--cta); background: rgba(42,122,148,.06); }
.att-add svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.att-add input { display: none; }
.att-hint, .cf-hint { font-size: 12px; color: var(--meta); }
/* the note under name + email on a safety report: they're optional there */
.cf-hint { line-height: 1.45; margin-top: -4px; }
.chip { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 4px; border: 1px solid var(--rule); border-radius: 99px; font-size: 12.5px; color: var(--ink); background: var(--field); max-width: 220px; }
.chip img, .chip .ph { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; flex: none; background: var(--accent-wash); display: grid; place-items: center; font: 700 8px/1 var(--mono); color: var(--accent-text); }
.chip .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chip .sz { color: var(--meta); font-size: 11.5px; white-space: nowrap; }
.chip button { border: 0; background: none; color: var(--meta); font-size: 17px; line-height: 1; cursor: pointer; padding: 0 6px; }
.chip button:hover { color: var(--danger); }
.att-err, .cf-err { width: 100%; font-size: 12.5px; color: var(--danger); line-height: 1.45; }
.att-err:empty, .cf-err:empty { display: none; }
.cf-err a { color: inherit; }

.cf-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding-top: 2px; }
.cf-foot p { font-size: 12px; color: var(--meta); max-width: 38ch; line-height: 1.45; }
.cf-foot p a { color: var(--accent-text); }
.cf-foot p + p { margin-top: 4px; }  /* the good-faith line under the privacy one */
.cf .btn { height: 44px; padding: 0 24px; border: 0; cursor: pointer; }
.cf .btn[disabled] { opacity: .6; cursor: progress; }

/* after sending */
.cf-done { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 18px 0; }
.cf-done[hidden] { display: none; }
.cf-done .ico { margin-bottom: 4px; }
.cf-done h2 { font: 600 22px/1.2 var(--display); color: var(--ink); letter-spacing: -0.01em; }
.cf-done p { font-size: 15px; color: var(--body); }
.cf-done button { margin-top: 8px; font: 600 13px/1 var(--sans); color: var(--accent-text); background: none; border: 0; padding: 0; cursor: pointer; }

/* ---- The facts beside it ---- */
.sup-info { background: var(--card); border: 1px solid var(--rule-soft); border-radius: 18px; padding: 4px 18px; box-shadow: var(--shadow-sm); }
.sup-info-row { display: flex; gap: 12px; align-items: center; padding: 14px 0; }
.sup-info-row + .sup-info-row { border-top: 1px solid var(--rule-soft); }
.sup-info-row b { display: block; font: 600 15px/1.3 var(--display); color: var(--ink); }
.sup-info-row span { font-size: 13px; color: var(--meta); line-height: 1.4; }
.sup-page .ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex: none; background: var(--accent-wash); color: var(--accent-text); }
.sup-page .ico.danger { background: var(--danger-soft); color: var(--danger); }
.sup-page .ico svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

/* ---- Common questions: under both, two columns so six take three rows ---- */
.sup-faq { padding: 34px 0 0; }
.sup-faq h2 { margin-bottom: 14px; font-size: clamp(24px, 2.6vw, 30px); letter-spacing: -.02em; color: var(--ink); }
.faq { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; align-items: start; }
.faq details { border-top: 1px solid var(--rule-soft); padding: 15px 0; }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; font: 600 16.5px/1.3 var(--display); color: var(--ink); letter-spacing: -0.01em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font: 400 21px/1 var(--sans); color: var(--meta); }
.faq details[open] summary::after { content: '–'; }
.faq p { margin-top: 8px; font-size: 14.5px; color: var(--body); max-width: 60ch; }
.faq p a { color: var(--accent-text); }

.sup-operator { padding: 30px 0 10px; font-size: 13px; color: var(--meta); line-height: 1.7; }
.sup-operator a { color: var(--accent-text); }

@media (max-width: 900px) {
  .sup-grid, .faq, .cf-row { grid-template-columns: 1fr; }
  .sup-info { order: -1; }
}
