.header nav a.active {
    color: var(--forest);
    font-weight: 650
}

.loading {
    padding-top: 45px;
    padding-bottom: 45px;
    color: var(--muted);
    font-size: 13px
}

.public-error {
    padding: 28px;
    border: 1px solid #e8c7b6;
    background: #fff7ed;
    margin-top: 25px;
    margin-bottom: 25px;
    font-size: 13px
}

    .public-error .button {
        margin-top: 15px
    }

.validation-errors {
    font-size: 11px;
    color: #a44934;
    background: #fff1e7;
    padding: 15px 25px;
    margin-bottom: 20px
}

.invalid {
    border-color: #b55842
}

button:disabled {
    opacity: .55;
    cursor: wait
}

.company-copy, .detail-tab-panel, .text-content {
    white-space: pre-line
}

.map-image {
    width: 100%;
    height: auto
}

.market-map {
    position: relative
}

.map-pin {
    position: absolute;
    width: 17px;
    height: 17px;
    border: 3px solid var(--paper);
    background: #496c39;
    border-radius: 50%;
    box-shadow: 0 0 0 9px #8da56c30;
    transform: translate(-50%,-50%);
    padding: 0
}

    .map-pin.active {
        background: #173d31;
        box-shadow: 0 0 0 12px #8da56c50
    }

.supply-diagram img {
    width: 100%;
    height: auto
}

.header .button {
    white-space: nowrap
}

.enquiry-modal {
    overflow: auto
}

.product-detail-notice {
    font-size: 11px;
    color: #7f8d73;
    margin-top: 12px
}

.field select {
    margin-top: 0
}

.contact-copy a {
    display: block;
    margin: 10px 0;
    font-size: 13px
}

.footer-contact > a {
    overflow-wrap: anywhere
}

.text-content {
    font-size: 13px;
    line-height: 1.9;
    max-width: 850px;
    margin: auto
}

    .text-content h2 {
        font-size: 25px;
        margin: 28px 0 15px
    }

.detail-tab-panel p {
    margin: 12px 0
}

.industry-art > img {
    width: 100%;
    height: 335px;
    object-fit: cover
}

.category-button {
    gap: 12px
}

.service-description a {
    display: inline-block;
    margin-top: 10px
}

.public-modal-close {
    margin-top: 20px
}

.form-note a {
    text-decoration: underline
}

#blazor-error-ui {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff2df;
    padding: 15px;
    z-index: 100
}

.contact-form input[type=checkbox] {
    width: 14px
}

.contact-form .field > span {
    font-size: inherit
}

.request-box .button {
    justify-content: space-between
}

.back-top-link {
    display: inline-flex;
    align-items: center;
    font-size: 10px
}

.page-hero h1 {
    white-space: pre-line
}

.contact-copy .public-contact {
    margin-top: 24px;
    border-top: 1px solid var(--line);
    padding-top: 20px
}

.global-section .land {
    fill: #d6dfcb;
    stroke: #f8f9f0;
    stroke-width: 1
}

.detail-info .long-name {
    overflow-wrap: anywhere
}

.product-meta {
    min-height: 12px
}

.product-card h3 {
    overflow-wrap: anywhere
}

.detail-category b {
    margin-left: 12px
}

@media(max-width:700px) {
    .industry-art > img {
        height: 285px
    }

    .contact-form .consent {
        font-size: 10px
    }

    .header .button {
        font-size: 9px
    }

    .page-hero h1 {
        font-size: 38px
    }

    .public-error {
        width: calc(100% - 44px)
    }

    .header .brand span {
        line-height: 1.5
    }
}

@media(prefers-reduced-motion:no-preference) {
    .product-card {
        animation: reveal .45s ease both
    }
}

h1:focus {
    outline: none
}
/* Readable content sizes across desktop and mobile; keep headings and site header unchanged. */
body {
    font-size: 16px;
}

    body :is(.hero p,.section-head>p,.intro-bottom p,.service-description,.global-copy>p, .page-hero p,.detail-info>p,.detail-tab-panel,.about-intro .copy>p,.vision-card p, .value p,.process-item p,.faq-list details p,.contact-copy>p,.contact-step p, .success-panel p,.modal-copy,.modal-copy p,.text-content,.company-copy) {
        font-size: 16px;
        line-height: 1.8;
    }

    body :is(main .button,dialog .button,.text-link,.intro-bottom a,.section-head .text-link, .pillar span,.tabs button,.chip,.service-description a,.service-caption, .industry-overlay p,.region-list button,.map-caption b,.map-caption p,.cta-box p, .catalogue-more p,.category-button,.subcategory-select,.search-box input,.catalogue-tools select, .detail-tab-nav button,.request-box p,.form-header p,.field,.contact-form .field, input,select,textarea,.contact-copy a.public-contact,.contact-copy .public-contact a, .footer-main>div>a:not(.brand):not(.text-link),.footer-contact p, .loading,.public-error,.form-error,.validation-errors,#toast) {
        font-size: 14px;
    }

    body .product-card .product-enquire {
        font-size: 14px !important;
    }

    body :is(.eyebrow,.hero .eyebrow,.page-hero .eyebrow,.detail-info .eyebrow,.modal-heading .eyebrow, .hero-bottom,.hero-bottom .hero-pillars,.product-tag,.product-meta,.product-note, .service-button .number,.visual-label,.industry-art-caption,.map-caption .coordinate,.map-note, .footer-tag,.footer-bottom,.breadcrumbs,.filter-title,.category-button b,.results-count, .image-disclaimer,.detail-category,.detail-assurance,.about-image .caption span, .value .index,.process-item .step,.contact-step>span,.field small,.consent,.contact-form .consent, .submit-row>span,.form-note,.success-ref,.success-panel .small-note,.product-detail-notice) {
        font-size: 12px;
        line-height: 1.6;
    }

    body :is(.footer-contact>a,.category-button,.detail-tab-nav button,.field,.consent) {
        overflow-wrap: anywhere;
    }

    body .detail-tab-nav {
        flex-wrap: wrap;
    }

@media(max-width:700px) {
    body .hero {
        min-height: 680px;
    }

    body .hero-bottom {
        min-height: 90px;
    }

    body .hero .wrap {
        padding-bottom: 125px;
    }

    body .tabs button {
        white-space: normal;
    }
    /* Keep catalogue chips at their natural width inside the scrollable row. */
    body .category-filters {
        min-width: 0;
        align-items: center;
    }

    body .category-button {
        flex: 0 0 auto;
        white-space: nowrap;
        overflow-wrap: normal;
        min-height: 44px;
        align-items: center;
    }

    body .category-button :is(.cms-editable,.cms-text) {
        white-space: nowrap;
    }

    body .category-button b {
        flex-shrink: 0;
    }

    body .catalogue-tools select {
        max-width: 160px;
    }

    body :is(.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea, .search-box input,.catalogue-tools select,.subcategory-select) {
        font-size: 16px;
    }
}

html body .cms-editable, html body .cms-editable > .cms-text {
    all: unset;
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    white-space: pre-line;
    display: inline
}

html body .cms-editable {
    position: relative
}

html:not(.ga-cms-editor) .cms-pencil, html:not(.ga-cms-editor) .cms-editor-only {
    display: none !important
}

.ga-cms-editor .cms-editable {
    outline: 1px dashed #74957e55;
    outline-offset: 2px
}

    .ga-cms-editor .cms-editable:hover {
        outline-color: #2d7951
    }

.ga-cms-editor .cms-pencil {
    all: initial !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 19px !important;
    height: 19px !important;
    margin-left: 4px !important;
    background: #fff !important;
    color: #185b47 !important;
    border: 1px solid #89a691 !important;
    border-radius: 4px !important;
    font: 13px/1 sans-serif !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    position: relative !important;
    z-index: 4 !important;
    box-shadow: 0 1px 3px #153b2a22 !important
}

    .ga-cms-editor .cms-pencil:focus {
        outline: 2px solid #1b6147 !important
    }

    .ga-cms-editor .cms-pencil:hover {
        background: #dcecdc !important
    }

.ga-cms-editor .cms-editor-only {
    font: 11px sans-serif !important;
    background: #fffbe6 !important;
    color: #526c44 !important;
    padding: 3px !important
}

    .ga-cms-editor .cms-editor-only .cms-text {
        font-size: 10px !important
    }

.ga-cms-editor .product-card .cms-pencil {
    font-size: 12px !important
}

.ga-cms-editor .cms-pencil:before, .ga-cms-editor .cms-pencil:after {
    content: none !important;
    display: none !important
}

/* Vision & Mission */
.purpose-statements{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.purpose-card{padding:38px;border:1px solid var(--line);border-radius:4px;background:#eef1e9;min-width:0}
.purpose-card:first-child{background:var(--forest);color:var(--paper);border-color:var(--forest)}
.purpose-card p{font-size:18px;line-height:1.85;margin-top:24px;color:var(--ink)}
.purpose-card:first-child p{color:#e0e8d8}
.purpose-card:first-child .eyebrow{color:var(--sage)}
.purpose-pillars{background:#eef1e9;border-top:1px solid var(--line)}
.purpose-pillar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:40px}
.purpose-pillar-grid article{border-top:1px solid #becbbb;padding:26px 0;min-width:0}
.purpose-number{font-size:12px;color:#647e58;letter-spacing:2px;display:block;margin-bottom:18px}
.purpose-pillar-grid h3{font-size:24px;margin-bottom:14px}
.purpose-pillar-grid p{font-size:16px;line-height:1.8;max-width:520px}
@media(min-width:901px) and (max-width:1150px){.header{gap:18px;padding-left:28px;padding-right:28px}.header nav{gap:18px}.header nav a{white-space:nowrap}}
@media(max-width:700px){.purpose-statements,.purpose-pillar-grid{grid-template-columns:1fr;gap:24px}.purpose-card{padding:26px}.purpose-card p{font-size:16px}.purpose-pillar-grid h3{font-size:22px}.purpose-pillar-grid{margin-top:28px}}
