:root {
  --bd-bg: #ffffff;
  --bd-surface: #ffffff;
  --bd-soft: #f7f9f7;
  --bd-ink: #121212;
  --bd-muted: #66706a;
  --bd-line: #e3e7e4;
  --bd-green: #14843f;
  --bd-green-dark: #0f6b34;
  --bd-green-soft: #edf8f0;
  --bd-orange: #f45b2a;
  --bd-orange-soft: #fff1eb;
  --bd-shadow: 0 8px 28px rgba(18, 26, 21, .07);
  --bd-shadow-hover: 0 14px 36px rgba(18, 26, 21, .11);
  --bd-radius: 16px;
  --bd-container: 1200px;
}

html { background: var(--bd-bg); }
body {
  background: var(--bd-bg) !important;
  color: var(--bd-ink);
  font-family: "Inter", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* One centered site frame on every page. */
.page {
  width: min(calc(100% - 40px), var(--bd-container)) !important;
  max-width: var(--bd-container) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* Shared navigation */
.top-nav.site-nav {
  position: sticky !important;
  top: 0;
  z-index: 1000;
  width: 100%;
  min-height: 72px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  border-bottom: 1px solid var(--bd-line);
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: blur(12px);
}

.site-nav .logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  font-family: "Inter", Arial, sans-serif !important;
  font-size: 24px !important;
  line-height: 1;
  letter-spacing: -.055em !important;
  font-weight: 900 !important;
  text-decoration: none;
  color: var(--bd-ink) !important;
  white-space: nowrap;
}

.site-nav .logo span {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--bd-orange) !important;
  font-family: inherit !important;
  font-style: normal !important;
}

.site-nav .nav-wrap {
  margin-left: auto;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 20px !important;
}

.site-nav .nav-links {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap !important;
  gap: 4px !important;
}

.site-nav .nav-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: #303531 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 750 !important;
  text-decoration: none !important;
  transition: background .16s ease, color .16s ease;
}

.site-nav .nav-links a:hover {
  background: var(--bd-soft) !important;
  color: var(--bd-green-dark) !important;
}

.site-nav .nav-links a.active,
.site-nav .nav-links a[aria-current="page"] {
  background: var(--bd-green-soft) !important;
  color: var(--bd-green-dark) !important;
}

.site-nav .nav-links a.active::after,
.site-nav .nav-links a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 4px;
  height: 2px;
  border-radius: 99px;
  background: var(--bd-green);
}

.site-nav .language-switcher {
  display: inline-flex !important;
  align-items: center !important;
  gap: 2px !important;
  margin: 0 !important;
  padding: 3px !important;
  border: 1px solid var(--bd-line) !important;
  border-radius: 999px !important;
  background: #fff !important;
}

.site-nav .language-switcher a {
  min-width: 34px;
  padding: 7px 8px !important;
  border-radius: 999px !important;
  color: #505650 !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  text-align: center;
  text-decoration: none;
}

.site-nav .language-switcher a.active,
.site-nav .language-switcher a:hover {
  background: var(--bd-green) !important;
  color: #fff !important;
}

.site-menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--bd-line);
  border-radius: 11px;
  background: #fff;
  cursor: pointer;
}
.site-menu-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  margin: 4px auto;
  border-radius: 99px;
  background: var(--bd-ink);
  transition: transform .16s ease, opacity .16s ease;
}
.site-nav.menu-open .site-menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.site-nav.menu-open .site-menu-toggle span:nth-child(2) { opacity: 0; }
.site-nav.menu-open .site-menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Shared headings and page rhythm */
.page-hero,
.blog-hero,
.article-hero {
  margin-left: auto !important;
  margin-right: auto !important;
}

.page-hero {
  max-width: 820px;
  margin-top: 58px !important;
  margin-bottom: 42px !important;
  text-align: center;
}
.page-hero .page-title,
.page-title {
  font-size: clamp(44px, 6vw, 72px) !important;
  line-height: 1 !important;
  letter-spacing: -.045em !important;
}
.page-hero p {
  max-width: 720px;
  margin: 18px auto 0 !important;
  color: var(--bd-muted) !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
}

.mark {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--bd-green-dark) !important;
}

.section-kicker,
.eyebrow,
.kicker {
  color: var(--bd-green-dark) !important;
}

/* Shared buttons */
.btn,
.read-btn,
.map-btn,
.source-btn,
.submit-btn {
  border-radius: 10px !important;
  font-weight: 800 !important;
}
.btn-dark,
.read-btn,
.submit-btn {
  border-color: var(--bd-green) !important;
  background: var(--bd-green) !important;
  color: #fff !important;
}
.btn-dark:hover,
.read-btn:hover,
.submit-btn:hover {
  border-color: var(--bd-green-dark) !important;
  background: var(--bd-green-dark) !important;
}
.btn-light,
.map-btn,
.source-btn {
  border-color: #d8ded9 !important;
  background: #fff !important;
  color: var(--bd-ink) !important;
}
.btn-light:hover,
.map-btn:hover,
.source-btn:hover {
  border-color: #a9c7b2 !important;
  background: var(--bd-green-soft) !important;
  color: var(--bd-green-dark) !important;
}

/* Shared listing cards */
.grid {
  gap: 20px !important;
}
.venue-card {
  border: 1px solid var(--bd-line) !important;
  border-radius: var(--bd-radius) !important;
  background: #fff !important;
  box-shadow: var(--bd-shadow) !important;
}
.venue-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: var(--bd-shadow-hover) !important;
}
.venue-card img {
  filter: none !important;
}
.venue-info {
  padding: 20px !important;
  text-align: left !important;
}
.venue-info h2,
.venue-info h3 {
  margin-bottom: 8px !important;
  font-size: 21px !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em;
}
.venue-info p {
  margin-bottom: 14px !important;
  color: var(--bd-muted) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
}
.tags {
  justify-content: flex-start !important;
  margin: auto 0 16px !important;
}
.tags span,
.place-tags span,
.category-row a,
.category-row button {
  border-color: var(--bd-line) !important;
  background: var(--bd-soft) !important;
  color: #4d5650 !important;
}
.card-actions {
  justify-content: flex-start !important;
}

/* Homepage: centered hero + consistent deal finder */
.search-hero {
  max-width: 860px;
  margin: 0 auto !important;
  padding: 50px 0 38px !important;
  text-align: center !important;
}
.search-hero-inner { margin: 0 auto !important; }
.search-hero h1 {
  color: var(--bd-ink) !important;
  font-size: clamp(48px, 6vw, 72px) !important;
  line-height: .98 !important;
}
.search-hero-subtitle { color: var(--bd-muted) !important; }
.hero-search { max-width: 680px !important; }
.hero-search input {
  border-color: var(--bd-line) !important;
  box-shadow: 0 8px 28px rgba(16, 30, 20, .06) !important;
}
.near-me-btn {
  border-color: var(--bd-green) !important;
  background: var(--bd-green) !important;
  color: #fff !important;
}
.near-me-btn:hover { background: var(--bd-green-dark) !important; }
.browse-bars-btn {
  border-color: var(--bd-line) !important;
  background: #fff !important;
}

.live-deals {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 30px !important;
}
.live-deals-head {
  align-items: flex-end !important;
}
.deal-feed-toolbar {
  margin-bottom: 24px !important;
}
.deal-browser-shell {
  width: 100%;
  grid-template-columns: 190px minmax(0, 1fr) !important;
  gap: 24px !important;
}
.deal-sidebar { top: 92px !important; }
.deal-feed-grid { gap: 16px !important; }
.live-deal-card {
  border-color: var(--bd-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 6px 22px rgba(17, 28, 20, .06) !important;
}
.live-deal-card:hover { box-shadow: var(--bd-shadow-hover) !important; }
.live-deal-offer { color: var(--bd-orange) !important; }
.live-deal-directions {
  border-color: var(--bd-green) !important;
  background: var(--bd-green) !important;
  color: #fff !important;
}
.live-deal-directions:hover {
  border-color: var(--bd-green-dark) !important;
  background: var(--bd-green-dark) !important;
  color: #fff !important;
}
.district-filter.active {
  border-color: #9fd3ad !important;
  background: var(--bd-green-soft) !important;
}
.home-discovery,
.home-how,
.home-for-bars,
.home-seo-copy {
  border-top-color: var(--bd-line) !important;
}
.home-for-bars {
  border-color: #cfe7d5 !important;
  background: #f4faf5 !important;
}
.home-for-bars-btn { background: var(--bd-green) !important; }

/* Detail pages: keep content, remove the old black/grey visual split. */
.bar-hero {
  max-width: 1120px;
  margin: 0 auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.bar-hero .hero-title span,
.blog-hero .hero-title span,
.article-title span {
  background: transparent !important;
  color: var(--bd-green-dark) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.feature-card,
.info-card,
.cta,
.place-card,
.side-card,
.blog-card,
.featured-card,
.hero-card {
  border: 1px solid var(--bd-line) !important;
  background: #fff !important;
  box-shadow: var(--bd-shadow) !important;
}
.feature-card img,
.photo-strip img,
.hero-image-card img {
  filter: none !important;
}
.content {
  max-width: 1120px;
  margin: 0 auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.deal-box {
  border-radius: 20px !important;
}
.deal-box:not(.light-box) {
  background: #143c24 !important;
}

/* Blog/For Bars containers */
.blog-hero,
.article-hero,
.hero:not(.search-hero) {
  max-width: 1120px;
}
.blog-grid,
.article-layout,
.benefits-grid,
.process-grid,
.faq-grid {
  gap: 20px !important;
}

/* Shared footer */
.footer {
  width: min(calc(100% - 40px), var(--bd-container)) !important;
  max-width: var(--bd-container) !important;
  margin: 70px auto 0 !important;
  padding: 32px 0 28px !important;
  border-top: 1px solid var(--bd-line) !important;
  background: #fff !important;
  color: var(--bd-muted) !important;
  box-shadow: none !important;
}
.footer a { color: var(--bd-ink) !important; }
.footer-brand { color: var(--bd-ink) !important; }
.footer-brand span { color: var(--bd-orange) !important; }

@media (max-width: 980px) {
  .page { width: min(calc(100% - 32px), var(--bd-container)) !important; }
  .top-nav.site-nav { margin-bottom: 0 !important; }
  .deal-browser-shell { grid-template-columns: 160px minmax(0,1fr) !important; }
}

@media (max-width: 760px) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .page { width: calc(100% - 28px) !important; }

  .top-nav.site-nav {
    min-height: 62px !important;
    margin-bottom: 0 !important;
  }
  .site-nav .logo { font-size: 21px !important; }
  .site-menu-toggle {
    display: block;
    margin-left: auto;
  }
  .site-nav .nav-wrap {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 1px);
    display: none !important;
    margin: 0 !important;
    padding: 12px;
    flex-direction: column;
    align-items: stretch !important;
    gap: 10px !important;
    border: 1px solid var(--bd-line);
    border-top: 0;
    border-radius: 0 0 16px 16px;
    background: #fff;
    box-shadow: 0 18px 34px rgba(18, 27, 20, .11);
  }
  .site-nav.menu-open .nav-wrap { display: flex !important; }
  .site-nav .nav-links {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 6px !important;
  }
  .site-nav .nav-links a {
    min-height: 44px;
    justify-content: center;
    padding: 0 10px !important;
    border: 1px solid var(--bd-line) !important;
    border-radius: 10px !important;
  }
  .site-nav .nav-links a.active::after,
  .site-nav .nav-links a[aria-current="page"]::after { display: none; }
  .site-nav .language-switcher { align-self: center; }

  .search-hero {
    max-width: none;
    padding: 24px 0 24px !important;
    text-align: left !important;
  }
  .search-hero h1 { font-size: clamp(38px, 11vw, 52px) !important; }
  .search-hero-subtitle { margin: 13px 0 20px !important; }
  .hero-search { max-width: none !important; }
  .hero-actions { grid-template-columns: 1fr !important; }
  .hero-trust { justify-content: flex-start !important; }

  .live-deals-head {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .deal-browser-shell { display: block !important; }
  .deal-sidebar { position: static !important; }
  .deal-feed-grid { grid-template-columns: 1fr !important; }
  .live-deal-card { grid-template-columns: 112px minmax(0,1fr) !important; }
  .live-deal-actions a { min-height: 38px !important; }

  .page-hero {
    margin-top: 28px !important;
    margin-bottom: 0 !important;
  }
  .page-hero .page-title,
  .page-title { font-size: 42px !important; }
  .grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .venue-card { display: grid !important; grid-template-columns: 120px minmax(0,1fr); }
  .venue-card img { height: 100% !important; min-height: 150px; aspect-ratio: auto !important; }
  .venue-info { padding: 15px !important; }
  .venue-info h2, .venue-info h3 { font-size: 18px !important; }
  .venue-info p { font-size: 13px !important; }

  .bar-hero,
  .content,
  .blog-hero,
  .article-hero,
  .hero:not(.search-hero) {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .bar-hero .hero-title,
  .blog-hero .hero-title,
  .article-title { font-size: 48px !important; }

  .footer {
    width: calc(100% - 28px) !important;
    margin-top: 48px !important;
  }
}

@media (max-width: 430px) {
  .page { width: calc(100% - 24px) !important; }
  .site-nav .nav-links { grid-template-columns: 1fr; }
  .live-deal-card { grid-template-columns: 104px minmax(0,1fr) !important; }
  .venue-card { grid-template-columns: 105px minmax(0,1fr) !important; }
  .footer { width: calc(100% - 24px) !important; }
}

/* =========================================================
   Desktop polish v3 — shared across the whole BarDeals site
   ========================================================= */
@media (min-width: 981px) {
  html,
  body {
    width: 100%;
    overflow-x: clip;
  }

  /* One genuinely centered desktop frame. */
  .page {
    width: min(1240px, calc(100vw - 64px)) !important;
    max-width: 1240px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  /* Clean desktop navigation — no boxed/tabular look. */
  .top-nav.site-nav {
    min-height: 76px !important;
    height: 76px;
    padding: 0 !important;
    margin: 0 !important;
    gap: 32px !important;
    border-bottom: 1px solid var(--bd-line) !important;
    background: rgba(255,255,255,.97) !important;
    box-shadow: none !important;
  }

  .site-nav .logo {
    font-size: 25px !important;
  }

  .site-nav .nav-wrap {
    gap: 24px !important;
  }

  .site-nav .nav-links {
    gap: 2px !important;
  }

  .site-nav .nav-links a {
    min-height: 76px !important;
    padding: 0 15px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #2c312d !important;
    font-size: 13px !important;
    font-weight: 750 !important;
  }

  .site-nav .nav-links a:hover {
    background: transparent !important;
    color: var(--bd-green-dark) !important;
  }

  .site-nav .nav-links a.active,
  .site-nav .nav-links a[aria-current="page"] {
    background: transparent !important;
    color: var(--bd-green-dark) !important;
  }

  .site-nav .nav-links a.active::after,
  .site-nav .nav-links a[aria-current="page"]::after {
    left: 15px;
    right: 15px;
    bottom: 0;
    height: 3px;
    background: var(--bd-green);
  }

  .site-nav .language-switcher {
    padding: 3px !important;
  }

  /* Homepage: balanced desktop hero, not a giant blank block. */
  .search-hero {
    width: 100%;
    max-width: 920px !important;
    padding: 52px 0 44px !important;
    margin: 0 auto !important;
  }

  .search-hero-inner {
    max-width: 860px !important;
  }

  .search-hero-kicker {
    margin-bottom: 11px !important;
  }

  .search-hero h1 {
    max-width: 860px;
    margin-inline: auto !important;
    font-size: clamp(54px, 5vw, 68px) !important;
    line-height: .98 !important;
  }

  .search-hero-subtitle {
    max-width: 680px !important;
    margin: 16px auto 22px !important;
    font-size: 16px !important;
  }

  .hero-search {
    max-width: 720px !important;
  }

  .hero-search input {
    height: 58px !important;
    border-radius: 14px !important;
  }

  .hero-actions {
    margin-top: 13px !important;
  }

  .near-me-btn,
  .browse-bars-btn {
    min-width: 190px;
    min-height: 50px !important;
    border-radius: 11px !important;
  }

  .hero-trust {
    margin-top: 17px !important;
  }

  /* Deal finder lines up with the same site frame. */
  .live-deals {
    width: 100% !important;
    padding-top: 34px !important;
    margin-bottom: 72px !important;
  }

  .live-deals-head {
    margin-bottom: 13px !important;
  }

  .live-deals .section-title {
    margin: 0 !important;
    text-align: left !important;
    font-size: 43px !important;
    line-height: 1 !important;
  }

  .live-deals .section-kicker {
    text-align: left !important;
    margin-bottom: 8px !important;
  }

  .live-deals-intro {
    margin-top: 9px !important;
  }

  .deal-feed-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 62px;
    padding: 11px 0 16px !important;
    margin-bottom: 22px !important;
  }

  .deal-feed-filters {
    flex-wrap: nowrap !important;
  }

  .deal-feed-filter {
    min-height: 38px;
    padding: 0 15px !important;
  }

  .deal-feed-status {
    margin-left: auto !important;
    text-align: right;
    white-space: nowrap;
  }

  .deal-browser-shell {
    display: grid !important;
    grid-template-columns: 205px minmax(0, 1fr) !important;
    gap: 28px !important;
    align-items: start !important;
  }

  .deal-sidebar {
    top: 96px !important;
  }

  .district-filter {
    min-height: 46px !important;
    border-radius: 10px !important;
  }

  .deal-results {
    min-width: 0;
  }

  .deal-feed-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch;
  }

  .live-deal-card {
    min-width: 0;
    height: 100%;
    border-radius: 15px !important;
    box-shadow: 0 5px 18px rgba(18, 28, 21, .055) !important;
  }

  .live-deal-media {
    aspect-ratio: 16 / 9 !important;
  }

  .live-deal-body {
    min-height: 220px;
    padding: 16px !important;
  }

  .live-deal-card h3 {
    font-size: 18px !important;
  }

  .live-deal-offer {
    min-height: 40px !important;
    margin: 7px 0 11px !important;
    font-size: 14px !important;
    line-height: 1.38 !important;
  }

  .live-deal-meta-row,
  .live-deal-address {
    font-size: 10.5px !important;
  }

  .live-deal-address {
    min-height: 30px !important;
  }

  .live-deal-actions {
    margin-top: auto !important;
    padding-top: 12px;
  }

  .live-deal-actions a {
    min-height: 40px !important;
    border-radius: 9px !important;
    font-size: 10.5px !important;
  }

  /* Lower homepage sections share the exact same left/right edges. */
  .home-discovery,
  .home-how,
  .home-for-bars,
  .home-seo-copy {
    width: 100%;
  }

  .home-discovery,
  .home-how {
    padding-top: 48px !important;
  }

  .home-section-head .section-title,
  .home-for-bars .section-title {
    text-align: left !important;
  }

  /* Other top-level pages stay centered in the same desktop rhythm. */
  .page-hero,
  .bar-hero,
  .blog-hero,
  .article-hero,
  .hero:not(.search-hero),
  .content {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .footer {
    width: min(1240px, calc(100vw - 64px)) !important;
    max-width: 1240px !important;
  }
}

/* Keep three desktop cards only while there is enough room for them. */
@media (min-width: 981px) and (max-width: 1160px) {
  .deal-browser-shell {
    grid-template-columns: 180px minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  .deal-feed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .deal-feed-status {
    white-space: normal;
  }
}

/* =========================================================
   Mobile viewport hardening v4 — prevent page-wide overflow
   ========================================================= */
*, *::before, *::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

@media (max-width: 760px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  body {
    margin: 0 !important;
  }

  /* Use padding inside a 100% frame instead of calc() widths that can
     inherit an already-expanded containing block in mobile Safari. */
  .page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
    overflow: visible !important;
  }

  /* Keep the logo + hamburger on one row regardless of legacy rules. */
  .top-nav.site-nav {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 64px !important;
    height: 64px !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .site-nav .logo {
    flex: 0 1 auto !important;
    margin: 0 !important;
    max-width: calc(100% - 56px) !important;
    font-size: 22px !important;
    white-space: nowrap !important;
  }

  .site-menu-toggle {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 0 0 auto !important;
  }

  .site-nav .nav-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    left: 0 !important;
    right: 0 !important;
  }

  /* Every major homepage block must be allowed to shrink to viewport. */
  .search-hero,
  .search-hero-inner,
  .hero-search,
  .hero-actions,
  .hero-trust,
  .live-deals,
  .live-deals-head,
  .deal-feed-toolbar,
  .deal-feed-filters,
  .deal-browser-shell,
  .deal-results,
  .deal-feed-grid,
  .deal-sidebar,
  .home-discovery,
  .home-how,
  .home-for-bars,
  .home-seo-copy,
  .footer,
  .content,
  .bar-hero,
  .page-hero,
  .blog-hero,
  .article-hero,
  .hero:not(.search-hero) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .search-hero {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .search-hero h1,
  .search-hero p,
  .section-title,
  .live-deal-card h3,
  .live-deal-offer,
  .home-seo-copy p,
  .footer p {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }

  .hero-search input,
  .near-me-btn,
  .browse-bars-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Filter rows scroll inside themselves; they must never widen the page. */
  .district-filter-list,
  .home-district-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .district-filter,
  .home-district-grid button {
    flex: 0 0 auto !important;
  }

  /* Mobile deal cards: text column is explicitly shrinkable. */
  .live-deal-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: 104px minmax(0, 1fr) !important;
    overflow: hidden !important;
  }

  .live-deal-body,
  .live-deal-top,
  .live-deal-title-row,
  .live-deal-actions {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .live-deal-actions {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .live-deal-actions a {
    min-width: 0 !important;
    max-width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    white-space: nowrap;
  }

  /* Legacy venue cards also must not impose a wider intrinsic width. */
  .venue-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: 105px minmax(0, 1fr) !important;
    overflow: hidden !important;
  }

  .venue-info,
  .card-actions,
  .tags {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .footer {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 390px) {
  .page {
    padding-left: max(12px, env(safe-area-inset-left)) !important;
    padding-right: max(12px, env(safe-area-inset-right)) !important;
  }

  .live-deal-card {
    grid-template-columns: 92px minmax(0, 1fr) !important;
  }

  .live-deal-actions {
    grid-template-columns: 1fr !important;
  }

  .live-deal-actions a {
    width: 100% !important;
  }
}
