/* KizunaGo Navbar/Footer Final Polish
   Stronger header spacing + premium footer.
*/

/* =========================
   HEADER / NAVBAR
========================= */

body > header,
body > nav,
.site-header,
.kz-header,
.navbar {
    width: 100% !important;
}

body > header,
.site-header,
.kz-header {
    background: rgba(255, 255, 255, 0.94) !important;
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
}

/*
   Force real lateral spacing even when layout uses container-fluid,
   direct flex header, Bootstrap navbar, or custom wrappers.
*/
body > header,
body > nav.navbar,
.site-header,
.kz-header,
.navbar {
    padding-left: clamp(32px, 4.5vw, 84px) !important;
    padding-right: clamp(32px, 4.5vw, 84px) !important;
}

body > header > *,
body > nav.navbar > *,
.site-header > *,
.kz-header > *,
.navbar > * {
    max-width: 1680px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

header .container,
header .container-fluid,
nav.navbar .container,
nav.navbar .container-fluid,
.site-header .container,
.site-header .container-fluid,
.kz-header .container,
.kz-header .container-fluid {
    max-width: 1680px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Logo must never touch viewport edge */
header .kz-brand-logo,
nav.navbar .kz-brand-logo,
.site-header .kz-brand-logo,
.kz-header .kz-brand-logo,
header > a:first-child,
nav.navbar > a:first-child {
    margin-left: 0 !important;
    margin-right: clamp(28px, 2.2vw, 48px) !important;
    flex: 0 0 auto !important;
}

/* Real logo image */
header .kz-brand-logo-img,
nav.navbar .kz-brand-logo-img,
.site-header .kz-brand-logo-img,
.kz-header .kz-brand-logo-img,
header img[alt*="KizunaGo"],
nav img[alt*="KizunaGo"],
.navbar img[alt*="KizunaGo"] {
    height: 42px !important;
    max-height: 42px !important;
    width: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* Remove old duplicated textual brand everywhere */
.kz-remove-legacy-brand,
.kz-legacy-brand,
.kz-old-brand,
.legacy-brand,
.old-brand,
.brand-text-old,
.navbar-brand-legacy,
.header-brand-text,
.header-brand-copy,
.site-brand-text,
.site-brand-subtitle,
.logo-letter-only,
.kz-logo-letter-only {
    display: none !important;
}

/* If the old text sits right after logo as plain anchor/span */
header a:not(.kz-brand-logo),
nav.navbar a:not(.kz-brand-logo),
.navbar a:not(.kz-brand-logo) {
    text-decoration: none;
}

/* Navigation breathing */
.navbar-nav,
.header-nav,
.site-nav,
.kz-nav-links,
header ul,
nav.navbar ul {
    gap: clamp(8px, .8vw, 16px) !important;
}

.navbar-nav .nav-link,
.header-nav a,
.site-nav a,
.kz-nav-links a,
header nav a,
nav.navbar a {
    white-space: nowrap !important;
}

/* =========================
   FOOTER
========================= */

body > footer,
.site-footer,
.kz-footer {
    margin-top: 72px !important;
    padding: 0 !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(47, 109, 246, 0.10), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #f7fbff 100%) !important;
    border-top: 1px solid rgba(15, 23, 42, 0.07) !important;
}

body > footer {
    padding-left: clamp(32px, 4.5vw, 84px) !important;
    padding-right: clamp(32px, 4.5vw, 84px) !important;
}

body > footer > *,
.site-footer > *,
.kz-footer > * {
    max-width: 1680px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

footer .container,
footer .container-fluid,
.site-footer .container,
.site-footer .container-fluid,
.kz-footer .container,
.kz-footer .container-fluid {
    max-width: 1680px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Turn footer into a polished panel when possible */
footer {
    color: #334155 !important;
}

footer .row,
.site-footer .row,
.kz-footer .row {
    align-items: start !important;
    row-gap: 32px !important;
}

/* Top spacing inside footer */
footer .row:first-child,
.site-footer .row:first-child,
.kz-footer .row:first-child {
    padding-top: 54px !important;
    padding-bottom: 42px !important;
}

/* Brand area */
footer .kz-brand-logo,
.site-footer .kz-brand-logo,
.kz-footer .kz-brand-logo {
    display: inline-flex !important;
    margin-bottom: 20px !important;
}

footer .kz-brand-logo-img,
.site-footer .kz-brand-logo-img,
.kz-footer .kz-brand-logo-img,
footer img[alt*="KizunaGo"] {
    height: 50px !important;
    max-height: 50px !important;
    width: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* Remove ugly old line under logo if it appears as "K Kizuna..." */
footer .kz-remove-legacy-brand {
    display: none !important;
}

footer p,
.site-footer p,
.kz-footer p {
    max-width: 520px !important;
    color: #64748b !important;
    font-size: 0.98rem !important;
    line-height: 1.75 !important;
    margin-top: 0 !important;
}

/* Footer titles */
footer h4,
footer h5,
footer h6,
footer .footer-title,
footer .tiny-label,
.site-footer h4,
.site-footer h5,
.site-footer h6,
.kz-footer h4,
.kz-footer h5,
.kz-footer h6 {
    margin: 0 0 16px !important;
    color: #64748b !important;
    font-size: .75rem !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    letter-spacing: .16em !important;
    font-weight: 950 !important;
}

/* Footer link lists */
footer ul,
.site-footer ul,
.kz-footer ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid !important;
    gap: 11px !important;
}

footer a,
.site-footer a,
.kz-footer a {
    color: #24324a !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    transition: color .18s ease, transform .18s ease;
}

footer a:hover,
.site-footer a:hover,
.kz-footer a:hover {
    color: #2f6df6 !important;
}

/* Newsletter block */
footer form,
.site-footer form,
.kz-footer form {
    display: grid !important;
    grid-template-columns: minmax(220px, 1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
    max-width: 560px !important;
    margin-top: 6px !important;
}

footer input[type="email"],
footer input[name="email"],
.site-footer input[type="email"],
.kz-footer input[type="email"] {
    height: 50px !important;
    min-height: 50px !important;
    border-radius: 17px !important;
    border: 1px solid rgba(15, 23, 42, .10) !important;
    background: rgba(255, 255, 255, .92) !important;
    padding: 0 18px !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .04) !important;
    color: #0f172a !important;
}

footer input[type="email"]::placeholder,
footer input[name="email"]::placeholder {
    color: #94a3b8 !important;
}

footer button,
.site-footer button,
.kz-footer button,
footer .btn {
    min-height: 50px !important;
    border-radius: 17px !important;
    font-weight: 900 !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
    box-shadow: 0 14px 28px rgba(47, 109, 246, .18) !important;
}

/* Bottom footer */
footer .border-top,
.site-footer .border-top,
.kz-footer .border-top {
    border-color: rgba(15, 23, 42, .08) !important;
}

footer .border-top,
footer .footer-bottom,
.site-footer .footer-bottom,
.kz-footer .footer-bottom {
    padding-top: 22px !important;
    padding-bottom: 24px !important;
    color: #64748b !important;
    font-size: .9rem !important;
}

/* If footer currently has columns too far apart, normalize them */
footer .row > [class*="col"],
.site-footer .row > [class*="col"],
.kz-footer .row > [class*="col"] {
    min-width: 0 !important;
}

/* Mobile */
@media (max-width: 991.98px) {
    body > header,
    body > nav.navbar,
    .site-header,
    .kz-header,
    .navbar,
    body > footer {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    header .kz-brand-logo-img,
    nav.navbar .kz-brand-logo-img,
    footer .kz-brand-logo-img {
        height: 38px !important;
        max-height: 38px !important;
    }

    footer form,
    .site-footer form,
    .kz-footer form {
        grid-template-columns: 1fr !important;
    }

    footer button,
    .site-footer button,
    .kz-footer button,
    footer .btn {
        width: 100% !important;
    }
}
