:root {
    --vc-red: #e30613;
    --vc-navy: #000;
    --vc-text: #000;
    --vc-muted: #6c7480;
    --vc-border: #e6e9ed;
    --vc-shell: 1440px;
}

.valour-contact-page,
.valour-contact-page * { box-sizing: border-box; }
.vc-contact-details a:hover{ color: #e73d47 !important;}
.valour-contact-page { font-family: Arial, Helvetica, sans-serif; color: var(--vc-text); background: #fff; }
.valour-contact-page h1,
.valour-contact-page h2,
.valour-contact-page h3,
.valour-contact-page p,
.valour-contact-page a { font-family: inherit; }

.vc-contact-shell {  width: min(1180px,calc(100% - 40px));margin:0 auto; }
.vc-contact-red-rule { display:block; width:52px; height:5px; background:var(--vc-red); margin-bottom:18px; }
.vc-contact-eyebrow { color:var(--vc-red); font-weight:700; letter-spacing:.28em; font-size:15px; margin-bottom:18px; }
.vc-contact-lead { margin:0; font-size:18px; line-height:1.55; color:#5a6270; }

/* Hero - intentionally no diagonal red graphic */
.vc-contact-hero {
    position:relative;
    min-height:100vh;
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
    overflow:hidden;
}
.vc-contact-hero__overlay {
    position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.92) 38%, rgba(255,255,255,.35) 62%, rgba(255,255,255,.04) 100%);
}
.vc-contact-hero__inner { position:relative; z-index:2; }
.vc-contact-hero__content { width:min(650px, 52%); padding:70px 0; }
.vc-contact-hero__title { margin:0 0 22px; color:var(--vc-navy); font-size:clamp(48px,5vw,82px); line-height:.98; letter-spacing:-.04em; font-weight:800; }
.vc-contact-hero__title span { display:block; }
.vc-contact-hero__title .is-highlight { color:var(--vc-red); }
.vc-contact-hero__text { font-size:18px; line-height:1.6; }
.vc-contact-hero__text p:last-child { margin-bottom:0; }

/* Main Contact */
.vc-contact-main { padding:70px 0 50px; }
.vc-contact-main__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.95fr); gap:60px; align-items:start; }
.vc-contact-details > h2,
.vc-contact-form-card > h2,
.vc-contact-capabilities > h2 { margin:0 0 12px; color:var(--vc-navy); font-size:clamp(38px,4vw,58px); line-height:1.05; letter-spacing:-.03em; }
.vc-contact-details__list { margin-top:30px; border-top:1px solid var(--vc-border); }
.vc-contact-info-row { display:grid; grid-template-columns:78px 1fr; gap:22px; padding:24px 0; border-bottom:1px solid var(--vc-border); align-items:center; }
.vc-contact-info-row__icon { width:68px; height:68px; border-radius:50%; background:#fff2f2; display:flex; align-items:center; justify-content:center; }
.vc-contact-info-row__icon img { width:38px; height:38px; object-fit:contain; }
.vc-contact-info-row__content h3 { margin:0 0 4px; color:var(--vc-navy); font-size:18px; }
.vc-contact-info-row__value { display:inline-block; color:var(--vc-red); font-weight:800; font-size:20px; text-decoration:none; margin-bottom:3px; }
.vc-contact-info-row__content p { margin:0; color:#666e79; line-height:1.45; }

.vc-contact-local-card { margin-top:34px; padding:28px; background:#f7f8fa; display:grid; grid-template-columns:1fr 1.25fr; gap:22px; align-items:center; border-radius:4px; }
.vc-contact-local-card img { width:100%; max-height:180px; object-fit:contain; }
.vc-contact-local-card h3 { margin:0; color:var(--vc-navy); font-size:26px; line-height:1.2; }

.vc-contact-form-card { background:linear-gradient(135deg,#fff,#f8f9fb); border:1px solid #eef0f3; border-radius:5px; box-shadow:0 12px 40px rgba(9,25,43,.07); padding:34px; }
.vc-contact-form-card > h2 { font-size:42px; }
.vc-contact-form-card > p { margin:0 0 24px; color:#5f6875; font-size:17px; line-height:1.45; }
.vc-contact-form-placeholder { padding:24px; border:2px dashed #c9ced6; background:white; color:#6d7480; }
.vc-contact-form-card input[type="text"],
.vc-contact-form-card input[type="email"],
.vc-contact-form-card input[type="tel"],
.vc-contact-form-card input[type="url"],
.vc-contact-form-card input[type="number"],
.vc-contact-form-card select,
.vc-contact-form-card textarea { width:100%; border:1px solid #cfd5dd; border-radius:4px; padding:12px 13px; font:inherit; background:#fff; }
.vc-contact-form-card textarea { min-height:130px; }
.vc-contact-form-card input[type="submit"],
.vc-contact-form-card button[type="submit"] { width:100%; border:0; background:var(--vc-red); color:#fff; font-weight:700; padding:14px 20px; border-radius:4px; cursor:pointer; }

/* Capabilities */
.vc-contact-capabilities { padding:45px 0 70px; }
.vc-contact-capabilities__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-top:28px; }
.vc-capability-card { border:1px solid var(--vc-border); border-radius:4px; overflow:hidden; background:#fff; height:100%; }
.vc-capability-card__link { color:inherit; text-decoration:none; display:block; height:100%; }
.vc-capability-card__media { height:280px; position:relative; background:#eef1f4; }
.vc-capability-card__media > img:not(.vc-capability-card__icon img) { width:100%; height:100%; object-fit:cover; display:block; }
.vc-capability-card__icon { position:absolute; left:18px; bottom:-30px; width:60px; height:60px; border-radius:50%; background:var(--vc-red); border:5px solid #fff; display:flex; align-items:center; justify-content:center; }
.vc-capability-card__icon img {  object-fit:contain; }
.vc-capability-card__body { padding:42px 18px 22px; }
.vc-contact-cta h2 {color: #fff!important;}
.vc-capability-card__body h3 { margin:0 0 10px; color:var(--vc-navy); font-size:21px; line-height:1.15; }
.vc-capability-card__body p { margin:0; color:#616a75; line-height:1.45; }

/* Bottom CTA */
.vc-contact-cta { position:relative; background-size:cover; background-position:center; min-height:330px; display:flex; align-items:center; color:#fff; }
.vc-contact-cta__overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,25,48,.96) 0%,rgba(4,25,48,.88) 50%,rgba(4,25,48,.30) 100%);}
.vc-contact-cta__inner { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:flex-end; gap:30px; padding:54px 0; }
.vc-contact-cta__eyebrow { letter-spacing:.28em; font-size:14px; font-weight:700; margin-bottom:16px; }
.vc-contact-cta h2 { margin:0 0 18px; font-size:clamp(38px,4vw,58px); line-height:1; }
.vc-contact-cta__rule { display:flex; align-items:center; gap:12px; margin-bottom:20px; font-weight:600; }
.vc-contact-cta__rule span { width:54px; height:4px; background:#fff; }
.vc-contact-cta__details { display:flex; gap:30px; flex-wrap:wrap; }
.vc-contact-cta__details a { color:#fff; text-decoration:none; font-size:17px; font-weight:600; }
.vc-contact-cta__location { text-align:left; line-height:1.4; font-size:14px; font-weight:700; background:rgba(0,0,0,.22); padding:12px 14px; border-left:3px solid var(--vc-red); }

@media (max-width:1100px) {
    .vc-contact-main__grid { grid-template-columns:1fr; }
    .vc-contact-capabilities__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .vc-contact-hero__content { width:min(720px, 68%); }
}

@media (max-width:767px) {
    .vc-contact-shell { width: min(1180px,calc(100% - 40px)); margin:0 auto;}
    .vc-contact-hero { min-height:620px; background-position:66% center; align-items:flex-end; }
    .vc-contact-hero__overlay { background:linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.90) 46%,rgba(255,255,255,.99) 72%); }
    .vc-contact-hero__content { width:100%; padding:220px 0 45px; }
    .vc-contact-hero__title { font-size:48px; }
    .vc-contact-hero__text { font-size:16px; }
    .vc-contact-main { padding-top:48px; }
    .vc-contact-main__grid { gap:40px; }
    .vc-contact-details > h2,
    .vc-contact-capabilities > h2 { font-size:42px; }
    .vc-contact-info-row { grid-template-columns:60px 1fr; gap:16px; }
    .vc-contact-info-row__icon { width:56px; height:56px; }
    .vc-contact-info-row__icon img { width:30px; height:30px; }
    .vc-contact-local-card { grid-template-columns:1fr; text-align:center; }
    .vc-contact-form-card { padding:24px 18px; }
    .vc-contact-capabilities__grid { grid-template-columns:1fr; }
    .vc-contact-cta__inner { align-items:flex-start; flex-direction:column; }
}

/* =========================================================
   VALOUR CONTACT FORM - NINJA FORMS #18
   ========================================================= */

#nf-form-18-cont {
    width: 100%;
    font-family: Arial, Helvetica, sans-serif;
}

/* Hide Ninja Forms required-fields message */
#nf-form-18-cont .nf-form-fields-required {
    display: none;
}

/* Remove default extra spacing */
#nf-form-18-cont .nf-form-content {
    padding: 0;
    max-width: none;
}

/* Main 2-column form layout */
#nf-form-18-cont nf-fields-wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
        "name company"
        "phone email"
        "address address"
        "work work"
        "details details"
        "submit submit";
    column-gap: 18px;
    row-gap: 18px;
}

/* Every Ninja Forms field */
#nf-form-18-cont nf-field {
    display: block;
    min-width: 0;
}

/* ---------------------------------------------------------
   FIELD POSITIONS
   --------------------------------------------------------- */

/* Name */
#nf-form-18-cont nf-field:nth-child(1) {
    grid-area: name;
}

/* Company / Organisation */
#nf-form-18-cont nf-field:nth-child(2) {
    grid-area: company;
}

/* Email - visually moved to right column */
#nf-form-18-cont nf-field:nth-child(3) {
    grid-area: email;
}

/* Phone - visually moved to left column */
#nf-form-18-cont nf-field:nth-child(4) {
    grid-area: phone;
}

/* Project Address */
#nf-form-18-cont nf-field:nth-child(5) {
    grid-area: address;
}

/* Type of Work */
#nf-form-18-cont nf-field:nth-child(6) {
    grid-area: work;
}

/* Project Details */
#nf-form-18-cont nf-field:nth-child(7) {
    grid-area: details;
}

/* Submit */
#nf-form-18-cont nf-field:nth-child(8) {
    grid-area: submit;
}


/* =========================================================
   LABELS
   ========================================================= */

#nf-form-18-cont .nf-field-label {
    margin-bottom: 7px;
}

#nf-form-18-cont .nf-field-label label,
#nf-form-18-cont .nf-field-label .nf-label-span {
    display: block;
    margin: 0;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    color: #0c1c30;
    font-family: Arial, Helvetica, sans-serif;
}

/* Required star */
#nf-form-18-cont .ninja-forms-req-symbol {
    color: #0c1c30;
}


/* =========================================================
   INPUTS
   ========================================================= */

#nf-form-18-cont input[type="text"],
#nf-form-18-cont input[type="email"],
#nf-form-18-cont input[type="tel"],
#nf-form-18-cont input[type="number"],
#nf-form-18-cont select,
#nf-form-18-cont textarea {
    box-sizing: border-box;
    display: block;
    width: 100%;
    margin: 0;

    border: 1px solid #c9d1da;
    border-radius: 4px;
    background: #fff;

    color: #172335;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 400;

    outline: none;
    box-shadow: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

/* Standard text fields */
#nf-form-18-cont input[type="text"],
#nf-form-18-cont input[type="email"],
#nf-form-18-cont input[type="tel"],
#nf-form-18-cont input[type="number"],
#nf-form-18-cont select {
    height: 42px;
    padding: 9px 12px;
}

/* Placeholder */
#nf-form-18-cont input::placeholder,
#nf-form-18-cont textarea::placeholder {
    color: #8d98a5;
    opacity: 1;
}

/* Focus */
#nf-form-18-cont input[type="text"]:focus,
#nf-form-18-cont input[type="email"]:focus,
#nf-form-18-cont input[type="tel"]:focus,
#nf-form-18-cont select:focus,
#nf-form-18-cont textarea:focus {
    border-color: #dd1720;
    box-shadow: 0 0 0 2px rgba(221, 23, 32, 0.08);
}


/* =========================================================
   TEXTAREA
   ========================================================= */

#nf-form-18-cont textarea {
    min-height: 110px;
    padding: 12px;
    resize: vertical;
}


/* =========================================================
   TYPE OF WORK CHECKBOXES
   ========================================================= */

#nf-form-18-cont .list-checkbox-wrap ul {
    display: flex;
    flex-direction: column;
    gap: 7px;

    margin: 0;
    padding: 0;
    list-style: none;
}

#nf-form-18-cont .list-checkbox-wrap li {
    display: flex;
    align-items: center;
    gap: 9px;

    margin: 0;
    padding: 0;
}

#nf-form-18-cont .list-checkbox-wrap input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;

    width: 17px;
    height: 17px;
    flex: 0 0 17px;

    margin: 0;

    border: 1px solid #aeb9c5;
    border-radius: 3px;
    background: #fff;

    cursor: pointer;
    position: relative;
}

#nf-form-18-cont .list-checkbox-wrap input[type="checkbox"]:checked {
    border-color: #df101b;
    background: #df101b;
}

#nf-form-18-cont .list-checkbox-wrap input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;

    left: 5px;
    top: 2px;

    width: 4px;
    height: 8px;

    border: solid #fff;
    border-width: 0 2px 2px 0;

    transform: rotate(45deg);
}

#nf-form-18-cont .list-checkbox-wrap label {
    margin: 0;
    color: #495464;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35;
    cursor: pointer;
}


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

#nf-form-18-cont .submit-container {
    margin-top: 2px;
}

#nf-form-18-cont input[type="submit"].ninja-forms-field {
    display: block;
    width: 100%;
    min-height: 48px;

    padding: 12px 24px;

    border: 0;
    border-radius: 4px;

    background: #df101b;
    color: #fff;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 700;

    text-align: center;
    cursor: pointer;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

#nf-form-18-cont input[type="submit"].ninja-forms-field:hover {
    background: #bd0d16;
}

#nf-form-18-cont input[type="submit"].ninja-forms-field:active {
    transform: translateY(1px);
}

/* Ninja Forms disabled state */
#nf-form-18-cont input[type="submit"][disabled] {
    opacity: 0.65;
    cursor: not-allowed;
}


/* =========================================================
   ERRORS
   ========================================================= */

#nf-form-18-cont .nf-error-msg {
    margin-top: 5px;
    color: #d3131d;
    font-size: 12px;
}

#nf-form-18-cont .nf-error .ninja-forms-field {
    border-color: #d3131d;
}


/* =========================================================
   REMOVE DEFAULT NF MARGINS THAT BREAK GRID
   ========================================================= */

#nf-form-18-cont .nf-field-container {
    margin-bottom: 0;
}

#nf-form-18-cont .nf-after-field,
#nf-form-18-cont .nf-before-field {
    margin: 0;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    #nf-form-18-cont nf-fields-wrap {
        grid-template-columns: 1fr;

        grid-template-areas:
            "name"
            "company"
            "phone"
            "email"
            "address"
            "work"
            "details"
            "submit";

        row-gap: 16px;
    }

    #nf-form-18-cont input[type="text"],
    #nf-form-18-cont input[type="email"],
    #nf-form-18-cont input[type="tel"],
    #nf-form-18-cont select {
        height: 44px;
    }
}