/* Page foundations */
#php-upgrade {
        background: #fff;
        color: #3c4147;
    }

.upgrade-page {
        clear: both;
        display: flow-root;
        font-size: 1.7rem;
        line-height: 1.65;
        padding-top: 0;
    }

.upgrade-page *,
.upgrade-page *::before,
.upgrade-page *::after {
        box-sizing: border-box;
        letter-spacing: 0;
        text-shadow: none;
    }

.upgrade-page section {
        float: none;
        text-align: left;
    }

.upgrade-width {
        margin: 0 auto;
        max-width: 1120px;
        padding-left: 30px;
        padding-right: 30px;
        width: 100%;
    }

.upgrade-page .upgrade-section {
        padding-top: 70px;
        padding-bottom: 70px;
    }

.upgrade-page h1,
.upgrade-page h2,
.upgrade-page h3,
.upgrade-page p {
        float: none;
        width: auto;
    }

.upgrade-page h2 {
        color: #252b32;
        font-size: 3.2rem;
        font-style: normal;
        font-weight: 400;
        line-height: 1.25;
        margin: 0 0 25px;
    }

.upgrade-page h3 {
        color: #252b32;
        font-size: 1.9rem;
        font-weight: 600;
        line-height: 1.4;
        margin: 0 0 10px;
    }

.upgrade-page p {
        margin: 0 0 20px;
    }

.upgrade-page p:last-child {
        margin-bottom: 0;
    }

.upgrade-page a {
        color: #3264a7;
        text-underline-offset: 4px;
    }

.upgrade-page a:hover {
        color: #20446e;
    }

.upgrade-page :focus-visible {
        outline: 3px solid #3876c9;
        outline-offset: 5px;
    }

.upgrade-page .upgrade-eyebrow {
        color: #526b88;
        font-size: 1.2rem;
        font-weight: 600;
        line-height: 1.5;
        margin-bottom: 15px;
        text-transform: uppercase;
    }

.upgrade-page .upgrade-button {
        --upgrade-chevron-color: #fff;
        --upgrade-chevron-hover: #dce8ff;
        align-items: center;
        background: #315f9b;
        border: 1px solid transparent;
        border-radius: 5px;
        color: #fff;
        cursor: pointer;
        display: inline-flex;
        font: inherit;
        font-size: 1.6rem;
        font-weight: 600;
        gap: 20px;
        justify-content: center;
        line-height: 1.4;
        min-height: 50px;
        padding: 15px 25px;
        text-decoration: none;
    }

.upgrade-page .upgrade-button:hover {
        background: #254b7d;
        color: #fff;
    }

.upgrade-chevron {
        display: inline-flex;
        flex: 0 0 15px;
        width: 15px;
    }

.upgrade-chevron::after {
        color: var(--upgrade-chevron-color, #6b45c1);
        content: "\e080";
        display: block;
        font-family: 'Glyphicons Halflings';
        font-size: 1.3rem;
        font-style: normal;
        font-weight: 400;
        line-height: 1;
        transform: translateX(0);
        transition: color .3s ease .4s, transform .3s ease .4s;
    }

.upgrade-button:not(:disabled):hover .upgrade-chevron::after,
.upgrade-button:not(:disabled):focus-visible .upgrade-chevron::after,
.upgrade-text-link:hover .upgrade-chevron::after,
.upgrade-text-link:focus-visible .upgrade-chevron::after,
.upgrade-case:hover .upgrade-chevron::after,
.upgrade-case:focus-visible .upgrade-chevron::after {
        color: var(--upgrade-chevron-hover, #4f8ded);
        transform: translateX(var(--upgrade-chevron-shift, 5px));
    }

.upgrade-button:disabled {
        cursor: wait;
        opacity: .65;
    }

.upgrade-text-link {
        align-items: center;
        display: inline-flex;
        font-size: 1.6rem;
        font-weight: 600;
        gap: 15px;
        min-height: 45px;
    }

/* Breadcrumb and photographic opening */
.upgrade-breadcrumb {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        font-size: 1.3rem;
        gap: 5px 15px;
        min-height: 45px;
        padding-top: 10px;
        padding-bottom: 10px;
    }

.upgrade-breadcrumb a {
        color: #626870;
        text-decoration: none;
    }

.upgrade-page .upgrade-hero {
        align-items: center;
        background: #252b30;
        color: #fff;
        display: flex;
        isolation: isolate;
        margin: 0 15px;
        min-height: 470px;
        overflow: hidden;
        padding: 50px 30px;
        position: relative;
        text-align: center;
        width: calc(100% - 30px);
    }

.upgrade-hero picture,
.upgrade-hero img {
        float: none;
        height: 100%;
        inset: 0;
        object-fit: cover;
        object-position: center 55%;
        position: absolute;
        width: 100%;
        z-index: -2;
    }

.upgrade-hero::after {
        background: rgba(13, 20, 24, .67);
        content: "";
        inset: 0;
        position: absolute;
        z-index: -1;
    }

.upgrade-hero > .col-sm-8 {
        margin: auto;
        padding: 0;
    }

.upgrade-hero h1 {
        color: #fff;
        font-size: 5.6rem;
        font-weight: 300;
        line-height: 1.1;
        margin: 0 0 25px;
    }

.upgrade-hero > .col-sm-8 > p:not(.upgrade-hero-note) {
        font-size: 2rem;
        line-height: 1.55;
        margin: 0 auto 30px;
    }

.upgrade-actions {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        gap: 20px 30px;
        justify-content: center;
    }

.upgrade-hero .upgrade-button {
        --upgrade-chevron-color: #6b45c1;
        --upgrade-chevron-hover: #4f8ded;
        background: #fff;
        color: #244a78;
    }

.upgrade-hero .upgrade-button:hover {
        background: #e9f0f8;
        color: #244a78;
    }

.upgrade-hero .upgrade-call {
        align-items: center;
        color: #fff;
        display: inline-flex;
        gap: 10px;
        min-height: 45px;
    }

.upgrade-hero .upgrade-hero-note {
        color: #e0e5e9;
        font-size: 1.3rem;
        margin: 25px 0 0;
    }

.upgrade-hero :focus-visible {
        outline-color: #fff;
    }

/* Symptoms and initial diagnostic offer */
.upgrade-intro,
.upgrade-diagnosis {
        display: grid;
        gap: 70px;
        grid-template-columns: 1fr 1fr;
    }

.upgrade-intro-contact {
        align-items: flex-start;
        display: flex;
        flex-direction: column;
        gap: 15px;
        margin-top: 30px;
    }

.upgrade-symptoms,
.upgrade-deliverables {
        list-style: none;
        margin: 0;
        padding: 0;
    }

.upgrade-symptoms li {
        border-bottom: 1px solid #dce1e5;
        padding: 20px 0;
    }

.upgrade-symptoms li:first-child {
        padding-top: 0;
    }

.upgrade-symptoms p,
.upgrade-deliverables p {
        color: #626870;
        font-size: 1.6rem;
    }

.upgrade-band {
        background: #f4f6f7;
    }

.upgrade-deliverables li {
        display: grid;
        gap: 20px;
        grid-template-columns: 30px 1fr;
        padding: 0 0 25px;
    }

.upgrade-deliverables li:last-child {
        padding-bottom: 0;
    }

.upgrade-deliverables li > span {
        color: #3264a7;
        font-size: 1.3rem;
        padding-top: 5px;
    }

/* Scope, security and delivery */
.upgrade-section-heading {
        margin-bottom: 40px;
        max-width: 800px;
    }

.upgrade-services,
.upgrade-process {
        display: grid;
        gap: 40px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

.upgrade-service-icon {
        color: #3264a7;
        font-size: 2.5rem;
        margin-bottom: 20px;
    }

.upgrade-services p,
.upgrade-process p {
        font-size: 1.6rem;
    }

.upgrade-services .upgrade-service-detail {
        color: #687079;
        font-size: 1.3rem;
    }

.upgrade-compliance {
        border-top: 1px solid #dce1e5;
        display: grid;
        gap: 40px;
        grid-template-columns: 1fr 2fr;
        margin-top: 45px;
        padding-top: 30px;
    }

.upgrade-compliance p {
        color: #626870;
        font-size: 1.5rem;
    }

.upgrade-process {
        list-style: none;
        margin: 0;
        padding: 0;
    }

.upgrade-process li {
        border-top: 1px solid #cbd3da;
        padding-top: 20px;
    }

.upgrade-process li > span {
        color: #526b88;
        display: block;
        font-size: 1.3rem;
        margin-bottom: 15px;
    }

/* Existing work */
.upgrade-case-grid {
        display: grid;
        gap: 35px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

.upgrade-page .upgrade-case {
        color: inherit;
        display: block;
        text-decoration: none;
    }

.upgrade-case img {
        aspect-ratio: 2.5;
        display: block;
        height: auto;
        object-fit: cover;
        width: 100%;
    }

.upgrade-case > div {
        padding-top: 20px;
    }

.upgrade-case h3 {
        align-items: center;
        display: flex;
        gap: 20px;
        justify-content: space-between;
    }

.upgrade-case:hover h3 {
        color: #3264a7;
        text-decoration: underline;
    }

.upgrade-case p {
        color: #626870;
        font-size: 1.6rem;
    }

/* Questions */
.upgrade-page .upgrade-faq {
        border-top: 1px solid #dce1e5;
        display: grid;
        gap: 70px;
        grid-template-columns: 1fr 2fr;
        padding-top: 55px;
    }

.upgrade-questions details {
        border-bottom: 1px solid #dce1e5;
    }

.upgrade-questions details:first-child {
        border-top: 1px solid #dce1e5;
    }

.upgrade-questions summary {
        align-items: center;
        color: #252b32;
        cursor: pointer;
        display: flex;
        font-size: 1.7rem;
        font-weight: 500;
        gap: 20px;
        justify-content: space-between;
        line-height: 1.5;
        list-style: none;
        padding: 20px 10px 20px 0;
    }

.upgrade-questions summary::-webkit-details-marker {
        display: none;
    }

.upgrade-questions summary .glyphicon {
        color: #3264a7;
        flex: 0 0 15px;
        font-size: 1.2rem;
    }

.upgrade-questions details[open] summary .glyphicon::before {
        content: "\2212";
    }

.upgrade-questions details p {
        font-size: 1.6rem;
        padding-bottom: 25px;
    }

/* Enquiry and feedback */
.upgrade-enquiry {
        scroll-margin-top: 80px;
    }

.upgrade-enquiry-grid {
        display: grid;
        gap: 70px;
        grid-template-columns: .85fr 1.15fr;
    }

.upgrade-contact {
        border-top: 1px solid #cbd3da;
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-top: 35px;
        padding-top: 25px;
    }

.upgrade-contact a {
        overflow-wrap: anywhere;
    }

.upgrade-contact > span {
        color: #626870;
        font-size: 1.3rem;
        margin-top: 10px;
    }

.upgrade-form {
        display: grid;
        gap: 25px;
    }

.upgrade-form-row {
        display: grid;
        gap: 20px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

.upgrade-form label {
        color: #343b43;
        display: block;
        font-size: 1.4rem;
        font-weight: 600;
        line-height: 1.5;
        margin: 0 0 10px;
    }

.upgrade-form label span {
        color: #626870;
        font-weight: 400;
    }

.upgrade-form input,
.upgrade-form select,
.upgrade-form textarea {
        background: #fff;
        border: 1px solid #aeb9c3;
        border-radius: 5px;
        color: #252b32;
        display: block;
        font: inherit;
        font-size: 1.6rem;
        min-height: 50px;
        padding: 10px;
        scroll-margin-top: 110px;
        width: 100%;
    }

.upgrade-form textarea {
        min-height: 150px;
        resize: vertical;
    }

.upgrade-form [aria-invalid="true"] {
        border-color: #a02935;
    }

.upgrade-form .upgrade-form-help,
.upgrade-form-submit p {
        color: #626870;
        font-size: 1.3rem;
        line-height: 1.5;
        margin: 10px 0 0;
    }

.upgrade-form-submit {
        align-items: flex-start;
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

.upgrade-trap {
        height: 1px;
        overflow: hidden;
        position: absolute;
        width: 1px;
        clip-path: inset(50%);
    }

.upgrade-feedback {
        border-left: 3px solid #31745f;
        margin-bottom: 30px;
        padding: 10px 0 10px 20px;
        scroll-margin-top: 110px;
    }

.upgrade-feedback pre {
        background: #fff;
        border: 1px solid #dce1e5;
        color: #343b43;
        font: inherit;
        font-size: 1.4rem;
        margin-top: 20px;
        overflow-wrap: anywhere;
        padding: 15px;
        white-space: pre-wrap;
    }

.upgrade-error {
        border-color: #a02935;
    }

.upgrade-error ul {
        margin: 0;
        padding-left: 20px;
    }

/* Keep the campaign's enquiry route primary without changing other pages. */
#php-upgrade #enquire-foot,
#php-upgrade #lbm-chat-root {
        display: none;
    }

/* Responsive layout */
@media (max-width: 990px) {
    .upgrade-page {
            padding-top: 20px;
        }

    .upgrade-intro,
    .upgrade-diagnosis,
    .upgrade-enquiry-grid,
    .upgrade-page .upgrade-faq {
            gap: 40px;
        }

    .upgrade-services,
    .upgrade-process {
            gap: 25px;
        }

    .upgrade-form-row {
            grid-template-columns: 1fr;
        }
    }

@media (max-width: 700px) {
    .upgrade-width {
            padding-left: 25px;
            padding-right: 25px;
        }

    .upgrade-page .upgrade-section {
            padding-top: 45px;
            padding-bottom: 45px;
        }

    .upgrade-page h2 {
            font-size: 2.7rem;
        }

    .upgrade-breadcrumb {
            font-size: 1.2rem;
            gap: 5px 10px;
        }

    .upgrade-page .upgrade-hero {
            margin: 0;
            min-height: 0;
            padding: 40px 25px;
            width: 100%;
        }

    .upgrade-hero h1 {
            font-size: 3.8rem;
        }

    .upgrade-hero > .col-sm-8 > p:not(.upgrade-hero-note) {
            font-size: 1.8rem;
        }

    .upgrade-actions {
            flex-direction: column;
            gap: 10px;
        }

    .upgrade-hero .upgrade-hero-note {
            display: none;
        }

    .upgrade-intro,
    .upgrade-diagnosis,
    .upgrade-services,
    .upgrade-compliance,
    .upgrade-process,
    .upgrade-case-grid,
    .upgrade-page .upgrade-faq,
    .upgrade-enquiry-grid {
            gap: 30px;
            grid-template-columns: 1fr;
        }

    .upgrade-section-heading {
            margin-bottom: 30px;
        }

    .upgrade-compliance {
            gap: 10px;
            margin-top: 35px;
        }

    .upgrade-contact {
            margin-top: 25px;
        }

    .upgrade-form-submit .upgrade-button {
            width: 100%;
        }

    #php-upgrade #footer-sitemap > div {
            width: 100%;
        }
    }

@media (max-width: 420px) {
    .upgrade-page .upgrade-hero {
            padding-top: 30px;
            padding-bottom: 30px;
        }

    .upgrade-hero h1 {
            font-size: 3.2rem;
            margin-bottom: 20px;
        }

    .upgrade-hero > .col-sm-8 > p:not(.upgrade-hero-note) {
            font-size: 1.7rem;
            margin-bottom: 20px;
        }

    #php-upgrade nav > ul {
            padding-left: 15px;
            width: 100%;
        }

    #php-upgrade nav #logo-container {
            flex: 1 1 auto;
            min-width: 0;
        }

    #php-upgrade nav #lbm-logo-wm {
            min-width: 0;
            width: 100%;
        }

    #php-upgrade nav #logo-container img {
            height: auto;
            max-width: 100%;
            width: 245px;
        }

    #php-upgrade #nav-icon {
            flex: 0 0 60px;
            margin-right: 0;
        }

    #php-upgrade #footer-sitemap a,
    #php-upgrade #footer-sitemap span {
            overflow-wrap: anywhere;
        }

    #php-upgrade #info-message,
    #php-upgrade #info-message .button_container,
    #php-upgrade #info-message > p {
            left: 0;
            max-width: 100%;
            right: 0;
            width: 100%;
        }
    }

@media (prefers-reduced-motion: reduce) {
    .upgrade-page {
            --upgrade-chevron-shift: 0px;
        }

    .upgrade-page *,
    .upgrade-page *::before,
    .upgrade-page *::after {
            scroll-behavior: auto;
            transition: none;
        }
    }
