/* ============================================================
   xx7 Game — Contact Page
   Form · contact channel cards · response expectations
   ============================================================ */

.contact-grid {
  display: grid;
  gap: clamp(30px, 4.5vw, 54px);
  align-items: start;
}
@media (min-width: 960px) {
  .contact-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
}

/* ------------------------------------------------------------
   FORM
   ------------------------------------------------------------ */
.form-card {
  padding: clamp(26px, 3.6vw, 40px);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border-strong);
  background:
    radial-gradient(ellipse 80% 60% at 100% 0%, rgba(92, 16, 35, 0.28), transparent 62%),
    linear-gradient(160deg, #1B1A1E, #0A0A0C);
  box-shadow: var(--shadow-card-lg);
}

.form-grid {
  display: grid;
  gap: 18px;
}
@media (min-width: 640px) {
  .form-grid--2 { grid-template-columns: 1fr 1fr; }
}

.field { display: grid; gap: 8px; }

.field__label {
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-champagne);
}

.field__label .req { color: var(--color-error); }

.field input,
.field textarea,
.field select {
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: rgba(10, 10, 12, 0.7);
  color: var(--color-text-primary);
  font-size: var(--fs-sm);
  transition: border-color var(--t-base) var(--ease-out),
              box-shadow var(--t-base) var(--ease-out),
              background var(--t-base) var(--ease-out);
}

.field input::placeholder,
.field textarea::placeholder { color: var(--color-text-muted); }

.field input:focus,
.field textarea:focus,
.field select:focus {
  outline: none;
  border-color: var(--color-champagne);
  background: rgba(19, 18, 21, 0.9);
  box-shadow: 0 0 0 3px rgba(201, 168, 118, 0.15);
}

.field textarea { resize: vertical; min-height: 148px; line-height: 1.7; }

.field select { appearance: none; -webkit-appearance: none; cursor: pointer; }
.field select option { background: #131215; }

/* Inline validation feedback */
.field__error {
  font-size: var(--fs-2xs);
  color: var(--color-error);
  min-height: 1em;
}
.field.is-invalid input,
.field.is-invalid textarea,
.field.is-invalid select { border-color: var(--color-error); }

.form-note {
  margin-top: 18px;
  font-size: var(--fs-2xs);
  line-height: 1.7;
  color: var(--color-text-muted);
}
.form-note a { color: var(--color-champagne); text-decoration: underline; text-underline-offset: 3px; }

/* Submission status message */
.form-status {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
  line-height: 1.7;
  display: none;
}
.form-status.is-visible { display: block; }
.form-status--ok {
  border: 1px solid rgba(76, 175, 125, 0.35);
  background: rgba(76, 175, 125, 0.09);
  color: #9EDCBC;
}
.form-status--warn {
  border: 1px solid rgba(224, 168, 60, 0.35);
  background: rgba(224, 168, 60, 0.08);
  color: #E9C88A;
}

/* ------------------------------------------------------------
   CHANNEL CARDS
   ------------------------------------------------------------ */
.channels { display: grid; gap: clamp(16px, 2.2vw, 22px); }

.channel {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: clamp(22px, 3vw, 28px);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--gradient-surface-card);
  transition: all var(--t-base) var(--ease-out);
}
.channel:hover {
  transform: translateY(-4px);
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-card-lg);
}

.channel--telegram:hover {
  border-color: rgba(46, 168, 222, 0.45);
  box-shadow: var(--shadow-card-lg), 0 0 34px rgba(46, 168, 222, 0.16);
}

.channel__icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  border-radius: 14px;
  border: 1px solid var(--color-border-soft);
  background: linear-gradient(150deg, rgba(201, 168, 118, 0.20), rgba(92, 16, 35, 0.30));
  color: var(--color-champagne);
}
.channel--telegram .channel__icon {
  background: linear-gradient(140deg, #2FA8DE, #17699B);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.2);
}
.channel__icon svg { width: 23px; height: 23px; }

.channel__body { flex: 1 1 auto; min-width: 0; }

.channel__title { font-size: var(--fs-h4); margin-bottom: 5px; }

.channel__handle {
  font-size: var(--fs-xs);
  letter-spacing: 0.05em;
  color: #6FCBF0;
  margin-bottom: 10px;
}

.channel__text {
  font-size: var(--fs-sm);
  line-height: 1.72;
  color: var(--color-text-secondary);
  margin-bottom: 16px;
}

.channel__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 16px;
  font-size: var(--fs-2xs);
  color: var(--color-text-muted);
}
.channel__meta span { display: inline-flex; align-items: center; gap: 6px; }
.channel__meta svg { width: 13px; height: 13px; color: var(--color-champagne-dim); }

/* ------------------------------------------------------------
   EXPECTATIONS TABLE
   ------------------------------------------------------------ */
.expect {
  display: grid;
  gap: 12px;
}

.expect__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 18px;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
  background: rgba(19, 18, 21, 0.6);
  font-size: var(--fs-sm);
  transition: border-color var(--t-base) var(--ease-out);
}
.expect__row:hover { border-color: var(--color-border-strong); }
.expect__row span:first-child { color: var(--color-text-secondary); }
.expect__row b { color: var(--color-champagne-light); font-weight: 500; }
