/*
Theme Name: Private Utility Locating Custom Theme
Theme URI: https://example.com/private-utility-locating
Author: Custom Theme Developer
Author URI: https://example.com
Description: Custom WordPress theme that mirrors the Private Utility Locating homepage.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: private-utility-locating
*/

html,
body {
  margin: 0;
  padding: 0;
}

.project-field .forminator-field .forminator-select{
    padding: 0 !important;
}

#site-preloader {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

#site-preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preloader-bar {
  background: var(--gradient-yellow);
  animation: preloader-bar-slide 1.2s ease-in-out infinite;
}

.site-mobile-menu {
  pointer-events: none;
  opacity: 0;
}

.site-mobile-menu.is-open {
  pointer-events: auto;
  opacity: 1;
}

.site-mobile-menu-panel {
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

.site-mobile-menu.is-open .site-mobile-menu-panel {
  transform: translateX(0);
}

.js-faq-toggle[aria-expanded="true"] i {
  transform: rotate(45deg);
}

@keyframes preloader-bar-slide {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(300%);
  }
}

@keyframes scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* Forminator form mirror styling (contact section) */
#contact .pul-forminator-wrap .forminator-ui,
#contact .pul-forminator-wrap .forminator-ui * {
  color: rgba(255, 255, 255, 0.9);
  font-family: "Inter", system-ui, sans-serif;
}

#contact .pul-forminator-wrap .forminator-row {
  margin-bottom: 0.95rem;
}

#contact .pul-forminator-wrap .forminator-field {
  margin-bottom: 0;
}

#contact .pul-forminator-wrap .forminator-label {
  display: block !important;
  margin-bottom: 0.375rem !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.25rem !important;
  text-transform: uppercase !important;
}

#contact .pul-forminator-wrap .forminator-required {
  color: var(--primary) !important;
}

#contact .pul-forminator-wrap .forminator-input,
#contact .pul-forminator-wrap .forminator-textarea,
#contact .pul-forminator-wrap .forminator-select,
#contact .pul-forminator-wrap select,
#contact .pul-forminator-wrap input,
#contact .pul-forminator-wrap textarea {
  width: 100% !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 0.375rem !important;
  background: rgba(255, 255, 255, 0.05) !important;
  color: #fff !important;
  box-shadow: none !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.875rem !important;
  line-height: 1.4 !important;
  transition: border-color 0.2s ease, background-color 0.2s ease !important;
}

#contact .pul-forminator-wrap .forminator-textarea,
#contact .pul-forminator-wrap textarea {
  min-height: 7rem !important;
  resize: vertical !important;
}

#contact .pul-forminator-wrap .forminator-input::placeholder,
#contact .pul-forminator-wrap .forminator-textarea::placeholder,
#contact .pul-forminator-wrap input::placeholder,
#contact .pul-forminator-wrap textarea::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

#contact .pul-forminator-wrap .forminator-input:focus,
#contact .pul-forminator-wrap .forminator-textarea:focus,
#contact .pul-forminator-wrap .forminator-select:focus,
#contact .pul-forminator-wrap select:focus,
#contact .pul-forminator-wrap input:focus,
#contact .pul-forminator-wrap textarea:focus {
  border-color: var(--primary) !important;
  background: rgba(255, 255, 255, 0.07) !important;
  outline: none !important;
}

#contact .pul-forminator-wrap .forminator-button-submit,
#contact .pul-forminator-wrap button[type="submit"] {
  display: inline-flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  border: 0 !important;
  border-radius: 0.6rem !important;
  background: var(--gradient-yellow) !important;
  color: var(--primary-foreground) !important;
  box-shadow: var(--shadow-glow) !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 0.95rem 1.6rem !important;
  transition: transform 0.25s ease, filter 0.25s ease !important;
}

#contact .pul-forminator-wrap .forminator-button-submit:hover,
#contact .pul-forminator-wrap button[type="submit"]:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
}

#contact .pul-forminator-wrap .forminator-button-submit:disabled,
#contact .pul-forminator-wrap button[type="submit"]:disabled {
  opacity: 0.7 !important;
  cursor: not-allowed !important;
}

#contact .pul-forminator-wrap .forminator-response-message,
#contact .pul-forminator-wrap .forminator-error-message {
  border-radius: 0.375rem !important;
  font-size: 0.8rem !important;
}

#contact .pul-forminator-wrap .forminator-description {
  color: rgba(255, 255, 255, 0.58) !important;
}

#contact .pul-forminator-wrap .forminator-edit-module {
  display: none !important;
}

/* Two-column field rows for Forminator contact form */
@media (min-width: 768px) {
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-name),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-email),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-phone),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-select),
  #contact .pul-forminator-wrap .forminator-row:has(input[type="email"]),
  #contact .pul-forminator-wrap .forminator-row:has(input[type="tel"]),
  #contact .pul-forminator-wrap .forminator-row:has(select) {
    width: calc(50% - 0.5rem);
    display: inline-block;
    vertical-align: top;
  }

  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-name),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-phone),
  #contact .pul-forminator-wrap .forminator-row:has(input[type="tel"]) {
    margin-right: 1rem;
  }

  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-email),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-select),
  #contact .pul-forminator-wrap .forminator-row:has(input[type="email"]),
  #contact .pul-forminator-wrap .forminator-row:has(select) {
    margin-right: 0;
  }

  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-address),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-field-textarea),
  #contact .pul-forminator-wrap .forminator-row:has(textarea),
  #contact .pul-forminator-wrap .forminator-row:has(.forminator-button-submit),
  #contact .pul-forminator-wrap .forminator-row:has(button[type="submit"]) {
    width: 100%;
    margin-right: 0;
    display: block;
  }
}

@media (max-width: 767px) {
  #contact .pul-forminator-wrap .forminator-row {
    width: 100% !important;
    margin-right: 0 !important;
    display: block !important;
  }
}
