/* =============================================================================
   ThunderfamEats — Redesign layer (custom.css)
   Loaded LAST in the front-css bundle (see AssetsFrontBundle::registerBundle),
   so rules here override style.css / responsive.css without editing them.

   Scope:
   - Global design tokens + light/dark theming (nav + footer are themed site-wide).
   - Home page (.tf-home) : hero, "exclusive advantages", promo cards, join banner,
     app section.
   - Merchant signup (.tf-merchant) : hero, form card, "how it works", why-partner.

   Page scoping is done with the `.tf-home` / `.tf-merchant` classes that the two
   views add to <html> via a small inline script, plus page-unique selectors that
   only exist on those pages. No functional markup (Vue bindings, form field ids,
   route URLs) is styled by identity — only presentation.
   ============================================================================= */

/* ----------------------------------------------------------------------------
   1. Design tokens
   ---------------------------------------------------------------------------- */
:root {
  --tf-green: #32b268;
  --tf-green-hover: #2a9c58;
  --tf-green-soft: rgba(50, 178, 104, .12);

  /* Light theme (default) */
  --tf-bg: #ffffff;
  --tf-bg-subtle: #f4f6f8;
  --tf-bg-hero: #eef1f4;
  --tf-card: #ffffff;
  --tf-card-border: #e6e8ec;
  --tf-text: #15171a;
  --tf-text-muted: #5b6169;
  --tf-nav-bg: #ffffff;
  --tf-nav-border: #eceef1;
  --tf-footer-bg: #0d1a2b;
  --tf-footer-text: #c9ced6;
  --tf-shadow: 0 10px 30px rgba(18, 22, 30, .08);
  --tf-shadow-sm: 0 4px 14px rgba(18, 22, 30, .06);
  --tf-radius: 14px;
  --tf-radius-sm: 10px;

  /* Accent borders for the three advantage cards (both themes) */
  --tf-accent-1: #c05a54;
  --tf-accent-2: #c9a13c;
  --tf-accent-3: #4f74b3;
}

/* Dark theme — explicit toggle wins; falls back to OS preference below. */
:root[data-theme="dark"] {
  --tf-bg: #0e0f11;
  --tf-bg-subtle: #151619;
  --tf-bg-hero: #0e0f11;
  --tf-card: #1a1c1f;
  --tf-card-border: #2b2e33;
  --tf-text: #f4f5f6;
  --tf-text-muted: #9aa0a6;
  --tf-nav-bg: #0a0b0d;
  --tf-nav-border: #1c1e22;
  --tf-footer-bg: #0a0b0d;
  --tf-footer-text: #9aa0a6;
  --tf-shadow: 0 10px 30px rgba(0, 0, 0, .45);
  --tf-shadow-sm: 0 4px 14px rgba(0, 0, 0, .4);
}

/* If the user never toggled, honour the OS setting. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --tf-bg: #0e0f11;
    --tf-bg-subtle: #151619;
    --tf-bg-hero: #0e0f11;
    --tf-card: #1a1c1f;
    --tf-card-border: #2b2e33;
    --tf-text: #f4f5f6;
    --tf-text-muted: #9aa0a6;
    --tf-nav-bg: #0a0b0d;
    --tf-nav-border: #1c1e22;
    --tf-footer-bg: #0a0b0d;
    --tf-footer-text: #9aa0a6;
    --tf-shadow: 0 10px 30px rgba(0, 0, 0, .45);
    --tf-shadow-sm: 0 4px 14px rgba(0, 0, 0, .4);
  }
}

/* ----------------------------------------------------------------------------
   2. Page background theming (scoped to the two redesigned pages)
   ---------------------------------------------------------------------------- */
html.tf-home body,
html.tf-merchant body {
  background-color: var(--tf-bg);
  color: var(--tf-text);
}
html.tf-home .page-content,
html.tf-merchant .page-content {
  background-color: var(--tf-bg);
}

/* ----------------------------------------------------------------------------
   2b. Typography — Rubik, the closest freely-licensed match to Uber's
   proprietary "Uber Move" typeface (loaded from Google Fonts in main-layout.php).
   Applied to text elements only; icon fonts (zmdi / material-design-iconic /
   fontawesome / element-plus `.el-icon`) are NOT targeted, so glyph icons keep
   rendering with their own font-family.
   ---------------------------------------------------------------------------- */
:root { --tf-font: 'Rubik', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; }
body,
h1, h2, h3, h4, h5, h6,
p, a, ul, ol, li, blockquote, small, strong, b, em,
button, input, select, textarea, label,
.btn, .form-control, .custom-select, .nav-link, .dropdown-item,
.el-button, .el-input__inner, .el-textarea__inner, .el-card {
  font-family: var(--tf-font) !important;
}

/* ----------------------------------------------------------------------------
   3. Buttons
   ---------------------------------------------------------------------------- */
.btn-green,
.btn-green:focus,
.btn-green:hover {
  background-color: var(--tf-green) !important;
  border-color: var(--tf-green) !important;
  color: #fff !important;
  border-radius: 8px;
  font-weight: 600;
  transition: background-color .2s ease, transform .15s ease, box-shadow .2s ease;
}
.btn-green:hover {
  background-color: var(--tf-green-hover) !important;
  border-color: var(--tf-green-hover) !important;
  box-shadow: 0 6px 18px var(--tf-green-soft);
}

.tf-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.5rem;
  border-radius: 9px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background-color .2s ease, transform .15s ease, box-shadow .2s ease;
}
.tf-btn-green { background: var(--tf-green); color: #fff; }
.tf-btn-green:hover { background: var(--tf-green-hover); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 22px var(--tf-green-soft); }
.tf-btn-light { background: #fff; color: #15171a; }
.tf-btn-light:hover { background: #f0f2f4; color: #15171a; transform: translateY(-1px); }

/* ----------------------------------------------------------------------------
   4. Top navigation (global)
   ---------------------------------------------------------------------------- */
#top-navigation {
  background: var(--tf-nav-bg);
  border-bottom: 1px solid var(--tf-nav-border);
  min-height: 62px;
  padding: 6px 10px;
  align-items: center;
}
html.tf-home #top-navigation,
html.tf-merchant #top-navigation { color: var(--tf-text); }
html.tf-home #top-navigation a,
html.tf-merchant #top-navigation a { color: var(--tf-text); }

/* Theme toggle button */
.tf-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--tf-nav-border);
  background: transparent;
  color: var(--tf-text);
  cursor: pointer;
  margin-right: 10px;
  font-size: 18px;
  line-height: 1;
  transition: background-color .2s ease, border-color .2s ease;
}
.tf-theme-toggle:hover { background: var(--tf-green-soft); border-color: var(--tf-green); }
.tf-theme-toggle .tf-icon-sun { display: none; }
.tf-theme-toggle .tf-icon-moon { display: inline; }
:root[data-theme="dark"] .tf-theme-toggle .tf-icon-sun { display: inline; }
:root[data-theme="dark"] .tf-theme-toggle .tf-icon-moon { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .tf-theme-toggle .tf-icon-sun { display: inline; }
  :root:not([data-theme="light"]) .tf-theme-toggle .tf-icon-moon { display: none; }
}

/* ----------------------------------------------------------------------------
   4b. Nav logo (ThunderfamEats brand image) — replaces the square site logo in
   the top nav. The asset is a wordmark on black; rounded corners make it read as
   a clean logo chip on either a light or dark nav. Rendered by
   components/views/site-logo.php (the `top-logo` placement).
   ---------------------------------------------------------------------------- */
.top-logo .tf-nav-logo-img {
  height: 30px;
  width: auto;
  max-width: 170px;
  object-fit: contain;
  display: block;
}
@media (max-width: 575px) { .top-logo .tf-nav-logo-img { height: 26px; max-width: 140px; } }

/* ----------------------------------------------------------------------------
   5. Home hero
   ---------------------------------------------------------------------------- */
/* Full-width "everything app" banner (replaces the hero). Always dark and
   glassmorphic, regardless of the site light/dark toggle, to match the design.
   Neon service palette: green / blue / orange / red on a deep background. */
html.tf-home #main-search-banner,
html.tf-home[data-theme="dark"] #main-search-banner,
html.tf-home[data-theme="light"] #main-search-banner {
  height: auto;
  min-height: auto;
  position: relative;
  overflow: hidden;
  padding: 0;
  display: block;
  border-bottom: none;
  background:
    radial-gradient(1100px 520px at 82% -12%, #14263f 0%, rgba(10,14,21,0) 60%),
    linear-gradient(180deg, #0a0e15 0%, #080b11 100%);
}

.tf-banner {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 24px 32px;
  color: #eef1f5;
}

.tf-banner-title { font-size: clamp(1.7rem, 4.4vw, 2.9rem); font-weight: 800; line-height: 1.06; letter-spacing: -.01em; margin: 6px 0 12px; color: #fff; }
.tf-banner-title .g { color: #34d17a; } .tf-banner-title .b { color: #4aa3ff; }
.tf-banner-title .r { color: #ff5a5f; } .tf-banner-title .y { color: #f5b301; }
.tf-banner-sub { color: #aeb6c2; max-width: 560px; font-size: 1.02rem; line-height: 1.5; margin: 0 0 22px; }

/* Location search preserved, styled as a modern search field */
html.tf-home .tf-banner .home-search-wrap {
  width: 100%; max-width: 520px; margin: 0 0 28px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  padding: 6px 12px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
html.tf-home .tf-banner .home-search-wrap input,
html.tf-home .tf-banner .home-search-wrap .el-input__inner {
  background: transparent !important; border: none !important; color: #fff !important; box-shadow: none !important;
}
html.tf-home .tf-banner .home-search-wrap input::placeholder,
html.tf-home .tf-banner .home-search-wrap .el-input__inner::placeholder { color: #9aa3b0 !important; }

/* Service category grid — neon cards with a subtle per-colour tinted fill and
   centred icon + label, matching the app "Catégories" theme. */
.tf-cat-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 15px; }
.tf-cat {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: 10px;
  min-height: 128px; padding: 18px 14px; border-radius: 16px; text-decoration: none;
  background: linear-gradient(180deg, rgba(255,255,255,.012) 0%, var(--cbg, rgba(255,255,255,.03)) 100%);
  border: 1px solid var(--c, #34d17a);
  box-shadow: 0 0 22px -14px var(--c), 0 12px 30px rgba(0,0,0,.35);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: transform .18s ease, box-shadow .22s ease, filter .22s ease;
}
.tf-cat:hover { transform: translateY(-4px); filter: brightness(1.12); box-shadow: 0 0 26px -6px var(--c), 0 16px 38px rgba(0,0,0,.5); }
.tf-cat-ico { width: 34px; height: 34px; color: var(--c); }
.tf-cat-ico svg { width: 100%; height: 100%; display: block; fill: none; stroke: var(--c); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tf-cat b { color: var(--c); font-size: 1.02rem; font-weight: 700; line-height: 1.2; }
.tf-cat span { color: #9aa3b0; font-size: .8rem; line-height: 1.3; }
.tf-cat-green  { --c: #34d17a; --cbg: rgba(52,209,122,.10); }
.tf-cat-blue   { --c: #4aa3ff; --cbg: rgba(74,163,255,.10); }
.tf-cat-orange { --c: #f0a53a; --cbg: rgba(240,165,58,.11); }
.tf-cat-red    { --c: #ff6065; --cbg: rgba(255,96,101,.10); }

/* Trust bar */
.tf-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08); }
.tf-trust-item { display: flex; gap: 12px; align-items: flex-start; }
.tf-trust-ico { width: 34px; height: 34px; flex: 0 0 34px; color: var(--c, #34d17a); }
.tf-trust-ico svg { width: 100%; height: 100%; fill: none; stroke: var(--c, #34d17a); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tf-trust-item h6 { color: #fff; font-weight: 700; margin: 0 0 3px; font-size: .96rem; }
.tf-trust-item p { color: #98a1ad; margin: 0; font-size: .84rem; line-height: 1.35; }
.tf-trust-green { --c: #34d17a; } .tf-trust-blue { --c: #4aa3ff; }
.tf-trust-orange { --c: #f0a53a; } .tf-trust-red { --c: #ff6065; }

/* ----------------------------------------------------------------------------
   6. Section titles
   ---------------------------------------------------------------------------- */
.tf-section-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--tf-text);
  margin: 6px 0 22px;
}

/* ----------------------------------------------------------------------------
   7. Home — "Nos avantages exclusifs" (advantage cards)
   Rewritten markup in store/index.php: .tf-advantages > .tf-adv-card
   ---------------------------------------------------------------------------- */
.tf-advantages {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin: 0 0 10px;
}
/* Filled colour cards (red / yellow / blue) — the addons-*_new illustrations
   are drawn for exactly these backgrounds. White text, image up top. */
.tf-adv-card {
  border: none;
  border-radius: var(--tf-radius);
  overflow: hidden;
  box-shadow: var(--tf-shadow-sm);
  transition: transform .18s ease, box-shadow .2s ease;
  display: flex;
  flex-direction: column;
}
.tf-adv-card:hover { transform: translateY(-4px); box-shadow: var(--tf-shadow); }
.tf-adv-card.tf-adv-1 { background: #c0392b; }   /* red   */
.tf-adv-card.tf-adv-2 { background: #e6a817; }   /* yellow */
.tf-adv-card.tf-adv-3 { background: #2f6bd8; }   /* blue  */
.tf-adv-img {
  height: 210px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}
.tf-adv-img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.tf-adv-body { padding: 18px 22px 24px; text-align: center; }
.tf-adv-body h5 { font-size: 1.12rem; font-weight: 700; color: #fff; margin: 0 0 8px; }
.tf-adv-body p  { font-size: .9rem; color: rgba(255,255,255,.9); margin: 0; line-height: 1.5; }

/* ----------------------------------------------------------------------------
   8. Home — promo cards (.section-benefits)
   Restyled over existing markup; illustrations set as card backgrounds.
   ---------------------------------------------------------------------------- */
html.tf-home .section-benefits { margin-top: 22px; }
html.tf-home .section-benefits .benefits {
  position: relative;
  height: 210px;
  border-radius: var(--tf-radius);
  overflow: hidden;
  background-size: cover !important;
  background-position: center top !important;
  box-shadow: var(--tf-shadow-sm);
  transition: transform .18s ease, box-shadow .2s ease;
}
html.tf-home .section-benefits .benefits:hover { transform: translateY(-4px); box-shadow: var(--tf-shadow); }
html.tf-home .section-benefits .benefits-1 { background: url("../images/benefits-1.png") no-repeat; }
html.tf-home .section-benefits .benefits-2 { background: url("../images/benefits-2.png") no-repeat; }
html.tf-home .section-benefits .benefits-3 { background: url("../images/benefits-3.png") no-repeat; }
html.tf-home .section-benefits .benefits-4 { background: url("../images/benefits-4.png") no-repeat; }
html.tf-home .section-benefits .benefits .inner {
  position: absolute;
  inset: 0;
  padding: 16px 18px;
  background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.05) 42%, rgba(0,0,0,0) 100%);
}
html.tf-home .section-benefits .benefits h4 {
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
  max-width: 80%;
  text-shadow: 0 1px 6px rgba(0,0,0,.5);
}

/* ----------------------------------------------------------------------------
   9. Home — join-us banner (.section-join-us)
   ---------------------------------------------------------------------------- */
html.tf-home .section-join-us,
html.tf-merchant .section-join-us {
  border-radius: var(--tf-radius);
  overflow: hidden;
  position: relative;
}
html.tf-home .section-join-us .btn-white-parent .btn-link,
html.tf-merchant .section-join-us .btn-white-parent .btn-link {
  background: #fff;
  color: #15171a;
  border-radius: 8px;
  font-weight: 600;
  padding: .55rem 1.6rem;
}
html.tf-home .section-join-us .btn-white-parent .btn-link:hover,
html.tf-merchant .section-join-us .btn-white-parent .btn-link:hover {
  background: #f0f2f4;
}

/* ----------------------------------------------------------------------------
   10. Home — app section (.section-mobileapp)
   ---------------------------------------------------------------------------- */
html.tf-home .section-mobileapp {
  background: var(--tf-bg-subtle);
  border: none;
}
html.tf-home .section-mobileapp h3,
html.tf-home .section-mobileapp h5,
html.tf-home .section-mobileapp p { color: var(--tf-text); }
html.tf-home .section-mobileapp h5 { color: var(--tf-text-muted); }

/* ----------------------------------------------------------------------------
   11. Footer + sub-footer (global, matches design)
   ---------------------------------------------------------------------------- */
.sub-footer,
footer {
  background: var(--tf-footer-bg);
  color: var(--tf-footer-text);
}
.sub-footer { padding: 34px 0 22px; }
.sub-footer a, footer a { color: var(--tf-footer-text); }
.sub-footer a:hover, footer a:hover { color: #fff; }
footer { padding: 18px 0; border-top: 1px solid rgba(255,255,255,.06); }
footer p { color: var(--tf-footer-text); }
.sub-footer .footer-menu a,
.sub-footer .widget-footer-menu a { color: var(--tf-footer-text); }
.sub-footer .esubscription .el-button { border-radius: 8px; }

/* ----------------------------------------------------------------------------
   12. Merchant signup
   ---------------------------------------------------------------------------- */
/* Hero */
.tf-merchant-hero {
  position: relative;
  min-height: 360px;
  background:
    linear-gradient(90deg, rgba(8,10,14,.72) 0%, rgba(8,10,14,.35) 55%, rgba(8,10,14,.15) 100%),
    url("../images/register.png") right center no-repeat;
  background-size: cover;
  display: flex;
  align-items: center;
}
.tf-merchant-hero .tf-merchant-hero-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 48px 24px;
  width: 100%;
}
.tf-merchant-hero h1 {
  color: #fff;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  max-width: 620px;
  margin: 0 0 24px;
}

/* Form card */
html.tf-merchant .register-section {
  background: var(--tf-bg);
  padding-top: 0;
}
html.tf-merchant #vue-merchant-signup {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  box-shadow: var(--tf-shadow);
  padding: 30px 30px 34px;
  max-width: 620px;
  margin: -70px auto 40px;
  position: relative;
  z-index: 5;
}
html.tf-merchant #vue-merchant-signup h3 { color: var(--tf-text); font-weight: 700; }
html.tf-merchant #vue-merchant-signup .text-grey { color: var(--tf-text-muted) !important; }
html.tf-merchant #vue-merchant-signup .form-control,
html.tf-merchant #vue-merchant-signup .custom-select {
  background: var(--tf-bg);
  border: 1px solid var(--tf-card-border);
  color: var(--tf-text);
  border-radius: 8px;
}
html.tf-merchant #vue-merchant-signup .form-control:focus {
  border-color: var(--tf-green);
  box-shadow: 0 0 0 3px var(--tf-green-soft);
}
html.tf-merchant #vue-merchant-signup label,
html.tf-merchant #vue-merchant-signup p,
html.tf-merchant #vue-merchant-signup h6 { color: var(--tf-text); }
html.tf-merchant #vue-merchant-signup .register-bg { display: none; } /* remove side image; hero carries it */
html.tf-merchant .register-section .row { display: block; }
html.tf-merchant .register-section .col { max-width: 100%; flex: 0 0 100%; }

/* How it works (new presentational section) */
.tf-how {
  background: var(--tf-bg);
  padding: 56px 24px;
}
.tf-how-inner, .tf-why-inner { max-width: 1050px; margin: 0 auto; }
.tf-how h2, .tf-why h2 {
  text-align: center;
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--tf-text);
  margin: 0 0 40px;
}
.tf-steps, .tf-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.tf-step, .tf-why-card { text-align: center; padding: 0 10px; }
.tf-step-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  color: var(--tf-green);
  background: var(--tf-green-soft);
}
.tf-step h5, .tf-why-card h5 { font-weight: 700; color: var(--tf-text); margin: 0 0 6px; font-size: 1.1rem; }
.tf-step p, .tf-why-card p { color: var(--tf-text-muted); margin: 0; font-size: .93rem; }

/* Why partner (restyle existing .partner-section) */
html.tf-merchant .grey-section.partner-section { background: var(--tf-bg-subtle); }
html.tf-merchant .partner-section .section {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  box-shadow: var(--tf-shadow-sm);
  padding: 26px 22px;
  height: 100%;
  text-align: center;
}
html.tf-merchant .partner-section .col { height: auto; }
html.tf-merchant .partner-section .section h5 { color: var(--tf-text); font-weight: 700; }
html.tf-merchant .partner-section .section p { color: var(--tf-text-muted); }

/* ----------------------------------------------------------------------------
   12b. Restaurants / feed page (.tf-feed) — /store/restaurants
   Restyled over the existing feed.php markup (filter sidebar + result cards +
   fast-delivery banner). A `.tf-store-card` wrapper is added inside each result
   column; everything else is theming only.
   ---------------------------------------------------------------------------- */
html.tf-feed body,
html.tf-feed .page-content { background-color: var(--tf-bg); color: var(--tf-text); }

/* Headings / text */
html.tf-feed .column-1 h4,
html.tf-feed .column-1 h5,
html.tf-feed .column-2 h3,
html.tf-feed .column-2 h4,
html.tf-feed .column-2 h5,
html.tf-feed #vue-feed h3,
html.tf-feed #vue-feed h4 { color: var(--tf-text); }
html.tf-feed .column-1 a,
html.tf-feed .column-1 label,
html.tf-feed .column-2 label { color: var(--tf-text); }
html.tf-feed .text-muted { color: var(--tf-text-muted) !important; }

/* Mobile search box */
html.tf-feed .inputs-box-grey {
  background: var(--tf-bg-subtle);
  color: var(--tf-text);
  border: 1px solid var(--tf-card-border);
}

/* Filter sidebar as a card */
html.tf-feed .section-filter {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  padding: 4px 16px;
  box-shadow: var(--tf-shadow-sm);
}
html.tf-feed .section-filter .filter-row { border-color: var(--tf-card-border) !important; }
html.tf-feed .section-filter .btn-group .btn { color: var(--tf-text); border-color: var(--tf-card-border); }
html.tf-feed .section-filter .btn-group .btn.active { background: var(--tf-green); border-color: var(--tf-green); color: #fff; }

/* Restaurant result cards */
html.tf-feed .list-items .tf-store-card {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  padding: 10px;
  height: 100%;
  box-shadow: var(--tf-shadow-sm);
  transition: transform .18s ease, box-shadow .2s ease;
}
html.tf-feed .list-items .tf-store-card:hover { transform: translateY(-3px); box-shadow: var(--tf-shadow); }
html.tf-feed .tf-store-card .el-image,
html.tf-feed .tf-store-card .position-relative > a .el-image { border-radius: 10px; overflow: hidden; }
html.tf-feed .tf-store-card h5,
html.tf-feed .tf-store-card h6 { color: var(--tf-text); }
html.tf-feed .tf-store-card p,
html.tf-feed .tf-store-card .a-12,
html.tf-feed .tf-store-card span:not(.el-tag) { color: var(--tf-text-muted); }

/* "Show more" (btn-black) → theme-aware pill */
html.tf-feed .btn-black {
  background: var(--tf-text);
  color: var(--tf-bg);
  border-radius: 8px;
  font-weight: 600;
}
html.tf-feed .btn-black:hover { opacity: .9; color: var(--tf-bg); }

/* Fast-delivery banner */
html.tf-feed .section-fast-delivery,
html.tf-feed .section-fast-delivery-mobile {
  background: var(--tf-bg-subtle);
  border-radius: var(--tf-radius);
}
html.tf-feed .section-fast-delivery h1,
html.tf-feed .section-fast-delivery h5,
html.tf-feed .section-fast-delivery p,
html.tf-feed .section-fast-delivery-mobile h1,
html.tf-feed .section-fast-delivery-mobile h5,
html.tf-feed .section-fast-delivery-mobile p { color: var(--tf-text); }

/* ----------------------------------------------------------------------------
   12c. Menu / cart / checkout / location-mode pages
   Scopes: .tf-menu (store/menu.php), .tf-checkout (account/checkout.php),
           .tf-locations (store/feed-locations.php, store/location_index.php)
   Theming only — no structural markup changes on these pages.
   ---------------------------------------------------------------------------- */
html.tf-menu body,      html.tf-menu .page-content,
html.tf-checkout body,  html.tf-checkout .page-content,
html.tf-locations body, html.tf-locations .page-content {
  background-color: var(--tf-bg);
  color: var(--tf-text);
}

/* Headings and body copy */
html.tf-menu h1, html.tf-menu h2, html.tf-menu h3,
html.tf-menu h4, html.tf-menu h5, html.tf-menu h6,
html.tf-checkout h1, html.tf-checkout h2, html.tf-checkout h3,
html.tf-checkout h4, html.tf-checkout h5, html.tf-checkout h6,
html.tf-locations h1, html.tf-locations h2, html.tf-locations h3,
html.tf-locations h4, html.tf-locations h5, html.tf-locations h6 { color: var(--tf-text); }

html.tf-menu p, html.tf-checkout p, html.tf-locations p,
html.tf-menu label, html.tf-checkout label, html.tf-locations label { color: var(--tf-text); }

html.tf-menu .text-muted, html.tf-checkout .text-muted, html.tf-locations .text-muted,
html.tf-menu .text-grey, html.tf-checkout .text-grey, html.tf-locations .text-grey {
  color: var(--tf-text-muted) !important;
}

/* Bootstrap borders → themed */
html.tf-menu .border, html.tf-menu .border-top, html.tf-menu .border-bottom,
html.tf-checkout .border, html.tf-checkout .border-top, html.tf-checkout .border-bottom,
html.tf-locations .border, html.tf-locations .border-top, html.tf-locations .border-bottom {
  border-color: var(--tf-card-border) !important;
}

/* Cards (checkout panels, sticky cart, element-plus cards) */
html.tf-menu .card, html.tf-checkout .card, html.tf-locations .card,
html.tf-menu .el-card, html.tf-checkout .el-card, html.tf-locations .el-card {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  box-shadow: var(--tf-shadow-sm);
  color: var(--tf-text);
}
html.tf-menu .card-body, html.tf-checkout .card-body, html.tf-locations .card-body,
html.tf-menu .el-card__body, html.tf-checkout .el-card__body { color: var(--tf-text); }

/* Sticky cart */
html.tf-menu .sticky-cart .card,
html.tf-checkout .sticky-cart .card { border-radius: var(--tf-radius); }

/* Menu: category sidebar as a card */
html.tf-menu .sticky-sidebar {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  padding: 16px 18px;
  box-shadow: var(--tf-shadow-sm);
}
html.tf-menu .menu-category .nav-link {
  color: var(--tf-text-muted);
  border-radius: 8px;
  padding: .4rem .6rem;
  transition: background-color .18s ease, color .18s ease;
}
html.tf-menu .menu-category .nav-link:hover,
html.tf-menu .menu-category .nav-link.active {
  color: var(--tf-green);
  background: var(--tf-green-soft);
}

/* Menu: review rows */
html.tf-menu .items-review { border-color: var(--tf-card-border); }

/* Checkout / cart form controls */
html.tf-checkout .form-control, html.tf-checkout .custom-select,
html.tf-menu .form-control, html.tf-menu .custom-select,
html.tf-locations .form-control, html.tf-locations .custom-select {
  background: var(--tf-bg);
  border: 1px solid var(--tf-card-border);
  color: var(--tf-text);
  border-radius: 8px;
}
html.tf-checkout .form-control:focus,
html.tf-menu .form-control:focus,
html.tf-locations .form-control:focus {
  border-color: var(--tf-green);
  box-shadow: 0 0 0 3px var(--tf-green-soft);
}

/* Location mode: sidebar + results */
html.tf-locations .column-1 .section-filter,
html.tf-locations .affix-container .section-filter {
  background: var(--tf-card);
  border: 1px solid var(--tf-card-border);
  border-radius: var(--tf-radius);
  padding: 4px 16px;
  box-shadow: var(--tf-shadow-sm);
}
html.tf-locations .column-1 a, html.tf-locations .column-2 a { color: var(--tf-text); }
html.tf-locations .column-1 a:hover, html.tf-locations .column-2 a:hover { color: var(--tf-green); }

/* Theme-aware dark button on these pages */
html.tf-menu .btn-black, html.tf-checkout .btn-black, html.tf-locations .btn-black {
  background: var(--tf-text);
  color: var(--tf-bg);
  border-radius: 8px;
  font-weight: 600;
}
html.tf-menu .btn-black:hover, html.tf-checkout .btn-black:hover,
html.tf-locations .btn-black:hover { opacity: .9; color: var(--tf-bg); }

/* ----------------------------------------------------------------------------
   13. Responsive
   ---------------------------------------------------------------------------- */
@media (max-width: 991px) {
  .tf-banner { padding: 32px 18px 26px; }
  .tf-cat-grid { grid-template-columns: repeat(3, 1fr); }
  .tf-trust { grid-template-columns: repeat(2, 1fr); }
  .tf-advantages { grid-template-columns: 1fr; }
  .tf-steps, .tf-why-grid { grid-template-columns: 1fr; gap: 26px; }
  html.tf-merchant #vue-merchant-signup { margin-top: 24px; }
  .tf-merchant-hero { min-height: 300px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .tf-advantages { grid-template-columns: repeat(3, 1fr); }
  .tf-steps, .tf-why-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575px) {
  .tf-section-title { font-size: 1.35rem; }
  html.tf-home .section-benefits .benefits { height: 175px; }
  .tf-cat-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .tf-cat { min-height: 104px; padding: 13px 13px; }
  .tf-trust { grid-template-columns: 1fr; gap: 16px; }
}
