.byff-wrap,
.byff-wrap * { box-sizing: border-box; }

.byff-wrap {
    width: auto;
    margin: var(--byff-mt) var(--byff-mr) var(--byff-mb) var(--byff-ml);
    font-family: inherit;
    position: relative;
    z-index: 2;
}

.byff-footer {
    width: min(calc(100vw - var(--byff-ml) - var(--byff-mr)), var(--byff-max));
    min-height: var(--byff-min-h);
    margin: 0 auto;
    padding: var(--byff-pt) var(--byff-pr) var(--byff-pb) var(--byff-pl);
    border-radius: var(--byff-radius);
    background: var(--byff-bg);
    color: var(--byff-text);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.byff-inner {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.byff-top-row,
.byff-bottom-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(460px, 1fr);
    gap: var(--byff-col-gap);
}

.byff-top-row { min-height: var(--byff-top-min); align-items: start; }
.byff-bottom-row { min-height: var(--byff-bottom-min); align-items: end; }

.byff-brand {
    display: inline-block;
    color: var(--byff-text) !important;
    text-decoration: none !important;
    font-size: var(--byff-brand-size);
    font-weight: var(--byff-brand-weight);
    line-height: .98;
    letter-spacing: -0.055em;
}

.byff-action-area {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 35px;
    padding-top: 2px;
}

.byff-cta {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: var(--byff-text) !important;
    text-decoration: none !important;
    font-size: var(--byff-cta-size);
    line-height: 1;
    font-weight: 400;
}

.byff-cta-icon {
    width: var(--byff-cta-circle);
    height: var(--byff-cta-circle);
    border-radius: 999px;
    background: var(--byff-accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--byff-cta-icon-size);
    transition: transform .2s ease, filter .2s ease;
}
.byff-cta:hover .byff-cta-icon { transform: translate(2px,-2px); filter: brightness(1.08); }

.byff-primary-menu,
.byff-legal-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.byff-primary-menu { gap: 12px var(--byff-primary-gap); }
.byff-legal-menu { gap: 8px var(--byff-legal-gap); justify-content: flex-start; }
.byff-primary-menu li,
.byff-legal-menu li { margin: 0; padding: 0; }
.byff-primary-menu a,
.byff-legal-menu a {
    color: var(--byff-text) !important;
    text-decoration: none !important;
    transition: color .2s ease;
}
.byff-primary-menu a { font-size: var(--byff-primary-size); }
.byff-legal-menu a { font-size: var(--byff-legal-size); color: var(--byff-muted) !important; }
.byff-primary-menu a:hover,
.byff-legal-menu a:hover { color: var(--byff-hover) !important; }

.byff-copyright {
    font-size: var(--byff-copy-size);
    color: var(--byff-muted);
    line-height: 1.5;
}
.byff-legal-area { align-self: end; }

@media (max-width: 980px) {
    .byff-top-row,
    .byff-bottom-row { grid-template-columns: 1fr; }
    .byff-brand { font-size: clamp(48px, 11vw, var(--byff-brand-size)); }
    .byff-action-area { gap: 26px; }
    .byff-bottom-row { margin-top: 42px; gap: 20px; }
    .byff-legal-area { align-self: auto; }
}

@media (max-width: 640px) {
    .byff-brand { font-size: clamp(42px, 15vw, 70px); }
    .byff-cta { font-size: clamp(28px, 9vw, var(--byff-cta-size)); }
    .byff-cta-icon {
        width: min(var(--byff-cta-circle), 52px);
        height: min(var(--byff-cta-circle), 52px);
    }
    .byff-primary-menu,
    .byff-legal-menu { row-gap: 14px; }
}


/* Disabled sections do not reserve visual space. */
.byff-brand-area:empty,
.byff-action-area:empty,
.byff-copyright-area:empty,
.byff-legal-area:empty {
    min-height: 0;
}
