
/* RORY GILES - COMPACT CONTACT FORM */

.rory-cf7-form {
  width: 100%;
  padding: 28px;
  background: #ffffff;
  border: 1px solid #e4eaf3;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0, 15, 50, 0.15);
  font-family: Arial, Helvetica, sans-serif;
  box-sizing: border-box;
}

.rory-cf7-form *,
.rory-cf7-form *::before,
.rory-cf7-form *::after {
  box-sizing: border-box;
}

/* Remove default paragraph spacing from CF7 */
.rory-cf7-form p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Form fields */
.rory-cf7-form .rory-form-field {
  margin: 0 0 12px !important;
  padding: 0 !important;
}

.rory-cf7-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

/* Inputs */
.rory-cf7-form input[type="text"],
.rory-cf7-form input[type="email"],
.rory-cf7-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  background: #f7faff !important;
  color: #07143b !important;
  border: 1px solid #dce5f1 !important;
  border-radius: 9px !important;
  padding: 12px 15px !important;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  box-shadow: none !important;
  outline: none;
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}

.rory-cf7-form input[type="text"],
.rory-cf7-form input[type="email"] {
  height: 46px;
  min-height: 46px;
}

.rory-cf7-form textarea {
  height: 115px;
  min-height: 115px;
  resize: vertical;
}

/* Placeholders */
.rory-cf7-form input::placeholder,
.rory-cf7-form textarea::placeholder {
  color: #8292a9 !important;
  opacity: 1;
}

/* Focus */
.rory-cf7-form input[type="text"]:focus,
.rory-cf7-form input[type="email"]:focus,
.rory-cf7-form textarea:focus {
  background: #ffffff !important;
  border-color: #0055d4 !important;
  box-shadow: 0 0 0 3px rgba(0, 85, 212, 0.10) !important;
}

/* Submit container */
.rory-cf7-form .rory-form-submit {
  margin: 4px 0 0 !important;
  padding: 0 !important;
}

/* Submit button */
.rory-cf7-form input[type="submit"] {
  display: block;
  width: 100%;
  height: 48px;
  min-height: 48px;
  padding: 12px 20px !important;
  margin: 0 !important;
  background: #0055d4 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 50px !important;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  cursor: pointer;
  transition:
    background 0.25s ease,
    transform 0.25s ease;
}

.rory-cf7-form input[type="submit"]:hover {
  background: #003fa9 !important;
  color: #ffffff !important;
  transform: translateY(-2px);
}

/* Confirmation note directly below button */
.rory-cf7-form .rory-form-note {
  display: block;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  color: #79879a !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
}

/* Validation */
.rory-cf7-form .wpcf7-not-valid-tip {
  font-size: 12px;
  color: #c62828;
  margin: 5px 0 0;
}

/* CF7 response output */
.wpcf7:has(.rory-cf7-form) .wpcf7-response-output {
  margin: 12px 0 0 !important;
  padding: 10px 14px !important;
  border-radius: 8px;
  font-size: 13px;
}

/* Mobile */
@media (max-width: 767px) {
  .rory-cf7-form {
    padding: 20px;
    border-radius: 15px;
  }

  .rory-cf7-form .rory-form-field {
    margin-bottom: 10px !important;
  }

  .rory-cf7-form input[type="text"],
  .rory-cf7-form input[type="email"] {
    height: 44px;
    min-height: 44px;
  }

  .rory-cf7-form textarea {
    height: 105px;
    min-height: 105px;
  }

  .rory-cf7-form input[type="submit"] {
    height: 46px;
    min-height: 46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rory-cf7-form input,
  .rory-cf7-form textarea {
    transition: none !important;
  }
}
