:root{--page-title-display:none;}/* Start custom CSS for html, class: .elementor-element-70cf6ec *//* ==========================================================================
   CONTACT FORM  (Contact Form 7 + Elementor)
   Rebuilds the reference design: white card · navy labels · red required
   marks · select · consent checkbox · gold gradient submit button.
   --------------------------------------------------------------------------
   PASTE FORM MARKUP INTO:  Contact → Contact Forms → your form → Form tab
   PASTE THIS CSS INTO:     Elementor > Custom CSS  (or
                            Appearance → Customize → Additional CSS)
   ========================================================================== */

/* ------------------------------------------
   THEME TOKENS  (edit the brand here)
   ------------------------------------------ */
.nu-contact-form {
    --nu-navy:         #16294d;   /* labels                */
    --nu-ink:          #2b2b2b;   /* typed text            */
    --nu-req:          #e23744;   /* required asterisk     */
    --nu-placeholder:  #a2a6ad;
    --nu-muted:        #5b5f66;   /* consent / helper text */

    --nu-gold-1:       #1F595C;   /* button gradient start */
    --nu-gold-2:       #1F595C;   /* button gradient end   */
    --nu-gold-solid:   #c79a34;   /* focus ring / accents  */
    --nu-gold-ring:    rgba(199, 154, 52, 0.18);

    --nu-card:         #ffffff;
    --nu-field-bg:     #ffffff;
    --nu-border:       #e4e4e4;
    --nu-border-hover: #cfcfcf;

    --nu-error:        #d93025;
    --nu-error-bg:     #fffafa;
    --nu-success:      #1a7f4b;
    --nu-success-bg:   #f4fbf7;
    --nu-success-bd:   #c8ecd8;

    --nu-radius-card:  24px;
    --nu-radius:       9px;
    --nu-ease:         cubic-bezier(0.22, 0.61, 0.36, 1);
    --nu-speed:        0.24s;
}

/* ------------------------------------------
   CARD SHELL
   ------------------------------------------ */
.nu-contact-form {
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 42px 44px 44px;

    background: var(--nu-card);
    border-radius: var(--nu-radius-card);
    box-shadow: 0 30px 70px rgba(20, 25, 40, 0.07);
}
.nu-contact-form *,
.nu-contact-form *::before,
.nu-contact-form *::after { box-sizing: border-box; }

/* ------------------------------------------
   CONTACT FORM 7 STRUCTURAL RESET
   Neutralises CF7's auto <p> / <br> wrappers so the grid works.
   ------------------------------------------ */
.nu-contact-form .wpcf7-form p,
.nu-contact-form .wpcf7-form br {
    margin: 0 !important;
    padding: 0 !important;
}
.nu-contact-form .wpcf7-form p { display: contents; }

.nu-contact-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* ------------------------------------------
   GRID
   ------------------------------------------ */
.nu-contact-form .nu-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 26px;
    row-gap: 22px;
    width: 100%;
}
.nu-contact-form .nu-field { width: 100%; min-width: 0; }
.nu-contact-form .nu-full  { grid-column: 1 / -1; }

/* ------------------------------------------
   LABELS + REQUIRED MARK
   ------------------------------------------ */
.nu-contact-form .nu-field > label {
    display: block;
    margin: 0 0 9px 1px;

    color: var(--nu-navy);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.01em;
}
.nu-contact-form .nu-req {
    color: var(--nu-req);
    font-weight: 700;
    margin-left: 3px;
}

/* ------------------------------------------
   FIELDS (input / select / textarea)
   ------------------------------------------ */
.nu-contact-form .nu-input,
.nu-contact-form .nu-select,
.nu-contact-form .nu-textarea {
    display: block;
    width: 100%;
    margin: 0;

    border: 1.5px solid var(--nu-border);
    border-radius: var(--nu-radius);
    background: var(--nu-field-bg);

    color: var(--nu-ink);
    font-family: inherit;
    font-size: 15px;
    font-weight: 400;

    outline: none;
    -webkit-appearance: none;
    appearance: none;

    transition:
        border-color var(--nu-speed) var(--nu-ease),
        box-shadow var(--nu-speed) var(--nu-ease),
        background-color var(--nu-speed) var(--nu-ease);
}

.nu-contact-form .nu-input,
.nu-contact-form .nu-select {
    height: 54px;
    padding: 0 17px;
}

.nu-contact-form .nu-textarea {
    min-height: 128px;
    height: 128px;
    padding: 14px 17px;
    line-height: 1.6;
    resize: vertical;
}

/* Placeholder */
.nu-contact-form .nu-input::placeholder,
.nu-contact-form .nu-textarea::placeholder {
    color: var(--nu-placeholder);
    opacity: 1;
}

/* Custom SELECT chevron */
.nu-contact-form .nu-select {
    padding-right: 44px;
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 17px center;
}
/* Grey placeholder option until a real choice is made */
.nu-contact-form .nu-select:has(option[value=""]:checked) { color: var(--nu-placeholder); }
.nu-contact-form .nu-select option { color: var(--nu-ink); }

/* Hover */
.nu-contact-form .nu-input:hover,
.nu-contact-form .nu-select:hover,
.nu-contact-form .nu-textarea:hover { border-color: var(--nu-border-hover); }

/* Focus */
.nu-contact-form .nu-input:focus,
.nu-contact-form .nu-select:focus,
.nu-contact-form .nu-textarea:focus {
    border-color: var(--nu-gold-solid);
    box-shadow: 0 0 0 4px var(--nu-gold-ring);
}

/* Autofill cleanup */
.nu-contact-form .nu-input:-webkit-autofill,
.nu-contact-form .nu-textarea:-webkit-autofill {
    -webkit-text-fill-color: var(--nu-ink);
    box-shadow: 0 0 0 1000px #fff inset;
    transition: background-color 5000s ease-in-out 0s;
}

/* ------------------------------------------
   CONSENT CHECKBOX  (CF7 acceptance)
   ------------------------------------------ */
.nu-contact-form .nu-consent { margin-top: 2px; }
.nu-contact-form .nu-consent .wpcf7-list-item { margin: 0; }
.nu-contact-form .nu-consent .wpcf7-list-item label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    cursor: pointer;
}
.nu-contact-form .nu-consent input[type="checkbox"] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 1px 0 0;

    -webkit-appearance: none;
    appearance: none;

    border: 1.5px solid #c7c7c7;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;

    transition:
        border-color var(--nu-speed) var(--nu-ease),
        background-color var(--nu-speed) var(--nu-ease);
}
.nu-contact-form .nu-consent input[type="checkbox"]:hover { border-color: var(--nu-gold-solid); }
.nu-contact-form .nu-consent input[type="checkbox"]:checked {
    border-color: var(--nu-gold-solid);
    background-color: var(--nu-gold-solid);
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}
.nu-contact-form .nu-consent .wpcf7-list-item-label {
    color: var(--nu-muted);
    font-family: inherit;
    font-size: 13.5px;
    line-height: 1.55;
}

/* ------------------------------------------
   SUBMIT BUTTON  (custom <button> + gold gradient)
   ------------------------------------------ */
.nu-contact-form .nu-submit { margin-top: 6px; position: relative; }

.nu-contact-form .nu-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;

    width: 100%;
    height: 58px;
    margin: 0;
    padding: 0 26px;

    border: 0;
    border-radius: var(--nu-radius);

    background: linear-gradient(100deg, var(--nu-gold-1) 0%, var(--nu-gold-2) 100%);
    color: #ffffff;

    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;

    cursor: pointer;
    overflow: hidden;

    box-shadow: 0 10px 24px rgba(184, 134, 47, 0.28);
    transition:
        transform var(--nu-speed) var(--nu-ease),
        box-shadow var(--nu-speed) var(--nu-ease),
        filter var(--nu-speed) var(--nu-ease);
}
.nu-contact-form .nu-button i { font-size: 16px; line-height: 1; }
.nu-contact-form .nu-button .nu-btn-icon { width: 19px; height: 19px; flex: 0 0 auto; }

/* Sheen sweep */
.nu-contact-form .nu-button::after {
    content: "";
    position: absolute;
    top: 0; left: -120%;
    width: 55%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.35), transparent);
    transform: skewX(-18deg);
    transition: left 0.65s var(--nu-ease);
    pointer-events: none;
}
.nu-contact-form .nu-button:hover {
    filter: brightness(1.05);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(184, 134, 47, 0.36);
}
.nu-contact-form .nu-button:hover::after { left: 145%; }
.nu-contact-form .nu-button:active {
    transform: translateY(0);
    box-shadow: 0 6px 16px rgba(184, 134, 47, 0.28);
}
.nu-contact-form .nu-button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--nu-gold-ring), 0 10px 24px rgba(184, 134, 47, 0.28);
}

/* ------------------------------------------
   LOADING STATE  (CF7 AJAX submit)
   ------------------------------------------ */
.nu-contact-form .nu-button:disabled { cursor: wait; }
.nu-contact-form .wpcf7-form.submitting .nu-button { color: transparent; pointer-events: none; }
.nu-contact-form .wpcf7-form.submitting .nu-button i,
.nu-contact-form .wpcf7-form.submitting .nu-button .nu-btn-icon { visibility: hidden; }
.nu-contact-form .wpcf7-form.submitting .nu-button::before {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    width: 20px; height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: nu-spin 0.65s linear infinite;
    z-index: 2;
}
@keyframes nu-spin { to { transform: rotate(360deg); } }
.nu-contact-form .wpcf7-spinner { display: none !important; }

/* ------------------------------------------
   VALIDATION
   ------------------------------------------ */
.nu-contact-form .wpcf7-not-valid {
    border-color: var(--nu-error) !important;
    background: var(--nu-error-bg);
    box-shadow: 0 0 0 4px rgba(217, 48, 37, 0.08);
}
.nu-contact-form .wpcf7-not-valid-tip {
    display: block;
    margin: 7px 0 0 2px;
    color: var(--nu-error);
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}

/* ------------------------------------------
   RESPONSE / STATUS MESSAGE
   ------------------------------------------ */
.nu-contact-form .wpcf7-response-output {
    margin: 22px 0 0 0 !important;
    padding: 13px 16px !important;
    border: 1px solid var(--nu-border);
    border-radius: 10px;
    background: #fafafa;
    color: #3a3a3a;
    font-family: inherit;
    font-size: 13.5px;
    line-height: 1.55;
}
.nu-contact-form .wpcf7-form.sent .wpcf7-response-output {
    border-color: var(--nu-success-bd);
    background: var(--nu-success-bg);
    color: var(--nu-success);
}
.nu-contact-form .wpcf7-form.failed .wpcf7-response-output,
.nu-contact-form .wpcf7-form.invalid .wpcf7-response-output,
.nu-contact-form .wpcf7-form.spam .wpcf7-response-output {
    border-color: rgba(217,48,37,0.35);
    background: var(--nu-error-bg);
    color: var(--nu-error);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 991px) {
    .nu-contact-form { padding: 34px 30px 36px; }
    .nu-contact-form .nu-form-grid { column-gap: 18px; row-gap: 20px; }
}
@media (max-width: 767px) {
    .nu-contact-form { padding: 28px 20px 30px; border-radius: 18px; }
    .nu-contact-form .nu-form-grid {
        grid-template-columns: 1fr;
        column-gap: 0;
        row-gap: 18px;
    }
    .nu-contact-form .nu-full { grid-column: auto; }
    .nu-contact-form .nu-input,
    .nu-contact-form .nu-select { height: 52px; }
    .nu-contact-form .nu-button { height: 56px; }
}
@media (max-width: 380px) {
    .nu-contact-form { padding: 24px 16px 26px; }
    .nu-contact-form .nu-input,
    .nu-contact-form .nu-select { height: 50px; font-size: 14px; }
    .nu-contact-form .nu-textarea { font-size: 14px; }
    .nu-contact-form .nu-button { font-size: 14px; letter-spacing: 0.06em; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .nu-contact-form *,
    .nu-contact-form *::before,
    .nu-contact-form *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
    .nu-contact-form .wpcf7-form.submitting .nu-button::before { animation: nu-spin 0.8s linear infinite; }
}/* End custom CSS */