* {
margin:0;
padding:0;
box-sizing:border-box
}

:root {
--dark:#171717;
--green:#2f8f46;
--green-dark:#1f6b34;
--cream:#f4f1e8;
--text:#222;
--white:#fff
}

body {
font-family:Arial,sans-serif;
color:var(--text);
background:var(--cream);
line-height:1.6
}

img {
width:100%;
display:block
}

a {
text-decoration:none;
color:inherit
}

.container {
width:min(1120px,92%);
margin:0 auto
}

.site-header {
background:var(--dark);
color:var(--white);
border-bottom:4px solid var(--green);
position:sticky;
top:0;
z-index:100
}

.nav-wrapper {
min-height:92px;
display:flex;
align-items:center;
gap:28px
}

.brand {
display:flex;
align-items:center;
gap:14px;
margin-right:auto
}

.logo-placeholder {
width:58px;
height:58px;
border:2px dashed rgba(255,255,255,.5);
border-radius:10px;
display:grid;
place-items:center;
font-size:13px
}

.brand h1 {
font-size:25px;
line-height:1.1
}

.brand p {
font-size:14px;
color:rgba(255,255,255,.85)
}

.main-nav {
display:flex;
gap:22px;
font-weight:700
}

.main-nav a:hover {
color:var(--green)
}

.language-buttons {
display:flex;
gap:8px
}

.lang-btn {
border:1px solid rgba(255,255,255,.4);
background:transparent;
color:#fff;
padding:10px 16px;
border-radius:999px;
font-weight:700;
cursor:pointer
}

.lang-btn.active {
background:var(--green);
border-color:var(--green)
}

.menu-toggle {
display:none;
background:none;
border:none;
color:#fff;
font-size:28px
}

.hero {
min-height:700px;
background:url('images/hero-stepping-stones.jpg') center/cover no-repeat;
position:relative;
display:flex;
align-items:center;
text-align:center;
color:#fff
}

.hero-overlay {
position:absolute;
inset:0;
background:rgba(0,0,0,.68)
}

.hero-content {
position:relative;
max-width:900px
}

.eyebrow,.section-label,.product-tag {
color:var(--green);
text-transform:uppercase;
letter-spacing:3px;
font-weight:800;
margin-bottom:12px
}

.product-tag {
font-size:12px;
letter-spacing:2px
}

.hero h2,.page-hero h2 {
font-size:clamp(38px,7vw,76px);
line-height:1.05;
margin-bottom:24px
}

.hero p {
font-size:20px;
max-width:780px;
margin:0 auto 28px
}

.hero-buttons {
display:flex;
justify-content:center;
gap:14px;
flex-wrap:wrap
}

.btn {
display:inline-block;
padding:14px 24px;
border-radius:8px;
font-weight:800
}

.btn-primary {
background:var(--green);
color:#fff
}

.btn-primary:hover {
background:var(--green-dark)
}

.btn-outline {
border:2px solid #fff;
color:#fff
}

.btn-small {
background:var(--green);
color:#fff;
padding:10px 15px;
font-size:14px;
margin-top:14px
}

.section {
padding:80px 0
}

.two-column {
display:grid;
grid-template-columns:1.5fr .8fr;
gap:40px;
align-items:center
}

.section h2 {
font-size:clamp(30px,4vw,46px);
line-height:1.15;
margin-bottom:18px
}

.section-heading {
margin-bottom:30px
}

.highlight-card,.contact-card,.placeholder-panel {
background:#fff;
padding:34px;
border-radius:16px;
box-shadow:0 10px 30px rgba(0,0,0,.08)
}

.highlight-card h3 {
font-size:76px;
color:var(--green);
line-height:1
}

.dark-section {
background:var(--dark);
color:#fff
}

.curb-section {
background:#ebe7dc
}

.cards-grid,.product-grid,.contact-grid {
display:grid;
gap:24px
}

.cards-grid {
grid-template-columns:repeat(2,1fr);
margin-top:30px
}

.category-card,.product-card {
background:#fff;
color:var(--text);
border-radius:16px;
overflow:hidden;
box-shadow:0 12px 30px rgba(0,0,0,.12)
}

.category-card img,.placeholder-img {
height:260px;
object-fit:cover;
background:#ddd;
display:grid;
place-items:center;
color:#555;
font-weight:800
}

.category-card div,.product-content {
padding:24px
}

.category-card h3,.product-card h3 {
font-size:24px;
margin-bottom:8px
}

.page-hero {
background:linear-gradient(rgba(0,0,0,.68),rgba(0,0,0,.68)),url('images/hero-stepping-stones.jpg') center/cover no-repeat;
color:#fff;
padding:120px 0;
text-align:center
}

.product-grid {
grid-template-columns:repeat(3,1fr)
}

.product-card img {
height:240px;
object-fit:cover;
background:#ddd
}

.price {
color:var(--green);
font-size:24px;
font-weight:900;
margin-bottom:8px
}

.contact-grid {
grid-template-columns:repeat(2,1fr);
margin-bottom:32px
}

.map-box iframe {
width:100%;
height:400px;
border:0;
border-radius:16px
}

.site-footer {
background:var(--dark);
color:#fff;
padding:45px 0
}

.footer-grid {
display:grid;
grid-template-columns:1.2fr 1fr 1fr;
gap:30px
}

.footer-grid h3 {
margin-bottom:10px;
color:var(--green)
}

.floating-whatsapp {
position:fixed;
right:24px;
bottom:24px;
width:58px;
height:58px;
background:#25d366;
color:#fff;
border-radius:50%;
display:grid;
place-items:center;
font-size:26px;
box-shadow:0 12px 30px rgba(0,0,0,.25);
z-index:200
}

@media(max-width:900px) {
.nav-wrapper {
flex-wrap:wrap;
padding:14px 0
}

.menu-toggle {
display:block
}

.main-nav {
display:none;
width:100%;
flex-direction:column;
gap:0;
padding:10px 0
}

.main-nav.open {
display:flex
}

.main-nav a {
padding:12px 0;
border-top:1px solid rgba(255,255,255,.15)
}

.language-buttons {
width:100%
}

.two-column,.cards-grid,.product-grid,.contact-grid,.footer-grid {
grid-template-columns:1fr
}

.hero {
min-height:620px
}


}



/* Garden ornaments gallery */

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

.gallery-grid img {
    height: 280px;
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(0,0,0,0.12);
    transition: transform 0.3s ease;
}

.gallery-grid img:hover {
    transform: scale(1.03);
}

.ornament-cta {
    text-align: center;
    max-width: 800px;
}

.ornament-cta h2 {
    color: #ffffff;
}

.ornament-cta p {
    color: rgba(255,255,255,0.85);
    margin-bottom: 24px;
}

.contact-strip {
    padding-top: 60px;
}

@media(max-width:900px) {
    .gallery-grid {
        grid-template-columns: 1fr;
    }
}


/* Groenewald Stepping Stones updates */

.site-logo {
    width: 58px;
    height: 58px;
    object-fit: contain;
    border-radius: 10px;
}

/* Mobile header: keeps menu and language buttons on one row */

@media(max-width:900px) {
    .nav-wrapper {
        flex-wrap: wrap;
        align-items: center;
        gap: 12px;
        padding: 14px 0;
    }

    .brand {
        flex: 1 1 100%;
    }

    .menu-toggle {
        display: block;
        order: 2;
    }

    .language-buttons {
        order: 3;
        width: auto;
        margin-left: 0;
        display: flex;
        gap: 8px;
    }

    .lang-btn {
        padding: 9px 14px;
        font-size: 14px;
    }

    .main-nav {
        order: 4;
        display: none;
        width: 100%;
        flex-direction: column;
        gap: 0;
        padding: 10px 0;
    }

    .main-nav.open {
        display: flex;
    }
}

/* Smaller mobile header */

@media(max-width:900px) {
    .brand p {
        display: none;
    }

    .site-logo {
        width: 44px;
        height: 44px;
    }

    .brand h1 {
        font-size: 18px;
        line-height: 1.1;
    }

    .nav-wrapper {
        gap: 10px;
        padding: 10px 0;
    }

    .lang-btn {
        padding: 8px 12px;
        font-size: 13px;
    }

    .menu-toggle {
        font-size: 26px;
    }
}
