* {
    color: #787878;
}

html, body {
    background-color: #ffffff;
}

/* Match CoreBundle / IGotAfrica defaults — one green for every link */
:root {
    --iga-brand-green: #3FAD4C;
    --iga-brand-green-hover: #348f3f;
    --iga-link: #3FAD4C;
    --iga-link-hover: #348f3f;
    --iga-btn-primary: #3FAD4C;
    --iga-btn-primary-hover: #348f3f;
    --iga-nav-link: #3FAD4C;
    --bs-link-color: #3FAD4C;
    --bs-link-color-rgb: 63, 173, 76;
    --bs-link-hover-color: #348f3f;
    --bs-link-hover-color-rgb: 52, 143, 63;
}

/* Mobile-first: Base styles for mobile */
body {
    /* Fallback when :has() / core navbar.css not loaded; core rules override */
    padding-top: 3.75rem;
}

/* Tablet and up */
@media (min-width: 768px) {
    body {
        padding-top: 3.75rem;
    }
}

a:not(.btn), a:not(.btn):link, a:not(.btn):visited, a:not(.btn):hover, a:not(.btn):focus, a:not(.btn):active,
a:not(.btn) *:not(.shopping-cart-item-count),
footer a, footer a:link, footer a:visited, footer a:hover,
.dropdown-item,
.navbar-brand,
.nav-link,
.site-navbar a,
#header .navbar a,
.header-banner-row a,
.info-box-text a,
.info-box-text a *:not(.shopping-cart-item-count) {
    color: var(--iga-link) !important;
    font-weight: bold;
    border: none;
    text-decoration: underline;
}

a:not(.btn):hover, a:not(.btn):focus,
a:not(.btn):hover *:not(.shopping-cart-item-count), a:not(.btn):focus *:not(.shopping-cart-item-count),
footer a:hover,
.info-box-text a:hover,
.info-box-text a:hover *:not(.shopping-cart-item-count) {
    color: var(--iga-link-hover) !important;
}

.site-navbar a,
#header .navbar a,
.navbar .nav-link,
.navbar-brand,
.dropdown-item {
    font-weight: normal;
    text-decoration: none !important;
}

.site-navbar a:hover,
#header .navbar a:hover,
.navbar .nav-link:hover {
    text-decoration: underline !important;
}

.site-navbar .dropdown-item:hover,
.site-navbar .dropdown-item:focus,
#header .navbar .dropdown-item:hover,
#header .navbar .dropdown-item:focus {
    text-decoration: none !important;
}

a.btn-xs, input.btn-xs {
    border: solid 1px var(--iga-btn-primary);
    background-color: #ffffff;
    color: var(--iga-btn-primary) !important;
    font-weight: bold;
    padding: 2px !important;
    margin: 4px !important;
    line-height: 14px !important;
    margin-top: 5px;
    text-decoration: none !important;
}

a.btn-xs:hover, input.btn-xs:hover {
    text-decoration: none;
}

.navbar-header {
    padding-top: 3px;
}

button, button:hover, button:active, button:focus,
.btn-primary, .btn-primary:hover, .btn-primary:active, .btn-primary:focus,
a.btn, a.btn:link, a.btn:visited, a.btn:hover, a.btn:focus, a.btn:active,
a.btn-primary, a.btn-primary:link, a.btn-primary:visited, a.btn-primary:hover, a.btn-primary:focus, a.btn-primary:active,
.searchButtonMini, .searchButtonMini:hover, .searchButtonMini:focus {
    background-color: var(--iga-btn-primary) !important;
    color: #ffffff !important;
    border: solid 1px var(--iga-btn-primary) !important;
    text-decoration: none !important;
}

.btn-default, .btn-default:hover, .close {
    color: var(--iga-nav-link) !important;
}

.text-info {
    color: var(--iga-link) !important;
}

.carousel-control-prev, .carousel-control-next, .carousel-control-prev:hover, .carousel-control-next:hover {
    background: none !important;
    border: none !important;
}

.carousel-control-prev-icon, .carousel-control-next-icon {
    background-color: var(--iga-brand-green) !important;
    border-radius: 2px;
}

.close:hover {
    color: #ffffff;
}

/* Mobile-first: Base styles for mobile */
.content {
    width: 100%;
    margin: auto;
    padding: 0 8px;
    box-sizing: border-box;
}

/* Tablet and up */
@media (min-width: 576px) {
    .content {
        width: 95%;
        padding: 0 12px;
    }
}

/* Desktop and up */
@media (min-width: 992px) {
    .content {
        width: 95%;
        padding: 0;
    }
}

.content-around {
    margin-top: 0px;
}

.fa-bars {
    color: #3FAD4C;
}

/* Mobile-first: Base styles for mobile */
.logoBox {
    padding: 4px;
    text-align: center;
}

.logoBox img {
    max-width: 100%;
    height: auto;
}

/* Tablet and up */
@media (min-width: 576px) {
    .logoBox {
        text-align: left;
    }
}

.loginBox {
    color: #3FAD4C !important;
    padding: 4px;
    padding-right: 12px;
    font-weight: bold;
    text-transform: capitalize;
}

.loginBox a.btn-xs {
    margin-left: 8px;
}

/* frontend css override */

.contentTeaser {
    padding: 12px !important;
    margin-bottom: 12px !important;
}

.contentTeaserReadMore a.btn-primary {
    color: #ffffff !important;
}

/* Mini Search Form */

.searchButtonMini {
    padding: 0 0.85rem !important;
    display: inline-flex;
    text-transform: capitalize;
    line-height: 1;
    font-size: 12px;
    border-radius: 4px;
    font-weight: bold;
}

.miniSearchForm {
    padding-top: 0px;
}

/* Mobile-first: Base styles for mobile */
.searchTextInput {
    width: 100%;
    max-width: 180px;
    font-weight: normal !important;
    display: inline-block;
    border-radius: 4px;
    box-sizing: border-box;
}

/* Tablet and up */
@media (min-width: 576px) {
    .searchTextInput {
        width: 180px;
    }
}

.shopping-cart-icon {
    max-height: 40px;
    height: auto;
    margin: 0;
}

.shopping-cart-item-count {
    color: #ffffff !important;
    background: none;
}

/* Info box text - Mobile-first */
.info-box-text {
    font-size: 0.9em;
    padding: 8px;
    line-height: 1.5;
    word-wrap: break-word;
}

.info-box-text a {
    display: inline;
    word-break: break-word;
}

/* Tablet and up */
@media (min-width: 576px) {
    .info-box-text {
        font-size: 1em;
        padding: 12px;
    }
}

/* Make all images responsive by default */
img {
    max-width: 100%;
    height: auto;
}

/* Mobile-first responsive utilities */
/* Base mobile styles (default) */
footer p {
    font-size: 0.75em;
    line-height: 1.8;
    padding: 4px 0;
}

footer p a {
    display: inline-block;
    padding: 2px 4px;
    word-break: break-word;
    color: var(--iga-link) !important;
}

/* Ensure proper text wrapping on mobile */
h1, h2, h3, h4, h5, h6 {
    word-wrap: break-word;
    hyphens: auto;
}

/* Small devices and up (576px+) */
@media (min-width: 576px) {
    footer p {
        font-size: 0.8em;
        line-height: 1.6;
    }
    
    footer p a {
        padding: 4px 8px;
    }
}

/* Extra small devices only (below 576px) */
@media (max-width: 575.98px) {
    /* Hide on mobile */
    .hidden-xs {
        display: none !important;
    }
    
    /* Stack columns on mobile */
    .row > [class*="col-"] {
        width: 100%;
        margin-bottom: 12px;
    }
}

/* Tablet */
@media (min-width: 576px) and (max-width: 991.98px) {
    .hidden-sm {
        display: none !important;
    }
}

/* Desktop */
@media (min-width: 992px) {
    .hidden-lg {
        display: none !important;
    }
}

/* Bootstrap overrides */

.page-header {
    margin-top: 12px !important;
}

/* Mobile-first: Base styles for mobile */
.bannerContainer {
    margin: auto;
    padding: 8px;
    text-align: center;
}

.bannerContainer img {
    max-width: 100%;
    height: auto;
}

/* Tablet and up */
@media (min-width: 576px) {
    .bannerContainer {
        padding: 12px;
    }
}

.navbar {
    background-color: #ffffff;
    border-bottom: solid 1px #cecece;
}

/* Brand colours only — layout lives in CoreBundle navbar.css */
.navbar-nav > li > a,
.navbar .nav-link {
    font-weight: normal;
    text-transform: capitalize;
    text-decoration: none;
}

.navbar-brand {
    text-transform: capitalize;
    font-weight: normal;
}
