/* ==========================================================================
   CONTACT FORM 7
   ========================================================================== */

/*
 * Keep CF7's screen-reader response accessible.
 * Do not use display:none because that prevents assistive technology
 * from announcing validation and submission results.
 */
.wpcf7 .screen-reader-response {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* CF7 internal hidden values */
.wpcf7 fieldset.hidden-fields-container {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Avoid showing stale validation styling before interaction */
.wpcf7-form.init .wpcf7-not-valid-tip {
  display: none !important;
}

.wpcf7-form.init .wpcf7-not-valid {
  border-color: rgba(148, 163, 184, 0.22) !important;
}

/* ==========================================================================
   REQUIRED AND OPTIONAL LABELS
   ========================================================================== */

.cta-form-required-note {
  margin: 0;
  color: var(--color-text-muted, #64748b);
  font-size: 0.9rem;
  line-height: 1.5;
}

.cta-form-required-note span[aria-hidden="true"],
.cta-form-field label > span[aria-hidden="true"] {
  color: #ef2332;
  font-weight: 800;
}

.cta-form-field .cta-optional {
  color: var(--color-text-muted, #64748b);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
}

/* ==========================================================================
   SUBMIT BUTTON
   ========================================================================== */

.wpcf7-submit,
.cta-contact-card .wpcf7-submit,
input[type="submit"].wpcf7-submit {
  background: #ef2332 !important;
  border-color: #ef2332 !important;
  color: #ffffff !important;
}

.wpcf7-submit:hover,
.wpcf7-submit:focus,
.wpcf7-submit:active {
  background: #c91827 !important;
  border-color: #c91827 !important;
  color: #ffffff !important;
}

.wpcf7-submit:focus-visible {
  outline: 3px solid rgba(239, 35, 50, 0.4) !important;
  outline-offset: 3px !important;
}

.wpcf7 form.submitting .wpcf7-submit {
  pointer-events: none !important;
  cursor: not-allowed !important;
  opacity: 0.65 !important;
}

/* ==========================================================================
   TURNSTILE
   ========================================================================== */

.cta-turnstile-slot {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 65px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.cta-turnstile-slot:empty {
  min-height: 0;
}

.cta-turnstile-slot .wpcf7-turnstile {
  width: 100%;
  max-width: 300px;
  margin: 0 !important;
}

/*
 * Turnstile uses its automatic theme while color-scheme synchronizes
 * it with the website's data-theme value.
 */
html[data-theme="light"] {
  color-scheme: light;
}

html[data-theme="dark"] {
  color-scheme: dark;
}

html[data-theme="light"] .wpcf7-turnstile {
  color-scheme: light;
}

html[data-theme="dark"] .wpcf7-turnstile {
  color-scheme: dark;
}

/* Fallback when JavaScript has not assigned data-theme */
@media (prefers-color-scheme: light) {
  html:not([data-theme]) .wpcf7-turnstile {
    color-scheme: light;
  }
}

@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .wpcf7-turnstile {
    color-scheme: dark;
  }
}

@media (max-width: 400px) {
  .cta-turnstile-slot {
    justify-content: center;
  }
}

/* ==========================================================================
   VALIDATION AND SUBMISSION RESPONSES
   ========================================================================== */

/*
 * Hide only an empty response. Your old rule hid every CF7 error,
 * including mail failures and validation summaries.
 */
.wpcf7-response-output:empty {
  display: none;
}

.wpcf7 .wpcf7-response-output {
  margin: 1.25rem 0 0;
  padding: 0.9rem 1rem;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 0.9rem;
  line-height: 1.5;
}

/* Validation failure */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  display: block;
  border-color: rgba(244, 63, 94, 0.5);
  background: rgba(244, 63, 94, 0.1);
  color: #be123c;
}

/* Email/server failure */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  display: block;
  border-color: rgba(244, 63, 94, 0.5);
  background: rgba(244, 63, 94, 0.1);
  color: #be123c;
}

/* Spam rejection */
.wpcf7 form.spam .wpcf7-response-output {
  display: block;
  border-color: rgba(245, 158, 11, 0.55);
  background: rgba(245, 158, 11, 0.1);
  color: #92400e;
}

/* Individual invalid fields */
.wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.35rem;
  color: #e11d48;
  font-size: 0.8rem;
  line-height: 1.4;
}

.wpcf7 .wpcf7-not-valid {
  border-color: #e11d48 !important;
  box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.1) !important;
}

/* Dark-mode response colours */
html[data-theme="dark"] .wpcf7 form.invalid .wpcf7-response-output,
html[data-theme="dark"] .wpcf7 form.unaccepted .wpcf7-response-output,
html[data-theme="dark"] .wpcf7 form.failed .wpcf7-response-output,
html[data-theme="dark"] .wpcf7 form.aborted .wpcf7-response-output {
  color: #fda4af;
}

html[data-theme="dark"] .wpcf7 form.spam .wpcf7-response-output {
  color: #fcd34d;
}

html[data-theme="dark"] .wpcf7 .wpcf7-not-valid-tip {
  color: #fda4af;
}

/* ==========================================================================
   CUSTOM SUCCESS RESULT
   ========================================================================== */

.cta-form-grid[hidden] {
  display: none !important;
}

.wpcf7-response-output.cta-success-output,
.wpcf7 .wpcf7-response-output.cta-success-output {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
}

.cta-success-card {
  padding: 36px 30px;
  border: 1px solid rgba(16, 185, 129, 0.45);
  border-radius: 18px;
  background: #eafbf4;
  color: #172033;
  text-align: center;
}

.cta-success-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: #00a968;
  color: #ffffff;
  font-size: 36px;
  font-weight: 800;
  line-height: 1;
}

.cta-success-card h3 {
  margin: 0 0 18px;
  color: inherit !important;
  font-size: 1.25rem;
  font-weight: 800;
}

.cta-success-card p {
  max-width: 470px;
  margin: 0 auto 16px;
  color: inherit !important;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.55;
}

.cta-success-return {
  display: block;
  color: #64748b;
  font-size: 0.85rem;
}

.wpcf7-submit:disabled,
.wpcf7-submit[aria-disabled="true"] {
  cursor: not-allowed !important;
  pointer-events: none !important;
  opacity: 0.5 !important;
  filter: grayscale(0.25);
}

.cta-turnstile-slot.turnstile-pending {
  opacity: 0.9;
}

.cta-turnstile-slot.turnstile-verified {
  opacity: 1;
}

.cta-turnstile-slot.turnstile-required {
  padding: 8px;
  border: 1px solid #e11d48;
  border-radius: 8px;
  background: rgba(225, 29, 72, 0.06);
}

html[data-theme="dark"] .cta-turnstile-slot.turnstile-required {
  border-color: #fda4af;
  background: rgba(244, 63, 94, 0.1);
}

html[data-theme="dark"] .cta-success-card {
  border-color: rgba(16, 185, 129, 0.55);
  background: #08282d;
  color: #f1f5f9;
}

html[data-theme="dark"] .cta-success-card h3,
html[data-theme="dark"] .cta-success-card p {
  color: #f1f5f9 !important;
}

html[data-theme="dark"] .cta-success-return {
  color: #a7b4c8;
}

.wpcf7 form.cta-cf7-success > *:not(.wpcf7-response-output) {
  display: none !important;
}



.sh-page .sh-footer-links a.sh-footer-reserve,
.sh-page .sh-footer-links a.sh-footer-reserve:link,
.sh-page .sh-footer-links a.sh-footer-reserve:visited,
.sh-page .sh-footer-links a.sh-footer-reserve:hover,
.sh-page .sh-footer-links a.sh-footer-reserve:focus,
.sh-page .sh-footer-links a.sh-footer-reserve:active {
  color: #33004f !important;
  -webkit-text-fill-color: #33004f !important;
}