/* Site footer (resources/views/website/layouts/footer.blade.php).
   Loaded on every page from website/layouts/app.blade.php. Scoped to .hb-footer and
   written to win over older global rules in style.css (e.g. centred footer text). */

.hb-footer { font-family: 'Open Sans', sans-serif; color: #4b5563; text-align: left; }
.hb-footer *, .hb-footer *::before, .hb-footer *::after { box-sizing: border-box; }
.hb-footer ul, .hb-footer dl { list-style: none; margin: 0; padding: 0; }
.hb-footer p, .hb-footer h2, .hb-footer dt, .hb-footer dd, .hb-footer address { text-align: left; }
.hb-footer a { text-decoration: none; }
.hb-footer a:focus-visible { outline: 3px solid rgba(17, 162, 95, .45); outline-offset: 2px; border-radius: 4px; }

/* ---- Main area ---- */
.hb-footer-main { background: #fff; border-top: 1px solid #e5e7eb; padding: 56px 0 48px; }

.hb-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.35fr);
    grid-template-areas: "brand products organisations company contact";
    gap: 32px 28px;
}
.hb-footer-brand   { grid-area: brand; }
.hb-footer-col--products  { grid-area: products; }
.hb-footer-col--organisations { grid-area: organisations; }
.hb-footer-col--company   { grid-area: company; }
.hb-footer-contact { grid-area: contact; }

.hb-footer-logo { display: inline-block; margin-bottom: 16px; }
.hb-footer-logo img { width: 140px; height: auto; display: block; }
.hb-footer-tagline { font-size: .875rem; line-height: 1.7; color: #6b7280; margin: 0 0 20px; max-width: 300px; }

/* Social icons (website/common/social-icons): footer + contact page.
   Soft by default (light brand tint + brand-coloured icon, matching the site's light cards);
   the full brand colour fills in on hover/focus. */
.hb-social { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.hb-social a {
    --brand: #4b5563; --brand-soft: #f3f4f6;
    width: 36px; height: 36px; border-radius: 8px; text-decoration: none !important;
    display: flex; align-items: center; justify-content: center; font-size: 15px;
    color: var(--brand) !important; background: var(--brand-soft); border: 1px solid transparent;
    transition: background .2s, color .2s, transform .2s;
}
.hb-social a:hover, .hb-social a:focus-visible { background: var(--brand); color: #fff !important; transform: translateY(-1px); }
.hb-social a:focus-visible { outline: 3px solid rgba(17, 162, 95, .45); outline-offset: 2px; }
.hb-social--facebook  { --brand: #1877F2 !important; --brand-soft: #e8f1fe !important; }
.hb-social--instagram { --brand: #d6249f !important; --brand-soft: #fce8f4 !important; }
.hb-social--linkedin  { --brand: #0A66C2 !important; --brand-soft: #e6f0fa !important; }
.hb-social--youtube   { --brand: #e00000 !important; --brand-soft: #fde8e8 !important; }
.hb-social--pinterest { --brand: #E60023 !important; --brand-soft: #fde6ea !important; }
.hb-social--instagram:hover, .hb-social--instagram:focus-visible {
    background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
@media (prefers-reduced-motion: reduce) { .hb-social a, .hb-social a:hover { transition: none; transform: none; } }

.hb-footer-heading {
    font-family: 'Montserrat', sans-serif; font-size: .75rem !important; font-weight: 700;
    letter-spacing: 1px; text-transform: uppercase; color: #111827; margin: 0 0 16px; line-height: 1.4;
}

.hb-footer-links li + li { margin-top: 4px; }
.hb-footer-links a {
    display: inline-block; padding: 4px 0; color: #4b5563; font-size: .875rem; line-height: 1.5;
    transition: color .2s;
}
.hb-footer-links a:hover { color: #0D864F; }

.hb-footer-dl dt {
    font-size: .7rem; font-weight: 600; letter-spacing: .8px; text-transform: uppercase;
    color: #6b7280; margin: 0 0 2px;
}
.hb-footer-dl dd { margin: 0 0 14px; font-size: .875rem; line-height: 1.6; color: #374151; overflow-wrap: anywhere; }
.hb-footer-dl dd a { color: #374151; font-weight: 600; }
.hb-footer-dl dd a:hover { color: #0D864F; }
.hb-footer-dl address { margin: 0; font-style: normal; }

.hb-footer-cta {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
    padding: 10px 22px; border-radius: 6px; background: #0D864F; color: #fff !important;
    font-family: 'Montserrat', sans-serif; font-size: .8rem; font-weight: 700; letter-spacing: .5px;
    text-transform: uppercase; white-space: nowrap; transition: background .2s;
}
.hb-footer-cta:hover { background: #0c7f4a; }

/* ---- Bottom bar ---- */
.hb-footer-bottom { background: #111827; }
.hb-footer-bottom-inner {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 8px 24px; padding-top: 16px; padding-bottom: 16px;
}
.hb-footer-bottom p { margin: 0; color: #fff; font-size: .8rem; }
.hb-footer-legal { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.hb-footer-legal a { display: inline-block; padding: 4px 0; color: rgba(255, 255, 255, .75); font-size: .8rem; }
.hb-footer-legal a:hover { color: #fff; }

/* ---- Tablet: brand across the top, four columns below ---- */
@media (max-width: 991.98px) {
    .hb-footer-main { padding: 44px 0 36px; }
    .hb-footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.45fr);
        grid-template-areas:
            "brand brand brand brand"
            "products organisations company contact";
        gap: 28px 20px;
    }
    .hb-footer-brand {
        display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 28px;
        padding-bottom: 24px; border-bottom: 1px solid #f0f0f0;
    }
    .hb-footer-logo { grid-row: span 2; margin: 0; }
    .hb-footer-cta { padding: 10px 16px; }
    .hb-footer-tagline { max-width: none; margin: 0; }
}

/* ---- Phones: brand on top, then Products + Organisations, then Company + Contact ---- */
@media (max-width: 767.98px) {
    .hb-footer-main { padding: 36px 0 28px; }
    .hb-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
            "brand brand"
            "products organisations"
            "company contact";
        gap: 28px 16px;
    }
    .hb-footer-brand { display: block; }
    .hb-footer-logo { margin-bottom: 12px; }
    .hb-footer-tagline { margin-bottom: 16px; }
    .hb-footer-heading { margin-bottom: 10px; }
    .hb-footer-links a { padding: 6px 0; }      /* bigger touch targets */
    .hb-footer-cta { width: 100%; }
    .hb-footer-bottom-inner { justify-content: center; text-align: center; }
    .hb-footer-bottom p { width: 100%; text-align: center; }
    .hb-footer-legal { justify-content: center; }
}

