/*
Theme Name: Alessandro Bonzi Geometra
Theme URI: https://geometrabonzi.it
Author: Davide Bonzi
Description: Tema custom per landing page con contenuti gestiti via ACF.
Version: 1.0.0
Text Domain: alessandro-bonzi-geometra
*/

:root {
  color-scheme: light;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

section[id],
footer[id],
main [id] {
  scroll-margin-top: 96px;
}

.contact-form-wrap {
  color: #e2e8f0;
}

.contact-form-wrap p {
  margin: 0 0 1rem;
}

.contact-form-wrap label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.5rem;
  color: #cbd5e1;
}

.contact-form-wrap input[type='text'],
.contact-form-wrap input[type='email'],
.contact-form-wrap input[type='tel'],
.contact-form-wrap textarea,
.contact-form-wrap select,
.contact-form-wrap .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
  width: 100%;
  border-radius: 0.5rem;
  border: 1px solid #334155;
  background: #1e293b;
  color: #f8fafc;
  padding: 0.75rem 0.875rem;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form-wrap input[type='text']:focus,
.contact-form-wrap input[type='email']:focus,
.contact-form-wrap input[type='tel']:focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus,
.contact-form-wrap .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance):focus {
  border-color: #cb7171;
  box-shadow: 0 0 0 3px rgba(203, 113, 113, 0.25);
}

.contact-form-wrap textarea {
  min-height: 140px;
  resize: vertical;
}

.contact-form-wrap input::placeholder,
.contact-form-wrap textarea::placeholder {
  color: #94a3b8;
}

.contact-form-wrap .wpcf7-submit,
.contact-form-wrap button[type='submit'],
.contact-form-wrap input[type='submit'],
.contact-form-wrap .wpforms-submit {
  appearance: none;
  border: 0;
  border-radius: 0.5rem;
  background: #cb7171;
  color: #ffffff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.85rem 1.4rem;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.contact-form-wrap .wpcf7-submit:hover,
.contact-form-wrap button[type='submit']:hover,
.contact-form-wrap input[type='submit']:hover,
.contact-form-wrap .wpforms-submit:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}

.contact-form-wrap .wpcf7-not-valid-tip,
.contact-form-wrap .wpforms-error {
  color: #fecaca;
  font-size: 0.8rem;
  margin-top: 0.35rem;
}

.contact-form-wrap .wpcf7-response-output,
.contact-form-wrap .wpforms-confirmation-container {
  margin: 1rem 0 0;
  border-radius: 0.5rem;
  padding: 0.75rem 0.875rem;
  border: 1px solid #334155;
  color: #e2e8f0;
}

.contact-form-wrap .wpcf7-spinner {
  vertical-align: middle;
}

.contact-form-wrap .ff-el-group {
  margin-bottom: 1rem;
}

.contact-form-wrap .ff-el-input--label label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.5rem;
  color: #cbd5e1;
}

.contact-form-wrap .ff-t-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 768px) {
  .contact-form-wrap .ff-t-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.contact-form-wrap .ff-el-form-control {
  width: 100%;
  border-radius: 0.5rem;
  border: 1px solid #334155;
  background: #1e293b;
  color: #f8fafc;
  padding: 0.75rem 0.875rem;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form-wrap .ff-el-form-control:focus {
  border-color: #cb7171;
  box-shadow: 0 0 0 3px rgba(203, 113, 113, 0.25);
}

.contact-form-wrap .ff-el-form-control::placeholder {
  color: #94a3b8;
}

.contact-form-wrap .ff-btn.ff-btn-submit {
  appearance: none;
  border: 0;
  border-radius: 0.5rem;
  background: #cb7171;
  color: #ffffff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.85rem 1.4rem;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.contact-form-wrap .ff-btn.ff-btn-submit:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}

.contact-form-wrap .ff-message-success,
.contact-form-wrap .ff-el-is-error .text-danger,
.contact-form-wrap .ff-error,
.contact-form-wrap .ff-errors-in-stack {
  border-radius: 0.5rem;
  padding: 0.75rem 0.875rem;
  margin-top: 0.75rem;
}

.contact-form-wrap .ff-message-success {
  border: 1px solid #334155;
  color: #e2e8f0;
}

.contact-form-wrap .ff-el-is-error .text-danger,
.contact-form-wrap .ff-error,
.contact-form-wrap .ff-errors-in-stack {
  color: #fecaca;
  font-size: 0.8rem;
}

.abg-project-carousel-track {
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.abg-project-carousel-track::-webkit-scrollbar {
  display: none;
}

.abg-project-card {
  scroll-snap-align: start;
}

.abg-carousel-control:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
