/* ==========================================================================
 * C0095 design and conversion layer (plugin 1.0.48)
 * Loaded after comgas-redesign.css. Removing this file's enqueue restores the
 * 1.0.47 presentation exactly; nothing here alters content or form fields.
 * ======================================================================== */

/* --- 1. Typeface: Inter (SIL Open Font Licence, self-hosted, latin subset) --- */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url('fonts/inter-latin-var.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.cg-redesign-active {
    --cg-font-family: 'Inter', Arial, Helvetica, sans-serif;
    --cg-font: var(--cg-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: 'cv11' 1;
}

/* Inter is set slightly tighter than Arial; relax the most extreme display
   tracking so large headlines never collide. */
.cg-redesign-active .cg-hero h1,
.cg-redesign-active .cg-service-hero__content h1,
.cg-redesign-active .cg-final-hero h1,
.cg-redesign-active .cg-project-hero h1 {
    letter-spacing: -.045em;
}
.cg-redesign-active .cg-section-heading h2 {
    letter-spacing: -.038em;
}
.cg-redesign-active p,
.cg-redesign-active li {
    text-wrap: pretty;
}

/* --- 2. Mobile action bar (A1) ------------------------------------------- */
.cg-redesign-active .cg-mobile-bar {
    display: none;
}

@media (max-width: 767px) {
    .cg-redesign-active .cg-mobile-bar {
        position: fixed;
        z-index: 9990;
        left: 0;
        right: 0;
        /* 1.0.71 (task 2.7): lift above the cookie banner with translate, not bottom, so the move is not
           counted as a layout shift (CLS). Same position on screen. Rollback: reinstall 1.0.70. */
        bottom: 0;
        translate: 0 calc(-1 * var(--cg-cookie-offset, 0px));
        display: grid;
        grid-template-columns: 1fr 1fr 1.35fr;
        gap: 8px;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
        background: rgba(10, 11, 12, .96);
        border-top: 1px solid rgba(255, 255, 255, .1);
        box-shadow: 0 -12px 30px rgba(0, 0, 0, .28);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        transition: transform .3s var(--cg-ease), translate .2s ease;
    }
    .cg-redesign-active .cg-mobile-bar.is-hidden {
        transform: translateY(120%);
    }
    .cg-redesign-active .cg-mobile-bar a {
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 8px 6px;
        color: var(--cg-white);
        background: rgba(255, 255, 255, .07);
        border: 1px solid rgba(255, 255, 255, .16);
        border-radius: 8px;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.1;
        letter-spacing: -.01em;
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
    }
    .cg-redesign-active .cg-mobile-bar a .cg-icon {
        width: 18px;
        height: 18px;
    }
    .cg-redesign-active .cg-mobile-bar__whatsapp .cg-icon {
        color: #25d366;
    }
    .cg-redesign-active .cg-mobile-bar__quote {
        color: var(--cg-black) !important;
        background: var(--cg-yellow) !important;
        border-color: var(--cg-yellow) !important;
    }
    .cg-redesign-active .cg-mobile-bar a:active {
        transform: scale(.97);
    }
    body.cg-redesign-active.cg-has-mobile-bar {
        padding-bottom: calc(66px + env(safe-area-inset-bottom, 0px));
    }
    /* The old in-flow WhatsApp block is superseded by the bar. */
    .cg-redesign-active .cg-mobile-whatsapp-contact {
        display: none !important;
    }
}

@media print {
    .cg-redesign-active .cg-mobile-bar { display: none !important; }
}

/* --- 3. Mobile carousels (A4 + sitewide) --------------------------------- */
@media (max-width: 767px) {
    .cg-redesign-active .cg-sector-grid,
    .cg-redesign-active .cg-project-grid,
    .cg-redesign-active .cg-home-news__grid,
    .cg-redesign-active .cg-project-proof__grid:not(.cg-project-proof__grid--single),
    .cg-redesign-project .cg-project-related__grid,
    .cg-redesign-active .cg-service-cards,
    .cg-redesign-active .cg-res-cards,
    .cg-redesign-home .cg-services-grid {
        display: flex !important;
        grid-template-columns: none !important;
        flex-wrap: nowrap !important;
        gap: 14px !important;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 24px;
        margin-inline: -24px;
        padding: 6px 24px 10px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .cg-redesign-active .cg-sector-grid::-webkit-scrollbar,
    .cg-redesign-active .cg-project-grid::-webkit-scrollbar,
    .cg-redesign-active .cg-home-news__grid::-webkit-scrollbar,
    .cg-redesign-active .cg-project-proof__grid::-webkit-scrollbar,
    .cg-redesign-project .cg-project-related__grid::-webkit-scrollbar,
    .cg-redesign-active .cg-service-cards::-webkit-scrollbar,
    .cg-redesign-active .cg-res-cards::-webkit-scrollbar,
    .cg-redesign-home .cg-services-grid::-webkit-scrollbar {
        display: none;
    }
    .cg-redesign-active .cg-sector-grid > *,
    .cg-redesign-active .cg-project-grid > *,
    .cg-redesign-active .cg-home-news__grid > *,
    .cg-redesign-active .cg-project-proof__grid:not(.cg-project-proof__grid--single) > *,
    .cg-redesign-project .cg-project-related__grid > *,
    .cg-redesign-active .cg-service-cards > *,
    .cg-redesign-active .cg-res-cards > *,
    .cg-redesign-home .cg-services-grid > * {
        flex: 0 0 84% !important;
        max-width: 84% !important;
        min-width: 0;
        margin: 0 !important;
        scroll-snap-align: start;
    }
    .cg-redesign-home .cg-services-grid > * {
        flex-basis: 74% !important;
        max-width: 74% !important;
    }
    .cg-redesign-active .cg-sector-card {
        min-height: 360px;
    }
    .cg-redesign-active .cg-res-cards {
        align-items: stretch;
    }

    /* Dots added by script; purely a position indicator. */
    .cg-redesign-active .cg-carousel-dots {
        display: flex;
        justify-content: center;
        gap: 7px;
        margin: 10px 0 0;
        padding: 0;
        list-style: none;
    }
    .cg-redesign-active .cg-carousel-dots button {
        width: 8px;
        height: 8px;
        padding: 0;
        border: 0;
        border-radius: 99px;
        background: rgba(120, 128, 134, .45);
        transition: width .25s var(--cg-ease), background .25s ease;
        cursor: pointer;
    }
    .cg-redesign-active .cg-carousel-dots button[aria-current="true"] {
        width: 22px;
        background: var(--cg-yellow);
    }
}
@media (min-width: 768px) {
    .cg-redesign-active .cg-carousel-dots { display: none; }
}

/* --- 4. Homepage structure (A2, A4) --------------------------------------- */

/* A2 homeowner strip */
.cg-redesign-active .cg-home-homeowner {
    padding: 34px 0;
    background: var(--cg-white);
    border-bottom: 1px solid var(--cg-grey-200);
}
.cg-redesign-active .cg-home-homeowner__inner {
    display: grid;
    grid-template-columns: minmax(220px, 300px) 1fr;
    gap: 28px;
    align-items: center;
}
.cg-redesign-active .cg-home-homeowner__intro h2 {
    margin: 8px 0 6px;
    color: var(--cg-ink);
    font-size: 26px;
    font-weight: 850;
    line-height: 1.1;
    letter-spacing: -.03em;
}
.cg-redesign-active .cg-home-homeowner__intro p {
    margin: 0;
    color: var(--cg-grey-700);
    font-size: 15px;
    line-height: 1.5;
}
.cg-redesign-active .cg-home-homeowner__intro a {
    color: var(--cg-ink);
    font-weight: 800;
}
.cg-redesign-active .cg-home-homeowner__offers {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.cg-redesign-active .cg-home-homeowner__offers a {
    height: 100%;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 6px;
    padding: 18px 18px 16px;
    color: var(--cg-ink);
    background: var(--cg-grey-100);
    border: 1px solid var(--cg-grey-200);
    border-radius: 10px;
    text-decoration: none;
    transition: transform .25s var(--cg-ease), box-shadow .25s ease, border-color .25s ease;
}
.cg-redesign-active .cg-home-homeowner__offers a:hover,
.cg-redesign-active .cg-home-homeowner__offers a:focus-visible {
    border-color: var(--cg-yellow);
    box-shadow: 0 14px 30px rgba(0, 0, 0, .09);
    transform: translateY(-3px);
}
.cg-redesign-active .cg-home-homeowner__name {
    font-size: 14px;
    font-weight: 750;
    line-height: 1.3;
    color: var(--cg-grey-700);
}
.cg-redesign-active .cg-home-homeowner__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 2px 8px;
}
.cg-redesign-active .cg-home-homeowner__price strong {
    font-size: 30px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: -.035em;
    font-variant-numeric: tabular-nums;
}
.cg-redesign-active .cg-home-homeowner__price small {
    color: var(--cg-grey-700);
    font-size: 12px;
    font-weight: 600;
}
.cg-redesign-active .cg-home-homeowner__price strong.is-text {
    font-size: 21px;
    letter-spacing: -.025em;
    line-height: 1.15;
}
.cg-redesign-active .cg-home-homeowner__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 800;
    color: var(--cg-ink);
}
.cg-redesign-active .cg-home-homeowner__offers li:last-child a {
    background: var(--cg-ink);
    border-color: var(--cg-ink);
}
.cg-redesign-active .cg-home-homeowner__offers li:last-child a,
.cg-redesign-active .cg-home-homeowner__offers li:last-child .cg-home-homeowner__name,
.cg-redesign-active .cg-home-homeowner__offers li:last-child .cg-home-homeowner__price small {
    color: #d7dbde;
}
.cg-redesign-active .cg-home-homeowner__offers li:last-child strong,
.cg-redesign-active .cg-home-homeowner__offers li:last-child .cg-home-homeowner__cta {
    color: var(--cg-yellow);
}

@media (max-width: 1100px) {
    .cg-redesign-active .cg-home-homeowner__inner { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 767px) {
    .cg-redesign-active .cg-home-homeowner { padding: 26px 0 22px; }
    .cg-redesign-active .cg-home-homeowner__intro h2 { font-size: 23px; }
    .cg-redesign-active .cg-home-homeowner__offers {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        margin-inline: -24px;
        padding: 2px 24px 6px;
        scroll-padding-inline: 24px;
        scrollbar-width: none;
    }
    .cg-redesign-active .cg-home-homeowner__offers::-webkit-scrollbar { display: none; }
    .cg-redesign-active .cg-home-homeowner__offers li {
        flex: 0 0 62%;
        scroll-snap-align: start;
    }
    .cg-redesign-active .cg-home-homeowner__price strong { font-size: 26px; }
}

/* A4 merged services section: route cards, then the discipline groups */
.cg-redesign-home .cg-home-services {
    background: var(--cg-grey-100);
}
.cg-redesign-home .cg-home-services .cg-services-grid {
    margin-bottom: clamp(56px, 6vw, 84px);
}
.cg-redesign-active .cg-home-breadth__subhead {
    max-width: 820px;
    margin: 0 0 26px;
}
.cg-redesign-active .cg-home-breadth__subhead h3 {
    margin: 8px 0 0;
    color: var(--cg-ink);
    font-size: clamp(26px, 2.6vw, 38px);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -.035em;
}
.cg-redesign-active .cg-home-breadth__subhead p {
    margin: 10px 0 0;
    color: var(--cg-grey-700);
    font-size: 17px;
    line-height: 1.6;
}
/* details/summary discipline groups: open and static on desktop */
.cg-redesign-active details.cg-home-breadth-group > summary {
    list-style: none;
    cursor: default;
}
.cg-redesign-active details.cg-home-breadth-group > summary::-webkit-details-marker {
    display: none;
}
.cg-redesign-active details.cg-home-breadth-group > summary .cg-home-breadth-group__toggle {
    display: none;
}

@media (max-width: 767px) {
    .cg-redesign-home .cg-home-services .cg-services-grid { margin-bottom: 44px; }
    .cg-redesign-active .cg-home-breadth__subhead { margin-bottom: 18px; }
    .cg-redesign-active .cg-home-breadth__groups { margin-top: 0; gap: 12px; }
    .cg-redesign-active details.cg-home-breadth-group > summary {
        cursor: pointer;
        position: relative;
        padding-right: 44px;
    }
    .cg-redesign-active details.cg-home-breadth-group > summary .cg-home-breadth-group__toggle {
        position: absolute;
        right: 14px;
        top: 50%;
        display: block;
        width: 22px;
        height: 22px;
        margin-top: -11px;
        border-radius: 50%;
        background: rgba(255, 255, 255, .12);
    }
    .cg-redesign-active details.cg-home-breadth-group > summary .cg-home-breadth-group__toggle::before,
    .cg-redesign-active details.cg-home-breadth-group > summary .cg-home-breadth-group__toggle::after {
        content: '';
        position: absolute;
        left: 6px;
        right: 6px;
        top: 10px;
        height: 2px;
        background: currentColor;
        transition: transform .25s ease;
    }
    .cg-redesign-active details.cg-home-breadth-group > summary .cg-home-breadth-group__toggle::after {
        transform: rotate(90deg);
    }
    .cg-redesign-active details.cg-home-breadth-group[open] > summary .cg-home-breadth-group__toggle::after {
        transform: rotate(0deg);
    }
}

/* Why ComGas: compact two-up grid on phones */
@media (max-width: 767px) {
    .cg-redesign-home .cg-reasons-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .cg-redesign-home .cg-reason-card {
        min-height: 0 !important;
        padding: 20px 16px !important;
    }
    .cg-redesign-home .cg-reason-card > span {
        width: 38px;
        height: 38px;
        margin-bottom: 14px;
    }
    .cg-redesign-home .cg-reason-card h3 {
        font-size: 16px !important;
        line-height: 1.2 !important;
    }
    .cg-redesign-home .cg-reason-card p {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }
    /* Hero: keep the maintenance card focused on its offer and actions. */
    .cg-redesign-home .cg-hero-maintenance > p:not(.cg-hero-maintenance__other) {
        display: none;
    }
}

/* Tighter vertical rhythm on phones */
@media (max-width: 767px) {
    .cg-redesign-active .cg-section {
        padding: 56px 0;
    }
    .cg-redesign-active .cg-section-heading,
    .cg-redesign-active .cg-section-heading--split {
        margin-bottom: 26px;
    }
}

/* --- 5. "What happens next" beside forms (A6) ----------------------------- */
.cg-redesign-active .cg-next-steps {
    margin: 26px 0 28px;
    padding: 22px 22px 8px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 12px;
}
.cg-redesign-active .cg-next-steps h3 {
    margin: 0 0 16px;
    color: var(--cg-white);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.cg-redesign-active .cg-next-steps ol {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: cgstep;
}
.cg-redesign-active .cg-next-steps li {
    position: relative;
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 2px 14px;
    padding: 0 0 16px;
    counter-increment: cgstep;
}
.cg-redesign-active .cg-next-steps li::before {
    content: counter(cgstep);
    grid-row: span 2;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: var(--cg-black);
    background: var(--cg-yellow);
    border-radius: 50%;
    font-size: 15px;
    font-weight: 850;
}
.cg-redesign-active .cg-next-steps li:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 16px;
    top: 38px;
    bottom: 4px;
    width: 2px;
    background: rgba(255, 212, 0, .35);
}
.cg-redesign-active .cg-next-steps strong {
    color: var(--cg-white);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
}
.cg-redesign-active .cg-next-steps span {
    color: #b8bfc4;
    font-size: 14px;
    line-height: 1.5;
}
/* Light-background variant (contact page card column) */
.cg-redesign-active .cg-next-steps--light {
    background: var(--cg-white);
    border-color: var(--cg-grey-200);
}
.cg-redesign-active .cg-next-steps--light h3,
.cg-redesign-active .cg-next-steps--light strong {
    color: var(--cg-ink);
}
.cg-redesign-active .cg-next-steps--light span {
    color: var(--cg-grey-700);
}

/* --- 6. Two-step enquiry form (A5) --------------------------------------- */
.cg-redesign-active form.wpcf7-form.cg-two-step .cg-step-hidden {
    display: none !important;
}
.cg-redesign-active .cg-step-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 16px;
}
.cg-redesign-active .cg-step-head__label {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: inherit;
    opacity: .85;
}
.cg-redesign-active .cg-step-head__bar {
    flex: 0 0 38%;
    height: 6px;
    overflow: hidden;
    background: rgba(127, 127, 127, .25);
    border-radius: 99px;
}
.cg-redesign-active .cg-step-head__bar span {
    display: block;
    width: 50%;
    height: 100%;
    background: var(--cg-yellow);
    border-radius: 99px;
    transition: width .35s var(--cg-ease);
}
.cg-redesign-active form.cg-two-step[data-step="2"] .cg-step-head__bar span {
    width: 100%;
}
.cg-redesign-active .cg-step-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 6px 0 4px;
}
.cg-redesign-active .cg-step-next {
    min-height: 52px;
    padding: 13px 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--cg-black);
    background: var(--cg-yellow);
    border: 2px solid var(--cg-yellow);
    border-radius: 6px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 850;
    cursor: pointer;
    transition: transform .2s var(--cg-ease), box-shadow .2s ease;
}
.cg-redesign-active .cg-step-next:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, .18);
}
.cg-redesign-active .cg-step-back {
    padding: 8px 0;
    color: inherit;
    background: none;
    border: 0;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    opacity: .85;
}
.cg-redesign-active .cg-step-note {
    margin: 0;
    font-size: 13px;
    line-height: 1.4;
    opacity: .75;
}
.cg-redesign-active .cg-step-error {
    display: block;
    margin-top: 6px;
    color: #ff6b6b;
    font-size: 13px;
    font-weight: 700;
}
.cg-redesign-active form.cg-two-step .cg-field-invalid {
    border-color: #ff6b6b !important;
    box-shadow: 0 0 0 2px rgba(255, 107, 107, .25) !important;
}
@media (max-width: 767px) {
    .cg-redesign-active .cg-step-actions { flex-direction: column-reverse; align-items: stretch; }
    .cg-redesign-active .cg-step-next { width: 100%; }
}

/* --- 7. Boiler photo quote form (A7) ------------------------------------- */
.cg-redesign-active .cg-photo-quote__alt {
    margin: 18px 0 0 !important;
    font-size: 14px;
    line-height: 1.5;
    color: var(--cg-grey-700);
}
.cg-redesign-active .cg-photo-quote__alt a {
    font-weight: 800;
}
.cg-redesign-active .cg-photo-quote__intro {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 1.55;
    opacity: .9;
}
/* Photo tiles (1.0.49): the whole tile is the tap target; the native file
 * control stays in the accessibility tree and keeps its focus ring. */
.cg-redesign-active .cg-photo-quote .cg-photo-quote__intro {
    margin: 0 0 22px !important;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photos-wrap {
    margin-top: 6px;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photos-label {
    margin: 0 0 12px !important;
    font-size: 15px !important;
    font-weight: 750;
    line-height: 1.5 !important;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-height: 100%;
    margin: 0;
    padding: 18px 16px 16px;
    color: var(--cg-ink, #111);
    background: #fff;
    border: 1.5px dashed #b4bbc6;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo::before {
    content: "";
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    margin-bottom: 8px;
    border-radius: 50%;
    background: var(--cg-yellow, #ffd400) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z'/%3E%3Ccircle cx='12' cy='13.5' r='3.5'/%3E%3C/svg%3E") center / 22px no-repeat;
    transition: background-color .2s ease;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo:hover {
    border-color: var(--cg-ink, #111);
    box-shadow: 0 10px 26px rgba(0, 0, 0, .08);
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo:focus-within {
    border-style: solid;
    border-color: var(--cg-ink, #111);
    outline: 3px solid var(--cg-yellow, #ffd400);
    outline-offset: 2px;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo strong {
    font-size: 15px;
    font-weight: 850;
    line-height: 1.3;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo small {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
    color: var(--cg-grey-700, #4b5563);
    opacity: 1;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo .wpcf7-form-control-wrap {
    position: static;
    display: block;
    width: auto;
    padding-top: 12px;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo .wpcf7-form-control-wrap::before {
    content: "Add photo";
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 16px;
    color: #fff;
    background: var(--cg-ink, #111);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .01em;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo input[type="file"] {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
    font-size: 16px;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo .cg-form-help {
    order: 3;
    margin-top: 8px !important;
    font-size: 12px !important;
    font-weight: 500;
    line-height: 1.4 !important;
    color: var(--cg-grey-700, #4b5563);
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo .wpcf7-not-valid-tip {
    position: relative;
    z-index: 2;
    font-size: 13px !important;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo:has(.wpcf7-not-valid) {
    border-color: #9b1c1c;
    border-style: solid;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo.has-file {
    border-style: solid;
    border-color: #1f7a3a;
    background: #f3faf5;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo.has-file::before {
    background-color: #1f7a3a;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E");
    background-size: 22px;
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo.has-file .wpcf7-form-control-wrap::before {
    content: "Change photo";
    color: var(--cg-ink, #111);
    background: #fff;
    box-shadow: inset 0 0 0 1.5px var(--cg-ink, #111);
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo .cg-pq-thumb {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 0;
    width: 58px;
    height: 58px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 0 0 2px #fff, 0 4px 12px rgba(0, 0, 0, .18);
}
.cg-redesign-active form.wpcf7-form .cg-pq-photo .cg-pq-name {
    order: 5;
    max-width: 100%;
    margin-top: 6px;
    color: #1f5f32;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
@media (max-width: 767px) {
    .cg-redesign-active form.wpcf7-form .cg-pq-photos { grid-template-columns: 1fr; gap: 10px; }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr);
        column-gap: 14px;
        row-gap: 3px;
        align-items: start;
        padding: 16px;
    }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo::before { grid-column: 1; grid-row: 1 / span 4; margin: 0; }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo > :not(input) { grid-column: 2; }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo .wpcf7-form-control-wrap { padding-top: 8px; }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo .cg-form-help { margin-top: 4px !important; }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo .cg-pq-thumb { top: 12px; right: 12px; width: 52px; height: 52px; }
    .cg-redesign-active form.wpcf7-form .cg-pq-photo.has-file strong,
    .cg-redesign-active form.wpcf7-form .cg-pq-photo.has-file small { padding-right: 58px; }
}

/* --- 8. Project pages: enquiry prompts (A3) ------------------------------ */
.cg-redesign-project .cg-project-prompt {
    margin: 40px 0;
    padding: 28px 30px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px 28px;
    align-items: center;
    color: var(--cg-white);
    background:
        radial-gradient(circle at 92% 10%, rgba(255, 212, 0, .16), transparent 40%),
        var(--cg-ink);
    border-radius: 14px;
}
.cg-redesign-project .cg-project-prompt .cg-project-prompt__title,
.cg-redesign-project .cg-project-richtext .cg-project-prompt .cg-project-prompt__title {
    margin: 0 0 6px !important;
    color: var(--cg-white) !important;
    font-size: 24px !important;
    font-weight: 850 !important;
    line-height: 1.15 !important;
    letter-spacing: -.025em !important;
}
.cg-redesign-project .cg-project-prompt p:not(.cg-project-prompt__title) {
    margin: 0 !important;
    color: #c4cacf !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}
.cg-redesign-project .cg-project-prompt__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.cg-redesign-project .cg-project-prompt__actions a {
    text-decoration: none !important;
}
.cg-redesign-project .cg-project-prompt .cg-button--glass {
    color: var(--cg-white);
}
@media (max-width: 900px) {
    .cg-redesign-project .cg-project-prompt { grid-template-columns: 1fr; padding: 24px 22px; }
    .cg-redesign-project .cg-project-prompt__actions .cg-button { flex: 1 1 100%; }
}

/* Sticky desktop aside with an enquiry card */
@media (min-width: 1081px) {
    .cg-redesign-project .cg-project-overview__aside {
        position: sticky;
        top: 118px;
        align-self: start;
    }
}
.cg-redesign-project .cg-project-aside-cta {
    margin-top: 26px;
    padding: 22px;
    color: var(--cg-white);
    background: var(--cg-ink);
    border-radius: 12px;
}
.cg-redesign-project .cg-project-aside-cta strong {
    display: block;
    margin-bottom: 6px;
    font-size: 18px;
    font-weight: 850;
    letter-spacing: -.02em;
}
.cg-redesign-project .cg-project-aside-cta p {
    margin: 0 0 16px;
    color: #c4cacf;
    font-size: 14px;
    line-height: 1.5;
}
.cg-redesign-project .cg-project-aside-cta .cg-button {
    width: 100%;
    margin-bottom: 10px;
}
.cg-redesign-project .cg-project-aside-cta a.cg-project-aside-cta__phone {
    display: block;
    color: var(--cg-yellow);
    font-size: 15px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

/* --- 9. Card polish (desktop hover, consistent media) -------------------- */
@media (hover: hover) {
    .cg-redesign-active .cg-project-card,
    .cg-redesign-active .cg-home-news-card,
    .cg-redesign-active .cg-project-proof__grid > article,
    .cg-redesign-project .cg-project-related__grid > article {
        transition: transform .35s var(--cg-ease), box-shadow .35s ease;
    }
    .cg-redesign-active .cg-project-card:hover,
    .cg-redesign-active .cg-home-news-card:hover,
    .cg-redesign-active .cg-project-proof__grid > article:hover,
    .cg-redesign-project .cg-project-related__grid > article:hover {
        transform: translateY(-4px);
        box-shadow: 0 22px 44px rgba(0, 0, 0, .14);
    }
    .cg-redesign-active .cg-project-card img,
    .cg-redesign-active .cg-home-news-card img,
    .cg-redesign-active .cg-project-proof__media img {
        transition: transform .8s var(--cg-ease);
    }
    .cg-redesign-active .cg-project-card:hover img,
    .cg-redesign-active .cg-home-news-card:hover img,
    .cg-redesign-active .cg-project-proof__grid > article:hover img {
        transform: scale(1.04);
    }
}
.cg-redesign-active .cg-project-card__image,
.cg-redesign-active .cg-home-news-card__media,
.cg-redesign-active .cg-project-proof__media {
    overflow: hidden;
}

/* Subtle entrance for below-the-fold cards (script adds .cg-reveal-ready). */
@media (prefers-reduced-motion: no-preference) {
    .cg-reveal-ready .cg-reveal {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity .7s var(--cg-ease), transform .7s var(--cg-ease);
    }
    .cg-reveal-ready .cg-reveal.is-in {
        opacity: 1;
        transform: none;
    }
}

/* --- 10. Sitewide mobile compaction ---------------------------------------- */
@media (max-width: 767px) {
    /* Footer link lists two-up instead of one long column. */
    .cg-redesign-active .cg-footer__grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 30px 20px !important;
        padding-top: 46px !important;
        padding-bottom: 36px !important;
    }
    .cg-redesign-active .cg-footer__brand,
    .cg-redesign-active .cg-footer__contact {
        grid-column: 1 / -1 !important;
    }
    .cg-redesign-active .cg-footer__column h2 {
        margin-bottom: 14px;
    }
    .cg-redesign-active .cg-footer__column .cg-mega-list a {
        min-height: 30px;
        display: flex;
        align-items: center;
    }
    /* Featured project panel: less dead space above and below. */
    .cg-redesign-home .cg-home-feature {
        padding: 48px 0;
    }
}

/* The cached reviews fallback carried an internal note; visitors never need it. */
.cg-redesign-active .cg-google-review-fallback__note {
    display: none !important;
}


/* --- 10. 1.0.49 polish ---------------------------------------------------- */

/* Marketing consent: one checkbox column and one text column, matching the
 * storage-consent row above it (the label previously wrapped under the box). */
body.cg-redesign-active form.wpcf7-form .marketing-accept > p {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    column-gap: 10px;
}
body.cg-redesign-active form.wpcf7-form .marketing-accept > p > .wpcf7-form-control-wrap {
    grid-column: 1;
    width: 22px;
    margin: 0;
}
body.cg-redesign-active form.wpcf7-form .marketing-accept .wpcf7-form-control,
body.cg-redesign-active form.wpcf7-form .marketing-accept .wpcf7-list-item {
    display: block;
    margin: 0;
}
body.cg-redesign-active form.wpcf7-form .marketing-accept .cg-checkbox-label {
    grid-column: 2;
    min-width: 0;
    margin: 0;
    font-weight: 650;
}

/* Homepage news: a balanced feature-plus-two layout (no orphaned card). */
@media (min-width: 1025px) {
    .cg-redesign-home .cg-home-news__grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    }
    .cg-redesign-home .cg-home-news-card--featured {
        grid-column: 1;
        grid-row: span 2;
    }
    .cg-redesign-home .cg-home-news-card--featured > a {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
    }
    .cg-redesign-home .cg-home-news-card--featured .cg-home-news-card__media {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }
    .cg-redesign-home .cg-home-news-card:not(.cg-home-news-card--featured) > a {
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
        grid-template-rows: 1fr;
    }
    .cg-redesign-home .cg-home-news-card:not(.cg-home-news-card--featured) .cg-home-news-card__media {
        aspect-ratio: auto;
        min-height: 100%;
    }
    .cg-redesign-home .cg-home-news-card:not(.cg-home-news-card--featured) .cg-home-news-card__body {
        padding: 24px;
    }
    .cg-redesign-home .cg-home-news-card:not(.cg-home-news-card--featured) h3 {
        font-size: clamp(20px, 1.6vw, 24px);
    }
}

/* Client feedback: cards share the full width instead of filling two of
 * five fixed columns. Mobile keeps its swipe row. */
@media (min-width: 1025px) {
    body.cg-redesign-active .cg-review-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        overflow-x: visible;
    }
    body.cg-redesign-active .cg-review-card blockquote {
        max-width: 68ch;
    }
}

/* 1.0.51 (C0098) - homepage news heading spans the full container so the
 * "View All News" link lines up with the right-hand edge of the card grid.
 * The intro text keeps its original 800px measure. */
.cg-redesign-active .cg-home-news .cg-section-heading--row {
    max-width: none;
}
.cg-redesign-active .cg-home-news .cg-section-heading--row > div {
    max-width: 800px;
}
