:root {
    --ink:#153d32;
    --forest:#153d32;
    --deep:#153d32;
    --lime:#dce6d8;
    --cream:#f6f5ef;
    --white:#ffffff;
    --line:#dce6d8;
    --muted:#153d32
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font:16px/1.6 'DM Sans',sans-serif
}
a {
    color:inherit
}
a:focus-visible,button:focus-visible {
    outline:3px solid #dce6d8;
    outline-offset:3px
}
img {
    max-width:100%;
    display:block
}
.container {
    width:min(1180px,calc(100% - 40px));
    margin:auto
}
.eyebrow {
    font-size:.81rem;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase
}
.serif,h1,h2,h3 {
    font-family:'Playfair Display',Georgia,serif;
    line-height:1.13;
    font-weight:500;
    letter-spacing:-.03em
}
h1 {
    font-size:clamp(2.9rem,6vw,5.6rem);
    margin:18px 0 24px
}
h2 {
    font-size:clamp(2.2rem,4vw,3.65rem);
    margin:14px 0 20px
}
h3 {
    font-size:1.5rem;
    margin:0 0 12px
}
p {
    margin:0 0 16px
}
.site-header {
    background:var(--white);
    border-bottom:1px solid var(--line);
    position:relative;
    z-index:10
}
.utility {
    background:var(--deep);
    color:#dce6d8;
    text-align:right;
    font-size:.85rem;
    padding:6px 0
}
.utility a {
    text-decoration:none
}
.nav {
    min-height:82px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px
}
.brand {
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--forest)
}
.brand-mark {
    width:43px;
    height:43px;
    border:2px solid var(--forest);
    border-radius:50%;
    display:grid;
    place-items:center;
    font-family:Georgia,serif;
    font-size:25px;
    font-weight:bold;
    letter-spacing:-.18em;
    padding-right:4px
}
.brand-name {
    font-size:1.18rem;
    line-height:1.05;
    font-weight:700;
    letter-spacing:-.04em
}
.brand-name span {
    display:block;
    font-size:.65rem;
    text-transform:uppercase;
    letter-spacing:.17em;
    margin-top:6px;
    font-weight:600
}
.nav-links {
    display:flex;
    align-items:center;
    gap:27px
}
.nav-links a {
    text-decoration:none;
    font-size:.9rem;
    font-weight:700
}
.nav-links a:hover,.text-link:hover {
    text-decoration:underline
}
.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    min-height:52px;
    padding:12px 21px;
    background:var(--lime);
    color:var(--deep);
    font-weight:700;
    text-decoration:none;
    border:0;
    cursor:pointer
}
.button:hover {
    background:#dce6d8
}
.button.dark {
    background:var(--forest);
    color:white
}
.button.dark:hover {
    background:#153d32
}
.button.outline {
    background:transparent;
    border:1px solid #dce6d8;
    color:#ffffff
}
.menu-toggle {
    display:none;
    border:0;
    background:transparent;
    color:var(--forest);
    font-size:1.8rem
}
.hero {
    background:var(--deep);
    color:white;
    overflow:hidden
}
.hero-grid {
    display:grid;
    grid-template-columns:1fr 48%;
    min-height:610px
}
.hero-copy {
    padding:92px 54px 78px max(20px,calc((100vw - 1180px)/2));
    align-self:center
}
.hero .eyebrow {
    color:var(--lime)
}
.hero p {
    color:#dce6d8;
    max-width:550px;
    font-size:1.12rem;
    line-height:1.7
}
.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:34px
}
.hero-photo {
    position:relative;
    min-height:500px;
    background:#153d32
}
.hero-photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0
}
.hero-photo:after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(21,61,50,.17),transparent 40%)
}
.photo-note {
    position:absolute;
    bottom:28px;
    right:28px;
    z-index:1;
    background:rgba(21,61,50,.9);
    color:white;
    padding:14px 18px;
    font-size:.84rem;
    max-width:220px
}
.quick-strip {
    background:#f6f5ef;
    border-bottom:1px solid #dce6d8
}
.quick-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr)
}
.quick-grid div {
    padding:21px 26px;
    border-right:1px solid #dce6d8;
    font-size:.9rem
}
.quick-grid div:first-child {
    padding-left:0
}
.quick-grid div:last-child {
    border:0
}
.quick-grid strong {
    display:block;
    color:var(--forest);
    font-size:1.03rem
}
.section {
    padding:95px 0
}
.section-intro {
    max-width:700px;
    margin-bottom:39px
}
.section-intro p {
    color:#153d32;
    font-size:1.07rem
}
.cards {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px
}
.card {
    background:white;
    border:1px solid var(--line);
    padding:31px;
    min-height:295px;
    display:flex;
    flex-direction:column
}
.card-number {
    font-size:.82rem;
    font-weight:700;
    letter-spacing:.1em;
    color:#153d32;
    margin-bottom:40px
}
.card p {
    color:#153d32;
    flex:1
}
.text-link {
    font-weight:700;
    text-decoration:none;
    color:var(--forest);
    display:inline-block;
    margin-top:13px
}
.split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7%;
    align-items:center
}
.photo-frame {
    position:relative;
    min-height:450px;
    background:#dce6d8
}
.photo-frame img {
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0
}
.dark-panel {
    background:#dce6d8
}
.checklist {
    list-style:none;
    padding:0;
    margin:25px 0 30px
}
.checklist li {
    padding:13px 0 13px 30px;
    border-bottom:1px solid #dce6d8;
    position:relative
}
.checklist li:before {
    content:'✓';
    position:absolute;
    left:0;
    color:#153d32;
    font-weight:bold
}
.process {
    background:var(--forest);
    color:white
}
.process h2 {
    max-width:730px
}
.process-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
    margin-top:48px
}
.process-step {
    border-top:1px solid #dce6d8;
    padding-top:24px
}
.process-step .num {
    color:var(--lime);
    font-size:.88rem;
    font-weight:700;
    letter-spacing:.15em
}
.process-step p {
    color:#dce6d8
}
.credentials {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:65px
}
.credential-list {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px
}
.credential {
    background:white;
    border:1px solid var(--line);
    padding:23px
}
.credential strong {
    display:block;
    font-size:1.1rem;
    color:var(--forest)
}
.credential span {
    font-size:.88rem;
    color:var(--muted)
}
.faq-list {
    max-width:830px
}
.faq-list details {
    border-bottom:1px solid #dce6d8;
    padding:19px 0
}
.faq-list summary {
    font-size:1.05rem;
    font-weight:700;
    cursor:pointer;
    list-style:none;
    display:flex;
    justify-content:space-between;
    gap:20px
}
.faq-list summary::-webkit-details-marker {
    display:none
}
.faq-list summary:after {
    content:'+';
    font-size:1.5rem;
    font-weight:400;
    line-height:1
}
.faq-list details[open] summary:after {
    content:'−'
}
.faq-list p {
    padding:14px 35px 0 0;
    color:#153d32
}
.cta {
    background:var(--lime);
    padding:65px 0
}
.cta-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}
.cta h2 {
    margin:0 0 8px
}
.cta p {
    margin:0;
    max-width:650px
}
.footer {
    background:var(--deep);
    color:#dce6d8;
    padding:54px 0 26px
}
.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:50px
}
.footer a {
    color:inherit;
    text-decoration:none
}
.footer a:hover {
    text-decoration:underline
}
.footer-title {
    color:white;
    font-weight:700;
    font-size:1.2rem
}
.footer nav {
    display:grid;
    gap:8px
}
.footer-bottom {
    border-top:1px solid #153d32;
    margin-top:44px;
    padding-top:20px;
    font-size:.82rem;
    color:#dce6d8;
    display:flex;
    justify-content:space-between;
    gap:20px
}
.sub-hero {
    background:var(--forest);
    color:white;
    padding:75px 0
}
.sub-hero p {
    max-width:680px;
    color:#dce6d8;
    font-size:1.1rem
}
.content {
    padding:65px 0 95px
}
.content-narrow {
    max-width:820px
}
.content h2 {
    font-size:2rem;
    margin-top:44px
}
.content ul {
    padding-left:22px
}
.content li {
    margin-bottom:8px
}
.contact-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:65px
}
.contact-method {
    padding:20px 0;
    border-bottom:1px solid var(--line)
}
.contact-method strong {
    display:block;
    color:var(--forest)
}
.contact-method a {
    font-size:1.2rem;
    font-weight:700
}
.prompt-panel {
    background:white;
    border:1px solid var(--line);
    padding:35px
}
.research-item {
    padding:24px 0;
    border-bottom:1px solid var(--line)
}
.research-item h3 {
    font-size:1.35rem
}
.research-item small {
    color:var(--muted);
    display:block;
    margin-bottom:8px
}
.mobile-call {
    display:none
}
@media(max-width:900px) {
    .nav-links {
        gap:14px
    }
    .nav-links a {
        font-size:.82rem
    }
    .hero-grid {
        grid-template-columns:1fr 44%
    }
    .hero-copy {
        padding:65px 25px 65px 25px
    }
    .cards {
        gap:10px
    }
    .card {
        padding:22px
    }
    .credentials {
        gap:30px
    }
}
@media(max-width:700px) {
    .container {
        width:min(100% - 32px,1180px)
    }
    .utility {
        display:none
    }
    .nav {
        min-height:70px
    }
    .brand-name {
        font-size:1.05rem
    }
    .brand-mark {
        width:39px;
        height:39px
    }
    .menu-toggle {
        display:block
    }
    .nav-links {
        display:none;
        position:absolute;
        top:70px;
        left:0;
        right:0;
        background:white;
        border-bottom:1px solid var(--line);
        padding:18px 16px 24px;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        box-shadow:0 14px 22px #153d3222
    }
    .nav-links.open {
        display:flex
    }
    .nav-links a {
        font-size:1rem;
        padding:11px 0
    }
    .nav-links .button {
        margin-top:10px
    }
    .hero-grid {
        display:flex;
        flex-direction:column-reverse
    }
    .hero-photo {
        min-height:255px
    }
    .photo-note {
        display:none
    }
    .hero-copy {
        padding:48px 16px 60px
    }
    .hero h1 {
        font-size:clamp(2.65rem,11vw,4.6rem);
        margin:12px 0 20px
    }
    .hero p {
        font-size:1.03rem
    }
    .hero-actions .button {
        flex:1 1 180px
    }
    .quick-grid {
        grid-template-columns:1fr
    }
    .quick-grid div,.quick-grid div:first-child {
        padding:13px 0;
        border-right:0;
        border-bottom:1px solid #dce6d8
    }
    .quick-grid div:last-child {
        border:0
    }
    .section {
        padding:67px 0
    }
    .cards,.split,.process-grid,.credentials,.credential-list,.contact-grid,.footer-grid {
        grid-template-columns:1fr
    }
    .cards {
        gap:12px
    }
    .card {
        min-height:0
    }
    .card-number {
        margin-bottom:20px
    }
    .split {
        gap:28px
    }
    .photo-frame {
        min-height:290px
    }
    .process-grid {
        gap:20px
    }
    .credentials {
        gap:25px
    }
    .cta-row {
        align-items:flex-start;
        flex-direction:column
    }
    .footer-grid {
        gap:30px
    }
    .footer-bottom {
        flex-direction:column
    }
    .sub-hero {
        padding:55px 0
    }
    .mobile-call {
        display:block;
        position:fixed;
        bottom:0;
        left:0;
        right:0;
        z-index:9;
        background:var(--lime);
        text-align:center;
        padding:12px 16px;
        font-weight:700;
        text-decoration:none;
        box-shadow:0 -3px 15px #153d3222
    }
    .footer {
        padding-bottom:80px
    }
    body {
        padding-bottom:44px
    }
}
.enquiry-layout {
    grid-template-columns:minmax(0,1.35fr) minmax(285px,.7fr);
    align-items:start
}
.enquiry-form {
    margin-top:26px
}
.form-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}
.field {
    margin-bottom:19px
}
.field label {
    display:block;
    font-weight:700;
    font-size:.94rem;
    margin-bottom:6px
}
.field input,.field select,.field textarea {
    width:100%;
    font:inherit;
    color:var(--ink);
    background:#ffffff;
    border:1px solid #dce6d8;
    border-radius:2px;
    padding:13px 14px;
    min-height:50px
}
.field textarea {
    resize:vertical;
    min-height:150px
}
.field input:focus,.field select:focus,.field textarea:focus {
    outline:3px solid #dce6d8;
    outline-offset:1px
}
.field input::placeholder,.field textarea::placeholder {
    color:#153d32
}
.enquiry-form .button {
    font:700 1rem/1.3 'DM Sans',sans-serif
}
.form-privacy {
    font-size:.88rem;
    color:#153d32;
    line-height:1.55;
    max-width:620px
}
.form-privacy a {
    text-decoration:underline
}
.honeypot {
    display:none!important
}
.contact-side .prompt-panel {
    padding:28px
}
.contact-side .prompt-panel h3 {
    margin-bottom:12px
}
.contact-side .contact-method a {
    font-size:1.05rem;
    overflow-wrap:anywhere
}
.side-note {
    padding:26px 5px
}
.side-note h3 {
    font-size:1.35rem
}
.side-note ul {
    padding-left:21px
}
.side-note li {
    margin:7px 0
}
@media(max-width:700px) {
    .enquiry-layout,.form-row {
        grid-template-columns:1fr
    }
    .contact-side {
        margin-top:25px
    }
    .form-row {
        gap:0
    }
}
/* Original Derby Knotweed identity */
.brand {
    gap:10px;
    min-width:0
}
.brand-symbol {
    width:44px;
    height:44px;
    flex:none;
    object-fit:contain
}
.brand-wordmark {
    width:240px;
    height:auto;
    min-width:0;
    object-fit:contain
}
@media(max-width:700px) {
    .brand-symbol {
        width:38px;
        height:38px
    }
    .brand-wordmark {
        width:175px
    }
    .nav {
        gap:12px
    }
}
@media(max-width:350px) {
    .brand-wordmark {
        width:155px
    }
}
@media(max-width:980px) {
    .menu-toggle {
        display:block
    }
    .nav-links {
        display:none;
        position:absolute;
        top:82px;
        left:0;
        right:0;
        background:#ffffff;
        border-bottom:1px solid var(--line);
        padding:18px max(16px,calc((100vw - 1180px)/2)) 24px;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        box-shadow:0 14px 22px #153d3222
    }
    .nav-links.open {
        display:flex
    }
    .nav-links a {
        font-size:1rem;
        padding:11px 0
    }
    .nav-links .button {
        margin-top:10px
    }
}
@media(max-width:700px) {
    .nav-links {
        top:70px
    }
}
.assurance {
    background:#ffffff;
    border-bottom:1px solid var(--line);
    padding:55px 0 65px
}
.assurance-head {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:35px;
    margin-bottom:25px
}
.assurance-head h2 {
    font-size:clamp(1.9rem,3vw,2.55rem);
    margin:8px 0 0
}
.assurance-head p {
    max-width:340px;
    color:var(--muted);
    margin:0
}
.assurance-links {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px
}
.assurance-links a {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:13px;
    min-height:215px;
    border:1px solid var(--line);
    background:#ffffff;
    text-align:center;
    text-decoration:none;
    padding:20px;
    color:var(--forest);
    font-weight:700
}
.assurance-links a:hover {
    border-color:#dce6d8;
    background:#f6f5ef
}
.assurance-links img {
    height:130px;
    width:auto;
    max-width:85%;
    object-fit:contain
}
.assurance-links span {
    font-size:.91rem
}
@media(max-width:700px) {
    .assurance {
        padding:48px 0
    }
    .assurance-head {
        display:block
    }
    .assurance-head p {
        margin-top:14px
    }
    .assurance-links {
        grid-template-columns:1fr;
        gap:10px
    }
    .assurance-links a {
        min-height:150px;
        flex-direction:row;
        justify-content:space-between;
        text-align:left;
        padding:15px 20px
    }
    .assurance-links img {
        height:105px;
        max-width:45%
    }
    .assurance-links span {
        max-width:45%
    }
}
/* Larger original logo and title */
.nav {
    min-height:110px
}
.brand-symbol {
    width:66px;
    height:66px
}
.brand-wordmark {
    width:360px
}
@media(max-width:1150px) {
    .menu-toggle {
        display:block
    }
    .nav-links {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:white;
        border-bottom:1px solid var(--line);
        padding:18px 20px 24px;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        box-shadow:0 14px 22px #153d3222
    }
    .nav-links.open {
        display:flex
    }
    .nav-links a {
        font-size:1rem;
        padding:11px 0
    }
    .nav-links .button {
        margin-top:10px
    }
}
@media(max-width:700px) {
    .nav {
        min-height:0;
        flex-wrap:wrap;
        gap:0;
        padding:13px 0 8px
    }
    .brand {
        width:100%;
        justify-content:center;
        gap:8px
    }
    .brand-symbol {
        width:57px;
        height:57px
    }
    .brand-wordmark {
        width:min(262px,calc(100vw - 105px))
    }
    .menu-toggle {
        margin-left:auto;
        min-height:42px;
        line-height:1
    }
    .nav-links {
        top:100%
    }
}
.positioning-line {
    font-family:'Playfair Display',Georgia,serif;
    font-size:clamp(1.45rem,2.5vw,2rem);
    line-height:1.28;
    color:var(--forest);
    max-width:670px;
    margin:15px 0 25px
}
.forest-section {
    background:#153d32;
    color:#ffffff;
    padding:85px 0
}
.forest-grid {
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr);
    gap:7%;
    align-items:center
}
.forest-section .eyebrow {
    color:var(--lime)
}
.forest-section h2 {
    max-width:650px
}
.forest-section p {
    font-size:1.05rem;
    color:#dce6d8;
    max-width:640px
}
.forest-section .button {
    margin-top:18px
}
.forest-visual {
    display:grid;
    justify-items:center
}
.forest-visual img {
    width:min(100%,330px);
    height:auto
}
@media(max-width:700px) {
    .forest-section {
        padding:65px 0
    }
    .forest-grid {
        grid-template-columns:1fr;
        gap:35px
    }
    .forest-visual img {
        width:min(100%,230px)
    }
}
/* Other invasive plants */
.plant-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
}
.plant-card {
    background:#ffffff;
    border:1px solid var(--line);
    padding:36px
}
.plant-card .card-number {
    display:block;
    margin-bottom:24px
}
.plant-card h3 {
    font-size:2rem
}
.plant-card p {
    color:#153d32
}
.plant-source {
    margin:27px 0 0;
    color:#153d32
}
.plant-source a {
    font-weight:700;
    color:var(--forest)
}
.plant-approach {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:9%;
    align-items:start
}
.plant-approach p {
    max-width:650px
}
.plant-approach .button {
    margin-top:12px
}
@media(max-width:700px) {
    .plant-grid,.plant-approach {
        grid-template-columns:1fr
    }
    .plant-card {
        padding:27px
    }
    .plant-card h3 {
        font-size:1.7rem
    }
    .plant-approach {
        gap:15px
    }
}
/* Guidance links on resources page */
.guidance-section h2,.papers-section h2 {
    margin:13px 0 24px
}
.guidance-list {
    display:grid;
    gap:14px
}
.guidance-item {
    background:#ffffff;
    border:1px solid var(--line);
    padding:25px 28px
}
.guidance-item h3 {
    font-size:1.45rem;
    margin-bottom:8px
}
.guidance-item p {
    color:#153d32;
    margin-bottom:4px
}
.papers-section {
    margin-top:70px
}
@media(max-width:700px) {
    .guidance-item {
        padding:22px
    }
    .papers-section {
        margin-top:55px
    }
}
/* Client pathways and service detail */
.client-routes {
    background:#f6f5ef
}
.route-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
}
.route-card {
    background:#ffffff;
    border:1px solid var(--line);
    padding:34px;
    display:flex;
    flex-direction:column
}
.route-card h3 {
    font-size:clamp(1.55rem,2.6vw,2.15rem)
}
.route-card p {
    color:#153d32;
    flex:1
}
.route-card .card-number {
    margin-bottom:22px
}
.detail-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:9%;
    align-items:start
}
.detail-copy h3 {
    margin-top:26px
}
.detail-copy h3:first-child {
    margin-top:0
}
.detail-copy p {
    color:#153d32
}
.service-detail {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:9%;
    border-top:1px solid var(--line);
    padding:38px 0
}
.service-detail h2 {
    font-size:clamp(1.9rem,3.5vw,3rem);
    margin:12px 0
}
.service-detail p {
    color:#153d32
}
.field small {
    display:block;
    color:#153d32;
    font-size:.88rem;
    margin-top:6px
}
@media(max-width:700px) {
    .route-grid,.detail-grid,.service-detail {
        grid-template-columns:1fr
    }
    .route-card {
        padding:25px
    }
    .detail-grid,.service-detail {
        gap:12px
    }
}

/* Rivers and watercourses page */
.river-intro {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7%;
    align-items:center
}
.river-intro p,.river-experience p {color:#153d32}
.river-photo {margin:0}
.river-photo img {width:100%;height:420px;object-fit:cover}
.river-photo figcaption {font-size:.86rem;color:var(--muted);margin-top:9px}
.river-services {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.river-services article {background:#ffffff;border:1px solid var(--line);padding:28px}
.river-services .card-number {display:block;margin-bottom:22px}
.river-services p {color:#153d32}
.river-note {max-width:820px;margin:30px 0 0;color:#153d32}
.river-note a {font-weight:700;color:var(--forest)}
.river-experience {display:grid;grid-template-columns:.9fr 1.1fr;gap:8%}
@media(max-width:700px) {
    .river-intro,.river-services,.river-experience {grid-template-columns:1fr}
    .river-intro,.river-experience {gap:25px}
    .river-photo img {height:290px}
}

/* Photographs supplied for the Derwent, property, project and river pages. */
.forest-visual { position:relative; margin:0; display:block; overflow:hidden; border-radius:3px; }
.forest-visual img { width:100%; height:300px; object-fit:cover; }
.forest-visual figcaption { position:absolute; right:10px; bottom:10px; padding:5px 9px; background:rgba(21,61,50,.85); color:#ffffff; font-size:.8rem; line-height:1.3; }
.detail-photo { margin:28px 0 0; }
.detail-photo img { width:100%; height:310px; object-fit:cover; border-radius:3px; }
.detail-photo.portrait img { object-position:center 43%; }
.river-fieldwork-photo { margin:0 0 25px; }
.river-fieldwork-photo img { width:100%; height:340px; object-fit:cover; object-position:center 40%; border-radius:3px; }
@media(max-width:700px) {
  .forest-visual img { height:230px; }
  .detail-photo img { height:260px; }
  .river-fieldwork-photo img { height:270px; }
}

/* Desktop navigation stays visible as the page moves. */
@media (min-width:1151px) {
  .site-header { position:sticky; top:0; }
  [id]:target { scroll-margin-top:120px; }
}
.nav-links .button { border-radius:12px; }
.river-intro-text-only { display:block; }
.river-intro-text-only > div { max-width:850px; }

.sitemap-page { max-width:1180px; }
.sitemap-page ul { list-style:none; padding:0; margin:20px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 25px; }
.sitemap-page a { display:block; padding:15px 18px; background:#ffffff; border:1px solid var(--line); color:var(--forest); font-weight:700; }
.sitemap-page a:hover { background:#f6f5ef; }
@media(max-width:700px) { .sitemap-page ul { grid-template-columns:1fr; } }

/* Supplied terms retain their original wording and clause letters. */
.terms-content { background:var(--cream); }
.terms-content .content-narrow { max-width:850px; }
.terms-company { color:var(--forest); font-weight:700; margin-bottom:8px; }
.terms-title { margin:0 0 10px; }
.terms-date { color:var(--muted); margin-bottom:35px; }
.terms-heading { margin:38px 0 16px; font-size:clamp(1.6rem,3vw,2.2rem); }
.terms-clause { margin:0 0 13px; padding-left:1.5em; text-indent:-1.5em; white-space:pre-wrap; overflow-wrap:anywhere; }

/* v23: dedicated About/FAQ pages and contact icons */
.contact-icon-link { display:inline-flex; width:56px; height:56px; margin:0 14px 10px 0; vertical-align:middle; }
.contact-icon-link img { width:56px; height:56px; object-fit:contain; }
.contact-method > strong { margin-top:2px; }
.profile-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:30px; }
.profile-links a { background:#ffffff; color:var(--forest); padding:22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:15px; text-align:center; font-weight:700; min-height:190px; }
.profile-links img { max-width:180px; max-height:85px; width:auto; height:auto; object-fit:contain; }
.social-links { display:flex; gap:18px; margin-top:24px; flex-wrap:wrap; }
.social-links a { display:flex; align-items:center; gap:10px; color:#ffffff; font-weight:700; }
.social-links img { width:46px; height:46px; object-fit:contain; }
.faq-page { max-width:950px; }
@media(max-width:700px) { .profile-links { grid-template-columns:1fr; } }

/* v25: content, accessibility, responsive and conversion pass */
.skip-link { position:absolute; left:-9999px; top:8px; z-index:9999; background:#ffffff; color:var(--forest); padding:10px 14px; font-weight:700; }
.skip-link:focus { left:8px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.nav-links a[aria-current="page"] { font-weight:800; }
.support-panel { background:var(--cream); }
.brownfield-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:30px 0; }
.brownfield-grid article { border-top:2px solid rgba(255,255,255,.45); padding-top:18px; }
.faq-category + .faq-category { margin-top:52px; }
.faq-category h2 { color:#ffffff; margin-top:8px; }
.faq-category .eyebrow { color:rgba(255,255,255,.72); }
.photo-cta { background:var(--cream); padding:56px 0; }
.photo-cta-row { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.photo-cta-row > div:first-child { max-width:720px; }
.photo-actions { display:flex; flex-direction:column; align-items:flex-start; gap:14px; min-width:260px; }
.related-links { padding:24px 0; background:var(--cream); border-top:1px solid rgba(21,61,50,.12); }
.profile-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:900px) { .brownfield-grid { grid-template-columns:1fr; } .photo-cta-row { align-items:flex-start; flex-direction:column; } }
@media(max-width:700px) { .profile-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .profile-links a { min-height:150px; padding:16px; } .profile-links img { max-width:130px; max-height:65px; } }
@media(max-width:430px) { .profile-links { grid-template-columns:1fr; } .photo-actions, .photo-actions .button { width:100%; } .photo-actions .button { text-align:center; } }

/* v26 visual QA corrections */
.faq-page .faq-category h2 { color:#ffffff; }
.faq-page .faq-category .eyebrow { color:#dce6d8; }
.faq-page .faq-list details { background:#f6f5ef; border:1px solid #dce6d8; border-radius:8px; padding:0; margin:12px 0; overflow:hidden; }
.faq-page .faq-list summary { color:#153d32; background:#f6f5ef; padding:18px 20px; }
.faq-page .faq-list summary:hover { background:#dce6d8; }
.faq-page .faq-list summary:focus-visible { outline:3px solid #dce6d8; outline-offset:-4px; }
.faq-page .faq-list p { color:#153d32; background:#ffffff; padding:18px 20px; margin:0; }
.contact-icon-link { flex:0 0 56px; border-radius:50%; overflow:hidden; }
.contact-icon-link img { display:block; width:56px; height:56px; object-fit:contain; aspect-ratio:1/1; }
.profile-links img { object-fit:contain; aspect-ratio:auto; }
.profile-links a[href*="facebook"] img,.profile-links a[href*="linkedin"] img { width:72px; height:72px; max-width:72px; max-height:72px; }
.support-panel .content-narrow { margin-left:auto; margin-right:auto; }
.support-panel .content-narrow > * { margin-left:0; }
@media(max-width:700px){.contact-method{overflow-wrap:anywhere}.faq-page .faq-list summary{gap:12px}.support-panel .content-narrow{text-align:left}}

/* v27: About environmental-support block aligns with the page's left content edge. */
.support-panel .content-narrow {
    margin-left:0;
    margin-right:0;
    text-align:left;
}
.support-panel .content-narrow h2,
.support-panel .content-narrow .eyebrow,
.support-panel .content-narrow p {
    text-align:left;
}

/* v28: deployment-candidate refinements */
.award-highlight { background:#f6f5ef; border-top:1px solid #dce6d8; border-bottom:1px solid #dce6d8; padding:48px 0; }
.award-highlight-grid { display:grid; grid-template-columns:minmax(260px,420px) 1fr; gap:48px; align-items:center; }
.award-badge-link { display:block; border-radius:12px; box-shadow:0 8px 26px rgba(21,61,50,.10); }
.award-badge-link:focus-visible { outline:3px solid #153d32; outline-offset:5px; }
.award-badge-link img { display:block; width:100%; height:auto; border-radius:12px; }
.award-highlight h2 { color:#153d32; margin:.35rem 0 .8rem; }
.award-highlight p { color:#153d32; max-width:58ch; }
.award-profile-card img { width:100%; max-width:210px; max-height:115px; height:auto; }

.river-speciality-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.85fr); gap:50px; align-items:center; }
.river-speciality-grid .river-fieldwork-photo { margin:0; }
.river-speciality-grid .river-fieldwork-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center; border-radius:8px; display:block; }

/* FAQ: explicit high-contrast colours in every interactive state. */
.faq-section { background:#f6f5ef; color:#153d32; }
.faq-section .faq-category h2 { color:#153d32; }
.faq-section .faq-category .eyebrow { color:#153d32; }
.faq-section .faq-list details { background:#ffffff; border:1px solid #dce6d8; border-radius:8px; padding:0; margin:12px 0; overflow:hidden; color:#153d32; }
.faq-section .faq-list summary { color:#153d32; background:#dce6d8; padding:18px 20px; font-weight:700; }
.faq-section .faq-list summary:hover { color:#153d32; background:#dce6d8; }
.faq-section .faq-list summary:focus-visible { color:#153d32; background:#dce6d8; outline:3px solid #153d32; outline-offset:-4px; }
.faq-section .faq-list details[open] summary { color:#153d32; background:#dce6d8; border-bottom:1px solid #dce6d8; }
.faq-section .faq-list p { color:#153d32; background:#ffffff; padding:18px 20px; margin:0; }
.faq-section .faq-list a { color:#153d32; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:2px; }
.faq-section .faq-list a:hover,.faq-section .faq-list a:focus-visible { color:#153d32; }

.contact-icon-link { background:transparent; }
.contact-icon-link img { width:56px; height:56px; display:block; object-fit:contain; }
.profile-links a[href*="facebook"] img,.profile-links a[href*="linkedin"] img { width:72px; height:72px; max-width:72px; max-height:72px; }
.privacy-content { max-width:820px; }
.privacy-content h2 { margin-top:2rem; }
.confirmation-panel { max-width:760px; margin:0 auto; text-align:left; }

@media(max-width:800px){
  .award-highlight-grid,.river-speciality-grid { grid-template-columns:1fr; gap:28px; }
  .award-highlight { padding:36px 0; }
  .award-badge-link { max-width:520px; }
}


/* v29 queued refinements */
.forest-copy, .forest-copy .tree-promise, .support-panel .tree-promise { text-align:left; margin-left:0; }
.assurance-award { margin-top:18px; border-top:1px solid var(--line); padding-top:18px; }
.assurance-award-link { display:grid; grid-template-columns:minmax(180px,300px) 1fr; gap:28px; align-items:center; padding:22px; border:1px solid var(--line); background:#f6f5ef; color:var(--forest); text-decoration:none; }
.assurance-award-link:hover { border-color:#dce6d8; background:#f6f5ef; }
.assurance-award-link:focus-visible { outline:3px solid var(--forest); outline-offset:4px; }
.assurance-award-link img { width:100%; height:auto; max-height:170px; object-fit:contain; }
.assurance-award-copy h3 { margin:.25rem 0 .45rem; font-size:clamp(1.35rem,2.3vw,1.9rem); }
.assurance-award-copy p { margin:.2rem 0 .65rem; color:var(--muted); }
.plant-resource-link { display:inline-block; margin-top:auto; padding-top:8px; font-weight:700; color:var(--forest); text-underline-offset:3px; }
.plant-card { display:flex; flex-direction:column; }
@media(max-width:700px) { .assurance-award-link { grid-template-columns:1fr; gap:16px; padding:18px; } .assurance-award-link img { max-width:260px; max-height:145px; } }

/* Company disclosure sits below the contact details in the shared footer. */
.footer .footer-company-info { margin-top:18px; max-width:42ch; font-size:.875rem; line-height:1.65; text-align:left; }
.forest-copy .tree-policy { font-weight:400; }
.forest-copy .tree-policy strong { font-weight:700; }

/* v33: centre navbar links and use the pale CTA treatment consistently. */
@media (min-width:1151px) {
    .nav-links {
        flex:1;
        justify-content:center;
        gap:18px;
        text-align:center;
    }
    .nav-links a {
        text-align:center;
    }
}
@media (max-width:1150px) {
    .nav-links {
        align-items:center;
        text-align:center;
    }
    .nav-links a {
        width:100%;
        text-align:center;
    }
    .nav-links .button {
        width:auto;
        min-width:180px;
    }
}
.button.dark {
    background:var(--lime);
    color:var(--deep);
}
.button.dark:hover {
    background:#dce6d8;
    color:var(--deep);
}


/* v34: persistent navigation and language selection on every page. */
:root { --navbar-height:110px; }
.site-header { position:sticky; top:0; z-index:100; background:#ffffff; }
.site-header > .nav { width:min(1500px,calc(100% - 40px)); }
.nav-links { gap:8px; }
.nav-links a { background:#dce6d8; color:#153d32; border-radius:12px; padding:10px 12px; display:flex; align-items:center; justify-content:center; line-height:1.35; min-height:44px; text-align:center; }
.nav-links a:hover { background:#dce6d8; text-decoration:underline; }
.nav-links .button.dark { background:#153d32; color:#ffffff; }
.nav-links .button.dark:hover { background:#153d32; color:#ffffff; }
.language-band { background:#ffffff; height:calc(var(--navbar-height) * .4); min-height:44px; display:flex; align-items:center; justify-content:center; border-top:1px solid #f6f5ef; }
.language-buttons { display:flex; align-items:center; justify-content:center; gap:8px; padding:4px 12px; width:100%; }
.language-button { background:#f6f5ef; color:#153d32; border:1px solid transparent; border-radius:7px; padding:3px 14px; min-height:32px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; font-size:.85rem; line-height:1.3; font-weight:700; }
.language-button:hover { background:#f6f5ef; text-decoration:underline; }
.language-button[aria-current="page"] { border-color:#153d32; }
.language-button:focus-visible { outline:2px solid #153d32; outline-offset:1px; }
html { scroll-padding-top:calc(var(--navbar-height) + 16px); }
[id]:target { scroll-margin-top:0; }
.translation-notice { padding:12px 0; background:#f6f5ef; border-bottom:1px solid #dce6d8; color:#153d32; font-size:.9rem; }
.support-panel .content-narrow { margin-left:auto; margin-right:auto; }
.support-panel .content-narrow h2.tree-promise { text-align:left; }
@media(min-width:1151px) {
  .site-header .brand { flex:0 1 30%; }
  .site-header .brand-wordmark { width:min(360px,calc(100% - 76px)); }
  .nav-links { flex:1; min-width:0; gap:8px; }
  .nav-links a { flex:0 1 auto; font-size:.85rem; }
}
@media(max-width:1150px) {
  .nav-links { top:100%; gap:8px; max-height:calc(100dvh - var(--navbar-height)); overflow-y:auto; overscroll-behavior:contain; }
  .nav-links a, .nav-links .button { width:100%; min-width:0; margin-top:0; }
}
@media(max-width:700px) {
  :root { --navbar-height:120px; }
  .site-header > .nav { width:calc(100% - 32px); }
  .language-buttons { gap:4px; padding:4px 8px; }
  .language-button { flex:1; min-width:0; padding:4px 5px; font-size:.75rem; }
}

/* v36: align the support section with the shared page content edge. */
.support-panel .content-narrow { max-width:1180px; margin-left:auto; margin-right:auto; }
.support-panel .content-narrow > * { max-width:820px; }

/* v40: homepage rhythm and integrated language attribution */
.language-band { height:auto; min-height:44px; flex-wrap:wrap; gap:0 12px; padding:5px 12px 7px; }
.language-buttons { flex:1 1 100%; }
.translation-attribution { display:block; font-size:.72rem; line-height:1.35; color:#153d32; text-align:center; }
.homepage .hero-grid { min-height:0; }
.homepage .hero-copy { padding-top:clamp(42px,5vw,70px); padding-bottom:clamp(42px,5vw,65px); }
.homepage .hero-photo { min-height:clamp(350px,40vw,480px); }
.homepage .section { padding-top:clamp(48px,6vw,72px); padding-bottom:clamp(48px,6vw,72px); }
.homepage .section-intro { margin-bottom:28px; }
.homepage .cta { padding-top:52px; padding-bottom:52px; }
@media(max-width:700px) { .language-band { padding:5px 6px 7px; } .language-buttons { flex-wrap:wrap; } .translation-attribution { font-size:.7rem; } .homepage .hero-photo { min-height:310px; } .homepage .section { padding-top:44px; padding-bottom:44px; } }

/* v46: consistent actions, editorial photography and narrow-screen layouts. */
.button { border-radius:12px; min-height:44px; white-space:normal; text-align:center; }
.button.outline { color:#153d32; border-color:#153d32; }
.dark-panel .button.outline { color:#ffffff; border-color:#ffffff; }
.card .text-link,.card .button { color:#153d32; }
.service-price { font-size:1.45rem; font-weight:700; color:#153d32; margin-top:12px; }
.service-row:nth-of-type(2n) { background:#f6f5ef; }
.editorial-photo { margin:28px 0; max-width:100%; }
.editorial-photo img { width:100%; height:auto; border-radius:16px; }
.editorial-photo figcaption { font-size:.9rem; margin-top:10px; color:#153d32; }
#main-content > .section > .container > .editorial-photo { max-width:960px; margin-inline:auto; }
.panorama { margin:0; }
.panorama img { width:100%; height:auto; border-radius:16px; }
.panorama-section { padding-block:32px; }
.legal-cases { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.legal-cases article { padding:26px; background:#f6f5ef; border-radius:14px; }
.legal-cases h3 { font-size:1.25rem; }
.source-link { text-decoration:underline; text-underline-offset:4px; }
.action-row,.footer-page-links { display:flex; flex-wrap:wrap; gap:14px; }
.footer-page-links { padding-top:24px; margin-top:24px; border-top:1px solid #ffffff40; }
.footer-link { padding:8px 0; margin-inline-end:16px; }
.service-detail > div { min-width:0; }
.contact-method a { overflow-wrap:anywhere; }
.nav-links { gap:16px; }
[dir=rtl] .content-narrow,[dir=rtl] .support-panel .content-narrow { text-align:right; }
@media(max-width:1000px) { .nav-links { gap:10px; font-size:.88rem; } }
@media(max-width:700px) { .legal-cases { grid-template-columns:1fr; } .action-row { flex-direction:column; align-items:stretch; } .service-detail { grid-template-columns:1fr; gap:16px; } .mobile-call { padding:14px 20px calc(14px + env(safe-area-inset-bottom)); } body { padding-bottom:76px; } .button { max-width:100%; overflow-wrap:anywhere; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

.hero .button.outline { color:#ffffff; border-color:#ffffff; }
.homepage .hero-photo img { object-position:right bottom; }

.enquiry-layout > *, .form-row > *, .contact-side, .field { min-width:0; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { max-width:100%; min-width:0; }

body { overflow-wrap:anywhere; } .container > *, .legal-cases > *, .contact-grid > * { min-width:0; }

.service-row .button { margin-inline-end:8px; margin-bottom:8px; }
.hero-photo .photo-note { top:28px; bottom:auto; }

:root{--forest:#153d32;--sage:#dce6d8;--cream:#f6f5ef;--white:#fff;--content:1160px;--radius:12px;--section-space:clamp(30px,3.4vw,48px);--header-offset:112px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-offset)}
body{margin:0;background:var(--cream);color:var(--forest);font:16px/1.6 'DM Sans',Arial,sans-serif}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:4px}
button,input{font:inherit}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.18;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(2rem,3.25vw,3rem)}
h2{font-size:clamp(1.7rem,2.6vw,2.15rem)}
h3{font-size:1.5rem}
p{text-wrap:pretty}
.container{width:min(var(--content),calc(100% - 48px));margin-inline:auto}
:focus-visible{outline:3px solid currentColor;outline-offset:4px}
.skip-link{position:absolute;top:8px;left:-9999px;padding:10px 18px;background:var(--white);color:var(--forest);z-index:1000}
.skip-link:focus{left:12px}
.site-header{position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid rgb(21 61 50 / .18);container-type:inline-size}
.header-row{display:flex;align-items:center;gap:22px;min-height:76px}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none}
.brand-symbol{width:44px;height:44px;object-fit:contain}
.brand-wordmark{width:225px;height:auto}
.main-nav{display:flex;align-items:center;justify-content:flex-end;gap:19px;flex:1}
.main-nav a{text-decoration:none;font-size:.86rem;font-weight:600;white-space:nowrap;padding-block:10px}
.main-nav a:hover{text-decoration:underline}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:11px 18px;border:1px solid transparent;border-radius:var(--radius);background:var(--forest);color:var(--white);font-weight:600;font-size:.93rem;line-height:1.4;text-decoration:none;text-align:center;transition:box-shadow .15s ease,transform .15s ease}
.button:hover{box-shadow:0 0 0 2px currentColor;text-decoration:underline;transform:translateY(-1px)}
.button:active{transform:translateY(0)}
.header-contact{padding:9px 16px;min-height:42px;white-space:nowrap}
.menu-toggle{display:none;width:42px;min-height:42px;padding:0;border:1px solid rgb(21 61 50 / .3);border-radius:10px;color:var(--forest);background:var(--white);font-size:1.4rem}
.language-bar{background:var(--cream);border-top:1px solid rgb(21 61 50 / .1)}
.language-links{display:flex;align-items:center;justify-content:center;gap:6px;min-height:35px}
.language-links a{font-size:.75rem;line-height:1.3;text-decoration:none;padding:5px 12px;border-radius:6px;border:1px solid transparent}
.language-links a:hover{text-decoration:underline}
.language-links [aria-current=page]{border-color:rgb(21 61 50 / .45);font-weight:700}
.hero{position:relative;display:grid;isolation:isolate;background:var(--forest);color:var(--white)}
.hero-picture,.hero-layer{grid-area:1/1}
.hero-picture{position:relative;z-index:-2;min-height:350px}
.hero-picture img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center bottom}
.hero::after{content:'';grid-area:1/1;background:linear-gradient(90deg,rgb(21 61 50 / .95),rgb(21 61 50 / .88) 27%,rgb(21 61 50 / .25) 60%,transparent);z-index:-1}
.hero-layer{padding-block:36px;display:flex;align-items:center}
.hero-copy{max-width:520px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;font-weight:700;line-height:1.5;margin-bottom:10px}
.hero .eyebrow{color:var(--sage)}
.hero h1{margin-bottom:16px}
.hero-copy>p:not(.eyebrow){max-width:460px;margin-bottom:22px}
.hero .button{background:var(--sage);color:var(--forest)}
.section{padding-block:var(--section-space)}
.section-cream{background:var(--cream)}
.section-white,.surface-white{background:var(--white)}
.section-sage,.surface-sage{background:var(--sage)}
.section-heading{display:grid;grid-template-columns:.85fr 1.3fr;gap:42px;align-items:start;margin-bottom:24px}
.section-heading p{max-width:700px}
.assessment-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.assessment-card{padding:24px;border:1px solid rgb(21 61 50 / .16);border-radius:var(--radius);display:flex;flex-direction:column;gap:16px}
.card-heading{display:flex;justify-content:space-between;gap:15px;align-items:baseline;flex-wrap:wrap}
.price{font-size:1rem;font-weight:700;white-space:nowrap}
.assessment-card .button{align-self:flex-start;margin-top:auto}
.editorial-grid{display:grid;grid-template-columns:.85fr 1.3fr;gap:42px;align-items:start}
.prose{display:grid;gap:15px}
.prose p{max-width:720px}
.prose .button{justify-self:start;margin-top:3px}
.compact-heading{display:block;margin-bottom:16px}
.faq-list{border-top:1px solid rgb(21 61 50 / .25)}
.faq-list details{border-bottom:1px solid rgb(21 61 50 / .25)}
.faq-list summary{position:relative;list-style:none;min-height:56px;padding:15px 36px 15px 0;font-weight:600;line-height:1.5;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';position:absolute;right:4px;top:13px;font-size:1.3rem;font-weight:400}
.faq-list details[open] summary::after{content:'−'}
.faq-list summary:hover{text-decoration:underline;text-underline-offset:4px}
.faq-answer{max-width:800px;padding:0 0 18px}
.enquiry-row{display:flex;align-items:center;justify-content:space-between;gap:42px}
.enquiry-row>div{max-width:720px}
.enquiry-row h2{margin-bottom:12px}
.enquiry-row .button{flex-shrink:0}
.site-footer{background:var(--forest);color:var(--white);padding:36px 0 18px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:52px}
.site-footer h2{font-family:'DM Sans',Arial,sans-serif;font-size:1rem;font-weight:700;line-height:1.5;letter-spacing:0;margin-bottom:12px;text-wrap:initial}
.business-info p{font-size:.91rem;margin-bottom:12px}
.business-info .company-details{font-size:.76rem;line-height:1.6;color:var(--sage)}
.business-info a{text-decoration:none}
.business-info a:hover{text-decoration:underline}
.footer-links{display:flex;flex-direction:column;align-items:start}
.footer-links a{text-decoration:none;font-size:.91rem;line-height:1.5;padding:5px 0}
.footer-links a:hover{text-decoration:underline}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid rgb(220 230 216 / .25);padding-top:16px;margin-top:22px;color:var(--sage);font-size:.76rem}
.footer-bottom a{text-decoration:none}
.footer-bottom a:hover{text-decoration:underline}
@media(max-width:1150px){
 .header-row{gap:12px;min-height:68px}
 .brand-symbol{width:38px;height:38px}
 .brand-wordmark{width:190px}
 .main-nav{gap:12px}
 .main-nav a{font-size:.78rem}
 .header-contact{font-size:.85rem;padding:9px 12px}
}
@media(max-width:1000px){
 .header-row{min-height:64px;position:relative;gap:12px}
 .brand{margin-right:auto}
 .brand-symbol{width:36px;height:36px}
 .brand-wordmark{width:180px}
 .menu-toggle{display:block;flex-shrink:0}
 .main-nav{display:none;position:absolute;top:calc(100% + 35px);left:0;right:0;padding:12px 18px;background:var(--white);border:1px solid rgb(21 61 50 / .2);box-shadow:0 12px 20px rgb(21 61 50 / .12);border-radius:0 0 12px 12px}
 .main-nav.is-open{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
 .main-nav a{font-size:.9rem;padding-block:12px;white-space:normal}
 .header-contact{min-height:42px}
 .footer-grid{gap:30px;grid-template-columns:1.3fr 1fr 1fr}
}
@media(max-width:700px){
 :root{--header-offset:99px;--section-space:30px}
 .container{width:calc(100% - 36px)}
 .header-row{gap:8px}
 .brand{gap:6px}
 .brand-symbol{width:32px;height:32px}
 .brand-wordmark{width:153px}
 .header-contact{font-size:.79rem;padding:8px 10px;min-height:40px}
 .menu-toggle{width:40px;min-height:40px}
 .language-links{gap:1px;min-height:34px}
 .language-links a{flex:1;text-align:center;padding:6px 2px;font-size:.7rem}
 .hero{display:block}
 .hero-picture{display:block;min-height:0;aspect-ratio:3/1}
 .hero-picture img{position:static;height:auto;aspect-ratio:3/1;object-fit:cover}
 .hero::after{display:none}
 .hero-layer{padding-block:24px}
 .hero-copy{max-width:none}
 .hero h1{font-size:2rem;margin-bottom:12px}
 .desktop-break{display:none}
 .hero-copy>p:not(.eyebrow){margin-bottom:18px}
 .eyebrow{font-size:.67rem;letter-spacing:.1em}
 .section-heading,.editorial-grid{grid-template-columns:1fr;gap:14px}
 .section-heading{margin-bottom:20px}
 .assessment-grid{grid-template-columns:1fr;gap:14px}
 .assessment-card{padding:20px;gap:14px}
 .card-heading{gap:6px 15px}
 .button{font-size:.87rem;min-height:44px;padding:11px 15px;max-width:100%}
 .hero .button{font-size:.84rem}
 .enquiry-row{display:block}
 .enquiry-row .button{margin-top:20px}
 .footer-grid{grid-template-columns:1fr 1fr;gap:20px 28px}
 .business-info{grid-column:1/-1}
 .business-info p{margin-bottom:10px}
 .footer-links a{padding:8px 0;min-height:38px;font-size:.85rem}
 .site-footer{padding-top:28px}
 .footer-bottom{margin-top:18px}
}
@media(max-width:360px){.container{width:calc(100% - 28px)}.brand-wordmark{width:122px}.brand-symbol{width:28px;height:28px}.header-row{gap:7px}.header-contact{font-size:.73rem;padding:8px}.menu-toggle{width:36px}.hero h1{font-size:1.85rem}.hero .button{font-size:.78rem;padding-inline:12px}}
/* Reflow against the available header width, including browser/text scaling. */
@container(max-width:1000px){
 .header-row{min-height:64px;position:relative;gap:12px}
 .brand{margin-right:auto}
 .brand-symbol{width:36px;height:36px}
 .brand-wordmark{width:180px}
 .menu-toggle{display:block;flex-shrink:0}
 .main-nav{display:none;position:absolute;top:calc(100% + 35px);left:0;right:0;padding:12px 18px;background:var(--white);border:1px solid rgb(21 61 50 / .2);box-shadow:0 12px 20px rgb(21 61 50 / .12);border-radius:0 0 12px 12px}
 .main-nav.is-open{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
 .main-nav a{font-size:.9rem;padding-block:12px;white-space:normal}
 .header-contact{min-height:44px;font-size:.85rem;padding:9px 12px}
}
@container(max-width:700px){.header-row{gap:8px}.brand{gap:6px}.brand-symbol{width:32px;height:32px}.brand-wordmark{width:153px}.header-contact{font-size:.79rem;padding:8px 10px}.menu-toggle{width:40px;min-height:44px}}
@container(max-width:360px){.brand-wordmark{width:122px}.brand-symbol{width:28px;height:28px}.header-row{gap:7px}.header-contact{font-size:.73rem;padding:8px}.menu-toggle{width:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}


/* Agreed English v47 body layouts only. */
:root{--ink:var(--forest);--deep:var(--forest);--lime:var(--sage);--muted:var(--forest)}
body.v47-content .container{width:min(1160px,calc(100% - 48px));max-width:none;margin-inline:auto}
body.v47-content .section,body.v47-content .assurance,body.v47-content .forest-section,body.v47-content .photo-cta,body.v47-content .cta{padding-block:var(--section-space)}
body.v47-content .content-narrow{max-width:none;width:100%;margin-inline:0;text-align:left}
body.v47-content .section-intro,body.v47-content .section-heading{margin-left:0}
body.v47-content .v47-prose{margin-top:20px;max-width:none}
body.v47-content .v47-prose>p{max-width:900px;margin-bottom:16px}
body.v47-content .hero-copy{padding:0}
body.v47-content .hero h1{font-size:clamp(2rem,3.25vw,3rem);line-height:1.18}
body.v47-content .hero-subtitle{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.3;margin-bottom:0}
body.v47-content .hero.hero-subject-left::after{background:linear-gradient(270deg,rgba(21,61,50,.96),rgba(21,61,50,.84) 30%,rgba(21,61,50,.1) 65%,transparent)}
body.v47-content .hero-subject-left .hero-copy{margin-left:auto}
body.v47-content .hero-picture img{object-position:center}
.v47-photo-credit{position:absolute;right:20px;bottom:12px;z-index:2;padding:4px 8px;font-size:.7rem;background:rgba(21,61,50,.85);color:white}
body.v47-content .button{background:var(--forest);color:var(--white);border:1px solid var(--forest);border-radius:12px;min-height:44px;white-space:normal}
body.v47-content .hero .button,body.v47-content .dark-panel .button,body.v47-content .cta .button{background:var(--sage);color:var(--forest);border-color:var(--sage)}
body.v47-content .card .button,body.v47-content .route-card .button{background:var(--forest);color:white;border-color:var(--forest)}
body.v47-content .cta{background:var(--forest);color:white}
body.v47-content .dark-panel{background:var(--forest);color:white}
body.v47-content .dark-panel .route-card,body.v47-content .card,body.v47-content .route-card{color:var(--forest)}
body.v47-content .faq-section{background:var(--white);color:var(--forest)}
body.v47-content .faq-page,body.v47-content .faq-category{max-width:none;width:100%;margin-inline:0}
body.v47-content .faq-category h2,body.v47-content .faq-category .eyebrow{color:var(--forest)}
body.v47-content .faq-category-title{font-family:'DM Sans',Arial,sans-serif;font-size:1rem;letter-spacing:0;line-height:1.4;font-weight:700;margin:20px 0 8px}
body.v47-content .faq-category+.faq-category{margin-top:24px}
body.v47-content .faq-list details{background:transparent;border:0;border-bottom:1px solid rgba(21,61,50,.25);border-radius:0;margin:0;overflow:visible}
body.v47-content .faq-list summary{padding:12px 34px 12px 0;min-height:48px;color:var(--forest);background:transparent}
body.v47-content .faq-list p{margin:0;padding:0 0 16px;color:var(--forest);background:transparent}
.service-table{border-collapse:collapse;width:100%;text-align:left;margin-top:8px}
.service-table th,.service-table td{padding:14px 16px;border-bottom:1px solid rgba(21,61,50,.2);vertical-align:middle}
.service-table thead{background:var(--forest);color:white}
.service-table th:first-child{padding-left:18px}
.service-table tbody th{font-weight:600;width:40%}
.service-table tbody td:nth-child(2){width:25%}
.service-table .button{font-size:.84rem;padding:9px 14px;min-height:40px}
.booking-note{font-size:.9rem;margin-top:20px;max-width:100%!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:22px 0}
.learning-grid h3{font-size:1.4rem;margin-bottom:12px}
.learning-grid p{margin:0}
.case-citation{font-weight:600;font-size:.85rem;margin:8px 0 14px}
.legal-cases p{margin-bottom:16px}
.guidance-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}
.guidance-item{display:flex;flex-direction:column;gap:14px;padding:20px;background:var(--white);border-radius:12px;min-width:0}
.guidance-item h3{font-size:1.35rem}
.guidance-item .button{margin-top:auto;align-self:start}
.research-item{padding:20px 0;border-bottom:1px solid rgba(21,61,50,.2);max-width:none}
.research-item h3{font-size:1.35rem;margin-bottom:8px}
.research-item p{margin:10px 0}
.research-item .button{margin-top:8px}
.return-link{display:inline-block;margin:12px;font-size:.9rem}
body.v47-content .profile-links a{background:var(--white);color:var(--forest);border-radius:12px;min-height:150px;padding:22px}
body.v47-content .profile-links .official-social-logo{width:84px;height:84px;max-width:84px;max-height:84px;object-fit:contain}
body.v47-content .profile-links a span{border-radius:10px;padding:9px 12px;background:var(--forest);color:white;font-size:.85rem}
body.v47-content .detail-grid,body.v47-content .credentials,body.v47-content .editorial-grid{align-items:start;gap:32px}
body.v47-content .detail-copy h3{margin:0 0 12px}
body.v47-content .detail-copy p{margin-bottom:20px}
@media(max-width:800px){.learning-grid,.guidance-list{grid-template-columns:1fr}.service-table th,.service-table td{padding:12px}.service-table .button{font-size:.8rem}}
@media(max-width:700px){body.v47-content .container{width:calc(100% - 36px)}body.v47-content .hero-copy{max-width:none}body.v47-content .hero-subject-left .hero-copy{margin-left:0}.service-table thead{display:none}.service-table,.service-table tbody,.service-table tr,.service-table th,.service-table td{display:block;width:100%!important}.service-table tr{padding:16px 0;border-bottom:1px solid rgba(21,61,50,.25)}.service-table th,.service-table td{padding:6px 0!important;border:0}.service-table tbody th{font-size:1.08rem}.service-table td[data-label]::before{content:attr(data-label) ': ';font-weight:600}.service-table .button{min-height:44px}.learning-grid{gap:24px}.v47-prose .legal-cases{grid-template-columns:1fr}.hero .hero-picture img{height:auto;aspect-ratio:3/1}body.v47-content .section .container{margin-inline:auto}body.v47-content .brownfield-grid{gap:20px}}

/* FAQ container uses the same content edges as every other section. */
body.v47-content .container.faq-page{width:min(1160px,calc(100% - 48px));margin-inline:auto}
@media(max-width:700px){body.v47-content .container.faq-page{width:calc(100% - 36px)}}
/* Shared content edges and readable compact answers on forest panels. */
body.v47-content .container.content-narrow{width:min(1160px,calc(100% - 48px));margin-inline:auto}
body.v47-content .dark-panel .section-intro p,body.v47-content .dark-panel .faq-list summary,body.v47-content .dark-panel .faq-list p{color:var(--white)}
body.v47-content .faq-list details{padding:0}
body.v47-content .dark-panel .faq-list,body.v47-content .dark-panel .faq-list details{border-color:rgb(220 230 216 / .35)}
@media(max-width:700px){body.v47-content .container.content-narrow{width:calc(100% - 36px)}}


/* Owner-requested v47 corrections. English only. */
body.v47-content .hero.v47-split-hero{display:block;isolation:auto;position:relative;background:var(--forest);color:var(--white)}
body.v47-content .hero.v47-split-hero::after,body.v47-content .v47-split-hero .hero-photo::after{display:none;content:none;background:none}
body.v47-content .v47-split-hero .hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);min-height:360px;align-items:stretch}
body.v47-content .v47-split-hero .hero-copy{max-width:none;width:auto;align-self:center;margin:0;padding:38px 40px 38px max(24px,calc((100vw - 1160px)/2))}
body.v47-content .v47-split-hero .hero-copy>p{max-width:550px}
body.v47-content .v47-split-hero .hero-photo{position:relative;min-height:360px;background:var(--sage);min-width:0}
body.v47-content .v47-split-hero .hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:none;opacity:1;mix-blend-mode:normal}
body.v47-content .hero.original-home-hero .hero-grid{grid-template-columns:minmax(0,1fr) 48%;min-height:0}
body.v47-content .hero.original-home-hero .hero-copy{padding:clamp(42px,5vw,70px) 54px clamp(42px,5vw,65px) max(20px,calc((100vw - 1180px)/2))}
body.v47-content .hero.original-home-hero h1{font-size:clamp(2.9rem,6vw,5.6rem);margin:18px 0 24px;line-height:1.13}
body.v47-content .hero.original-home-hero p{font-size:1.12rem;line-height:1.7;max-width:550px;margin-bottom:16px}
body.v47-content .hero.original-home-hero .hero-photo{min-height:clamp(350px,40vw,480px)}
body.v47-content .hero.original-home-hero .hero-photo img{object-position:right bottom}
body.v47-content .hero.original-home-hero .hero-actions{margin-top:34px}
body.v47-content .hero .button.outline{background:transparent;color:var(--white);border-color:var(--sage)}
body.v47-content .section,body.v47-content .assurance,body.v47-content .forest-section,body.v47-content .photo-cta,body.v47-content .cta{padding-block:clamp(30px,3.4vw,48px)}
body.v47-content .v47-bg-forest{background:var(--forest);color:var(--white)}
body.v47-content .v47-bg-cream{background:var(--cream);color:var(--forest)}
body.v47-content .v47-bg-sage{background:var(--sage);color:var(--forest)}
body.v47-content .v47-bg-white{background:var(--white);color:var(--forest)}
body.v47-content :is(.v47-bg-cream,.v47-bg-sage,.v47-bg-white) :is(h2,h3,p,.eyebrow,.text-link,summary){color:var(--forest)}
body.v47-content :is(.v47-bg-cream,.v47-bg-sage,.v47-bg-white) .button{background:var(--forest);color:var(--white);border-color:var(--forest)}
body.v47-content .v47-bg-forest .button{background:var(--sage);color:var(--forest);border-color:var(--sage)}
body.v47-content .v47-bg-forest :is(.card,.route-card,.assurance-award-copy) :is(p,h3,.eyebrow){color:var(--forest)}
body.v47-content .v47-bg-forest :is(.card,.route-card) .button{background:var(--forest);color:var(--white);border-color:var(--forest)}
body.v47-content .v47-bg-forest>.container>.section-intro :is(p,h2),body.v47-content .v47-bg-forest>.container>p{color:var(--white)}
body.v47-content .v47-bg-forest .faq-list :is(summary,p){color:var(--white)}
body.v47-content .v47-bg-forest .faq-list details{border-color:rgb(220 230 216 / .35)}
body.v47-content .v47-tree-policy{display:block;margin-block:20px;font-size:1.05rem}
body.v47-content .profile-links{align-items:stretch;grid-auto-rows:1fr;gap:18px}
body.v47-content .profile-links a{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:18px;background:var(--white);color:var(--forest);min-height:190px;padding:22px;border:1px solid var(--sage)}
body.v47-content .profile-links img{height:80px;width:100%;max-width:185px;max-height:none;object-fit:contain;margin:auto}
body.v47-content .profile-links .official-social-logo{height:80px;width:80px;max-width:80px;max-height:80px}
body.v47-content .profile-links a span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;width:100%;margin-top:auto;text-align:center;border-radius:12px;background:var(--sage);color:var(--forest);padding:10px 12px;font-size:.85rem;line-height:1.4}
body.v47-content .service-table tbody th{width:65%}
body.v47-content .service-table tbody td{width:35%}
body.v47-content .service-table td::before{content:none}
body.v47-content .plant-grid{gap:24px}
@media(max-width:900px){body.v47-content .hero.original-home-hero .hero-copy{padding-left:25px;padding-right:25px}}
@media(max-width:700px){
 body.v47-content .v47-split-hero .hero-grid,body.v47-content .hero.original-home-hero .hero-grid{display:flex;flex-direction:column-reverse;min-height:0}
 body.v47-content .v47-split-hero .hero-photo,body.v47-content .hero.original-home-hero .hero-photo{min-height:0;height:280px;flex:none}
 body.v47-content .v47-split-hero .hero-copy,body.v47-content .hero.original-home-hero .hero-copy{width:100%;padding:30px 18px;margin:0}
 body.v47-content .hero.original-home-hero h1{font-size:clamp(2.65rem,11vw,4.6rem);margin:12px 0 20px}
 body.v47-content .hero.original-home-hero p{font-size:1.03rem}
 body.v47-content .service-table tbody th,body.v47-content .service-table tbody td{width:100%}
 body.v47-content .profile-links{grid-template-columns:1fr}
}

body.v47-content .sub-hero{padding-block:clamp(30px,3.4vw,48px)}
