/* v751 Customer Design Authority
   One semantic palette for every interactive Customer/public surface.
   This file intentionally loads last through customer-brand-tokens-v691.
   Staff Quick Order, Staff Table Order, Table QR dine-in, print and KDS are excluded.
*/
:root{
  --tt-surface-page:var(--tt-page-bg);
  --tt-surface-card:var(--tt-card-bg);
  --tt-surface-panel:var(--tt-panel-bg,var(--tt-card-bg));
  --tt-line:var(--tt-border,color-mix(in srgb,var(--tt-body-text-safe) 18%,transparent));
  --tt-muted-safe-final:var(--tt-muted-safe,var(--tt-body-text-safe));
}

/* First-class customer documents */
body.public-page-v667,
body.customer-page-v115,
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"],
body.reserve-v49,
body.customer-auth-v115,
body.customer-order-v115,
body.customer-account-v115,
body.customer-account-v109,
body.customer-notifications-v216,
body.customer-gift-card-v705,
body.track-v42,
body.simple-page{
  background:var(--tt-page-bg)!important;
  color:var(--tt-body-text-safe)!important;
  font-family:var(--tt-font)!important;
  font-size:var(--tt-base-font-size)!important;
}

/* Typography is role-owned, never module-owned. */
body.public-page-v667 :is(h1,h2,h3,h4,h5,h6),
body.customer-page-v115 :is(h1,h2,h3,h4,h5,h6),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(h1,h2,h3,h4,h5,h6),
body.reserve-v49 :is(h1,h2,h3,h4,h5,h6),
body.customer-auth-v115 :is(h1,h2,h3,h4,h5,h6),
body.customer-order-v115 :is(h1,h2,h3,h4,h5,h6),
body.customer-account-v115 :is(h1,h2,h3,h4,h5,h6){color:var(--tt-heading-safe)!important;font-family:var(--tt-font)!important}

body.public-page-v667 :is(p,li,label,small,span),
body.customer-page-v115 :is(p,li,label,small,span),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(p,li,label,small),
body.reserve-v49 :is(p,li,label,small,span){font-family:var(--tt-font)!important}

/* Shared cards, panels and heroes. Keep imagery intact but normalize the container surface. */
body.public-page-v667 :is(.public-section-card-v662,.public-card-v662,.contact-card-v662,.reservation-card,.public-hero-v662,.gift-card-card-v705),
body.customer-page-v115 :is(.customer-card-v115,.customer-panel-v115,.account-card-v115,.order-card-v115),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(.category-card,.product-card,.menu-card,.customer-category-card-v494,.tt-brand-category-card-v694,.customer-category-context-v497,.customer-search-context-v497,.customer-more-categories-v497,.customer-menu-nav-v494,.order-panel,.premium-modal-card,.option-group,.tip-area),
body.reserve-v49 :is(.reservation-card,.reservation-panel-v49,.res-card-v49){
  background:var(--tt-card-bg)!important;
  color:var(--tt-card-text-safe)!important;
  border-color:var(--tt-line)!important;
}

/* Secondary/panel surfaces */
body.public-page-v667 :is(.public-panel-v662,.public-callout-v662,.contact-meta-v662),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(.customer-category-count-v494,.tt-category-count-v694,.summary-card,.summary-muted,.fulfillment-card,.tip-area),
body.customer-page-v115 :is(.customer-soft-card-v115,.customer-summary-v115){background:var(--tt-panel-bg)!important;color:var(--tt-card-text-safe)!important;border-color:var(--tt-line)!important}

/* Forms */
body.public-page-v667 :is(input,select,textarea),
body.customer-page-v115 :is(input,select,textarea),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(input,select,textarea),
body.reserve-v49 :is(input,select,textarea){background:var(--tt-card-bg)!important;color:var(--tt-card-text-safe)!important;border-color:var(--tt-line)!important;font-family:var(--tt-font)!important}

/* Primary action contract */
body.public-page-v667 :is(.btn-primary,.primary,.primary-action,.public-primary-v662,button[type="submit"]),
body.customer-page-v115 :is(.btn-primary,.primary,.primary-action,button[type="submit"]),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(.place-order,.modal-add,.customer-category-open-v494,.tt-category-action-v694,.btn-primary,.primary-action),
body.reserve-v49 :is(.btn-primary,.primary-action,button[type="submit"]){background:var(--tt-primary)!important;color:var(--tt-on-primary-safe)!important;border-color:var(--tt-primary)!important;border-radius:var(--tt-button-radius)!important;box-shadow:none!important;background-image:none!important}

/* Secondary action contract */
body.public-page-v667 :is(.btn-secondary,.secondary,.secondary-action,.public-secondary-v662),
body.customer-page-v115 :is(.btn-secondary,.secondary,.secondary-action),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] :is(.btn-secondary,.secondary-action,.clear-cart,.mobile-cart-close),
body.reserve-v49 :is(.btn-secondary,.secondary-action){background:var(--tt-secondary)!important;color:var(--tt-on-secondary-safe)!important;border-color:var(--tt-line)!important;border-radius:var(--tt-button-radius)!important;background-image:none!important}

/* Links are contextual: footer/nav do not inherit the page-link color. */
body.public-page-v667 main a:not([class*="btn"]),
body.customer-page-v115 main a:not([class*="btn"]),
body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] main a:not([class*="btn"]),
body.reserve-v49 main a:not([class*="btn"]){color:var(--tt-link-safe)!important}

/* Footer must be identical wherever the shared footer is used. */
body :is(.customer-public-footer-v662,.public-footer-v662,.reservation-public-footer-v692,.customer-unified-footer-v736){
  background:var(--tt-footer-bg)!important;
  color:var(--tt-footer-text-safe)!important;
  border-color:color-mix(in srgb,var(--tt-footer-text-safe) 20%,transparent)!important;
}
body :is(.customer-public-footer-v662,.public-footer-v662,.reservation-public-footer-v692,.customer-unified-footer-v736) :is(a,p,span,strong,small,nav a,.technology-credit-v672,.footer-ownership-v672){
  color:var(--tt-footer-text-safe)!important;
}
body :is(.customer-public-footer-v662,.public-footer-v662,.reservation-public-footer-v692,.customer-unified-footer-v736) a:is(:hover,:focus-visible){
  color:var(--tt-footer-text-safe)!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}

/* Mobile navigation has its own Admin-owned semantic role. */
@media(max-width:767px){
  body .mobile-bottom-nav-v132{
    background:var(--tt-nav-bg)!important;
    color:var(--tt-nav-text)!important;
    border-color:var(--tt-line)!important;
    box-shadow:0 -14px 34px color-mix(in srgb,var(--tt-body-text-safe) 15%,transparent)!important;
  }
  body .mobile-bottom-nav-v132 a{color:var(--tt-nav-text)!important;background:transparent!important}
  body .mobile-bottom-nav-v132 a.active-v132{background:var(--tt-nav-active-bg)!important;color:var(--tt-nav-active-text)!important}
  body .mobile-bottom-nav-v132 a.active-v132 *{color:var(--tt-nav-active-text)!important}

  /* One bottom-space contract. Pages with the shared footer carry their fixed-nav clearance inside the footer. */
  body:has(.customer-unified-footer-v736),
  body:has(.customer-public-footer-v662),
  body:has(.reservation-public-footer-v692){padding-bottom:0!important}
  body :is(.customer-unified-footer-v736,.customer-public-footer-v662,.reservation-public-footer-v692){
    margin-bottom:0!important;
    padding-bottom:max(28px,calc(var(--v132-nav-h,76px) + env(safe-area-inset-bottom,0px) + 16px))!important;
  }

  /* Restore the useful sticky cart bar above the fixed nav when the cart has items.
     premium.js remains the owner of display:flex / display:none based on cart quantity. */
  body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] #mobile-cart-button{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    bottom:calc(var(--v132-nav-h,76px) + env(safe-area-inset-bottom,0px) + 10px)!important;
    width:auto!important;
    min-height:54px!important;
    z-index:11950!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:12px 16px!important;
    border:1px solid var(--tt-line)!important;
    border-radius:var(--tt-button-radius)!important;
    background:var(--tt-primary)!important;
    color:var(--tt-on-primary-safe)!important;
    box-shadow:0 14px 34px color-mix(in srgb,var(--tt-body-text-safe) 22%,transparent)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] #mobile-cart-button{display:none!important}
  body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] #mobile-cart-button.has-items-v751{display:flex!important}
  body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"].cart-open #mobile-cart-button{display:none!important}
}

/* Status semantic roles */
body :is(.success,.alert-success,.notice-success){background:var(--tt-success-bg)!important;color:var(--tt-success-text)!important}
body :is(.warning,.alert-warning,.notice-warning){background:var(--tt-warning-bg)!important;color:var(--tt-warning-text)!important}
body :is(.error,.danger,.alert-error,.notice-error){background:var(--tt-danger-bg)!important;color:var(--tt-danger-text)!important}

/* Prevent legacy route styles from reintroducing a different typeface late in the cascade. */
body.public-page-v667 *,body.customer-page-v115 *,body.reserve-v49 *,body.shop-page[data-table-order="false"][data-staff-table-order="false"][data-staff-quick-order="false"] *{font-family:var(--tt-font)!important}
