@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root {
    --ink:#142b25;
    --forest:#153d32;
    --deep:#0e2d26;
    --lime:#d7df9b;
    --cream:#f6f5ef;
    --white:#fff;
    --line:#d9dfd8;
    --muted:#5d7168
}
* {
    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 #b2c46c;
    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:#e4ece5;
    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:#e5eab7
}
.button.dark {
    background:var(--forest);
    color:white
}
.button.dark:hover {
    background:#245445
}
.button.outline {
    background:transparent;
    border:1px solid #dce6db;
    color:#fff
}
.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:#dce6dc;
    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:#477050
}
.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(14,45,38,.17),transparent 40%)
}
.photo-note {
    position:absolute;
    bottom:28px;
    right:28px;
    z-index:1;
    background:rgba(14,45,38,.9);
    color:white;
    padding:14px 18px;
    font-size:.84rem;
    max-width:220px
}
.quick-strip {
    background:#e9eee8;
    border-bottom:1px solid #d7e0d5
}
.quick-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr)
}
.quick-grid div {
    padding:21px 26px;
    border-right:1px solid #d5dfd2;
    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:#4f6158;
    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:#66836b;
    margin-bottom:40px
}
.card p {
    color:#53645b;
    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:#ccdcc5
}
.photo-frame img {
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0
}
.dark-panel {
    background:#dfe8dc
}
.checklist {
    list-style:none;
    padding:0;
    margin:25px 0 30px
}
.checklist li {
    padding:13px 0 13px 30px;
    border-bottom:1px solid #c4d1c3;
    position:relative
}
.checklist li:before {
    content:'✓';
    position:absolute;
    left:0;
    color:#245b3b;
    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 #8da79a;
    padding-top:24px
}
.process-step .num {
    color:var(--lime);
    font-size:.88rem;
    font-weight:700;
    letter-spacing:.15em
}
.process-step p {
    color:#d5e2da
}
.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 #cbd6cb;
    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:#4d6055
}
.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:#d5e3d8;
    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 #416156;
    margin-top:44px;
    padding-top:20px;
    font-size:.82rem;
    color:#b8c9bf;
    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:#d5e4da;
    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 #0002
    }
    .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 #d5dfd2
    }
    .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 #0002
    }
    .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:#fff;
    border:1px solid #9caea1;
    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 #bdca8a;
    outline-offset:1px
}
.field input::placeholder,.field textarea::placeholder {
    color:#65766c
}
.enquiry-form .button {
    font:700 1rem/1.3 'DM Sans',sans-serif
}
.form-privacy {
    font-size:.88rem;
    color:#53645b;
    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:#fff;
        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 #0002
    }
    .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:#fff;
    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:#fff;
    text-align:center;
    text-decoration:none;
    padding:20px;
    color:var(--forest);
    font-weight:700
}
.assurance-links a:hover {
    border-color:#819984;
    background:#f8faf6
}
.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 #0002
    }
    .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:#12382e;
    color:#fff;
    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:#e0e9df;
    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:#fff;
    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:#4f6158
}
.plant-source {
    margin:27px 0 0;
    color:#4f6158
}
.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:#fff;
    border:1px solid var(--line);
    padding:25px 28px
}
.guidance-item h3 {
    font-size:1.45rem;
    margin-bottom:8px
}
.guidance-item p {
    color:#53645b;
    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:#e9eee8
}
.route-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
}
.route-card {
    background:#fff;
    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:#52635a;
    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:#52635a
}
.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:#52635a
}
.field small {
    display:block;
    color:#52635a;
    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:#52635a}
.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:#fff;border:1px solid var(--line);padding:28px}
.river-services .card-number {display:block;margin-bottom:22px}
.river-services p {color:#52635a}
.river-note {max-width:820px;margin:30px 0 0;color:#43594d}
.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(14,45,38,.85); color:#fff; 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:#fff; border:1px solid var(--line); color:var(--forest); font-weight:700; }
.sitemap-page a:hover { background:#eef2e8; }
@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:#fff; 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:#fff; 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:#fff; 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:#fff; 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:#e7eedf; }
.faq-page .faq-list details { background:#edf2e6; border:1px solid #c7d2c3; border-radius:8px; padding:0; margin:12px 0; overflow:hidden; }
.faq-page .faq-list summary { color:#153d32; background:#edf2e6; padding:18px 20px; }
.faq-page .faq-list summary:hover { background:#e3ead9; }
.faq-page .faq-list summary:focus-visible { outline:3px solid #d7df9b; outline-offset:-4px; }
.faq-page .faq-list p { color:#29483f; background:#fff; 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:#f2f4e9; border-top:1px solid #d8dfd2; border-bottom:1px solid #d8dfd2; 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:#29483f; 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:#f2f4e9; color:#153d32; }
.faq-section .faq-category h2 { color:#153d32; }
.faq-section .faq-category .eyebrow { color:#355c50; }
.faq-section .faq-list details { background:#ffffff; border:1px solid #bdcbbd; border-radius:8px; padding:0; margin:12px 0; overflow:hidden; color:#153d32; }
.faq-section .faq-list summary { color:#153d32; background:#e7eddf; padding:18px 20px; font-weight:700; }
.faq-section .faq-list summary:hover { color:#0d2f27; background:#dce6d3; }
.faq-section .faq-list summary:focus-visible { color:#0d2f27; background:#dce6d3; outline:3px solid #153d32; outline-offset:-4px; }
.faq-section .faq-list details[open] summary { color:#0d2f27; background:#dce6d3; border-bottom:1px solid #bdcbbd; }
.faq-section .faq-list p { color:#203f36; background:#ffffff; padding:18px 20px; margin:0; }
.faq-section .faq-list a { color:#0b4d3d; 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:#062e25; }

.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:#f8faf6; color:var(--forest); text-decoration:none; }
.assurance-award-link:hover { border-color:#819984; background:#f2f5ed; }
.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; } }
