/* Urban Smash: underground food campaign, electric violet and acid yellow. */
:root {
    --lu-ink: #080808;
    --lu-paper: #080808;
    --lu-red: #7c2cff;
    --lu-accent: #7c2cff;
    --lu-secondary: #d8ff00;
    --lu-line: 1px solid rgb(255 255 255 / 22%);
}

.lu-collection--urban { background: var(--lu-ink); color: #f7f7f2; }
.lu-root,
.lu-collection--urban { overflow-x: clip; }
.lu-collection--urban .lu-menu-toggle span { background: var(--lu-secondary); }
.lu-collection--urban .lu-header { border-bottom: 3px solid var(--lu-red); background: #050505; }
.lu-collection--urban .lu-header__inner { height: 78px; }
.lu-collection--urban .lu-wordmark__name { color: var(--lu-secondary); }
.lu-collection--urban .lu-wordmark__name span { color: var(--lu-red); }
.lu-collection--urban .lu-header__order { background: var(--lu-secondary); color: var(--lu-ink) !important; }

.lu-campaign-tape { overflow: hidden; border-block: 2px solid #f7f7f2; background: var(--lu-secondary); color: var(--lu-ink); white-space: nowrap; }
.lu-campaign-tape span { display: block; width: max-content; padding: 15px 0; font-family: var(--lu-display); font-size: 1.35rem; text-transform: uppercase; word-spacing: 22px; }

.lu-drop-feature {
    display: grid;
    width: var(--lu-page);
    margin: clamp(70px, 9vw, 130px) auto;
    align-items: center;
    grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr);
}
.lu-drop-feature__copy {
    position: relative;
    z-index: 2;
    margin-right: -72px;
    background: var(--lu-red);
    padding: clamp(44px, 6vw, 84px);
    color: #fff;
    transform: rotate(-1.2deg);
}
.lu-drop-feature__copy > span { color: var(--lu-secondary); font-weight: 900; text-transform: uppercase; }
.lu-drop-feature h2 { margin-top: 18px; font-size: clamp(3.8rem, 6vw, 6rem); line-height: .84; text-transform: uppercase; }
.lu-drop-feature p { max-width: 45ch; margin-top: 26px; color: rgb(255 255 255 / 78%); }
.lu-drop-feature a { display: inline-flex; margin-top: 34px; align-items: center; border-bottom: 3px solid var(--lu-secondary); padding-bottom: 7px; color: var(--lu-secondary); font-weight: 900; gap: 24px; text-transform: uppercase; }
.lu-drop-feature figure { min-height: 690px; overflow: hidden; border: 2px solid #f7f7f2; }
.lu-drop-feature figure img { width: 100%; height: 650px; object-fit: cover; filter: contrast(1.08) saturate(1.08); }
.lu-drop-feature figcaption { min-height: 40px; background: #f7f7f2; padding: 10px 14px; color: var(--lu-ink); font-size: .72rem; font-weight: 800; text-transform: uppercase; }

.lu-manifesto {
    display: grid;
    min-height: 610px;
    align-items: center;
    border-block: 2px solid #f7f7f2;
    background: #111;
    grid-template-columns: minmax(180px, .34fr) minmax(0, 1fr) minmax(230px, .4fr);
}
.lu-manifesto > div:first-child { align-self: stretch; display: grid; place-items: center; overflow: hidden; border-right: 2px solid #f7f7f2; color: var(--lu-red); font-family: var(--lu-display); font-size: min(33vw, 30rem); line-height: .7; }
.lu-manifesto > div:nth-child(2) { padding: clamp(50px, 8vw, 120px); }
.lu-manifesto h2 { color: #f7f7f2; font-size: clamp(4rem, 8vw, 7.5rem); line-height: .8; text-transform: uppercase; }
.lu-manifesto p { max-width: 56ch; margin-top: 34px; color: rgb(247 247 242 / 68%); }
.lu-manifesto > a { align-self: stretch; display: flex; align-items: flex-end; justify-content: space-between; border-left: 2px solid #f7f7f2; background: var(--lu-secondary); padding: 34px; color: var(--lu-ink); font-family: var(--lu-display); font-size: 1.7rem; text-transform: uppercase; }

.lu-night-order { display: grid; width: var(--lu-page); min-height: 430px; margin-inline: auto; align-items: center; grid-template-columns: 1fr .55fr; }
.lu-night-order > div:first-child { padding: 72px 0; }
.lu-night-order > div:first-child > span { color: var(--lu-secondary); font-weight: 900; text-transform: uppercase; }
.lu-night-order h2 { margin-top: 20px; font-size: clamp(4.2rem, 8vw, 7.5rem); line-height: .78; text-transform: uppercase; }
.lu-night-order > div:last-child { display: flex; min-height: 220px; flex-direction: column; justify-content: space-between; border: 2px solid var(--lu-red); padding: 32px; }
.lu-night-order > div:last-child p { color: rgb(247 247 242 / 68%); }
.lu-night-order a { display: inline-flex; min-height: 58px; align-items: center; justify-content: center; background: var(--lu-red); color: #fff; font-weight: 900; text-transform: uppercase; }

.lu-menu-dropbar { display: flex; overflow: hidden; border-block: 2px solid #f7f7f2; background: var(--lu-secondary); color: var(--lu-ink); }
.lu-menu-dropbar span { flex: 1 0 auto; padding: 13px 28px; font-family: var(--lu-display); font-size: 1.25rem; text-align: center; }
.lu-collection--urban .lu-order-context,
.lu-collection--urban .lu-menu-layout { background: var(--lu-ink); color: #f7f7f2; }
.lu-collection--urban .lu-order-context { border-color: rgb(255 255 255 / 24%); }
.lu-collection--urban .lu-category-nav { border-block: 2px solid #f7f7f2; background: var(--lu-ink); }
.lu-collection--urban .lu-category-nav__inner > span { color: var(--lu-secondary); }
.lu-collection--urban .lu-menu-category__head { border-bottom: 3px solid var(--lu-red); }
.lu-collection--urban .lu-menu-category__number { color: var(--lu-secondary); }
.lu-collection--urban .lu-menu-category__description,
.lu-collection--urban .lu-menu-item__description,
.lu-collection--urban .text-muted { color: rgb(247 247 242 / 66%) !important; }
.lu-collection--urban .lu-menu-item { min-height: 170px; border-color: rgb(255 255 255 / 20%); background: #101010; }
.lu-collection--urban .lu-menu-item:hover { background: #17111f; }
.lu-collection--urban .lu-menu-item__add { border-color: var(--lu-secondary); background: var(--lu-secondary); color: var(--lu-ink); }
.lu-collection--urban .lu-cart-dock { border: 2px solid var(--lu-red); border-top-width: 8px; background: #111; }

.lu-collection--urban .lu-system-page,
.lu-collection--urban .lu-cart-page,
.lu-collection--urban .lu-checkout-page,
.lu-collection--urban .lu-contact-page,
.lu-collection--urban .lu-locations-page,
.lu-collection--urban .lu-account-page,
.lu-collection--urban .lu-auth-page { background: var(--lu-ink); color: #f7f7f2; }
.lu-collection--urban .lu-system-mast { border-color: #f7f7f2; background: var(--lu-red); color: #fff; }
.lu-collection--urban .lu-kicker,
.lu-collection--urban .lu-system-mast__number { color: var(--lu-secondary); }
.lu-collection--urban .lu-cart-workspace__context,
.lu-collection--urban .lu-contact-details { border: 2px solid var(--lu-red); background: #111; }
.lu-collection--urban .lu-cart-workspace__ticket,
.lu-collection--urban .lu-contact-form,
.lu-collection--urban .lu-auth-shell,
.lu-collection--urban .card,
.lu-collection--urban .list-group-item { border-color: rgb(255 255 255 / 22%); border-radius: 0; background: #111; color: #f7f7f2; }
.lu-collection--urban .lu-cart-workspace__context,
.lu-collection--urban .lu-cart-workspace__context h2,
.lu-collection--urban .lu-cart-workspace__context h3,
.lu-collection--urban .lu-cart-workspace__context address,
.lu-collection--urban .lu-cart-workspace__context p,
.lu-collection--urban .lu-cart-workspace__context .lu-local-header__heading > span {
    color: #f7f7f2;
}
.lu-collection--urban .lu-cart-workspace__context address,
.lu-collection--urban .lu-cart-workspace__note { color: rgb(247 247 242 / 68%); }
.lu-collection--urban .lu-cart-workspace__ticket,
.lu-collection--urban .lu-cart-workspace__ticket h2,
.lu-collection--urban .lu-cart-workspace__ticket h3,
.lu-collection--urban .lu-cart-workspace__ticket h4,
.lu-collection--urban .lu-cart-workspace__ticket h5,
.lu-collection--urban .lu-cart-workspace__ticket label,
.lu-collection--urban .lu-cart-workspace__ticket table,
.lu-collection--urban .lu-cart-workspace__ticket th,
.lu-collection--urban .lu-cart-workspace__ticket td,
.lu-collection--urban .lu-cart-workspace__ticket .cart-total,
.lu-collection--urban .lu-cart-workspace__ticket [class*="cart-total"] {
    color: #f7f7f2 !important;
}
.lu-collection--urban .lu-cart-workspace__ticket > header,
.lu-collection--urban .lu-cart-item,
.lu-collection--urban .lu-cart-totals > * {
    border-color: rgb(247 247 242 / 36%);
}
.lu-collection--urban .lu-cart-workspace__ticket .lu-cart-empty p,
.lu-collection--urban .lu-cart-workspace__ticket .lu-cart-item__content p,
.lu-collection--urban .lu-cart-workspace__ticket .lu-cart-item__content ul,
.lu-collection--urban .lu-cart-workspace__ticket .text-muted {
    color: rgb(247 247 242 / 66%) !important;
}
.lu-collection--urban .lu-cart-workspace__ticket .form-control,
.lu-collection--urban .lu-cart-workspace__ticket input {
    border-color: rgb(247 247 242 / 42%) !important;
    background: transparent !important;
    color: #f7f7f2 !important;
}
.lu-collection--urban .lu-cart-workspace__ticket .form-control::placeholder,
.lu-collection--urban .lu-cart-workspace__ticket input::placeholder {
    color: rgb(247 247 242 / 52%) !important;
    opacity: 1;
}
.lu-collection--urban .form-control,
.lu-collection--urban .form-select { border-color: rgb(255 255 255 / 38%); background: var(--lu-ink); color: #f7f7f2; }
.lu-collection--urban .form-control::placeholder { color: rgb(247 247 242 / 62%); }
.lu-collection--urban .lu-checkout-steps { border-color: #f7f7f2; }
.lu-collection--urban .lu-checkout-steps .is-current,
.lu-collection--urban .btn-primary { background: var(--lu-secondary) !important; color: var(--lu-ink) !important; }

.lu-collection--urban .lu-footer { border-top: 3px solid var(--lu-red); background: #050505; }
.lu-collection--urban .lu-footer__marquee { background: var(--lu-secondary); color: var(--lu-ink); }
.lu-collection--urban .lu-footer__main { min-height: 430px; grid-template-columns: 1.4fr .8fr .8fr .65fr; }
.lu-collection--urban .lu-wordmark--footer .lu-wordmark__name { font-size: clamp(4rem, 8vw, 7rem); }
.lu-collection--urban .lu-footer__order { display: inline-flex; margin-top: 28px; align-items: center; border-bottom: 3px solid var(--lu-secondary); padding-bottom: 6px; color: var(--lu-secondary); font-weight: 900; gap: 22px; text-transform: uppercase; }
.lu-collection--urban .lu-footer__bottom { grid-template-columns: 1fr auto auto; gap: 28px; }

@media (max-width: 960px) {
    .lu-drop-feature { grid-template-columns: 1fr; }
    .lu-drop-feature__copy { margin: 0 24px -40px; transform: rotate(-.7deg); }
    .lu-manifesto { grid-template-columns: 120px 1fr; }
    .lu-manifesto > a { min-height: 120px; grid-column: 1 / -1; border-top: 2px solid #f7f7f2; border-left: 0; }
    .lu-night-order { grid-template-columns: 1fr; padding-block: 40px 70px; }
    .lu-collection--urban .lu-footer__main { grid-template-columns: 1fr 1fr; }
    .lu-collection--urban .lu-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .lu-drop-feature {
        width: calc(100vw - 32px);
        max-width: calc(100vw - 32px);
        margin-block: 70px;
    }
    .lu-drop-feature__copy { margin: 0 12px -24px; padding: 38px 24px; }
    .lu-drop-feature h2,
    .lu-night-order h2 { font-size: clamp(3.4rem, 17vw, 5rem); }
    .lu-drop-feature figure,
    .lu-drop-feature figure img { min-height: 420px; height: 420px; }
    .lu-manifesto { grid-template-columns: 76px 1fr; }
    .lu-manifesto > div:nth-child(2) { padding: 54px 22px; }
    .lu-manifesto h2 { font-size: clamp(3.4rem, 16vw, 5rem); }
    .lu-night-order { width: calc(100% - 32px); }
    .lu-collection--urban .lu-footer__main { grid-template-columns: 1fr; }
    .lu-collection--urban .lu-footer__bottom { display: flex; align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    .lu-drop-feature__copy { transform: none; }
}

/* QA 2026-07-25: repair the dark-surface token and strengthen usability */
:root {
    --lu-paper: #f7f7f2;
    --lu-on-dark: #f7f7f2;
    --lu-violet-text: #bda3ff;
}

.lu-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
}

.lu-theme :focus-visible {
    outline: 3px solid var(--lu-secondary) !important;
    outline-offset: 3px !important;
}

.lu-skip-link {
    background: var(--lu-secondary) !important;
    color: var(--lu-ink) !important;
}

.lu-menu-toggle { color: var(--lu-secondary); }
.lu-menu-toggle span { background: currentColor; }
.lu-footer { color: var(--lu-on-dark); }
.lu-footer .lu-wordmark__name { color: var(--lu-secondary); }
.lu-footer .lu-wordmark__name > span { color: var(--lu-violet-text); }
.lu-footer h2 { color: var(--lu-violet-text) !important; }
.lu-footer :where(p, a, small),
.lu-footer__bottom,
.lu-footer__bottom a { color: rgb(247 247 242 / 80%); }
.lu-footer__bottom { font-size: .75rem; }

.lu-order-context,
.lu-local-header,
.lu-menu-category,
.lu-cart-box,
.lu-cart-workspace__context,
.lu-contact-details,
.lu-location-picker,
.lu-location-card {
    color: var(--lu-on-dark);
}

.lu-order-context address,
.lu-local-header address,
.lu-menu-category__description,
.lu-menu-category__count,
.lu-cart-empty p,
.lu-cart-workspace__note,
.lu-contact-details address,
.lu-contact-details p,
.lu-location-picker > header > p,
.lu-location-card address,
.lu-location-card p {
    color: rgb(247 247 242 / 80%);
}

.lu-order-context__label,
.lu-local-header__link,
.lu-menu-category__count,
.lu-cart-workspace__context a,
.lu-contact-details span,
.lu-contact-details a,
.lu-location-card__index,
.lu-location-card__service > span,
.lu-location-card__action,
.lu-location-picker .is-open {
    color: var(--lu-violet-text) !important;
}

.lu-local-header__body > a,
.lu-order-context .text-primary,
.lu-cart-workspace__ticket > header span {
    color: var(--lu-violet-text) !important;
}

.lu-drop-feature p,
.lu-cart-workspace__context :where(.lu-back-link, p),
.lu-auth-shell > header > p,
.lu-contact-intro > p:last-child,
.lu-location-picker > header > p:last-child,
.lu-map__consent > div > p:last-child {
    color: var(--lu-on-dark) !important;
}

.lu-map,
.lu-auth-shell > header,
.lu-mobile-order-bar {
    color: var(--lu-on-dark);
}
.lu-map :where(h1, h2, h3, p, address, span),
.lu-auth-shell > header :where(h1, h2, h3, p, address, span, small),
.lu-mobile-order-bar :where(span, strong) {
    color: var(--lu-on-dark);
}
.lu-map .lu-button--paper {
    background: var(--lu-paper);
    color: var(--lu-ink) !important;
}
.lu-mobile-order-bar {
    background: var(--lu-red);
}
.lu-mobile-order-bar a,
.lu-checkout-button {
    color: var(--lu-on-dark) !important;
}

.lu-theme .text-success { color: #16703a !important; }
.lu-order-context .text-success,
.lu-cart-workspace__context .text-success { color: var(--lu-secondary) !important; }
.lu-menu-category__count,
.lu-cart-box__title small,
.lu-cart-workspace__note { font-size: .75rem; }
.lu-checkout-steps li { color: rgb(17 17 17 / 72%); }

.lu-cart-item__quantity {
    grid-template-columns: 44px minmax(34px, auto) 44px;
}
.lu-cart-item__quantity button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    font-size: .8rem;
}

.lu-checkout-button:disabled,
.lu-checkout-button[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .76;
}

/* QA: operational copy stays readable on every viewport. */
.lu-wordmark small,
.lu-header__status,
.lu-header__signal,
.lu-mobile-menu__status,
.lu-mobile-menu__links span,
.lu-rating-rail__score > span,
.lu-rating-rail__score small,
.lu-rating-rail blockquote footer,
.lu-neighborhood__brand > p,
.lu-footer__hours small,
.lu-footer__bottom,
.lu-menu-hero__edition span,
.lu-menu-hero__edition small,
.lu-local-header__heading > span,
.lu-menu-category__count,
.lu-menu-item__availability,
.lu-menu-item__price s,
.lu-cart-dock__head small,
.lu-cart-item__quantity button,
.lu-cart-item__edit i,
.lu-cart-item__content p,
.lu-cart-item__content ul,
.lu-cart-item__price s,
.lu-cart-workspace__ticket > header span,
.lu-checkout-steps span,
.lu-location-search label,
.lu-contact-details span,
.lu-order-ticket dt,
.lu-urban-hero figure figcaption,
.lu-urban-hero__status span,
.lu-drop-feature figcaption {
    font-size: .75rem;
}

.lu-menu-item__description,
.lu-menu-item__body .menu-item-ingredients,
.lu-menu-item__body [class*="ingredient"] {
    font-size: .875rem !important;
}

.lu-order-context a.small.text-primary,
.lu-local-header a.small.text-primary {
    color: var(--lu-secondary) !important;
}

.lu-cart-workspace__context .lu-back-link,
.lu-cart-workspace__context > p,
.lu-cart-workspace__context p {
    color: #fff !important;
}

.lu-cart-page .lu-system-mast .lu-back-link,
.lu-cart-page .lu-system-mast > p {
    color: #fff !important;
}

.lu-cart-page .lu-system-mast p {
    color: #fff !important;
}

.lu-cart-box__title > span {
    color: var(--lu-secondary) !important;
    font-size: .875rem !important;
}
