/* ============================================================
   CONTACT — FANUCAiLeadCV
   Large tappable email + LinkedIn targets, PDF download CTA,
   optional Formspree contact form.
   ============================================================ */

/* ----------------------------------------------------------
   SECTION SUBTITLE (CTA line)
---------------------------------------------------------- */

.contact__cta {
  font-size:   var(--text-lg);
  font-weight: var(--font-medium);
  color:       var(--color-text-primary);
}

/* ----------------------------------------------------------
   CONTACT BODY — links left, form right on desktop.
---------------------------------------------------------- */

.contact__body {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-12);
  max-width:             960px;
  margin-inline:         auto;
  align-items:           start;
}

@media (max-width: 768px) {
  .contact__body {
    grid-template-columns: 1fr;
    gap: var(--space-10);
  }
}

/* ----------------------------------------------------------
   CONTACT LINKS LIST
   Large, accessible tap targets.
---------------------------------------------------------- */

.contact__links {
  list-style:     none;
  display:        flex;
  flex-direction: column;
  gap:            var(--space-4);
}

/* Shared link styles */
.contact__link {
  display:       flex;
  align-items:   center;
  gap:           var(--space-4);
  padding:       var(--space-5) var(--space-6);
  background:    var(--color-surface-1);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-lg);
  font-size:     var(--text-base);
  font-weight:   var(--font-semibold);
  color:         var(--color-text-primary);
  min-height:    60px;   /* PWA-friendly tap target */
  transition:
    border-color     var(--duration-base) var(--ease-out),
    box-shadow       var(--duration-base) var(--ease-out),
    background-color var(--duration-base) var(--ease-out),
    transform        var(--duration-fast) var(--ease-out);
  text-decoration: none;
}

.contact__link:hover,
.contact__link:focus-visible {
  transform:    translateY(-2px);
  box-shadow:   var(--shadow-md);
}

/* Email link */
.contact__link--email:hover,
.contact__link--email:focus-visible {
  border-color:     var(--color-accent);
  background-color: var(--color-accent-dim-2);
  color:            var(--color-accent);
}

/* LinkedIn link */
.contact__link--linkedin:hover,
.contact__link--linkedin:focus-visible {
  border-color:     #0a66c2;
  background-color: rgba(10, 102, 194, 0.08);
  color:            #4a9fd4;
}

.contact__icon {
  flex-shrink: 0;
  opacity:     0.8;
  transition:  opacity var(--duration-fast) var(--ease-out);
}

.contact__link:hover .contact__icon {
  opacity: 1;
}

/* Download CV button */
.contact__download {
  min-height:      60px;
  padding:         var(--space-4) var(--space-6);
  font-size:       var(--text-base);
  justify-content: flex-start;
  width:           100%;
  gap:             var(--space-4);
}

/* ----------------------------------------------------------
   CONTACT FORM
---------------------------------------------------------- */

.contact__form {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-5);
}

.contact__form-field {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-2);
}

.contact__form-label {
  font-size:   var(--text-sm);
  font-weight: var(--font-medium);
  color:       var(--color-text-secondary);
}

.contact__required {
  color: var(--color-accent);
  margin-left: var(--space-1);
}

.contact__form-input {
  padding:       var(--space-3) var(--space-4);
  background:    var(--color-bg-subtle);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-md);
  color:         var(--color-text-primary);
  font-size:     var(--text-base);
  font-family:   var(--font-sans);
  transition:
    border-color var(--duration-fast) var(--ease-out),
    box-shadow   var(--duration-fast) var(--ease-out);
  width: 100%;
}

.contact__form-input:focus {
  outline:      none;
  border-color: var(--color-accent);
  box-shadow:   0 0 0 3px var(--color-accent-dim);
}

.contact__form-input:focus-visible {
  outline:      none;
  border-color: var(--color-accent);
  box-shadow:   0 0 0 3px var(--color-accent-dim);
}

.contact__form-input::placeholder {
  color: var(--color-text-muted);
}

.contact__form-textarea {
  resize:    vertical;
  min-height: 120px;
}

/* Inline error message (JS validation) */
.contact__form-error {
  display:     none;
  font-size:   var(--text-xs);
  color:       var(--color-error);
  font-weight: var(--font-medium);
}

.contact__form-error:not(:empty) {
  display: block;
}

/* Form submit button */
.contact__form-actions .btn {
  width:           100%;
  justify-content: center;
  padding:         var(--space-4) var(--space-6);
}

/* Hint under the mailto submit button */
.contact__form-hint {
  font-size: var(--text-xs);
  color:     var(--color-text-muted);
  margin-block-start: var(--space-2);
}
