/* =========================================================
   Bizmantra - Footer
   assets/css/footer.css?v=1
   - Follows the header's light / dark tokens (--bm-*).
   ========================================================= */
.bmft {
    --ft-bg: #F6F8FD;
    --ft-card: #FFFFFF;
    --ft-line: #E0E7F5;
    --ft-sub: #4F5D7A;

    position: relative; overflow: hidden;
    padding-top: clamp(52px, 6vw, 84px);
    background: var(--ft-bg);
    border-top: 1px solid var(--ft-line);
    color: var(--bm-text);
    font-family: var(--bm-font, 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif);
}
:root[data-theme="dark"] .bmft {
    --ft-bg: #080F26;
    --ft-card: #141E3D;
    --ft-line: rgba(143,176,255,.18);
    --ft-sub: #B4C1E0;
}

:where(.bmft) *, :where(.bmft) *::before, :where(.bmft) *::after { box-sizing: border-box; }
:where(.bmft) ul { list-style: none; margin: 0; padding: 0; }
:where(.bmft) h2, :where(.bmft) h3, :where(.bmft) p, :where(.bmft) address { margin: 0; font-style: normal; }
:where(.bmft) a { color: inherit; text-decoration: none; }
:where(.bmft) svg { display: block; flex: none; }
:where(.bmft) img { display: block; max-width: 100%; height: auto; }
.bmft :focus-visible { outline: 2px solid var(--bm-blue-d); outline-offset: 2px; border-radius: 8px; }

/* gradient accent line on top */
.bmft::before {
    content: ""; position: absolute; inset: 0 0 auto 0; height: 3px;
    background: linear-gradient(90deg, var(--bm-blue), var(--bm-green));
}
/* soft glow */
.bmft::after {
    content: ""; position: absolute; z-index: 0; right: -120px; top: -140px; width: 340px; height: 340px; border-radius: 50%;
    background: rgba(134,184,63,.14); filter: blur(70px); pointer-events: none;
}

.bmft__container { position: relative; z-index: 1; width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: 20px; }

/* ---------------- GRID ---------------- */
.bmft__grid {
    display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr);
    gap: clamp(32px, 4vw, 60px);
}
.bmft__col { min-width: 0; }

/* logo swap for dark theme */
.bmft__logo { display: inline-block; }
.bmft__logo img { width: auto; height: clamp(58px, 6vw, 78px); }
.bmft__logo .is-dark { display: none; }
:root[data-theme="dark"] .bmft__logo.has-dark .is-light { display: none; }
:root[data-theme="dark"] .bmft__logo.has-dark .is-dark { display: block; }

.bmft__about { margin-top: 18px; max-width: 38ch; font-size: 15px; line-height: 1.75; color: var(--ft-sub); }

/* social */
.bmft__social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.bmft__social a {
    display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
    background: var(--ft-card); border: 1px solid var(--ft-line); color: #5E8F20;
    transition: background .2s, color .2s, border-color .2s, transform .2s;
}
:root[data-theme="dark"] .bmft__social a { color: #B7E27A; }
.bmft__social a svg { width: 17px; height: 17px; }
.bmft__social a:hover { background: linear-gradient(135deg, var(--bm-blue), var(--bm-blue-d)); border-color: transparent; color: #fff; transform: translateY(-2px); }

/* column titles */
.bmft__title {
    position: relative; padding-bottom: 14px; margin-bottom: 20px;
    font-size: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--bm-head);
}
.bmft__title::after {
    content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px; border-radius: 3px;
    background: linear-gradient(90deg, var(--bm-blue), var(--bm-green));
}

/* link lists */
.bmft__links { display: grid; gap: 4px; }
.bmft__links a {
    display: inline-flex; align-items: center; gap: 8px; padding-block: 6px;
    font-size: 15px; font-weight: 500; color: var(--ft-sub); transition: color .2s, transform .2s;
}
.bmft__links a svg { width: 13px; height: 13px; color: #86B83F; transition: transform .2s; }
.bmft__links a:hover { color: var(--bm-blue-d); transform: translateX(3px); }
:root[data-theme="dark"] .bmft__links a:hover { color: #fff; }

/* contact */
.bmft__contact { display: grid; gap: 16px; }
.bmft__contact li { display: flex; align-items: center; gap: 12px; min-width: 0; }
.bmft__contact li.is-address { align-items: flex-start; }
.bmft__cicon {
    display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px;
    background: linear-gradient(135deg, var(--bm-blue), var(--bm-blue-d)); color: #fff;
}
.bmft__cicon svg { width: 17px; height: 17px; }
.bmft__contact li:nth-child(2) .bmft__cicon { background: linear-gradient(135deg, #A8D75E, #86B83F); color: #17306B; }
.bmft__ctext { min-width: 0; font-size: 14.5px; line-height: 1.6; color: var(--ft-sub); overflow-wrap: anywhere; }
.is-address .bmft__ctext { padding-top: 1px; }
.bmft__ctext a { transition: color .2s; }
.bmft__ctext a:hover { color: var(--bm-blue-d); }
:root[data-theme="dark"] .bmft__ctext a:hover { color: #fff; }

/* ---------------- BOTTOM BAR ---------------- */
/* desktop: copyright left, "Made with love by" right */
.bmft__bottom {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 8px 24px;
    margin-top: clamp(36px, 5vw, 56px); padding-block: 22px; border-top: 1px solid var(--ft-line);
    font-size: 13.5px; color: var(--ft-sub);
}
.bmft__dev { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.bmft__heart { width: 15px; height: 15px; color: #E5484D; }
.bmft__dev a { font-weight: 700; color: var(--bm-blue-d); transition: color .2s; }
.bmft__dev a:hover { color: #5E8F20; }
:root[data-theme="dark"] .bmft__dev a { color: #B7E27A; }
:root[data-theme="dark"] .bmft__dev a:hover { color: #fff; }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width: 1023px) {
    .bmft__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* Brand + Contact Information full width (tablet & mobile) */
    .bmft__col--brand, .bmft__col--contact { grid-column: 1 / -1; }
    .bmft__about { max-width: 62ch; }
    /* bottom bar centered on tablet & mobile */
    .bmft__bottom { flex-direction: column; justify-content: center; text-align: center; gap: 6px; }
    .bmft__dev { justify-content: center; }
}
@media (max-width: 599px) {
    .bmft__container { padding-inline: 16px; }
    /* Our Services + Quick Links stay side by side in one row */
    .bmft__grid { gap: 32px 18px; }
    .bmft__logo img { height: 64px; }
    .bmft__links a { font-size: 14px; gap: 6px; }
    .bmft__title { font-size: 13px; letter-spacing: .08em; }
}

@media (prefers-reduced-motion: reduce) {
    .bmft * { transition-duration: .01ms !important; }
}