/* ============================================================
   CHAPATUMAC — PUBLIC SHELL
   Concepto visual: “si Saul Goodman vendiera MacBooks”
   Conserva los selectores existentes del layout.
   ============================================================ */

.mac-sales-body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--ctm-brand-canvas);
    color: var(--ctm-brand-ink);
}

    .mac-sales-body > main {
        flex: 1 0 auto;
        position: relative;
        overflow: hidden;
        background: var(--ctm-brand-canvas);
    }

/* ============================================================
   HEADER
   ============================================================ */

.public-header {
    min-height: 76px;
    padding: 9px clamp(20px, 4vw, 58px);
    border: 0;
    border-bottom: 1px solid rgba(255, 0, 0, .42);
    background: var(--ctm-brand-surface-strong);
    box-shadow: 0 6px 18px rgba(45, 32, 20, .08);
    color: var(--ctm-brand-ink);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-sizing: border-box;
}

    .public-header .brand-link {
        flex: 0 0 auto;
        color: inherit;
        text-decoration: none;
    }

    .public-header .brand-name {
        display: inline-block;
        color: var(--ctm-brand-ink);
        font-family: var(--ctm-brand-font-display);
        font-size: clamp(2.15rem, 3vw, 2.85rem);
        line-height: .9;
        letter-spacing: .035em;
        /*text-shadow: 2px 2px 0 #ffe500;*/
        transition: transform 150ms ease, text-shadow 150ms ease;
    }

        .public-header .brand-name span {
            color: var(--ctm-brand-red);
        }

    .public-header .brand-link:hover .brand-name {
        transform: rotate(-1deg) translateY(-1px);
        text-shadow: 3px 3px 0 var(--ctm-brand-yellow);
    }

    .public-header .primary-nav {
        min-width: 0;
        display: flex;
        align-items: center;
    }

    .public-header .nav-links {
        margin: 0;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: clamp(10px, 1.6vw, 25px);
        list-style: none;
        box-sizing: border-box;
    }

    .public-header .nav-menu-toggle,
    .public-header .close-menu-container {
        display: none;
    }

    .public-header .nav-link,
    .public-header .nav-logout-button {
        min-height: 42px;
        padding: 9px 8px;
        border: 0;
        background: transparent;
        box-shadow: none;
        color: var(--ctm-brand-ink);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: relative;
        box-sizing: border-box;
        font-family: var(--ctm-brand-font-display);
        font-weight: 700;
        font-size: 1.16rem;
        letter-spacing: .045em;
        line-height: 1;
        text-align: center;
        text-decoration: none;
        text-transform: uppercase;
        white-space: nowrap;
        cursor: pointer;
        transform: none;
        transition: color 140ms ease, transform 140ms ease;
    }

        .public-header .nav-link.is-active {
            padding-inline: 10px;
            border: 2px solid var(--ctm-brand-ink);
            border-radius: var(--ctm-brand-radius-sm);
            background: var(--ctm-brand-yellow);
            box-shadow: 2px 2px 0 var(--ctm-brand-ink);
            color: var(--ctm-brand-ink);
            transform: none;
        }

        .public-header .nav-link:not(.is-active):not(.nav-cta):hover,
        .public-header .nav-logout-button:hover {
            border: 0;
            background: transparent;
            box-shadow: none;
            color: var(--ctm-brand-red);
            transform: translateY(-1px);
        }

    .public-header .nav-cta,
    .public-header .nav-cta.is-active {
        min-height: 42px;
        padding: 10px 20px;
        border: 2px solid var(--ctm-brand-ink);
        border-radius: var(--ctm-brand-radius-sm);
        background: var(--ctm-brand-red);
        box-shadow: 3px 3px 0 var(--ctm-brand-ink);
        color: #fff;
        font-size: 1.18rem;
        transform: rotate(-1deg);
    }

        .public-header .nav-cta:hover,
        .public-header .nav-cta.is-active:hover {
            border: 2px solid var(--ctm-brand-ink);
            background: var(--ctm-brand-yellow);
            box-shadow: 3px 3px 0 var(--ctm-brand-ink);
            color: var(--ctm-brand-ink);
            transform: translateY(-1px);
        }

    .public-header .brand-link:focus-visible,
    .public-header .nav-link:focus-visible,
    .public-header .nav-menu-toggle:focus-visible,
    .public-header .close-menu:focus-visible,
    .public-header .nav-logout-button:focus-visible {
        outline: 4px solid var(--ctm-brand-cyan);
        outline-offset: 4px;
    }

/* ============================================================
   FOOTER
   ============================================================ */

.public-footer {
    width: 100%;
    margin-top: auto;
    padding: 0;
    border: 0;
    border-top: 4px solid var(--ctm-brand-red);
    background: #111;
    color: #f0f0f0;
    font-family: 'Inter', sans-serif;
    text-align: left;
    text-transform: none;
    position: relative;
}

    .public-footer::before {
        content: '';
        height: 4px;
        position: absolute;
        left: 0;
        right: 0;
        top: -8px;
        background: var(--ctm-brand-yellow);
    }

.public-footer__inner {
    width: min(100%, 1240px);
    margin: 0 auto;
    padding: 30px clamp(20px, 4vw, 54px);
    display: grid;
    grid-template-columns: auto auto minmax(260px, 1fr);
    align-items: center;
    gap: 18px 34px;
}

.public-footer p {
    margin: 0;
}

.public-footer__brand {
    color: #fff;
    font: 400 1.7rem/1 'Bebas Neue', 'Arial Narrow', sans-serif;
    letter-spacing: .045em;
    text-decoration: none;
    text-shadow: 2px 2px 0 var(--ctm-brand-red);
}

    .public-footer__brand::after {
        content: '';
        width: 34px;
        height: 4px;
        margin-top: 7px;
        display: block;
        background: var(--ctm-brand-yellow);
    }

.public-footer__legal {
    max-width: 760px;
    color: #c9c9c9;
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.6;
}

/* ============================================================
   MOBILE MENU
   ============================================================ */

@media (max-width: 860px) {
    body.nav-menu-open {
        overflow: hidden;
    }

    .public-header {
        width: 100%;
        max-width: none;
        min-height: 68px;
        padding: 8px 16px;
        gap: 12px;
    }

        .public-header .brand-name {
            font-size: 2.2rem;
        }

        .public-header .nav-menu-toggle {
            width: 46px;
            height: 46px;
            padding: 10px;
            border: 2px solid var(--ctm-brand-ink);
            border-radius: var(--ctm-brand-radius-sm);
            background: var(--ctm-brand-yellow);
            box-shadow: 2px 2px 0 var(--ctm-brand-ink);
            color: var(--ctm-brand-red);
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 5px;
            cursor: pointer;
        }

            .public-header .nav-menu-toggle span {
                width: 100%;
                height: 3px;
                display: block;
                background: currentColor;
            }

        .public-header .nav-links {
            width: 100%;
            height: auto;
            max-height: none;
            padding: 14px 16px 18px;
            position: fixed;
            top: var(--public-header-height, 68px);
            right: 0;
            bottom: 0;
            left: 0;
            border: 0;
            background: var(--ctm-brand-surface);
            box-shadow: 0 14px 30px rgba(45, 32, 20, .16);
            flex-direction: column;
            align-items: stretch;
            justify-content: flex-start;
            gap: 9px;
            overflow-y: auto;
            opacity: 0;
            transform: translateY(-8px);
            visibility: hidden;
            pointer-events: none;
            transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
            z-index: 1100;
        }

            .public-header .nav-links.active {
                opacity: 1;
                transform: translateY(0);
                visibility: visible;
                pointer-events: auto;
            }

        .public-header .close-menu-container {
            margin-bottom: 0;
            padding-bottom: 2px;
            border-bottom: 0;
            display: flex;
            justify-content: flex-end;
        }

        .public-header .close-menu {
            width: 38px;
            height: 38px;
            border: 2px solid var(--ctm-brand-ink);
            border-radius: var(--ctm-brand-radius-sm);
            background: var(--ctm-brand-red);
            box-shadow: 2px 2px 0 var(--ctm-brand-ink);
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1.55rem;
            cursor: pointer;
        }

        .public-header .nav-links > li,
        .public-header .nav-link,
        .public-header .nav-logout-form,
        .public-header .nav-logout-button {
            width: 100%;
        }

        .public-header .nav-link,
        .public-header .nav-logout-button {
            min-height: 46px;
            padding: 10px 13px;
            border: 1px solid rgba(0, 0, 0, .22);
            border-radius: var(--ctm-brand-radius-sm);
            background: var(--ctm-brand-surface-strong);
            box-shadow: 0 5px 14px rgba(45, 32, 20, .08);
            color: var(--ctm-brand-ink);
            font-size: 1.28rem;
            text-align: left;
            justify-content: flex-start;
        }

            .public-header .nav-link.is-active {
                border: 2px solid var(--ctm-brand-ink);
                background: var(--ctm-brand-yellow);
                box-shadow: 2px 2px 0 var(--ctm-brand-ink);
                color: var(--ctm-brand-ink);
                transform: none;
            }

        .public-header .nav-cta,
        .public-header .nav-cta.is-active {
            border: 2px solid var(--ctm-brand-ink);
            background: var(--ctm-brand-red);
            color: #fff;
            text-align: center;
            justify-content: center;
        }

    .public-footer__inner {
        grid-template-columns: 1fr;
        padding-block: 26px;
        gap: 13px;
    }
}

@media (max-width: 360px) {
    .public-header {
        padding-inline: 12px;
    }

        .public-header .brand-name {
            font-size: 2rem;
        }

        .public-header .nav-menu-toggle {
            width: 42px;
            height: 42px;
            padding: 8px;
        }

        .public-header .nav-links {
            padding-inline: 12px;
        }
}

@media (prefers-reduced-motion: reduce) {
    .public-header *,
    .public-footer * {
        transition: none !important;
    }
}
