/* === GLOBAL BRAND COLORS === */
:root {
  --primary: #2B2E33;
  --light: #F1EFEA;
  --soft: #D6D3CD;
  --hover: #3A3D42;
}

/* === BODY === */
body {
  background-color: var(--light);
  color: var(--primary);
}

/* === HEADINGS === */
h1, h2, h3, h4, h5, h6 {
  color: var(--primary);
  letter-spacing: -0.02em;
}

/* === PARAGRAPH TEXT === */
p {
  color: #44474D;
  line-height: 1.6;
}

/* === BUTTONS (GLOBAL CLEANUP) === */
button,
.zs-button {
  border-radius: 6px;
  transition: all 0.2s ease;
}

/* === PRIMARY BUTTON === */
.zs-button-primary {
  background-color: var(--primary);
  color: var(--light);
  border: 1px solid var(--primary);
}

.zs-button-primary:hover {
  background-color: var(--hover);
  border-color: var(--hover);
  color: var(--light);
}

/* === SECONDARY BUTTON === */
.zs-button-secondary {
  background-color: transparent;
  color: var(--primary);
  border: 1px solid var(--primary);
}

.zs-button-secondary:hover {
  background-color: var(--primary);
  color: var(--light);
}

/* === LINKS === */
a {
  color: var(--primary);
  text-decoration: none;
  transition: all 0.2s ease;
}

a:hover {
  color: #44474D;
  text-decoration: underline;
}

/* === FORM FIELDS === */
input, textarea {
  background-color: #FFFFFF;
  border: 1px solid var(--soft);
  color: var(--primary);
  padding: 10px;
}

input:focus, textarea:focus {
  border-color: var(--primary);
  outline: none;
}

/* === SECTION SPACING (THIS IS BIG) === */
section {
  padding: 80px 0;
}

/* === IMAGE CLEANUP === */
img {
  border-radius: 4px;
}

/* === DIVIDER === */
hr {
  border: none;
  border-top: 1px solid var(--soft);
}

/* ========================================
   LESLEY BADELLES — FORM STATES
======================================== */

/* SUCCESS MESSAGE */
.zpform-field-container[style*="color: green"] {
    color: var(--primary) !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    font-family: inherit !important;
    font-weight: 400 !important;
    letter-spacing: 0.01em;
    opacity: 0.95;
}

.zpform-field-container[style*="color: green"] * {
    color: var(--primary) !important;
}

/* INLINE ERROR MESSAGES */
.zpform-container .zpform-errormsg {
    color: #7B6E63 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    font-family: inherit !important;
    font-weight: 400 !important;
    margin-top: 6px !important;
    opacity: 0.95 !important;
}

/* REQUIRED ASTERISK */
.zpform-container .zpform-mandatory {
    color: #A48B78 !important;
}

/* INVALID FIELD STYLING */
.zpform-container input:invalid,
.zpform-container textarea:invalid {
    border-color: #C5B7AA !important;
    box-shadow: none !important;
}

/* FOCUS STATES */
.zpform-container input:focus,
.zpform-container textarea:focus {
    border-color: var(--primary) !important;
    box-shadow: none !important;
}

/* FORM TRANSITIONS */
.zpform-container input,
.zpform-container textarea,
.zpform-container .zpform-errormsg {
    transition: all 0.25s ease;
}

<script>
setInterval(function() {

    /* INLINE EMAIL ERRORS */
    document.querySelectorAll('.zpform-errormsg').forEach(function(el) {

        if(el.innerText.includes('Enter a valid email')) {

            el.innerText =
            'Please enter a valid email address so I can respond properly.';

        }

        if(el.innerText.includes('This field is required')) {

            el.innerText =
            'This field is needed before your message can move through.';

        }

    });

    /* SUCCESS MESSAGE */
    document.querySelectorAll('.zpform-field-container').forEach(function(el) {

        if(el.innerText.includes('Your message has been received')) {

            el.style.color = '#2B2E33';

        }

    });

}, 500);
</script>

/* ========================================
   GLOBAL ZOHO RED ERROR OVERRIDE
======================================== */

/* ========================================
   FORCE OVERRIDE INLINE RED ERRORS
======================================== */

div.zpform-field-container[style*="color: red"] {
    color: #7B6E63 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    font-family: inherit !important;
    font-weight: 400 !important;
    opacity: 0.95 !important;
}

/* FORCE ALL CHILD TEXT */
div.zpform-field-container[style*="color: red"] * {
    color: #7B6E63 !important;
}

/* === FORCE OVERRIDE ALL ZOHO FORM ERROR TEXT === */

.zpform-container div[data-form-field-container^="formMsg_"],
.zpform-container .zpform-errormsg,
.zpform-container [role="alert"] {
    color: #2B2E33 !important;
    font-size: 14px !important;
    font-family: inherit !important;
    font-weight: 400 !important;
}

/* OPTIONAL — softer luxury tone */
.zpform-container div[data-form-field-container^="formMsg_"] {
    opacity: 0.85;
}

<script>
function replaceZohoErrorMessages() {

    document.querySelectorAll('.zpform-field-container').forEach(function(el) {

        if (el.innerText.includes('Invalid entries found, please correct and resubmit.')) {

            el.innerText = 'A few details require gentle attention before your message can move through.';

            el.style.color = '#8A7460';

        }

    });

}

/* Run repeatedly because Zoho injects dynamically */
setInterval(replaceZohoErrorMessages, 500);
</script>