/* ════════════════════════════════════════════════════════════
   DigiMATA — contact.css
   Strona Kontakt: układ dwukolumnowy + stylowanie formularza
   Contact Form 7 spójne z marką (bez Bootstrapa).
   ════════════════════════════════════════════════════════════ */

/* ── Układ strony ── */
.dm-contact-wrap { align-items: stretch; }

.dm-contact-card {
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.08);
  padding: 2.5rem;
  height: 100%;
}

.dm-contact-aside {
  background: var(--dm-gradient, linear-gradient(135deg,#4e54c8 0%,#8f94fb 100%));
  color: #fff;
  border-radius: 24px;
  padding: 2.5rem;
  height: 100%;
}
.dm-contact-aside h2,
.dm-contact-aside h3 { color: #fff; }
.dm-contact-aside a { color: #fff; text-decoration: none; }
.dm-contact-aside a:hover { text-decoration: underline; }

.dm-contact-list { list-style: none; margin: 0; padding: 0; }
.dm-contact-list li {
  display: flex; align-items: flex-start; gap: 0.85rem;
  margin-bottom: 1.1rem; font-size: 1rem; line-height: 1.5;
}
.dm-contact-list li i {
  font-size: 1.25rem; line-height: 1.5; opacity: 0.95; flex-shrink: 0;
}

.dm-contact-socials { display: flex; gap: 0.6rem; margin-top: 1.5rem; }
.dm-contact-socials a {
  width: 42px; height: 42px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.18); color: #fff; font-size: 1.15rem;
  transition: background 0.2s, transform 0.2s; text-decoration: none;
}
.dm-contact-socials a:hover { background: rgba(255,255,255,0.32); transform: translateY(-2px); }

/* ── Contact Form 7 ── */
.wpcf7 { font-family: 'Nunito', sans-serif; }

.wpcf7 .dm-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1.25rem;
}
@media (max-width: 575.98px) {
  .wpcf7 .dm-form-grid { grid-template-columns: 1fr; }
}

.wpcf7 .dm-field { margin: 0 0 1.1rem; }
.wpcf7 .dm-field label {
  display: block; font-weight: 700; color: var(--dm-dark, #2c3e50);
  font-size: 0.95rem; margin-bottom: 0.4rem;
}
.wpcf7 .dm-req { color: var(--dm-secondary, #f77062); }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: 0.7rem 1rem;
  border: 2px solid #e6e8f0;
  border-radius: 12px;
  font-family: inherit;
  font-size: 1rem;
  color: var(--dm-body, #4a4a6a);
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.wpcf7 textarea { resize: vertical; min-height: 140px; }
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--dm-primary, #4e54c8);
  box-shadow: 0 0 0 4px rgba(78,84,200,0.12);
}
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder { color: #aab; }

/* zgoda RODO */
.wpcf7 .dm-consent { font-size: 0.88rem; color: #6c757d; margin: 0.5rem 0 1.5rem; line-height: 1.5; }
.wpcf7 .dm-consent .wpcf7-list-item { margin: 0; }
.wpcf7 .dm-consent a { color: var(--dm-primary, #4e54c8); }

/* przycisk wyślij — wariant ciepły jak btn-dm-warm */
.wpcf7 .dm-submit { margin: 0; }
.wpcf7 input[type="submit"] {
  background: var(--dm-gradient-warm, linear-gradient(135deg,#f77062 0%,#fe5196 100%));
  color: #fff; border: none; border-radius: 50px; font-weight: 700;
  font-family: 'Quicksand', sans-serif; font-size: 1.05rem;
  padding: 0.85rem 2.4rem; cursor: pointer;
  box-shadow: 0 4px 15px rgba(247,112,98,0.3);
  transition: transform 0.2s, box-shadow 0.2s;
}
.wpcf7 input[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(247,112,98,0.4); }

/* spinner CF7 */
.wpcf7 .wpcf7-spinner { margin: 0 0 0 0.75rem; }

/* komunikaty walidacji / statusu */
.wpcf7 .wpcf7-not-valid-tip { color: var(--dm-secondary, #f77062); font-size: 0.85rem; font-weight: 600; margin-top: 0.3rem; }
.wpcf7 .wpcf7-not-valid { border-color: var(--dm-secondary, #f77062) !important; }
.wpcf7-response-output {
  border-radius: 12px !important; padding: 0.85rem 1.1rem !important;
  margin: 1.25rem 0 0 !important; font-size: 0.95rem;
}
.wpcf7 form.sent .wpcf7-response-output { border: 2px solid var(--dm-accent-green, #2ecc71) !important; background: rgba(46,204,113,0.08); color: #1e7e45; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { border: 2px solid var(--dm-secondary, #f77062) !important; background: rgba(247,112,98,0.08); color: #b23b30; }
