/* Shared responsive safeguards for every page. */
html {
    max-width: 100%;
    overflow-x: clip;
    min-height: 100%;
    min-height: -webkit-fill-available;
}

body {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
    min-height: 100vh;
    min-height: -webkit-fill-available;
    min-height: 100svh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

/* =========================================================
   GLOBAL BRAND LOGO (CONSISTENT DIMENSIONS ACROSS ALL NAVS)
========================================================= */
.logo,
.logo-wrap {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-decoration: none !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
}

.logo-img,
.logo img,
.logo-wrap img {
    height: 34px !important;
    max-height: 34px !important;
    min-height: 34px !important;
    width: auto !important;
    max-width: 120px !important;
    object-fit: contain !important;
    display: block !important;
    vertical-align: middle !important;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.logo:hover .logo-img,
.logo:hover img,
.logo-wrap:hover img {
    opacity: 0.92;
    transform: scale(1.02);
}

@media (max-width: 480px) {
    .logo-img,
    .logo img,
    .logo-wrap img {
        height: 30px !important;
        max-height: 30px !important;
        min-height: 30px !important;
    }
}


img,
video,
svg,
canvas,
iframe {
    max-width: 100%;
}

img,
video {
    height: auto;
}

input,
select,
textarea,
button {
    max-width: 100%;
    min-width: 0;
}

button,
a {
    overflow-wrap: anywhere;
}

table {
    display: table;
    max-width: none;
}

footer,
.footer {
    width: 100%;
    flex-shrink: 0;
    margin-top: auto;
}

@media (max-width: 768px) {
    body {
        min-width: 0;
        min-height: 100vh;
        min-height: -webkit-fill-available;
        min-height: 100svh;
        min-height: 100dvh;
    }

    .container,
    .wrapper,
    .content,
    .layout,
    .main,
    .page,
    .success-wrapper,
    .order-wrapper {
        max-width: 100%;
    }

    input,
    select,
    textarea {
        font-size: 16px;
    }

    footer,
    .footer {
        min-height: 0 !important;
        height: auto !important;
        margin-top: auto !important;
        padding: 22px 16px calc(22px + env(safe-area-inset-bottom, 0px)) !important;
    }

    footer > *,
    footer .footer-container,
    .footer > *,
    .footer .footer-container {
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 auto !important;
        flex-wrap: wrap;
        gap: 12px;
    }
}
