/* Family Neighborhood: a real shared table in white, tomato red and deep green. */
:root {
    --ln-ink: #174a38;
    --ln-paper: #ffffff;
    --ln-red: #d92f34;
    --ln-accent: #d92f34;
    --ln-secondary: #174a38;
    --ln-line: 1px solid rgb(23 74 56 / 20%);
}

.ln-root,
.ln-collection--family {
    overflow-x: clip;
}

.ln-collection--family { background: #fff; }
.ln-collection--family .ln-header { border-bottom: 1px solid var(--ln-red); box-shadow: inset 0 -3px 0 var(--ln-red); }
.ln-collection--family .ln-wordmark__name { color: var(--ln-red); }
.ln-collection--family .ln-wordmark__name span { color: var(--ln-ink); }
.ln-collection--family .ln-header__order { border-radius: 999px; padding-inline: 24px; }

.ln-family-choice-table { width: var(--ln-page); margin-inline: auto; padding: clamp(76px, 10vw, 140px) 0; }
.ln-family-choice-table > header { display: grid; margin-bottom: 48px; align-items: end; grid-template-columns: .55fr 1.45fr; gap: 40px; }
.ln-family-choice-table > header p { max-width: 24ch; color: var(--ln-red); font-weight: 800; }
.ln-family-choice-table h2 { font-size: clamp(3.6rem, 6.7vw, 6.2rem); line-height: .88; text-transform: uppercase; }
.ln-family-choice-table__grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 18px; }
.ln-family-choice-table__grid a {
    display: grid;
    min-height: 520px;
    overflow: hidden;
    border: 1px solid rgb(23 74 56 / 24%);
    background: #f4f8f5;
    grid-template-rows: minmax(0, 1fr) auto auto;
    transition: transform 220ms cubic-bezier(.22, 1, .36, 1), border-color 180ms ease;
}
.ln-family-choice-table__grid a:nth-child(2) { margin-top: 64px; }
.ln-family-choice-table__grid a:hover { border-color: var(--ln-red); transform: translateY(-6px); }
.ln-family-choice-table__grid img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.ln-family-choice-table__grid strong { padding: 20px 20px 2px; font-family: var(--ln-display); font-size: 2rem; text-transform: uppercase; }
.ln-family-choice-table__grid span { padding: 0 20px 22px; color: rgb(23 74 56 / 70%); font-size: .86rem; }

.ln-family-together { display: grid; min-height: 720px; background: var(--ln-ink); color: #fff; grid-template-columns: 1.08fr .92fr; }
.ln-family-together figure { min-height: 720px; }
.ln-family-together figure img { width: 100%; height: 100%; object-fit: cover; }
.ln-family-together > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(48px, 8vw, 120px); }
.ln-family-together > div > span { color: #fff; font-weight: 800; }
.ln-family-together h2 { margin-top: 18px; font-size: clamp(3.6rem, 6vw, 5.8rem); line-height: .88; text-transform: uppercase; }
.ln-family-together p { max-width: 50ch; margin-top: 28px; color: rgb(255 255 255 / 76%); }
.ln-family-together a,
.ln-footer__order {
    display: inline-flex;
    align-self: flex-start;
    min-height: 52px;
    margin-top: 34px;
    align-items: center;
    justify-content: space-between;
    border-radius: 999px;
    background: var(--ln-red);
    padding: 13px 22px;
    color: #fff;
    font-weight: 800;
    gap: 24px;
}

.ln-family-nearby { display: grid; width: var(--ln-page); min-height: 360px; margin-inline: auto; align-items: center; grid-template-columns: 1fr .55fr; }
.ln-family-nearby > div:first-child p { color: var(--ln-red); font-weight: 800; }
.ln-family-nearby h2 { margin-top: 14px; font-size: clamp(3.2rem, 5.5vw, 5.3rem); line-height: .9; text-transform: uppercase; }
.ln-family-nearby > div:last-child { border-left: 1px solid rgb(23 74 56 / 28%); padding-left: clamp(32px, 5vw, 72px); }
.ln-family-nearby > div:last-child p { color: var(--ln-ink); font-weight: 800; }
.ln-family-nearby a { display: inline-flex; margin-top: 22px; border-bottom: 2px solid var(--ln-red); padding-bottom: 6px; color: var(--ln-red); font-weight: 800; gap: 20px; }

.ln-menu-welcome { display: grid; min-height: 108px; align-items: center; border-block: 1px solid rgb(23 74 56 / 22%); background: #f1f7f3; padding: 22px max(24px, calc((100vw - 1400px) / 2)); grid-template-columns: .45fr 1fr; gap: 36px; }
.ln-menu-welcome strong { color: var(--ln-red); font-family: var(--ln-display); font-size: 1.7rem; text-transform: uppercase; }
.ln-menu-welcome p { max-width: 65ch; color: rgb(23 74 56 / 74%); }
.ln-collection--family .ln-order-context { background: #fff; }
.ln-collection--family .ln-category-nav { border-block: 0; background: var(--ln-ink); }
.ln-collection--family .ln-category-nav__inner > span { color: #fff; }
.ln-collection--family .ln-menu-layout { background: #f4f8f5; }
.ln-collection--family .ln-menu-category { padding: 0 22px; background: #fff; }
.ln-collection--family .ln-menu-category__head { border-bottom: 1px solid var(--ln-ink); box-shadow: inset 0 -2px 0 var(--ln-ink); }
.ln-collection--family .ln-menu-category__number { color: var(--ln-red); }
.ln-collection--family .ln-menu-item { min-height: 160px; border-radius: 0; background: #fff; }
.ln-collection--family .ln-menu-item:hover { background: #edf5f0; }
.ln-collection--family .ln-menu-item__add { border-radius: 999px; background: var(--ln-red); color: #fff; }
.ln-collection--family .ln-cart-dock { border-top: 0; border-radius: 12px; background: var(--ln-ink); box-shadow: inset 0 6px 0 var(--ln-red); }

.ln-collection--family .ln-system-mast {
    border: 0;
    background: #edf5f0;
    color: var(--ln-ink);
}
.ln-collection--family .ln-system-mast h1,
.ln-collection--family .ln-system-mast p,
.ln-collection--family .ln-system-mast .ln-back-link,
.ln-collection--family .ln-system-mast > div > p:last-child {
    color: var(--ln-ink);
}
.ln-collection--family .ln-system-mast__number { color: var(--ln-red); }
.ln-collection--family .ln-system-page,
.ln-collection--family .ln-cart-page,
.ln-collection--family .ln-checkout-page,
.ln-collection--family .ln-contact-page,
.ln-collection--family .ln-locations-page,
.ln-collection--family .ln-account-page,
.ln-collection--family .ln-auth-page { background: #fff; }
.ln-collection--family .ln-cart-workspace__context,
.ln-collection--family .ln-contact-details { border: 0; border-radius: 12px; background: var(--ln-ink); color: #fff; }
.ln-collection--family .ln-cart-workspace__context .ln-kicker,
.ln-collection--family .ln-contact-details span { color: #fff; }
.ln-collection--family .ln-cart-workspace__ticket,
.ln-collection--family .ln-contact-form,
.ln-collection--family .ln-auth-shell { border: 1px solid rgb(23 74 56 / 20%); border-radius: 12px; background: #fff; }
.ln-collection--family .ln-checkout-steps { overflow: hidden; border-radius: 12px; }
.ln-collection--family .ln-checkout-steps .is-current,
.ln-collection--family .btn-primary { background: var(--ln-red) !important; color: #fff !important; }
.ln-collection--family .form-control,
.ln-collection--family .form-select { min-height: 48px; border-color: rgb(23 74 56 / 32%); border-radius: 8px; }

.ln-collection--family .ln-footer { border-top: 1px solid var(--ln-red); background: var(--ln-ink); box-shadow: inset 0 7px 0 var(--ln-red); }
.ln-collection--family .ln-footer__marquee { background: #fff; color: var(--ln-ink); }
.ln-collection--family .ln-footer__main { grid-template-columns: 1.25fr .8fr .9fr .7fr; }
.ln-collection--family .ln-footer__brand { padding-right: 40px; }
.ln-collection--family .ln-wordmark--footer .ln-wordmark__name { color: #fff; }
.ln-collection--family .ln-wordmark--footer .ln-wordmark__name span { color: var(--ln-red); }
.ln-collection--family .ln-footer__order { margin-top: 24px; }
.ln-collection--family .ln-footer__bottom { grid-template-columns: 1fr auto auto; gap: 28px; }

@media (max-width: 960px) {
    .ln-family-choice-table > header { grid-template-columns: 1fr; }
    .ln-family-choice-table__grid { grid-template-columns: 1fr 1fr; }
    .ln-family-choice-table__grid a:nth-child(2) { margin-top: 0; }
    .ln-family-choice-table__grid a:last-child { grid-column: 1 / -1; }
    .ln-family-together { grid-template-columns: 1fr; }
    .ln-family-together figure { min-height: 520px; }
    .ln-family-nearby { grid-template-columns: 1fr; padding-block: 64px; gap: 42px; }
    .ln-family-nearby > div:last-child { border-top: 1px solid rgb(23 74 56 / 28%); border-left: 0; padding-top: 32px; padding-left: 0; }
    .ln-collection--family .ln-footer__main { grid-template-columns: 1fr 1fr; }
    .ln-collection--family .ln-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .ln-family-choice-table { width: calc(100% - 32px); }
    .ln-family-choice-table h2,
    .ln-family-together h2,
    .ln-family-nearby h2 { font-size: clamp(3rem, 14vw, 4.3rem); }
    .ln-family-choice-table__grid { grid-template-columns: 1fr; }
    .ln-family-choice-table__grid a,
    .ln-family-choice-table__grid a:last-child { min-height: 460px; grid-column: auto; }
    .ln-family-together figure { min-height: 390px; }
    .ln-family-together > div { padding: 54px 22px; }
    .ln-family-nearby { width: calc(100% - 32px); }
    .ln-menu-welcome { grid-template-columns: 1fr; gap: 8px; }
    .ln-collection--family .ln-footer__main { grid-template-columns: 1fr; }
    .ln-collection--family .ln-footer__bottom { display: flex; align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    .ln-family-choice-table__grid a { transition: none; }
}

/* QA 2026-07-25: contrast, readable type and touch targets */
.ln-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;
}

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

.ln-footer .ln-wordmark__name,
.ln-footer .ln-wordmark__name > span,
.ln-footer .ln-wordmark__name span { color: var(--ln-paper) !important; }
.ln-footer h2 { color: var(--ln-paper); }
.ln-footer :where(p, a, small),
.ln-footer__bottom,
.ln-footer__bottom a { color: rgb(255 255 255 / 82%); }
.ln-footer__bottom { font-size: .75rem; }

.ln-menu-hero,
.ln-menu-hero :where(h1, h2, h3, p, span),
.ln-cart-workspace__context {
    color: var(--ln-paper);
}
.ln-v2-menu-hero__copy,
.ln-v2-menu-hero__copy :where(h1, h2, h3, p, span) {
    color: var(--ln-paper) !important;
}
.ln-menu-hero .ln-kicker,
.ln-cart-workspace__context .ln-kicker,
.ln-cart-workspace__context a,
.ln-cart-workspace__context .text-success {
    color: var(--ln-paper) !important;
}

.ln-cart-box__title small,
.ln-cart-empty p,
.ln-cart-workspace__note,
.ln-local-header address {
    color: rgb(255 255 255 / 82%);
}

.ln-order-context .ln-local-header address { color: rgb(23 74 56 / 78%); }
.ln-cart-workspace__context .ln-local-header address,
.ln-cart-workspace__context .text-success { color: var(--ln-paper) !important; }
.ln-cart-dock__head small { color: rgb(255 255 255 / 82%); font-size: .75rem; }

.ln-map :where(.ln-kicker, h1, h2, h3, p, address, span),
.ln-auth-shell > header :where(.ln-wordmark__name, .ln-wordmark__name > span, h1, h2, h3, p, address, span) {
    color: var(--ln-paper);
}
.ln-auth-shell > header .ln-wordmark__name,
.ln-auth-shell > header .ln-wordmark__name > span,
.ln-auth-shell > header .ln-wordmark__name span,
.ln-auth-shell > header > p,
.ln-map__consent > div > p:last-child,
.ln-contact-details a:not(.ln-contact-details__phone),
.ln-location-hero .ln-kicker {
    color: var(--ln-paper) !important;
}

.ln-theme .text-success { color: #126b31 !important; }
.ln-menu-category__count,
.ln-checkout-steps li { color: rgb(23 74 56 / 74%); }
.ln-menu-category__count,
.ln-cart-box__title small,
.ln-cart-workspace__note { font-size: .75rem; }
.ln-family-choice-table__grid a > span { color: rgb(23 74 56 / 82%); }

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

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

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

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

.ln-footer small {
    color: rgb(255 255 255 / 84%) !important;
}

.ln-cart-page .text-success,
.ln-cart-workspace .text-success {
    color: #fff !important;
}
