@layer components {
    .sf-footer { position: fixed; z-index: var(--sf-z-shell); inset: auto 0 calc(var(--sf-bottom-nav-height) + env(safe-area-inset-bottom)); height: var(--sf-touch-target); border-top: 1px solid var(--sf-color-border); background: rgb(255 253 250 / .98); box-shadow: var(--sf-shadow-nav); }
    .sf-footer__inner { display: flex; width: 100%; height: 100%; align-items: center; overflow-x: auto; overscroll-behavior-inline: contain; padding-inline: var(--sf-page-gutter); scrollbar-width: none; }
    .sf-footer__inner::-webkit-scrollbar { display: none; }
    .sf-footer__links { display: flex; align-items: center; }
    .sf-footer :is(.sf-footer__links, .sf-consent-root) { flex: 0 0 auto; }
    .sf-footer .sf-link { display: flex; min-height: var(--sf-touch-target); align-items: center; padding-inline: var(--sf-space-2); font-size: var(--sf-font-size-100); white-space: nowrap; }
    .sf-contact-bubbles { display: grid; }
    .sf-contact-bubbles__channels { display: grid; gap: var(--sf-space-2); }

    .sf-field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
    .sf-local-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { width: 100%; min-width: 0; min-height: var(--sf-touch-target); border: 1px solid var(--sf-color-border); border-radius: var(--sf-radius-control); background: var(--sf-color-surface-raised); color: var(--sf-color-ink); padding: var(--sf-space-3); font: inherit; }
    .sf-local-form, .sf-local-form label { display: grid; }
    .sf-local-form { gap: var(--sf-space-3); }
    .sf-local-form label { gap: var(--sf-space-2); font-weight: 650; }

    :is(.sf-search-memory, .sf-discover__guide) > summary {
        display: flex;
        min-height: var(--sf-touch-target);
        align-items: center;
        cursor: pointer;
        font-weight: 700;
    }

    :is(.sf-search-memory, .sf-discover__guide) > summary + * {
        margin-top: var(--sf-space-3);
    }

}

@layer layout {
    .sf-shell__main { padding-bottom: var(--sf-mobile-stack-height); }
}

@layer components {
    .sf-contact-bubbles { bottom: var(--sf-mobile-stack-height); }
    .sf-consent { bottom: var(--sf-mobile-stack-height); }
}

@media (max-width: 63.99rem) {
    @layer components {
        .sf-contact-bubbles { position: static; z-index: auto; align-self: flex-end; margin: 0 var(--sf-page-gutter) var(--sf-mobile-stack-height); }
        body:has(.sf-checkout .sf-commerce-stage-cta,.sf-cart-layout>.sf-cart-stage-cta) .sf-contact-bubbles { margin-bottom: calc(var(--sf-mobile-stack-height) + var(--sf-control-lg) + var(--sf-space-6) + var(--sf-space-2)); }
    }
    html { scroll-padding-bottom: calc(var(--sf-mobile-stack-height) + var(--sf-space-3)); }
    :where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-bottom: calc(var(--sf-mobile-stack-height) + var(--sf-space-3)); }
}

@media (min-width: 64rem) {
    html { scroll-padding-bottom: calc(var(--sf-touch-target) + var(--sf-space-3)); }
    .sf-checkout :where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-bottom: calc(var(--sf-touch-target) + 2 * var(--sf-space-3)); }

    @layer layout {
        .sf-shell__main { padding-bottom: calc(var(--sf-touch-target) + var(--sf-space-5)); }
    }

    @layer components {
        .sf-footer { inset: auto 0 0; }
        .sf-footer__inner { width: min(100%, var(--sf-content-max)); margin-inline: auto; }
        .sf-contact-bubbles, .sf-consent { bottom: calc(var(--sf-touch-target) + var(--sf-space-5)); }
    }
}

@media (max-width: 42.99rem) {
    @layer components {
        .sf-catalog-toolbar [data-catalog-view-controls] {
            display: grid;
            grid-column: 1 / -1;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: var(--sf-space-2);
        }

        .sf-catalog-toolbar [data-catalog-view-controls] .sf-button {
            width: 100%;
        }
    }
}

@media (max-width: 42.99rem) {
    @layer components {
        .sf-header:not(.sf-header--compact) .sf-header__information-action--authenticated { display: none; }
        .sf-header__inner--catalog-controls .sf-header__catalog-controls { min-height: var(--sf-touch-target); }
        [data-home-catalog] [data-catalog-results]:not(.sf-product-grid--list) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        [data-home-catalog] .sf-product-card__meta { flex-direction: column; align-items: stretch; }

        [data-cookie-table] :is(table, tbody, tr, td) { display: block; width: 100%; }
        [data-cookie-table] thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
        [data-cookie-table] tr { padding-block: var(--sf-space-3); }
        [data-cookie-table] tr + tr { border-top: 1px solid var(--sf-color-border); }
        [data-cookie-table] td { display: grid; gap: var(--sf-space-1); padding-block: var(--sf-space-2); }
        [data-cookie-table] td::before { content: attr(data-label); color: var(--sf-color-ink-muted); font-size: var(--sf-font-size-100); font-weight: 700; }
        [data-cookie-table] code { overflow-wrap: anywhere; }
    }
}

/* HU-1024: guidance stays in document flow, away from fixed commerce actions. */
.sf-browser-help { margin-block: var(--sf-space-3, .75rem); }
.sf-browser-help summary { cursor: pointer; min-height: 44px; align-content: center; font-weight: 600; }
.sf-browser-help summary:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.sf-browser-help p { max-width: 65ch; margin-block: .5rem .75rem; }
