/* =========================================================
   Site-wide styles migrated from Appearance > Customize >
   Additional CSS (Hello Elementor). Additional CSS is stored per
   theme, so it stopped loading when this theme was activated.
   Everything it held now lives here.
   The desktop dropdown fix moved into theme.css with the header.
   ========================================================= */

/* ---------- Elementor forms ---------- */

/* Form container */
.elementor-form-fields-wrapper {
  background-color: #ffffff;
  padding: 40px;
  border: 2px solid rgba(30, 58, 95, 0.1);
  box-shadow: 0 10px 40px rgba(0,0,0,0.1);
  border-radius: 0 !important;
}

/* All inputs: square corners, navy border at 20% opacity */
.elementor-field-type-text input,
.elementor-field-type-email input,
.elementor-field-type-tel input,
.elementor-field-type-textarea textarea {
  border: 1px solid rgba(30, 58, 95, 0.2) !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  background-color: #ffffff !important;
  color: #1e3a5f !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  outline: none !important;
  transition: all 0.2s ease !important;
  width: 100% !important;
}

.elementor-field-type-text input:focus,
.elementor-field-type-email input:focus,
.elementor-field-type-tel input:focus,
.elementor-field-type-textarea textarea:focus {
  border-color: #c9a962 !important;
  box-shadow: 0 0 0 2px rgba(201, 169, 98, 0.2) !important;
}

/* Labels */
.elementor-field-label {
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #1e3a5f !important;
  margin-bottom: 8px !important;
  display: block !important;
}

/* Grade checkboxes: keep as real checkboxes */
.elementor-field-type-checkbox .elementor-field-option input[type="checkbox"] {
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
  border: 2px solid rgba(30, 58, 95, 0.3) !important;
  accent-color: #c9a962 !important;
  margin-right: 8px !important;
  cursor: pointer !important;
  border-radius: 0 !important;
}

.elementor-field-type-checkbox .elementor-field-option label {
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 14px !important;
  color: #1e3a5f !important;
  display: inline-flex !important;
  align-items: center !important;
  cursor: pointer !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

/* Interest category: 3 column grid, square bordered buttons */
.elementor-field-type-radio .elementor-field-options {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}

.elementor-field-type-radio .elementor-field-option {
  margin: 0 !important;
}

.elementor-field-type-radio .elementor-field-option input[type="radio"] {
  display: none !important;
}

.elementor-field-type-radio .elementor-field-option label {
  display: block !important;
  width: 100% !important;
  padding: 12px 16px !important;
  border: 2px solid rgba(30, 58, 95, 0.2) !important;
  border-radius: 0 !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #6b7280 !important;
  text-align: center !important;
  cursor: pointer !important;
  background: none !important;
  transition: all 0.2s ease !important;
}

.elementor-field-type-radio .elementor-field-option label:hover {
  border-color: rgba(201, 169, 98, 0.5) !important;
}

.elementor-field-type-radio .elementor-field-option input:checked + label {
  border-color: #c9a962 !important;
  background-color: rgba(201, 169, 98, 0.1) !important;
  color: #1e3a5f !important;
}

/* Submit button: gold, square, very tall */
.elementor-button[type="submit"] {
  background-color: #c9a962 !important;
  color: #ffffff !important;
  border: 2px solid #c9a962 !important;
  border-radius: 0 !important;
  padding: 24px !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  width: 100% !important;
  box-shadow: 0 20px 60px -15px rgba(201, 169, 98, 0.5) !important;
  transition: all 0.3s ease !important;
}

.elementor-button[type="submit"]:hover {
  background-color: rgba(201, 169, 98, 0.9) !important;
  box-shadow: 0 25px 70px -15px rgba(201, 169, 98, 0.7) !important;
}

/* Textarea: no resize, square */
.elementor-field-type-textarea textarea {
  resize: none !important;
  min-height: 120px !important;
  border-radius: 0 !important;
}

/* Row spacing */
.elementor-field-group {
  margin-bottom: 24px !important;
}

/* Mobile: stack interest grid to 1 column */
@media (max-width: 768px) {
  .elementor-field-type-radio .elementor-field-options {
    grid-template-columns: 1fr !important;
  }
}

/* ---------- Scroll reveal and hover helpers ---------- */

.elementor-element.scroll-animate {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.elementor-element.scroll-animate.visible {
  opacity: 1;
  transform: translateY(0);
}

.elementor-element.stagger-1 { transition-delay: 0.1s; }
.elementor-element.stagger-2 { transition-delay: 0.2s; }
.elementor-element.stagger-3 { transition-delay: 0.3s; }
.elementor-element.stagger-4 { transition-delay: 0.4s; }
.elementor-element.stagger-5 { transition-delay: 0.5s; }

.elementor-element.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  cursor: pointer;
}

.elementor-element.hover-lift:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 24px rgba(15, 33, 59, 0.15) !important;
}

.elementor-element.hover-scale {
  transition: transform 0.3s ease !important;
}

.elementor-element.hover-scale:hover {
  transform: scale(1.05) !important;
}

.elementor-element.card-shine {
  position: relative !important;
  overflow: hidden !important;
}

.elementor-element.card-shine::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: -100% !important;
  width: 100% !important;
  height: 100% !important;
  background: linear-gradient(90deg, transparent, rgba(214, 169, 91, 0.1), transparent) !important;
  transition: left 0.6s ease !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.elementor-element.card-shine:hover::before {
  left: 100% !important;
}

.elementor-element.image-hover-zoom {
  overflow: hidden !important;
}

.elementor-element.image-hover-zoom img {
  transition: transform 0.6s ease !important;
  display: block !important;
}

.elementor-element.image-hover-zoom:hover img {
  transform: scale(1.08) !important;
}

/* ---------- Kova fix (Sept 2026): homepage Campus Tour video on mobile ----------
   The drone video block had a fixed 515px height with no mobile setting. When a
   phone blocks autoplay (for example in Low Power Mode) it showed an empty navy
   box. On phones it sizes to 16:9 and shows the campus render behind the video. */
@media (max-width: 767px) {
  .elementor-11 .elementor-element.elementor-element-3e2dd2e {
    min-height: 56vw !important;
    background-image: url("https://kingsminsterpv.com/wp-content/uploads/2026/06/Exterior-Render_birds-eye-scaled.jpg") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }
}

/* ---------- Kova fix (Sept 2026): no sideways overflow on tablet and mobile ----------
   Many containers were imported with fixed pixel widths (768 to 1280px) plus a
   "max-width: 100%" rule stored in UiChemy's custom CSS field. UiChemy is no
   longer installed, so that rule stopped printing. This restores the cap. */
@media (max-width: 1024px) {
  .elementor .e-con,
  .elementor .elementor-widget {
    max-width: 100% !important;
  }
}

/* ---------- Kova fix (Oct 2026): phone spacing and entrance animations ----------
   About page sections kept their 96px and 112px desktop padding on phones, and
   entrance animations left content blank until they fired. On phones everything
   shows immediately. Desktop is unchanged. */
@media (max-width: 767px) {
  .elementor-519 > .elementor-element-512dc1d,
  .elementor-519 > .elementor-element-1c319b7,
  .elementor-519 > .elementor-element-9008bc0,
  .elementor-519 > .elementor-element-f862dfb,
  .elementor-519 > .elementor-element-cbafc8a,
  .elementor-519 > .elementor-element-43aeb68 {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
  .elementor-invisible {
    visibility: visible !important;
  }
  .elementor-element.animated {
    animation: none !important;
  }
  .elementor-element.scroll-animate {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
