/*
Theme Name: Rubbish Removal Lewisham SE13 Theme
Theme URI: https://example.com/
Author: Custom Theme
Description: A modern, reusable WordPress theme for rubbish removal and local service businesses.
Version: 4.8
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: modern-rubbish-removal
*/
:root {
    --primary:#006241;
    --primary-dark:#006241;
    --primary-soft:#006241;
    --ink:#006241;
    --muted:#006241;
    --line:#006241;
    --surface:#FFFFFF;
    --surface-alt:#006241;
    --dark:#006241;
    --radius:18px;
    --shadow:0 16px 45px rgba(0,0,0,.10);
    --container:1220px
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    font-family:Poppins,sans-serif;
    font-size:16px;
    line-height:1.65;
    color:var(--ink);
    background:#FFFFFF
}

img {
    max-width:100%;
    height:auto;
    display:block
}

a {
    color:var(--primary-dark);
    text-decoration:none
}

a:hover {
    color:var(--primary)
}

.container {
    width:min(var(--container),calc(100% - 40px));
    margin-inline:auto
}

.site-main {
    overflow:hidden
}

.section {
    padding:10px 0
}

.section-sm {
    padding:60px 0
}

.bg-alt {
    background:var(--surface-alt)
}

.eyebrow {
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 12px;
    border-radius:999px;
    background:var(--primary-soft);
    color:var(--primary-dark);
    font-size:13px;
    font-weight:600;
    letter-spacing:.03em;
    text-transform:uppercase
}

.section-heading {
    max-width:760px;
    margin-bottom:38px
}

.section-heading.center {
    text-align:center;
    margin-inline:auto;
    margin-bottom:46px
}

.section-heading p {
    font-size:18px;
    color:var(--muted);
    margin:12px 0 0
}

h1,h2,h3,h4 {
    margin:0 0 18px;
    line-height:1.15;
    letter-spacing:-.03em;
    color:var(--ink)
}

h1 {
    font-size:clamp(42px,5vw,44px);
    font-weight:700
}

h2 {
    font-size:clamp(32px,4vw,34px);
    font-weight:700
}

h3 {
    font-size:clamp(26px,3vw,28px);
    font-weight:600
}

h4 {
    font-size:clamp(21px,2.3vw,24px);
    font-weight:600
}

p {
    margin:0 0 20px
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:50px;
    padding:13px 24px;
    border-radius:999px;
    border:2px solid transparent;
    background:var(--primary);
    color:#FFFFFF;
    font:600 16px/1 Poppins,sans-serif;
    transition:.2s ease;
/*     box-shadow:0 8px 24px rgba(0,0,0,.22) */
box-shadow:none;
}

.btn:hover {
    background:#006241;
    color:#FFFFFF;
    transform:translateY(-1px)
}

.btn-outline {
    background:#FFFFFF;
    color:var(--ink);
    border-color:var(--line);
    box-shadow:none
}

.btn-outline:hover {
    border-color:var(--primary);
    background:var(--primary-soft);
    color:var(--primary-dark)
}

/* ==========================================================
   HEADER CSS — TOP BAR, LOGO, MENU AND HEADER BUTTONS
========================================================== */

.topbar {
    background:#006241;
    color:#ffff;
    font-size:13px
}

.topbar-inner {
    min-height:38px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px
}

.topbar span {
    display:flex;
    align-items:center;
    gap:8px
}

.site-header {
    position:relative;
    z-index:50;
    background:#FFFFFF;
	   border-bottom: 1px solid rgba(223, 232, 229, 0.5);
/*  border-bottom:0.5px solid var(--line)  */
}

.header-inner {
    min-height:82px;
    display:grid;
    grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);
    align-items:center;
    gap:28px
}

.site-branding {
    display:flex;
    align-items:center;
    gap:12px
}

.brand-mark {
    width:42px;
    height:42px;
    border-radius:13px;
    background:#006241;
    display:grid;
    place-items:center;
    color:var(--primary);
    font-size:22px
}

.site-title {
    font-size:20px;
    font-weight:700;
    color:var(--ink);
    line-height:1.2
}

.site-tagline {
    font-size:12px;
    color:var(--muted);
    margin:2px 0 0
}

.custom-logo {
    max-height:54px;
    width:auto
}

.primary-nav ul {
    display:flex;
    align-items:center;
    gap:8px;
    list-style:none;
    padding:0;
    margin:0
}

.primary-nav a {
    display:block;
    padding:11px 13px;
    color:var(--ink);
    font-size:16px;
    font-weight:500;
    border-radius:10px
}

.primary-nav a:hover,.primary-nav .current-menu-item>a {
    background:var(--primary-soft);
    color:var(--primary-dark)
}

.header-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:15px
}

.header-phone {
    font-weight:600;
    color:var(--ink);
    white-space:nowrap
}

.menu-toggle {
    display:none;
    border:0;
    background:var(--primary-soft);
    width:44px;
    height:44px;
    border-radius:11px;
    font-size:21px;
    color:var(--ink)
}

.hero {
    padding:80px 0 88px;
    background:linear-gradient(120deg,#FFFFFF 0%,#FFFFFF 100%)
}

.hero-grid {
    display:grid;
    grid-template-columns:1.02fr .98fr;
    gap:64px;
    align-items:center
}

.hero-copy>p {
    font-size:18px;
    color:var(--muted);
    max-width:650px
}

.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:13px;
    margin:30px 0
}

.trust-row {
    display:flex;
    flex-wrap:wrap;
    gap:22px;
    color:var(--muted);
    font-size:14px
}

.trust-row span {
    display:flex;
    gap:7px;
    align-items:center
}

.hero-image-wrap {
    position:relative
}

.hero-image {
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:28px;
    box-shadow:var(--shadow)
}

.hero-badge {
    position:absolute;
    left:-26px;
    bottom:28px;
    background:#FFFFFF;
    border:1px solid var(--line);
    border-radius:16px;
    padding:16px 20px;
    box-shadow:var(--shadow);
    font-weight:600
}

.hero-badge strong {
    display:block;
    font-size:25px;
    color:var(--primary-dark)
}

.cards {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px
}

.card {
    background:#FFFFFF;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:28px;
    box-shadow:0 8px 28px rgba(0,0,0,.05)
}

.card:hover {
    box-shadow:var(--shadow);
    transform:translateY(-3px);
    transition:.2s
}

.card-icon {
    width:52px;
    height:52px;
    border-radius:15px;
    background:var(--primary-soft);
    color:var(--primary-dark);
    display:grid;
    place-items:center;
    font-size:22px;
    margin-bottom:22px
}

.card p {
    color:var(--muted)
}

.text-link {
    font-weight:600
}

.split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center
}

.split-image {
    border-radius:24px;
    box-shadow:var(--shadow);
    aspect-ratio:4/3;
    object-fit:cover
}

.single-featured-image {
    display:block;
    width:100%;
    height:auto;
    max-height:620px;
    margin:0 0 34px;
    border-radius:24px;
    object-fit:cover;
    box-shadow:var(--shadow)
}

.check-list {
    list-style:none;
    padding:0;
    margin:25px 0
}

.check-list li {
    position:relative;
    padding:8px 0 8px 31px
}

.check-list li:before {
    content:'✓';
    position:absolute;
    left:0;
    top:7px;
    color:var(--primary);
    font-weight:700
}

.steps {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
    counter-reset:step
}

.step {
    position:relative;
    background:#FFFFFF;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:28px 24px
}

.step:before {
    counter-increment:step;
    content:counter(step);
    width:38px;
    height:38px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--primary);
    color:#FFFFFF;
    font-weight:700;
    margin-bottom:20px
}

.testimonial {
    padding:30px;
    border-radius:var(--radius);
    background:#FFFFFF;
    border:1px solid var(--line)
}

.stars {
    color:#000000;
    letter-spacing:2px;
    margin-bottom:15px
}

.cta {
    background:#006241;
    color:#FFFFFF;
    border-radius:28px;
    padding:52px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px
}

.cta h2,.cta p {
    color:#FFFFFF
}

.cta p {
    color:#ffff;
    margin-bottom:0
}

.page-hero {
	padding-top: 40px;
    padding-right: 0px;
    padding-bottom: 40px;
    padding-left: 0px
    background:linear-gradient(120deg,#FFFFFF,#FFFFFF)
}

.page-hero p {
    font-size:18px;
    color:var(--muted);
    max-width:740px
}

.content-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:45px
}

.prose {
    max-width:850px
}

.prose h2,.prose h3,.prose h4 {
    margin-top:38px
}

.prose ul {
    padding-left:22px
}

.contact-grid {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:40px
}

.contact-card {
    padding:30px;
    background:#FFFFFF;
    border:1px solid var(--line);
    border-radius:var(--radius)
}

.field-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}

.contact-card input,.contact-card textarea,.contact-card select {
    width:100%;
    padding:14px 15px;
    border:1px solid var(--line);
    border-radius:11px;
    font:400 16px Poppins,sans-serif;
    background:#FFFFFF
}

.contact-card textarea {
    min-height:150px
}

.blog-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px
}

.post-card {
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    background:#FFFFFF
}

.post-card img {
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover
}

.post-card-body {
    padding:24px
}

.post-meta {
    font-size:13px;
    color:var(--muted);
    margin-bottom:10px
}

.pagination {
    margin-top:35px
}

.sidebar-widget {
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
    margin-bottom:22px
}

.sidebar-widget ul {
    list-style:none;
    padding:0;
    margin:0
}

.sidebar-widget li {
    padding:8px 0;
    border-bottom:1px solid var(--line)
}

/* ==========================================================
   FOOTER CSS — FOOTER COLUMNS, LINKS AND BOTTOM BAR
========================================================== */

.site-footer {
    background:var(--dark);
    color:#000000;
    margin-top:0
}

.footer-main {
    padding:65px 0 48px
}

.footer-grid {
    display:grid;
    grid-template-columns:1.35fr .8fr 1fr 1fr;
    gap:45px
}

.site-footer h3,.site-footer h4 {
    color:#FFFFFF
}

.site-footer p,.site-footer a {
    color:#000000
}

.site-footer a:hover {
    color:#FFFFFF
}

.footer-menu {
    list-style:none;
    padding:0;
    margin:0
}

.footer-menu li {
    margin:9px 0
}

.footer-bottom {
    border-top:1px solid rgba(255,255,255,.12);
    padding:20px 0;
    font-size:14px
}

.footer-bottom-inner {
    display:flex;
    justify-content:space-between;
    gap:20px
}

.floating-contact {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:40;
    width:56px;
    height:56px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#006241;
    color:#FFFFFF;
    font-size:25px;
    box-shadow:0 10px 30px rgba(0,0,0,.18)
}

@media(max-width:1050px) {
    .header-inner {
        grid-template-columns:1fr auto
    }
    .primary-nav {
        grid-column:1/-1;
        display:none;
        border-top:1px solid var(--line);
        padding:10px 0 16px
    }
    .primary-nav.is-open {
        display:block
    }
    .primary-nav ul {
        flex-direction:column;
        align-items:stretch
    }
    .header-actions .header-phone {
        display:none
    }
    .menu-toggle {
        display:block
    }
    .hero-grid,.split,.contact-grid {
        grid-template-columns:1fr
    }
    .hero-image-wrap {
        max-width:740px
    }
    .cards,.blog-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .steps {
        grid-template-columns:repeat(2,1fr)
    }
    .footer-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:700px) {
    .container {
        width:min(100% - 28px,var(--container))
    }
    .topbar {
        display:none
    }
    .header-inner {
        min-height:72px;
        gap:12px
    }
    .header-actions .btn {
        display:none
    }
    .site-title {
        font-size:17px
    }
    .hero {
        padding:58px 0
    }
    .hero-grid {
        gap:38px
    }
    .hero-badge {
        left:12px;
        bottom:12px
    }
    .section {
        padding:64px 0
    }
    .cards,.blog-grid,.steps,.footer-grid {
        grid-template-columns:1fr
    }
    .cta {
        padding:34px 25px;
        display:block
    }
    .cta .btn {
        margin-top:25px
    }
    .field-grid {
        grid-template-columns:1fr
    }
    .content-grid {
        grid-template-columns:1fr
    }
    .footer-bottom-inner {
        display:block
    }
    .trust-row {
        display:grid;
        gap:10px
    }
}

/* Focused mobile-menu, blog-sidebar and post-navigation improvements */
.menu-toggle i {
    line-height:1
}

.menu-toggle.is-active {
    background:var(--primary);
    color:#FFFFFF
}

.floating-contact i {
    font-size:28px
}

.recent-posts-list li {
    padding:13px 0
}

.recent-posts-list li:first-child {
    padding-top:0
}

.recent-posts-list li:last-child {
    border-bottom:0;
    padding-bottom:0
}

.recent-posts-list a {
    display:block;
    color:var(--ink);
    font-weight:600;
    line-height:1.45
}

.recent-posts-list a:hover {
    color:var(--primary-dark)
}

.recent-posts-list span {
    display:block;
    color:var(--muted);
    font-size:13px;
    margin-top:4px
}

.single-post-navigation {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    border-top:1px solid var(--line);
    margin-top:48px;
    padding-top:28px
}

.post-navigation-item a {
    display:flex;
    min-height:124px;
    flex-direction:column;
    justify-content:center;
    padding:22px 24px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#FFFFFF;
    color:var(--ink);
    box-shadow:0 8px 24px rgba(0,0,0,.05)
}

.post-navigation-item a:hover {
    border-color:var(--primary);
    box-shadow:0 12px 30px rgba(0,0,0,.1);
    transform:translateY(-2px)
}

.post-navigation-item span {
    font-size:13px;
    color:var(--primary-dark);
    font-weight:600;
    margin-bottom:7px
}

.post-navigation-item strong {
    font-size:16px;
    line-height:1.45
}

.post-navigation-next {
    text-align:right
}

.post-navigation-next a {
    align-items:flex-end
}

@media(max-width:1050px) {
    .site-header {
        position:relative
    }
    .header-inner {
        position:relative;
        grid-template-columns:minmax(0,1fr) auto;
        gap:14px;
        min-height:74px
    }
    .header-actions {
        grid-column:2;
        grid-row:1
    }
    .primary-nav {
        position:absolute;
        left:0;
        right:0;
        top:100%;
        grid-column:auto;
        display:block;
        visibility:hidden;
        opacity:0;
        transform:translateY(-8px);
        pointer-events:none;
        background:#FFFFFF;
        border-top:1px solid var(--line);
        border-bottom:1px solid var(--line);
        padding:12px max(20px,calc((100vw - 1180px)/2));
        box-shadow:0 16px 30px rgba(0,0,0,.12);
        transition:opacity .2s ease,transform .2s ease,visibility .2s ease
    }
    .primary-nav.is-open {
        visibility:visible;
        opacity:1;
        transform:translateY(0);
        pointer-events:auto
    }
    .primary-nav ul {
        gap:2px
    }
    .primary-nav a {
        padding:13px 12px
    }
    .menu-toggle {
        display:grid;
        place-items:center;
        flex:0 0 44px
    }
    .header-actions .btn {
        display:none
    }
    .single-post-navigation {
        grid-template-columns:1fr
    }
    .post-navigation-next {
        text-align:left
    }
    .post-navigation-next a {
        align-items:flex-start
    }
}

@media(max-width:600px) {
    .topbar {
        display:none
    }
    .site-tagline {
        font-size:11px
    }
    .site-title {
        font-size:17px
    }
    .brand-mark {
        width:38px;
        height:38px
    }
    .floating-contact {
        right:16px;
        bottom:16px;
        width:54px;
        height:54px
    }
    .single-post-navigation {
        gap:14px
    }
    .post-navigation-item a {
        min-height:auto;
        padding:19px
    }
}


/* ==========================================================
   FOOTER LEGAL LINKS
========================================================== */
.footer-legal-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.footer-legal-links a {
    color: #FFFFFF;
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-legal-links a:hover,
.footer-legal-links a:focus-visible {
    color: var(--primary);
}

.footer-legal-links span {
    color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 760px) {
    .footer-legal-links {
        justify-content: flex-start;
    }
}


/* ==========================================================
   VERSION 4.0 REUSABLE BRAND, BLOG, TABLE AND FOOTER UPDATES
========================================================== */

:root{
    --secondary:#006241;
    --on-primary:#FFFFFF;
    --on-secondary:#FFFFFF;
    --footer-bg:#006241;
}

/* Primary and secondary backgrounds always use readable black text. */
.btn,
.card-icon,
.step:before,
.floating-contact,
.menu-toggle.is-active{
    color:var(--on-primary);
}

.btn{
    background:#006241;
    color:var(--on-secondary);
    border-color:transparent;
    box-shadow:0 8px 24px rgba(0,0,0,.25);
}

.btn:hover{
    background:#006241;
    color:var(--on-primary);
}

.eyebrow,
.primary-nav a:hover,
.primary-nav .current-menu-item>a{
    background:#006241;
    color:var(--on-secondary);
}

/* Menu icons */
.header-menu a{
    display:flex;
    align-items:center;
    gap:8px;
}

.header-menu a i{
    color:#000000;
    font-size:14px;
}

/* Single post metadata and typography */
.single-post-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px 18px;
    margin-top:18px;
    color:var(--muted);
    font-size:14px;
}

.single-post-meta span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}

.single-post article.prose h1,
.page-id-3 .prose h1,
.page-id-73 .prose h1,
.page-id-74 .prose h1{
    font-size:40px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
}

.single-post article.prose h2,
.page-id-3 .prose h2,
.page-id-73 .prose h2,
.page-id-74 .prose h2{
    font-size:34px !important;
    line-height:1.3 !important;
    font-weight:700 !important;
}

.single-post article.prose h3,
.page-id-3 .prose h3,
.page-id-73 .prose h3,
.page-id-74 .prose h3{
    font-size:24px !important;
    line-height:1.4 !important;
    font-weight:600 !important;
}

/* Responsive tables pasted from Excel, Word, websites or ChatGPT */
.table-responsive{
    width:100%;
    margin:26px 0;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border:1px solid var(--line);
    border-radius:14px;
    background:#FFFFFF;
}

.prose table,
.entry-content table,
.wp-block-table table{
    width:100%;
    min-width:640px;
    margin:0;
    border-collapse:collapse;
    border-spacing:0;
    background:#FFFFFF;
}

.prose th,
.prose td,
.entry-content th,
.entry-content td,
.wp-block-table th,
.wp-block-table td{
    padding:14px 16px;
    border:1px solid var(--line);
    text-align:left;
    vertical-align:top;
    line-height:1.55;
}

.prose th,
.entry-content th,
.wp-block-table th{
    background:var(--secondary);
    color:#FFFFFF;
    font-weight:600;
}

.prose tbody tr:nth-child(even),
.entry-content tbody tr:nth-child(even),
.wp-block-table tbody tr:nth-child(even){
    background:#FFFFFF;
}

/* Reusable secondary-colour footer */
.site-footer{
    background:#006241;
    color:#FFFFFF;
}

.site-footer h3,
.site-footer h4,
.site-footer p,
.site-footer a{
    color:#FFFFFF;
}

.site-footer a:hover,
.footer-menu i,
.footer-contact i{
    color:var(--primary);
}

.footer-menu a,
.footer-contact p{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.footer-menu i,
.footer-contact i{
    flex:0 0 16px;
    margin-top:4px;
}

.footer-logo img{
    max-width:220px;
    max-height:80px;
    width:auto;
    height:auto;
    object-fit:contain;
}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.16);
}

.footer-legal-links a{
    color:#FFFFFF;
}

.footer-legal-links a:hover{
    color:var(--primary);
}

@media(max-width:767px){
    .single-post article.prose h1,
    .page-id-3 .prose h1,
    .page-id-73 .prose h1,
    .page-id-74 .prose h1{font-size:32px !important;}

    .single-post article.prose h2,
    .page-id-3 .prose h2,
    .page-id-73 .prose h2,
    .page-id-74 .prose h2{font-size:28px !important;}

    .single-post article.prose h3,
    .page-id-3 .prose h3,
    .page-id-73 .prose h3,
    .page-id-74 .prose h3{font-size:22px !important;}

    .table-responsive{
        margin:20px 0;
        border-radius:10px;
    }

    .prose th,.prose td,
    .entry-content th,.entry-content td,
    .wp-block-table th,.wp-block-table td{
        padding:11px 12px;
        font-size:14px;
    }
}


/* Blog listing and single/legal page hero heading sizes */
.blog-grid .post-card h2{
    font-size:27px !important;
    line-height:1.3 !important;
    font-weight:700 !important;
}

.single-post .page-hero h1,
.page-id-3 .page-hero h1,
.page-id-73 .page-hero h1,
.page-id-74 .page-hero h1{
    font-size:40px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
}

.single-post-meta a{
    color:inherit;
    font-weight:600;
}
.single-post-meta a:hover{color:var(--primary-dark);}

@media(max-width:767px){
    .blog-grid .post-card h2{font-size:23px !important;}
    .single-post .page-hero h1,
    .page-id-3 .page-hero h1,
    .page-id-73 .page-hero h1,
    .page-id-74 .page-hero h1{font-size:32px !important;}
}


/* ==========================================================
   REUSABLE SINGLE POST + TABLE RESPONSIVE FIXES (v4.1)
   - responsive single-post layout
   - reliable image/text spacing
   - responsive Classic Editor and Gutenberg tables
   - protects the page from wide pasted content
========================================================== */

.single-post .content-grid{
    min-width:0;
}

.single-post .prose{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-wrap:anywhere;
    word-wrap:break-word;
}

.single-post .content-grid > aside{
    min-width:0;
}

/* Featured image and images inserted inside post content. */
.single-post .single-featured-image{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    margin:0 0 32px !important;
}

.single-post .prose img:not(.single-featured-image){
    display:block;
    width:auto;
    max-width:100%;
    height:auto;
    margin-top:22px;
    margin-bottom:28px !important;
}

.single-post .prose figure,
.single-post .prose .wp-block-image{
    width:100%;
    max-width:100%;
    margin-top:24px;
    margin-bottom:28px !important;
}

.single-post .prose figure img,
.single-post .prose .wp-block-image img{
    max-width:100%;
    height:auto;
    margin:0 !important;
}

/* Preserve a comfortable gap between media and the following paragraph. */
.single-post .prose figure + p,
.single-post .prose .wp-block-image + p,
.single-post .prose img + p{
    margin-top:24px !important;
}

.single-post .prose p{
    margin-top:0;
    margin-bottom:20px;
    line-height:1.8;
}

.single-post .prose ul,
.single-post .prose ol{
    max-width:100%;
    margin:18px 0 24px;
    padding-left:25px;
}

.single-post .prose li{
    margin-bottom:8px;
    line-height:1.7;
}

/* Classic Editor tables are wrapped by assets/js/theme.js. */
.responsive-table-wrap,
.single-post .prose .wp-block-table,
.single-post .entry-content .wp-block-table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto !important;
    overflow-y:hidden;
    margin:28px 0;
    border:1px solid var(--line);
    border-radius:12px;
    background:#FFFFFF;
    -webkit-overflow-scrolling:touch;
}

.responsive-table-wrap table,
.single-post .prose .wp-block-table table,
.single-post .entry-content .wp-block-table table{
    width:100%;
    min-width:700px;
    margin:0 !important;
    border-collapse:collapse;
    border-spacing:0;
}

.single-post .prose th,
.single-post .prose td,
.single-post .entry-content th,
.single-post .entry-content td{
    padding:14px 16px;
    border:1px solid var(--line);
    text-align:left;
    vertical-align:top;
    white-space:normal;
    line-height:1.55;
}

.single-post .prose th,
.single-post .entry-content th{
    background:var(--secondary);
    color:#FFFFFF;
    font-weight:600;
}

/* Prevent embedded/media content from creating horizontal page overflow. */
.single-post .prose iframe,
.single-post .prose video,
.single-post .prose embed,
.single-post .prose object{
    max-width:100%;
}

/* Collapse the blog sidebar earlier so tablet-sized screens remain usable. */
@media(max-width:991px){
    .single-post .content-grid{
        grid-template-columns:1fr;
        gap:32px;
    }

    .single-post .prose,
    .single-post .content-grid > aside{
        width:100%;
        max-width:100%;
    }
}

@media(max-width:767px){
    .single-post .section{
        padding-top:48px;
        padding-bottom:48px;
    }

    .single-post .prose{
        width:100%;
        max-width:100%;
        min-width:0;
    }

    .single-post .single-featured-image,
    .single-post .prose img:not(.single-featured-image),
    .single-post .prose figure,
    .single-post .prose .wp-block-image{
        max-width:100%;
        height:auto;
        margin-bottom:24px !important;
    }

    .single-post .prose figure + p,
    .single-post .prose .wp-block-image + p,
    .single-post .prose img + p{
        margin-top:22px !important;
    }

    .single-post .prose p{
        font-size:16px;
        line-height:1.75;
        margin-bottom:18px;
    }

    .single-post .prose ul,
    .single-post .prose ol{
        padding-left:22px;
    }

    .responsive-table-wrap,
    .single-post .prose .wp-block-table,
    .single-post .entry-content .wp-block-table{
        width:100%;
        max-width:100%;
        margin:22px 0;
        overflow-x:auto !important;
        border-radius:10px;
    }

    .responsive-table-wrap table,
    .single-post .prose .wp-block-table table,
    .single-post .entry-content .wp-block-table table{
        width:100%;
        min-width:650px;
    }

    .single-post .prose th,
    .single-post .prose td,
    .single-post .entry-content th,
    .single-post .entry-content td{
        padding:11px 12px;
        font-size:14px;
    }
}

/* ==========================================================
   VERSION 4.2 BRAND COLOURS + FOOTER
========================================================== */
.site-footer,
.site-footer .footer-main,
.site-footer .footer-bottom{
    background:#006241;
    color:#FFFFFF;
}

.site-footer h3,
.site-footer h4,
.site-footer p,
.site-footer a,
.site-footer span,
.site-footer .footer-legal-links a{
    color:#FFFFFF;
}

.site-footer .footer-menu i,
.site-footer .footer-contact i{
    color:#FFFFFF;
}

.site-footer a:hover,
.site-footer .footer-legal-links a:hover{
    color:#FFFFFF;
}

.site-footer .footer-bottom{
    border-top:1px solid rgba(255,255,255,.22);
}


/* ==========================================================
   VERSION 4.3 PRIMARY + WHITE ICONS
========================================================== */
/* Primary brand is slate blue. Icons remain white on branded UI. */
.card-icon i,
.step i,
.floating-contact i,
.menu-toggle.is-active i,
.site-footer i,
.site-footer .fa,
.site-footer .fas,
.site-footer .far,
.site-footer .fab,
.site-footer .fa-solid,
.site-footer .fa-regular,
.site-footer .fa-brands{
    color:#FFFFFF !important;
}

.site-footer a:hover,
.site-footer .footer-legal-links a:hover{
    color:#FFFFFF;
    opacity:.82;
}

/* =========================================================
   SINGLE POST AUTHOR BIO
========================================================= */
.single-post-author-box {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin: 42px 0 30px;
    padding: 26px;
    background: #FFFFFF;
    border: 1px solid #FFFFFF;
    border-left: 5px solid #006241;
    border-radius: 16px;
}
.single-post-author-avatar { flex: 0 0 72px; }
.single-post-author-avatar img { width: 72px !important; height: 72px !important; margin: 0 !important; border-radius: 50% !important; object-fit: cover; }
.single-post-author-content { min-width: 0; }
.single-post-author-label { display: block; margin-bottom: 5px; color: #006241; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.single-post .prose .single-post-author-content h3 { margin: 0 0 8px !important; font-size: 22px !important; line-height: 1.3; }
.single-post-author-content h3 a { color: #000000; text-decoration: none; }
.single-post-author-content h3 a:hover { color: #006241; }
.single-post .prose .single-post-author-description { margin: 0 !important; color: #006241; font-size: 15px; line-height: 1.7; }
@media (max-width: 600px) {
    .single-post-author-box { gap: 15px; padding: 20px; margin-top: 34px; }
    .single-post-author-avatar { flex-basis: 58px; }
    .single-post-author-avatar img { width: 58px !important; height: 58px !important; }
    .single-post .prose .single-post-author-content h3 { font-size: 20px !important; }
}

/* Header menu hover/current icons: white on primary background */
.primary-nav a:hover i,
.primary-nav .current-menu-item > a i,
.primary-nav .current_page_item > a i,
.header-menu a:hover i,
.header-menu .current-menu-item > a i,
.header-menu .current_page_item > a i {
    color: #FFFFFF !important;
}

/* =========================================================
   MOBILE MENU TOGGLE - WHITE ICON
   Keep the hamburger/close icon white on the #006241 button.
========================================================= */
.menu-toggle,
.menu-toggle:hover,
.menu-toggle:focus,
.menu-toggle:active,
.menu-toggle.is-active {
    background: #006241 !important;
    color: #FFFFFF !important;
}

.menu-toggle i,
.menu-toggle:hover i,
.menu-toggle:focus i,
.menu-toggle:active i,
.menu-toggle.is-active i,
.menu-toggle .fa-bars,
.menu-toggle .fa-xmark {
    color: #FFFFFF !important;
}


/* ==========================================================
   WORDPRESS DASHBOARD MENU + SUBMENU SUPPORT
   Menus created in Appearance > Menus now render automatically,
   including nested/sub-menu links.
========================================================== */
.primary-nav .header-menu > li {
    position: relative;
}

.primary-nav .sub-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 100;
    display: none;
    min-width: 230px;
    padding: 8px;
    margin: 0;
    background: #FFFFFF;
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 16px 36px rgba(0,0,0,.12);
}

.primary-nav li:hover > .sub-menu,
.primary-nav li:focus-within > .sub-menu {
    display: block;
}

.primary-nav .sub-menu li {
    position: relative;
    width: 100%;
}

.primary-nav .sub-menu a {
    width: 100%;
    white-space: nowrap;
}

.primary-nav .sub-menu .sub-menu {
    top: 0;
    left: calc(100% + 8px);
}

.primary-nav .menu-item-has-children > a::after {
    content: "\\f107";
    margin-left: 7px;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 11px;
}

@media(max-width:1050px) {
    .primary-nav .sub-menu,
    .primary-nav .sub-menu .sub-menu {
        position: static;
        display: block;
        min-width: 0;
        margin: 4px 0 4px 18px;
        padding: 0 0 0 10px;
        background: transparent;
        border: 0;
        border-left: 2px solid var(--line);
        border-radius: 0;
        box-shadow: none;
    }

    .primary-nav .sub-menu a {
        white-space: normal;
        padding: 9px 12px;
        font-size: 15px;
    }
}


/* ==========================================================
   VERSION 4.7 - RELIABLE WORDPRESS HEADER SUBMENUS
   Supports submenu items created in Appearance > Menus.
========================================================== */
@media (min-width: 1051px) {
    .primary-nav .header-menu,
    .primary-nav .header-menu > li {
        overflow: visible !important;
    }

    .primary-nav .header-menu > li {
        position: relative;
    }

    .primary-nav .header-menu > li > .sub-menu {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        z-index: 9999 !important;
        display: block !important;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        min-width: 240px;
        margin: 8px 0 0 !important;
        padding: 8px !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 2px !important;
        background: #FFFFFF;
        border: 1px solid var(--line);
        border-radius: 12px;
        box-shadow: 0 16px 36px rgba(0,0,0,.14);
        transform: translateY(8px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    }

    .primary-nav .header-menu > li:hover > .sub-menu,
    .primary-nav .header-menu > li:focus-within > .sub-menu {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .primary-nav .sub-menu li {
        display: block !important;
        width: 100%;
        margin: 0;
    }

    .primary-nav .sub-menu a {
        display: block;
        width: 100%;
        padding: 11px 13px;
        color: var(--ink);
        background: transparent;
        border-radius: 8px;
        white-space: nowrap;
    }

    .primary-nav .sub-menu a:hover,
    .primary-nav .sub-menu .current-menu-item > a,
    .primary-nav .sub-menu .current_page_item > a {
        color: #FFFFFF !important;
        background: #006241 !important;
    }

    .primary-nav .sub-menu .sub-menu {
        top: -8px !important;
        left: calc(100% + 8px) !important;
        margin-top: 0 !important;
    }
}

.primary-nav .menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: 6px;
}

.primary-nav .menu-item-has-children > a::after {
    content: "\f107" !important;
    display: inline-block;
    margin-left: 2px;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 11px;
    line-height: 1;
}

.primary-nav .submenu-toggle {
    display: none;
}

@media (max-width: 1050px) {
    .primary-nav .header-menu > li {
        position: relative;
    }

    .primary-nav .menu-item-has-children > a {
        padding-right: 52px;
    }

    .primary-nav .menu-item-has-children > a::after {
        display: none;
    }

    .primary-nav .submenu-toggle {
        position: absolute;
        top: 4px;
        right: 4px;
        display: grid;
        width: 40px;
        height: 40px;
        place-items: center;
        padding: 0;
        color: #FFFFFF;
        background: #006241;
        border: 0;
        border-radius: 9px;
        cursor: pointer;
    }

    .primary-nav .submenu-toggle i {
        color: #FFFFFF !important;
        transition: transform .2s ease;
    }

    .primary-nav .menu-item-has-children.submenu-open > .submenu-toggle i {
        transform: rotate(180deg);
    }

    .primary-nav .sub-menu,
    .primary-nav .sub-menu .sub-menu {
        position: static !important;
        display: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        min-width: 0;
        margin: 4px 0 6px 16px !important;
        padding: 2px 0 2px 10px !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 2px !important;
        background: transparent !important;
        border: 0 !important;
        border-left: 2px solid var(--line) !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        transform: none !important;
    }

    .primary-nav .menu-item-has-children.submenu-open > .sub-menu {
        display: flex !important;
    }

    .primary-nav .sub-menu a {
        width: 100%;
        padding: 10px 12px;
        white-space: normal;
        font-size: 15px;
    }
}

/* =========================================
   v4.8 - FIX DESKTOP SUBMENU HOVER GAP
========================================= */
.main-nav li.menu-item-has-children,
.nav-menu li.menu-item-has-children {
    position: relative;
}

.main-nav li.menu-item-has-children > .sub-menu,
.nav-menu li.menu-item-has-children > .sub-menu {
    top: calc(100% - 2px) !important;
    margin-top: 0 !important;
}

.main-nav li.menu-item-has-children::after,
.nav-menu li.menu-item-has-children::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 14px;
    background: transparent;
}

.main-nav li.menu-item-has-children:hover > .sub-menu,
.main-nav li.menu-item-has-children:focus-within > .sub-menu,
.nav-menu li.menu-item-has-children:hover > .sub-menu,
.nav-menu li.menu-item-has-children:focus-within > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

.main-nav .sub-menu,
.nav-menu .sub-menu {
    padding-top: 8px;
    padding-bottom: 8px;
}

.main-nav .sub-menu a,
.nav-menu .sub-menu a {
    display: block;
    width: 100%;
    padding: 14px 26px;
}


/* ==========================================================
   LEWISHAM SE13 REUSABLE BRAND OVERRIDES
   Palette: #006241, black and white only.
========================================================== */
:root{
    --primary:#006241;
    --primary-dark:#006241;
    --primary-soft:#006241;
    --secondary:#006241;
    --ink:#000000;
    --muted:#000000;
    --line:#006241;
    --surface:#FFFFFF;
    --surface-alt:#FFFFFF;
    --dark:#000000;
    --on-primary:#FFFFFF;
    --on-secondary:#FFFFFF;
    --footer-bg:#006241;
}

body{color:#000000;background:#FFFFFF;}
a{color:#000000;}
.btn,.eyebrow,.primary-nav a:hover,.primary-nav .current-menu-item>a,.menu-toggle,.floating-contact{background:#1A7254;color:#FFFFFF;border:1px solid #ffff;}
.header-menu a i{color:#000000;}
.primary-nav a:hover i,.primary-nav .current-menu-item>a i,.menu-toggle i,.menu-toggle span{color:#FFFFFF !important;}

/* Creative reusable footer: same markup, refined presentation */
.site-footer{
    position:relative;
    overflow:hidden;
    background:#006241 !important;
    color:#FFFFFF !important;
    border-top:4px solid #006241;
}
.site-footer:before{
    content:"";
    position:absolute;
    width:240px;
    height:240px;
    right:-90px;
    top:-110px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
}
.site-footer:after{
    content:"";
    position:absolute;
    width:150px;
    height:150px;
    right:-45px;
    top:-65px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
}
.site-footer .container{position:relative;z-index:1;}
.site-footer h3,.site-footer h4,.site-footer p,.site-footer span,.site-footer a,
.site-footer li,.site-footer i,.footer-menu i,.footer-contact i{
    color:#FFFFFF !important;
}
.site-footer h4{padding-bottom:10px;border-bottom:2px solid #FFFFFF;display:inline-block;}
.site-footer a{transition:opacity .2s ease,transform .2s ease;}
.site-footer a:hover{color:#FFFFFF !important;opacity:.78;}
.footer-menu li a{display:flex;align-items:center;gap:10px;}
.footer-menu li a:hover{transform:translateX(4px);}
.footer-contact p{display:flex;align-items:flex-start;gap:10px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.35);}
.footer-legal-links a,.footer-legal-links span{color:#FFFFFF !important;}



.blog-grid .post-card h2 a:hover {
    color: #006241;
}



.floating-contact {
    background:#26A637;
}
