/* Banner controls keep their own hover and press feedback. */
@media (hover: hover) and (pointer: fine) {
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase :is(.home-entry, .home-hero-arrow, .home-video-retry) {
    cursor: pointer;
    transition: background-color 160ms ease, outline-color 160ms ease, filter 160ms ease;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-entry:hover {
    outline: 2px solid rgba(255,255,255,.85);
    outline-offset: -3px;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-entry:hover small {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase .home-hero-arrow:hover {
    transform: none;
  }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-video-retry:hover {
    background: var(--olive-deep);
  }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase :is(.home-entry, .home-hero-arrow, .home-video-retry):active {
    filter: brightness(.85);
    transition-duration: 60ms;
  }
}
@media (prefers-reduced-motion: reduce) {
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase :is(.home-entry, .home-hero-arrow, .home-video-retry) {
    transition: none;
  }
}

/* Web Home: the launch assortment. Shared product/menu styles remain upstream. */
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch { --home-banner-inset: 24px; --home-control-gap: 8px; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase { gap: 24px; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-active-order {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  min-height: 62px;
  margin: 0 0 24px;
  padding: 12px 18px;
  border: 0;
  border-radius: 20px;
  background: #edf0e4;
  color: var(--ink);
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-active-order[hidden] { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-active-order:hover { background: #dce7cc; border-color: rgba(82, 103, 57, .45); transform: translateY(-1px); }
.home-active-order__copy { display: grid; gap: 6px; min-width: 0; }
.home-active-order__copy strong { font: 560 28px/1 var(--font-brand); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.home-active-order__copy > span { color: var(--olive-deep); font: 400 15px/1.35 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; }
.home-active-order__action { display: inline-flex; align-items: center; gap: 5px; color: var(--olive-deep); font: 700 12px/1 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; letter-spacing: .04em; }
.home-active-order__action svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase__side { grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-direction-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); height: 100%; gap: 16px; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-directions { height: 100%; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-directions > h2 { display: none; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf { position: relative; isolation: isolate; display: flex; align-items: stretch; padding: var(--home-banner-inset); overflow: hidden; border-radius: 28px; corner-shape: squircle; background: #ddd5c7; }
.home-launch .home-decaf::after { content: ''; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(246,241,232,.96) 0%, rgba(246,241,232,.88) 38%, rgba(246,241,232,.18) 68%, transparent 82%); }
.home-launch .home-decaf__copy { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; width: min(68%, 430px); }
.home-launch .home-decaf h2 { margin: 8px 0 12px; font: 620 clamp(34px, 3.2vw, 46px)/.98 var(--font-brand); font-variation-settings: 'wght' 620, 'wdth' 82, 'opsz' 2; }
.home-launch .home-decaf__copy > p:not(.home-kicker) { max-width: 32ch; margin: 0 0 18px; font: 400 15px/1.45 system-ui, sans-serif; color: var(--ink); }
.home-launch .home-decaf > img { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-launch .home-decaf .home-primary { min-height: 44px; font-size: 23px; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide:first-child { background: var(--paper); }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide .home-slide-shade { display: block; background: linear-gradient(90deg, rgba(28,19,13,.48) 0%, rgba(28,19,13,.22) 42%, transparent 72%), linear-gradient(0deg, rgba(28,19,13,.34) 0%, transparent 48%); }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy { right: var(--home-banner-inset); left: var(--home-banner-inset); bottom: 72px; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy h1,
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy h2 { font-size: clamp(48px, 5.6vw, 78px); font-weight: 620; font-variation-settings: 'wght' 620, 'wdth' 82, 'opsz' 2; line-height: .98; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy span { font-size: 17px; max-width: 31ch; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide--decaf { background: #ddd9c9; }
.home-launch .home-slide--decaf > .home-slide-poster { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
.home-launch .home-slide--decaf > video { object-position: 66% center; }
.home-launch .home-slide--decaf .home-slide-shade { display: block; }
.home-launch .home-slide--decaf .home-slide-copy { color: #fff; }
.home-launch .home-slide--decaf .home-slide-copy p { color: var(--pistachio); }
.home-launch .home-slide--lemonade > :is(.home-slide-poster, video) { object-position: 50% 54%; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide--lemonade .home-slide-shade { background: linear-gradient(90deg, rgba(250,248,241,.63) 0%, rgba(250,248,241,.59) 34%, rgba(250,248,241,.33) 68%, transparent 85%), linear-gradient(0deg, rgba(250,248,241,.36), transparent 52%); }
.home-launch .home-slide--lemonade .home-slide-copy { color: var(--ink); }
.home-launch .home-slide--lemonade .home-slide-copy p { color: var(--olive-deep); }
.home-launch .home-hero:has(.home-slide--lemonade.is-active) .home-slide-count { color: var(--ink); text-shadow: none; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy .home-primary { position: absolute; top: auto; bottom: calc(var(--home-banner-inset) - 72px); left: 0; }
.home-launch .home-slide-count { position: absolute; z-index: 3; top: var(--home-banner-inset); left: var(--home-banner-inset); color: #fff; font: 560 28px/1 var(--font-brand); font-variant-numeric: tabular-nums; text-shadow: 0 1px 9px rgba(24, 21, 17, .55); pointer-events: none; }
.home-launch .home-slide-count[hidden] { display: none; }
.home-launch .home-hero-arrow { position: absolute; z-index: 4; top: auto; bottom: var(--home-banner-inset); width: 48px; height: 48px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.58); border-radius: 50%; background: rgba(25,28,21,.54); color: #fff; backdrop-filter: blur(12px); cursor: pointer; transition: background 180ms ease, transform 180ms ease; }
.home-launch .home-hero-arrow:hover { background: rgba(25,28,21,.76); transform: scale(1.04); }
.home-launch .home-hero-arrow--prev { right: calc(var(--home-banner-inset) + 56px); }
.home-launch .home-hero-arrow--next { right: var(--home-banner-inset); }
.home-launch .home-hero-arrow svg, .home-launch .home-featured__controls svg { width: 22px; height: 22px; display: block; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.home-launch .home-video-retry { position: absolute; z-index: 3; top: 20px; right: 20px; min-height: 44px; padding: 0 14px; border: 1px solid rgba(255,255,255,.6); border-radius: 14px; background: rgba(25,28,21,.8); color: #fff; font: 560 19px/1 var(--font-brand); cursor: pointer; }
.home-launch .home-video-retry[hidden] { display: none; }
.home-launch .home-menu-link { display: flex; align-items: center; gap: 24px; padding-top: 24px; }
.home-launch .home-menu-link p { margin: 0; color: var(--muted); font: 400 14px/1.5 system-ui,sans-serif; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-featured[hidden] { display: none; }
.home-launch a:focus-visible, .home-launch button:focus-visible { outline: 3px solid var(--olive); outline-offset: 4px; }
.home-launch .home-hero a:focus-visible, .home-launch .home-hero button:focus-visible { outline-color: #fff; }
@media (min-width: 1024px) {
  html:not(.is-native-app) body.home-launch .home-decaf > img { height: 100%; }
  /* Desktop foundation: 12 columns, 6 + 6 around the screen centre. */
  html:not(.is-native-app) body.home-launch .home-page {
    --home-grid-gap: clamp(20px, 2vw, 40px);
    width: calc(100% - 2 * var(--home-grid-gap));
    max-width: none;
    padding-top: 104px;
  }
  html:not(.is-native-app) body.home-launch .home-showcase {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: clamp(500px, calc(72dvh - 104px), 1500px);
    gap: var(--home-grid-gap);
  }
  html:not(.is-native-app) body.home-launch .home-showcase > * { grid-column: span 6; min-width: 0; }
  html:not(.is-native-app) body.home-launch .home-showcase__side { gap: var(--home-grid-gap); }
  html:not(.is-native-app) body.home-launch .home-directions,
  html:not(.is-native-app) body.home-launch .home-direction-grid,
  html:not(.is-native-app) body.home-launch .home-entry { min-height: 0; }
  html:not(.is-native-app) body.home-launch .home-entry { height: 100%; }
  html:not(.is-native-app) body.home-launch .home-featured__rail { gap: var(--home-grid-gap); padding-inline: 0; }
  html:not(.is-native-app) body.home-launch .home-featured-card { flex-basis: calc((100% - 3 * var(--home-grid-gap)) / 4); }
}
@media (max-width: 1023px) {
  /* Fixed mobile header needs a real content-safe gap, including notched screens. */
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-page { padding-top: calc(var(--app-header-h) + 20px + env(safe-area-inset-top)); }
  html.is-native-app.is-native-android.is-mobile-web body.home-launch .home-page { padding-top: calc(var(--app-header-h) + 20px + env(safe-area-inset-top)) !important; }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-active-order { gap: 16px; min-height: 82px; margin-bottom: 20px; padding: 16px; border-radius: 18px; }
  .home-active-order__action svg { width: 22px; height: 22px; }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-hero { min-height: 380px; height: min(48dvh, 480px); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy { left: var(--home-banner-inset); right: var(--home-banner-inset); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy h1,
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide-copy h2 { font-size: clamp(44px, 10.8vw, 62px); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-slide--lemonade .home-slide-shade { background: linear-gradient(0deg, rgba(250,248,241,.64) 0%, rgba(250,248,241,.61) 31%, rgba(250,248,241,.26) 74%, transparent 100%); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf { min-height: 390px; padding: var(--home-banner-inset); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf::after { background: linear-gradient(90deg, rgba(246,241,232,.97) 0%, rgba(246,241,232,.9) 52%, rgba(246,241,232,.24) 82%), linear-gradient(0deg, rgba(246,241,232,.5), transparent 48%); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf__copy { width: min(76%, 310px); }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf > img { object-position: 64% center; }
  .home-launch .home-decaf h2 { font-size: 38px; }
  .home-launch .home-hero-arrow { display: none; }
  .home-launch .home-featured__controls { display: none; }
  .home-launch .home-menu-link { align-items: flex-start; flex-direction: column; gap: 16px; }
}
@media (max-width: 360px) {
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch { --home-banner-inset: 20px; }
}
@media (prefers-reduced-motion: reduce) {
}

/* Available catalog directions; image and action form a single touch target. */
.home-launch .home-entry { position: relative; display: flex; align-items: end; gap: 12px; padding: 24px; min-width: 0; min-height: 220px; overflow: hidden; border-radius: 28px; corner-shape: squircle; background: #403b32; color: #fff; text-decoration: none; }
.home-launch .home-entry::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(24,24,18,.8), transparent 80%); pointer-events: none; }
.home-launch .home-entry > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-launch .home-entry > span { z-index: 1; position: relative; }
.home-launch .home-entry > span:nth-child(2) { flex: 1; min-width: 0; }
.home-launch .home-entry strong { display: block; font: 580 clamp(30px, 3vw, 52px)/1 var(--font-brand); text-transform: uppercase; }
.home-launch .home-entry small { display: block; margin-top: 8px; font: 400 14px/1.3 system-ui, sans-serif; }
.home-launch .home-entry > span:last-child { font: 400 26px/1 system-ui, sans-serif; }
.home-launch .home-entry:hover { outline: 2px solid var(--olive); outline-offset: -2px; }
.home-launch .home-directions > .home-kicker { display: none; }
.home-launch .home-decaf-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.home-launch .home-primary { text-transform: uppercase; }
@media (min-width: 1024px) {
  html:not(.is-native-app) body.home-launch .home-showcase__side { grid-template-rows: minmax(0, .68fr) minmax(0, 1.32fr); }
}
html:not(.is-native-app) body.home-launch .home-showcase__side > .home-decaf { padding: var(--home-banner-inset); }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf-links .home-primary { font-size: 23px; line-height: 1; padding: 10px 16px; margin: 0; min-height: 44px; }
.home-launch .home-decaf { margin-top: 0; }
.home-launch .home-product-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; color: var(--muted); font: 400 15px/1.4 system-ui, sans-serif; }
.home-launch .home-featured-card .catalog-media { background: #eee8dc url('/assets/brand/placeholder-dish.svg') center/cover; }
/* Home carousels show the same square crop as the menu mini-cards, not the catalog's desktop portrait crop. */
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-featured-card .catalog-media img { aspect-ratio: 1 / 1; object-fit: cover; }
.home-launch .home-favorites[hidden] { display: none !important; }
.home-launch .home-favorites .home-featured__head h2 a { color: inherit; text-decoration: none; }
.home-launch .home-favorites .home-featured__head h2 a:hover { color: var(--olive-deep); }
.home-launch .home-favorite-card { display: grid; grid-template-columns: minmax(0, 41%) minmax(0, 1fr); gap: 16px; flex: 0 0 min(74vw, 440px); min-width: 0; min-height: 174px; padding: 10px; border: 1px solid var(--line); border-radius: 24px; corner-shape: squircle; background: #fbf8f2; color: var(--ink); text-decoration: none; scroll-snap-align: start; transition: background-color 160ms ease, border-color 160ms ease; }
.home-launch .home-favorite-card:hover { background: #f3f0e8; border-color: #d8d9c9; }
.home-launch .home-favorite-card__media { display: block; align-self: center; min-width: 0; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 17px; corner-shape: squircle; }
.home-launch .home-favorite-card__media img { display: block; width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.home-launch .home-favorite-card__copy { display: flex; flex-direction: column; min-width: 0; padding: 9px 5px 6px 0; }
.home-launch .home-favorite-card__copy strong { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font: 560 30px/1 var(--font-brand); text-transform: uppercase; }
.home-launch .home-favorite-card__copy small { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; margin-top: 9px; color: var(--muted); font: 400 13px/1.3 system-ui, sans-serif; }
.home-launch .home-favorite-card__bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: auto; }
.home-launch .home-favorite-card__bottom b { font: 560 26px/1 var(--font-brand); white-space: nowrap; }
.home-launch .home-favorite-card__bottom > span { color: var(--olive-deep); font: 400 27px/1 system-ui, sans-serif; }
.home-launch .home-favorites__all { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--olive-deep); font: 500 15px/1.3 system-ui, sans-serif; text-decoration: none; }
.home-launch .home-favorites__all:hover { text-decoration: underline; text-underline-offset: 4px; }
.home-launch .home-featured__controls button { line-height: 0; }
.home-launch .home-featured__controls button svg { margin: 0; transform: none; }
html:is(:not(.is-native-app), .is-mobile-web) body.home-launch :is(.home-decaf, .home-directions)[hidden] { display: none; }
@media (max-width: 1023px) {
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-showcase__side { margin-top: 20px; }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-direction-grid { gap: 12px; }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-directions { padding-top: 0; }
  .home-launch .home-entry { min-height: 140px; padding: 18px; border-radius: 22px; }
  .home-launch .home-entry strong { font-size: 30px; }
  .home-launch .home-entry small { font-size: 13px; }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-featured { padding-top: 28px; }
  html:is(:not(.is-native-app), .is-mobile-web) body.home-launch .home-decaf { margin-top: 28px; }
  .home-launch .home-decaf-links .home-primary { font-size: 23px; }
  .home-launch .home-favorite-card { flex-basis: min(84vw, 360px); min-height: 150px; grid-template-columns: 42% minmax(0, 1fr); gap: 11px; border-radius: 19px; padding: 7px; }
  .home-launch .home-favorite-card__media { border-radius: 13px; }
  .home-launch .home-favorite-card__copy { padding: 6px 3px 4px 0; }
  .home-launch .home-favorite-card__copy strong { font-size: 24px; }
  .home-launch .home-favorite-card__copy small { font-size: 12px; margin-top: 6px; }
  .home-launch .home-favorite-card__bottom b { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { .home-launch .home-favorite-card { transition: none; } }
