:root {
  --navy: #0b1c2c;
  --ink: #1a242c;
  --lime: #c8f024;
  --lime-hot: #d6ff3a;
  --teal: #2bb8b0;
  --muted: #6b7a84;
  --line: #e8eef0;
  --sand: #f6f3ee;
  --card: #fff;
  --pin-listed: #fff8eb;
  --pin-partner: #c8f024;
}
* { box-sizing: border-box; }
html { margin: 0; overflow-x: hidden; background: #fef8eb; }
body { margin: 0; }
body {
  min-height: 100vh;
  font-family: Outfit, ui-sans-serif, system-ui, sans-serif;
  color: var(--ink);
  background-color: #fef8eb;
  background-image: url(/assets/page_bg.jpg);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: min(100%, 1400px) auto;
}
[data-i18n-lang][hidden],
html[lang="en"] [data-i18n-lang="es"],
html[lang="es"] [data-i18n-lang="en"] {
  display: none !important;
}
.i18n-pair { display: contents; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
.wrap { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }

.nav {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 12px;
  padding: 4px 14px 4px 8px;
  background: #fef8eb;
  border-bottom: 0;
}
.nav-toggle {
  display: grid; place-items: center;
  width: 42px; height: 42px; border: 0; border-radius: 14px;
  background: #fff; color: var(--navy);
  font-size: 20px; cursor: pointer; flex: 0 0 auto;
  box-shadow: 0 6px 14px rgba(11,28,44,.08);
}
.nav-links {
  display: none; gap: 22px; margin: 0 auto; font-weight: 800; font-size: 14px; color: #3c4a52;
}
.nav.open .nav-links {
  display: flex; flex-direction: column;
  position: absolute; top: calc(100% + 8px); left: 12px; right: 12px;
  background: rgba(255,255,255,.96);
  border-radius: 18px; padding: 12px 16px;
  box-shadow: 0 16px 36px rgba(11,28,44,.16);
}
.nav-cta {
  margin-left: auto; background: var(--lime); color: var(--navy);
  font-weight: 900; font-size: 13px; padding: 10px 16px; border-radius: 999px;
  display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto;
}
@media (min-width: 900px) {
  .nav { padding: 6px 22px 6px 10px; gap: 18px; }
  .nav-toggle { display: none; }
  .nav-links, .nav.open .nav-links {
    display: flex; flex-direction: row; position: static;
    background: transparent; box-shadow: none; padding: 0;
  }
  .brand-mark { height: 62px; max-width: 210px; }
  .brand strong { font-size: 18px; max-width: none; white-space: nowrap; }
}
.brand { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; min-width: auto; }
.brand-mark {
  height: 54px; width: auto; max-width: 184px;
  object-fit: contain; object-position: left center;
  flex: 0 0 auto;
}
.brand strong {
  display: block; font-weight: 900; font-size: 16px; letter-spacing: -.03em;
  line-height: 1.1; max-width: 12rem;
}
.brand small { display: block; color: var(--muted); font-weight: 700; font-size: 11px; margin-top: -2px; white-space: nowrap; }
.brand img:not(.brand-mark) { display: none; }
.nav-links a[hidden] { display: none !important; }
.nav-links a.on { color: var(--ink); box-shadow: inset 0 -3px 0 var(--lime); padding-bottom: 4px; }
.nav-links .nav-filter {
  border: 0; background: transparent; padding: 0;
  font: inherit; font-weight: 800; font-size: 14px; color: #3c4a52;
  cursor: pointer;
}
.nav-links .nav-filter.on {
  color: var(--ink); box-shadow: inset 0 -3px 0 var(--lime); padding-bottom: 4px;
}
@media (max-width: 899px) {
  .nav.open .nav-links a.on,
  .nav.open .nav-links .nav-filter.on {
    box-shadow: none;
    padding: 8px 10px;
    border-radius: 10px;
    background: #efffc8;
  }
}

.home-head {
  padding: 18px 0 10px;
}
.home-head h1 {
  margin: 0;
  letter-spacing: -.03em;
  line-height: 1.15;
}
.home-head .h1-lead {
  display: block;
  font-size: clamp(26px, 4.8vw, 40px);
  font-weight: 900;
}
.home-head .h1-rest {
  display: block;
  margin-top: 6px;
  font-size: clamp(15px, 2.3vw, 20px);
  font-weight: 650;
  color: #4a5a64;
  letter-spacing: -.02em;
}
.home .hero-map .mapboxgl-ctrl-bottom-right {
  right: 108px;
  bottom: 56px;
}
@media (min-width: 900px) {
  .home .hero-map .mapboxgl-ctrl-bottom-right { right: 118px; bottom: 22px; }
}

.map-legend {
  position: absolute;
  z-index: 3;
  top: 12px;
  left: 12px;
  max-width: min(160px, calc(100% - 28px));
  padding: 7px 9px;
  border-radius: 12px;
  background: rgba(255, 248, 235, .92);
  backdrop-filter: blur(10px);
  box-shadow: 0 6px 16px rgba(11,28,44,.14);
  color: #3a4a52;
  font: 700 11px/1.35 Outfit, sans-serif;
  pointer-events: none;
}
.hero-map .map-legend {
  top: 68px;
  left: 18px;
}
@media (min-width: 900px) {
  .hero-map .map-legend { top: 22px; left: 18px; }
}
.map-legend .leg-row {
  display: grid;
  grid-template-columns: 22px 1fr;
  column-gap: 7px;
  align-items: center;
}
.map-legend .leg-row + .leg-row { margin-top: 7px; }
.map-legend b { font-weight: 800; color: var(--navy); }
.leg-pin {
  display: grid;
  place-items: center;
  justify-self: center;
}
.leg-pin.venue {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--lime); border: 3px solid var(--navy);
  box-shadow: 0 0 0 2px #fff, 0 3px 8px rgba(16,34,51,.25);
}
.leg-pin.listed {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--pin-listed); border: 3px solid var(--navy);
  box-shadow: 0 0 0 2px #fff, 0 3px 8px rgba(16,34,51,.18);
}

.hero-map {
  position: relative;
  height: min(62vh, 560px);
  min-height: 340px;
  background: #123;
  margin: 0 14px;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(11,28,44,.22);
  scroll-margin-top: 80px;
}
@media (min-width: 900px) {
  .hero-map {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
  }
}
.home .hero-map #map { scroll-margin-top: 80px; }
.hero-map #map,
.hero-map .mapboxgl-map,
.hero-map .mapboxgl-canvas-container,
.hero-map .mapboxgl-canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}
.hero-pill {
  position: absolute; z-index: 4; left: 18px; top: 70px; right: auto;
  margin: 0; display: inline-block;
  font: 800 12px Outfit, sans-serif;
  color: #fff;
  background: rgba(18, 24, 30, .72);
  backdrop-filter: blur(10px);
  border-radius: 999px;
  padding: 7px 12px;
  pointer-events: none;
  max-width: calc(100% - 36px);
  white-space: nowrap;
}
.map-sticker {
  position: absolute; z-index: 5;
  right: 10px; bottom: 56px;
  width: 78px;
  text-decoration: none;
  filter: drop-shadow(0 8px 14px rgba(0,0,0,.28));
  display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.sticker-kicker, .sticker-cta {
  display: block; text-align: center;
  font: 900 8px/1.1 Outfit, sans-serif;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--navy);
  background: var(--lime);
  border-radius: 999px;
  padding: 3px 6px;
  width: 100%;
}
.sticker-phone {
  position: relative;
  display: block;
  width: 46px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid #111;
  background: #111;
}
.sticker-phone img {
  display: block; width: 100%; height: 72px;
  object-fit: cover; object-position: center 32%;
}
.sticker-won {
  position: absolute; left: 2px; right: 2px; bottom: 4px;
  background: var(--lime); color: var(--navy);
  font: 900 7px Outfit, sans-serif;
  text-align: center; border-radius: 4px;
  padding: 2px 0;
}
@media (min-width: 900px) {
  .map-sticker { width: 88px; bottom: 22px; right: 14px; }
  .sticker-phone { width: 52px; }
  .sticker-phone img { height: 84px; }
  .sticker-kicker, .sticker-cta { font-size: 9px; }
}

.tag.cocktails { background: #ffe4d6; color: #8a3d18; }
.tag.live { background: #ece7ff; color: #4a3d8a; }
.tag.late { background: #d9f4ff; color: #0f5f78; }
.tag.karaoke { background: #ffe0ef; color: #8a2458; }
.tag.pool { background: #d8f0ff; color: #0d4e78; }
.tag.darts { background: #fff0d0; color: #7a5200; }

.sheet-bg {
  position: fixed; inset: 0; z-index: 54; background: rgba(11,28,44,.35);
}
.pin-sheet {
  position: fixed; z-index: 55; left: 12px; right: 12px; bottom: 12px;
  background: #fff; border-radius: 22px; padding: 16px 16px 18px;
  box-shadow: 0 18px 40px rgba(0,0,0,.25); max-width: 420px;
}
@media (min-width: 700px) {
  .pin-sheet { left: auto; right: 24px; bottom: 24px; width: 360px; }
}
.pin-photo {
  height: 120px; border-radius: 14px; background: #d7ecec center/cover no-repeat; margin-bottom: 10px;
}
.pin-sheet .perk-x {
  background: #eef3f4;
  color: var(--navy);
}
.pin-sheet[hidden] { display: none; }
.pin-blurb { margin: 0 0 8px; color: var(--muted); font-weight: 600; font-size: 14px; }
.pin-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

.perk {
  position: fixed; inset: 0; z-index: 50;
  background: rgba(8, 16, 24, .55);
  display: grid; place-items: center; padding: 18px;
  backdrop-filter: blur(8px);
}
.perk-card {
  position: relative;
  width: min(720px, 100%);
  display: grid;
  gap: 12px;
  background: #05090c;
  border: 1px solid rgba(200, 240, 36, .35);
  border-radius: 22px;
  padding: 10px 10px 14px;
  box-shadow: 0 0 48px rgba(200, 240, 36, .16), 0 24px 50px rgba(0,0,0,.45);
  color: #fff;
}
.perk-art { display: block; position: relative; border-radius: 16px; overflow: hidden; }
.perk-get {
  margin: 0 6px;
  text-align: center;
}
.perk-x {
  position: absolute; top: 10px; right: 12px; z-index: 2; border: 0;
  background: rgba(255,255,255,.12); color: #fff;
  width: 32px; height: 32px; border-radius: 50%; font-size: 20px; cursor: pointer;
}
.perk-art img { display: block; width: 100%; height: auto; max-height: min(70vh, 620px); object-fit: contain; }
.perk-promo-copy .store-badge {
  width: auto;
  height: 32px;
  max-height: 34px;
}
.perk-get { margin: 4px 8px 10px; }
html[lang="en"] .perk-promo .perk-get { display: none; }
.perk-card.perk-promo {
  width: min(760px, calc(100vw - 28px));
  max-height: none;
  overflow: visible;
  padding: 12px 12px 8px;
}
.perk-promo-link {
  display: block;
  padding: 2px;
  color: inherit;
  text-decoration: none;
}
.perk-promo-art {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  object-fit: contain;
}
.perk-promo-phone { display: none; }
.perk-promo-copy { padding: 18px 16px 8px; }
.perk-promo-kicker {
  margin: 0 0 10px;
  color: #c8f024;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.perk-promo-copy h2 {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-weight: 900;
  font-size: clamp(34px, 5vw, 54px);
  letter-spacing: -.04em;
  line-height: .9;
  text-transform: uppercase;
}
.perk-promo-lead {
  margin: 14px 0 0;
  max-width: 36ch;
  color: #d5dde4;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}
.perk-promo-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}
.perk-promo-features li {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #c8f024;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.perk-promo-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  padding: 11px 22px;
  border-radius: 999px;
  background: #c8f024;
  color: #0b1c2c;
  font-family: Outfit, sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.perk-promo-copy .app-promo-stores {
  justify-content: flex-start;
  width: auto;
  margin-top: 14px;
}
@media (max-width: 700px) {
  .perk-card.perk-promo { width: min(420px, calc(100vw - 24px)); }
  .perk-promo-copy { padding: 16px 10px 6px; }
  .perk-promo-copy h2 { font-size: clamp(28px, 8vw, 40px); }
}
.app .btn { margin-top: 4px; }
.store-row img { height: 42px; width: auto; display: block; }
.hero-search {
  position: absolute; z-index: 4; left: 18px; right: 18px; top: 18px;
  width: auto;
}
.hero-search input {
  width: 100%; border: 0; border-radius: 999px; padding: 12px 16px 12px 40px;
  font: 600 14px Outfit, sans-serif; box-shadow: 0 10px 30px rgba(0,0,0,.2);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%236b7a84' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='M13 13l4 4'/%3E%3C/svg%3E") 14px 50% no-repeat;
}
.hero-chips {
  position: absolute; z-index: 4; left: 18px; right: 18px; bottom: 16px; top: auto;
  display: flex; gap: 10px; align-items: center; overflow-x: auto; padding-bottom: 4px;
  pointer-events: auto;
}
.chip-group { display: flex; gap: 8px; flex: 0 0 auto; }
.chip-split {
  flex: 0 0 auto; width: 1px; height: 22px;
  background: rgba(11,28,44,.22);
  box-shadow: 0 0 0 1px rgba(255,255,255,.35);
}
.explore-chips {
  display: flex; gap: 10px; align-items: center; overflow-x: auto; margin: 0 0 14px;
}
@media (min-width: 900px) {
  .hero-pill { top: 22px; left: 18px; font-size: 13px; padding: 8px 14px; }
  .hero-search { left: auto; width: min(320px, calc(100% - 36px)); top: 22px; }
  .hero-chips { bottom: 22px; right: auto; max-width: 78%; }
}
.hero-chips .chip, .explore-chips .chip {
  flex: 0 0 auto; border: 0; border-radius: 999px; padding: 8px 12px; cursor: pointer;
  font: 800 12px Outfit, sans-serif; background: #fff; color: var(--ink);
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
}
.hero-chips .chip.on, .explore-chips .chip.on,
.hero-chips a.chip:hover, .explore-chips a.chip:hover { background: var(--lime); }
.city-pill {
  position: absolute; z-index: 4; left: 50%; top: 52%; transform: translate(-50%, -50%);
  background: #111; color: #fff; border-radius: 999px; padding: 6px 12px;
  font: 800 12px Outfit, sans-serif; pointer-events: none;
}

.mkr {
  position: relative;
  width: 34px; height: 34px; border-radius: 50%;
  border: 2px solid #fff; display: grid; place-items: center;
  font-size: 14px; box-shadow: 0 4px 12px rgba(0,0,0,.35); cursor: pointer;
}
.mkr.listed {
  background: var(--pin-listed);
  border: 2px solid var(--navy);
}
.mkr.venue {
  background: var(--lime); color: var(--navy);
  width: 30px; height: 30px;
  border: 3px solid var(--navy);
  z-index: 8;
  box-shadow: 0 0 0 3px #fff, 0 6px 16px rgba(0,0,0,.32);
}

.me-marker {
  width: 28px; height: 28px;
  display: grid; place-items: center;
}
.me-pulse {
  position: absolute; width: 28px; height: 28px; border-radius: 50%;
  background: rgba(43,184,176,.35);
  animation: mepulse 1.8s ease-out infinite;
}
.me-person {
  position: relative; z-index: 1;
  width: 22px; height: 22px; border-radius: 50%;
  background: #2bb8b0; color: #fff;
  font-size: 12px;
  display: grid; place-items: center;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(11,28,44,.25);
}
@keyframes mepulse {
  0% { transform: scale(.7); opacity: .8; }
  100% { transform: scale(2.1); opacity: 0; }
}
.map-palms {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
}
.map-palms::before, .map-palms::after {
  content: "";
  position: absolute;
  width: 86px; height: 86px;
  opacity: .3;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%230b1c2c' d='M32 58V28M32 30c-8-10-18-12-22-10 8-2 16 4 22 12 6-8 14-14 22-12-4-2-14 0-22 10z'/%3E%3Cpath fill='%232bb8b0' d='M32 28c-6-8-14-10-18-8 6-1 12 4 18 10 6-6 12-11 18-10-4-2-12 0-18 8z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.map-palms::before { left: 6px; bottom: 52px; }
.map-palms::after { right: 8px; top: 10px; transform: scaleX(-1); }

.section { padding: 22px 0 8px; }
.section h1, .section h2 {
  margin: 0 0 12px; font-size: clamp(18px, 2.4vw, 22px); font-weight: 800;
}
.section h1 { font-size: clamp(24px, 3.4vw, 32px); letter-spacing: -.03em; }
.section h1 em, .section h2 em {
  font-family: Caveat, cursive; font-style: normal; color: #222; font-weight: 700;
}

.pop-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px;
}
.pop {
  background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: 0 10px 24px rgba(20,33,43,.08); display: block;
  transition: transform .15s ease, box-shadow .15s ease;
}
.pop:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(20,33,43,.12); }
button.pop {
  width: 100%; border: 0; padding: 0; text-align: left; font: inherit; color: inherit; cursor: pointer;
}
.pop img.ph, .vcard img.ph {
  width: 100%; height: 150px; object-fit: cover; display: block;
}
.pop .ph, .vcard .ph { height: 150px; background: #d7ecec center/cover no-repeat; position: relative; }
.pop .body { padding: 12px 14px 14px; }
.pop h3 { margin: 0 0 4px; font-size: 16px; }
.pop .sub {
  margin: 0; color: var(--muted); font-size: 13px; font-weight: 600;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tag {
  border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 800;
  background: #eef3f4; color: #4a5a62;
}
.tag.partner {
  background: var(--lime); color: var(--navy);
  font-size: 12px; padding: 4px 10px;
}
.tag.pub { background: #ece7ff; color: #4a3d8a; }
.tag.terrace { background: #d9f4ff; color: #0f5f78; }
.tag.nightclub { background: #ffe4d6; color: #8a3d18; }
.tag.sports { background: #dff8d6; color: #1f6a28; }
.tag.irish { background: #e8f8e0; color: #2a6a28; }
.tag.restaurant { background: #ffe8cc; color: #7a3d10; }

.explore-layout {
  display: grid; gap: 18px;
}
@media (min-width: 980px) {
  .explore-layout { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
}
.row {
  display: flex; gap: 12px; align-items: center;
  background: #fff; border-radius: 16px; padding: 10px 12px;
  margin-bottom: 10px; box-shadow: 0 6px 16px rgba(20,33,43,.06);
}
.row .thumb, .row img.thumb {
  width: 72px; height: 72px; border-radius: 12px;
  background: #d7ecec center/cover no-repeat; flex: 0 0 auto;
}
.row img.thumb { object-fit: cover; display: block; }
.row h3 { margin: 0 0 2px; font-size: 15px; }
.row p {
  margin: 0; color: var(--muted); font-size: 12px; font-weight: 600;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.row.partner {
  border: 2px solid var(--lime);
  background: linear-gradient(90deg, #eaff7a 0 7px, #fff 7px);
  box-shadow: 0 8px 22px rgba(200, 240, 36, .28);
}
.row.partner h3 { font-weight: 900; }
.row .go { margin-left: auto; color: #bbb; font-size: 22px; }
button.row {
  width: 100%;
  border: 0;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
}

/* Fuengirola home — light Mediterranean editorial edition */
body.home {
  --home-paper: #f7f3e9;
  --home-rule: rgba(11, 28, 44, .16);
  background-color: var(--home-paper);
  background-image:
    radial-gradient(circle at 10% 10%, rgba(200, 240, 36, .14), transparent 24rem),
    radial-gradient(circle at 92% 28%, rgba(43, 184, 176, .11), transparent 28rem);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.home .nav {
  background: rgba(247, 243, 233, .86);
  border-bottom: 1px solid rgba(11, 28, 44, .08);
}
.home-head {
  padding: clamp(42px, 7vw, 86px) 0 clamp(28px, 4vw, 50px);
}
.home-kicker,
.home-section-head > div > p {
  margin: 0 0 10px;
  color: #168d8a;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.home-title-row { display: grid; gap: 22px; }
.home-head h1 {
  margin: 0;
  color: var(--navy);
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  font-size: clamp(58px, 11vw, 116px);
  line-height: .78;
  letter-spacing: -.055em;
}
.home-head .h1-lead {
  display: block;
  font: inherit;
}
.home-head h1 em {
  display: block;
  margin-left: clamp(20px, 8vw, 118px);
  color: #168d8a;
  font: italic 400 .86em/.92 "DM Serif Display", Georgia, serif;
  letter-spacing: -.04em;
}
.home-intro { max-width: 540px; }
.home-head .h1-rest {
  display: block;
  margin: 0;
  color: #4f5e64;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: -.01em;
}
.home-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.home-quick a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1px solid var(--home-rule);
  border-radius: 999px;
  background: rgba(255,255,255,.55);
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
}
.home-quick a:first-child { background: var(--navy); color: #fff; border-color: var(--navy); }
.home-quick a:hover { border-color: #168d8a; transform: translateY(-1px); }
.home .hero-map {
  height: min(58vh, 520px);
  border: 1px solid rgba(11, 28, 44, .22);
  border-radius: 30px;
  box-shadow: 0 24px 64px rgba(11, 28, 44, .16);
}
.home main.wrap { padding-top: 14px; }
.home .section { padding: clamp(44px, 7vw, 78px) 0 0; }
.home .section + .section {
  margin-top: clamp(42px, 6vw, 72px);
  border-top: 1px solid var(--home-rule);
}
.home-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.home .home-section-head h2 {
  margin: 0;
  color: var(--navy);
  font: 400 clamp(34px, 5vw, 58px)/.95 "DM Serif Display", Georgia, serif;
  letter-spacing: -.035em;
}
.home .home-section-head h2 em {
  color: #168d8a;
  font: italic 400 1em "DM Serif Display", Georgia, serif;
}
.home-section-head > a,
.home-count {
  flex: 0 0 auto;
  padding-bottom: 5px;
  color: #526269;
  font-size: 12px;
  font-weight: 800;
}
.home-section-head > a:hover { color: #168d8a; }
.home .pop-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.home .pop {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(11, 28, 44, .18);
  border-radius: 22px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 8px 24px rgba(11, 28, 44, .055);
}
.home .pop:hover {
  transform: translateY(-4px);
  border-color: rgba(11, 28, 44, .32);
  box-shadow: 0 18px 42px rgba(11, 28, 44, .12);
}
.pop-media { position: relative; overflow: hidden; background: #d7ecec; }
.home .pop img.ph,
.home .pop .ph {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.home .pop:hover img.ph { transform: scale(1.025); }
.pop-partner,
.row-partner {
  position: absolute;
  z-index: 2;
  left: 12px;
  top: 12px;
  padding: 6px 9px;
  border-radius: 999px;
  background: var(--lime);
  color: var(--navy);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
  box-shadow: 0 5px 14px rgba(11,28,44,.2);
}
.home .pop .body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px 18px 16px;
}
.home .pop h3 {
  margin: 0 0 11px;
  color: var(--navy);
  font: 400 24px/1.05 "DM Serif Display", Georgia, serif;
  letter-spacing: -.02em;
}
.pop-meta,
.home .row .row-meta {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0 0 5px;
  color: #586970;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}
.pop-meta > span,
.home .row .row-meta > span { color: #168d8a; font-size: 13px; line-height: 1; }
.home .pop .sub {
  margin-top: 8px;
  color: #66757b;
  font-weight: 500;
  line-height: 1.45;
}
.home .pop .tags { margin-top: 12px; }
.pop-cta {
  display: flex;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 16px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
}
.home #all-bars-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.home .row {
  position: relative;
  align-items: stretch;
  gap: 14px;
  min-width: 0;
  min-height: 154px;
  margin: 0;
  padding: 10px;
  border: 1px solid rgba(11, 28, 44, .15);
  border-radius: 20px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 5px 18px rgba(11, 28, 44, .04);
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.home .row:hover {
  transform: translateY(-2px);
  border-color: rgba(11, 28, 44, .3);
  box-shadow: 0 12px 28px rgba(11, 28, 44, .09);
}
.home .row.partner {
  border: 1px solid rgba(135, 174, 0, .65);
  background: rgba(255,255,255,.9);
  box-shadow: 0 7px 22px rgba(135, 174, 0, .09);
}
.row-media { position: relative; flex: 0 0 124px; min-width: 0; }
.home .row .thumb,
.home .row img.thumb {
  width: 124px;
  height: 100%;
  min-height: 132px;
  border-radius: 13px;
  object-fit: cover;
}
.home .row .row-partner {
  left: 7px;
  top: 7px;
  padding: 5px 7px;
  font-size: 8px;
}
.row-body { min-width: 0; flex: 1; padding: 3px 3px 3px 0; }
.row-title { display: flex; align-items: flex-start; gap: 8px; }
.home .row h3 {
  flex: 1;
  margin: 0 0 8px;
  color: var(--navy);
  font: 400 19px/1.08 "DM Serif Display", Georgia, serif;
}
.home .row .go {
  margin: 0;
  color: #168d8a;
  font-size: 14px;
  font-weight: 800;
}
.home .row .row-copy {
  margin: 8px 0 0;
  color: #68767c;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  -webkit-line-clamp: 2;
}
.home .row .tags { gap: 4px; margin-top: 8px; }
.home .row .tag { padding: 2px 6px; font-size: 9px; }
.home-area .related { display: grid; }
.home .home-area .related a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 20px;
  align-items: center;
  min-height: 130px;
  padding: 24px 28px;
  border: 1px solid rgba(11, 28, 44, .16);
  border-radius: 22px;
  background: linear-gradient(120deg, rgba(255,255,255,.8), rgba(200,240,36,.17));
}
.home .home-area .related a span {
  color: var(--navy);
  font: 400 30px "DM Serif Display", Georgia, serif;
}
.home .home-area .related a small { color: #627178; font-weight: 600; }
.home .home-area .related a b { grid-row: 1 / span 2; grid-column: 2; font-size: 22px; }
.home .seo-links { margin-top: 20px; }
.home .app {
  margin-top: 54px;
  padding: clamp(26px, 5vw, 48px);
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
  box-shadow: 0 20px 46px rgba(11,28,44,.18);
}
.home .app h2 {
  margin-bottom: 10px;
  color: #fff;
  font: 400 clamp(30px, 4vw, 46px) "DM Serif Display", Georgia, serif;
}
.home .app p { color: rgba(255,255,255,.72); }

@media (min-width: 860px) {
  .home-title-row {
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    align-items: end;
  }
  .home-intro { padding: 0 0 8px 16px; }
}
@media (max-width: 900px) {
  .home .pop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home #all-bars-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .home-head { padding-top: 36px; }
  .home-head h1 { font-size: clamp(54px, 18vw, 82px); }
  .home-head h1 em { margin-left: 16px; }
  .home .hero-map { height: 480px; border-radius: 22px; }
  .home .pop-grid { grid-template-columns: 1fr; }
  .home .pop img.ph, .home .pop .ph { height: 210px; }
  .home-section-head { align-items: flex-start; }
  .home-section-head > a, .home-count { padding-top: 10px; }
  .row-media { flex-basis: 104px; }
  .home .row .thumb, .home .row img.thumb { width: 104px; }
}
@media (max-width: 420px) {
  .home-section-head { display: block; }
  .home-section-head > a, .home-count { display: inline-block; margin-top: 8px; }
  .home .row { gap: 10px; }
  .row-media { flex-basis: 92px; }
  .home .row .thumb, .home .row img.thumb { width: 92px; }
  .home .row .row-copy { display: none; }
}

/* Home v2 — the light colourway of the selected night-guide concept. */
body.home {
  --home-bg: #f8f3e8;
  --home-paper: #fffdf8;
  --home-mist: #e7eef0;
  --home-mist-deep: #d7e5e8;
  --home-ink: #10263a;
  --home-muted: #5a6972;
  --home-rule: #aab8bc;
  background: var(--home-bg);
  color: var(--home-ink);
}
.home .nav {
  position: absolute;
  inset: 0 0 auto;
  color: var(--home-ink);
  background: rgba(255, 253, 248, .82);
  border-bottom: 1px solid rgba(16, 38, 58, .14);
  backdrop-filter: blur(18px);
}
.home .nav-links,
.home .nav-links .nav-filter { color: var(--home-ink); }
.home .nav-cta { box-shadow: 0 8px 22px rgba(16,38,58,.13); }

.home-hero {
  position: relative;
  isolation: isolate;
  width: min(1400px, 100%);
  min-height: 660px;
  margin: 0 auto;
  overflow: hidden;
  background: #d8e1df var(--home-hero-image, none) 50% 50% / cover no-repeat;
}
.home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(255,253,248,.98) 0%, rgba(255,253,248,.91) 31%, rgba(255,253,248,.48) 52%, rgba(255,253,248,.04) 78%),
    linear-gradient(0deg, var(--home-mist) 0%, rgba(231,238,240,0) 18%);
}
.home-hero-inner {
  display: flex;
  align-items: center;
  min-height: 660px;
  padding-top: 92px;
  padding-bottom: 82px;
}
.home-hero-copy { width: min(620px, 56%); }
.home .home-kicker {
  margin: 0 0 18px;
  color: #638000;
  font: 900 12px/1 Outfit, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-hero h1 {
  margin: 0;
  max-width: 16ch;
  color: var(--home-ink);
  font: 900 clamp(44px, 5.6vw, 72px)/.94 Outfit, sans-serif;
  letter-spacing: -.055em;
}
.home-lead {
  max-width: 440px;
  margin: 22px 0 0;
  color: #324754;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.48;
}
.home .home-search {
  position: relative;
  inset: auto;
  width: min(460px, 100%);
  margin-top: 26px;
}
.home .home-search input {
  min-height: 52px;
  border: 1px solid rgba(16,38,58,.2);
  box-shadow: 0 12px 32px rgba(16,38,58,.14);
}
.home-try {
  margin: 7px 0 0 10px;
  color: #53636c;
  font-size: 12px;
  font-weight: 600;
}
.home-hero-actions { display: flex; gap: 10px; margin-top: 25px; flex-wrap: wrap; }
.btn-home-primary,
.btn-home-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 132px;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}
.btn-home-primary {
  background: var(--lime);
  color: var(--home-ink);
  border: 1px solid #9ebd12;
  box-shadow: 0 8px 20px rgba(126,157,0,.16);
}
.btn-home-ghost {
  border: 1px solid rgba(16,38,58,.46);
  background: rgba(255,253,248,.72);
  color: var(--home-ink);
}
.btn-home-primary:hover,
.btn-home-ghost:hover { transform: translateY(-2px); }

body.hub .fab { display: none; }
.hub-stack { display: flex; flex-direction: column; }
.hub-hero,
.hub-hero .home-hero-inner { min-height: 0; }
.hub-hero .home-hero-inner { padding-top: 108px; padding-bottom: 28px; }
.hub-hero .home-hero-copy { width: min(640px, 92%); }
.hub-hero h1 { max-width: 14ch; }
.hub-hero .hub-lead { max-width: 44ch; margin-top: 10px; font-size: 16px; line-height: 1.4; }
.hub-hero-actions { margin-top: 16px; }
.hub-main { padding-bottom: 28px; }
.hub-city {
  padding: 10px 0 8px;
  overflow: hidden;
}
.hub-city .home-kicker { margin-bottom: 10px; }
.hub-city-card {
  display: grid;
  grid-template-columns: minmax(220px, 420px) 1fr;
  gap: 0;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(16, 38, 58, .14);
  border-radius: 22px;
  background: var(--home-paper);
  color: inherit;
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(16, 38, 58, .08);
}
.hub-city-media {
  display: block;
  position: relative;
  min-width: 0;
  min-height: 240px;
  overflow: hidden;
  background: #120c18;
}
.hub-city-media:after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 42%;
  background: linear-gradient(180deg, transparent, rgba(8, 12, 18, .45));
  pointer-events: none;
}
.hub-city-card img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  object-fit: cover;
  object-position: 50% 42%;
  background: #120c18;
}
.hub-city-copy {
  display: grid;
  align-content: center;
  gap: 10px;
  padding: 22px 24px 22px 20px;
}
.hub-city-copy strong {
  font: 900 28px/1 Outfit, sans-serif;
  letter-spacing: -.04em;
}
.hub-city-copy small {
  color: var(--home-muted);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
}
.hub-city-cta {
  justify-self: start;
  min-height: 48px;
  padding: 12px 18px;
  cursor: pointer;
}
.hub-city-card:hover { border-color: #88a700; transform: translateY(-2px); }
.hub-city-card:hover .hub-city-cta { transform: none; }
@media (max-width: 700px) {
  .hub-hero .home-kicker { display: none; }
  .hub-hero .home-hero-inner { padding-top: 12px; padding-bottom: 6px; }
  .hub-hero h1 { font-size: clamp(22px, 6.4vw, 28px); }
  .hub-hero .hub-lead { margin-top: 6px; font-size: 14px; line-height: 1.35; }
  .hub-hero-actions { display: none; }
  .hub-city { padding: 4px 0 12px; }
  .hub-city .home-kicker { display: none; }
  .hub-city-card { grid-template-columns: 1fr; }
  .hub-city-media { min-height: 200px; aspect-ratio: 16 / 9; }
  .hub-city-copy { padding: 14px 16px 16px; gap: 8px; }
  .hub-city-copy strong { font-size: 24px; }
  .hub-city-copy small { font-size: 13px; }
  .hub-city-cta {
    justify-self: stretch;
    width: 100%;
    text-align: center;
    min-height: 48px;
  }
}
.home-category-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  max-width: 510px;
  margin-top: 24px;
}
.home-category-links span {
  margin: 0;
  color: #53636c;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.home-category-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.home-category-links a {
  border: 1px solid rgba(16,38,58,.2);
  border-radius: 999px;
  padding: 6px 9px;
  background: rgba(255,253,248,.78);
  color: var(--home-ink);
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(16,38,58,.06);
  backdrop-filter: blur(8px);
}
.home-category-links a:hover { border-color: #88a700; background: var(--lime); }

.home-moods {
  padding: 18px 0 42px;
  background: var(--home-mist);
}
.home-band-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.home-band-head h2 {
  margin: 0;
  color: var(--home-ink);
  font: 900 clamp(22px, 3vw, 29px)/1 Outfit, sans-serif;
  letter-spacing: -.035em;
}
.home-view-switch { display: flex; gap: 8px; }
.home-view-switch a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border: 1px solid rgba(16,38,58,.32);
  border-radius: 999px;
  background: rgba(255,255,255,.48);
  font-size: 12px;
  font-weight: 800;
}
.home-view-switch a:first-child { background: var(--home-ink); color: #fff; }
.mood-grid {
  display:flex;
  gap:14px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:1px 1px 12px;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-color:rgba(16,38,58,.3) transparent;
  scrollbar-width:thin;
}
.mood-card {
  position: relative;
  flex:0 0 max(300px, calc((100% - 28px) / 3));
  min-height: 300px;
  overflow: hidden;
  border: 1px solid rgba(16,38,58,.26);
  border-radius: 13px;
  background: var(--home-paper);
  box-shadow: 0 8px 24px rgba(16,38,58,.07);
  scroll-snap-align:start;
}
.mood-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.mood-card:hover .mood-photo { transform: scale(1.025); }
.mood-copy {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 14px;
  align-items: center;
  min-height: 92px;
  padding: 18px 16px 16px;
  background: linear-gradient(0deg, rgba(255,253,248,.98) 35%, rgba(255,253,248,.84) 72%, rgba(255,253,248,0));
  color: var(--home-ink);
}
.mood-copy strong { font-size: 20px; font-weight: 900; letter-spacing: -.025em; }
.mood-copy small { color: var(--home-muted); font-size: 11px; font-weight: 600; }
.mood-copy b {
  grid-row: 1 / span 2;
  grid-column: 2;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--lime);
  font-size: 17px;
}

.home-map-band { background: var(--home-mist-deep); }
.home .home-map-band .hero-map {
  width: min(1400px, 100%);
  height: 520px;
  margin: 0 auto;
  border: 0;
  border-radius: 0;
  box-shadow: inset 0 1px 0 rgba(16,38,58,.12), inset 0 -1px 0 rgba(16,38,58,.12);
}
.home .home-map-band .hero-chips {
  left: 50%;
  right: auto;
  bottom: 24px;
  max-width: calc(100% - 40px);
  transform: translateX(-50%);
  padding: 8px;
  border: 1px solid rgba(16,38,58,.24);
  border-radius: 999px;
  background: rgba(255,253,248,.84);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 28px rgba(16,38,58,.13);
}
.home .home-map-band .hero-chips .chip {
  background: transparent;
  box-shadow: none;
}
.home .home-map-band .hero-chips .chip.on { background: var(--lime); }
.home .home-map-band .chip-split { background: rgba(16,38,58,.18); box-shadow: none; }

.home-main { background: var(--home-bg); }
.home .home-featured {
  padding: 48px 0 54px;
  border: 0;
}
.home-partner-label {
  margin:0 0 7px;
  color:#638000;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.home-map-link {
  color: #638000;
  font-size: 12px;
  font-weight: 900;
}
.home .home-featured .pop-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.home .home-featured .pop {
  display: grid;
  grid-template-rows: 205px 1fr;
  min-height: 420px;
  overflow: hidden;
  border: 1px solid rgba(16,38,58,.42);
  border-radius: 11px;
  background: var(--home-paper);
  box-shadow: 0 5px 16px rgba(16,38,58,.045);
}
.home .home-featured .pop:hover {
  border-color: var(--home-ink);
  box-shadow: 0 14px 32px rgba(16,38,58,.1);
}
.home .home-featured .pop img.ph,
.home .home-featured .pop .ph { height: 205px; }
.home .home-featured .pop .body { padding: 17px 18px 15px; }
.home .home-featured .pop h3 {
  margin-bottom: 8px;
  font: 900 21px/1.05 Outfit, sans-serif;
  letter-spacing: -.025em;
}
.home .home-featured .pop .sub {
  margin-top: 8px;
  color: var(--home-muted);
  font-size: 12px;
  line-height: 1.45;
}
.home .home-featured .pop-cta {
  align-self: end;
  width: fit-content;
  margin: auto 0 0 auto;
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--lime);
}
.home .home-featured .pop-partner {
  background: var(--lime);
  color: var(--home-ink);
}

.home-browse {
  margin-top: 48px;
  padding: 52px 0 58px;
  border-top: 1px solid rgba(16,38,58,.12);
  border-bottom: 1px solid rgba(16,38,58,.12);
  background: #e4edef;
}
.home-browse-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
}
.home-browse-head h2 {
  margin: 0;
  color: var(--home-ink);
  font: 900 clamp(30px, 4vw, 44px)/1 Outfit, sans-serif;
  letter-spacing: -.045em;
}
.home-browse-head > p {
  max-width: 410px;
  margin: 0 0 2px;
  color: var(--home-muted);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}
.browse-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.browse-tile {
  position: relative;
  isolation: isolate;
  min-height: 190px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 18px;
  background: var(--home-ink);
  box-shadow: 0 9px 25px rgba(16,38,58,.12);
  color: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}
.browse-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(16,38,58,.2);
}
.browse-tile img {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.browse-tile:hover img { transform: scale(1.035); }
.browse-shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(5,18,30,.03) 20%, rgba(5,18,30,.88) 100%);
}
.browse-copy {
  position: absolute;
  inset: auto 48px 18px 18px;
  display: grid;
  gap: 4px;
}
.browse-copy strong {
  font: 900 23px/1 Outfit, sans-serif;
  letter-spacing: -.025em;
}
.browse-copy small {
  color: rgba(255,255,255,.8);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.25;
}
.browse-tile > b {
  position: absolute;
  right: 15px;
  bottom: 15px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--lime);
  color: var(--home-ink);
  font-size: 17px;
}

.night-builder {
  padding: 38px 0;
  border-top: 1px solid rgba(16,38,58,.18);
  border-bottom: 1px solid rgba(16,38,58,.18);
  background: var(--home-mist);
}
.night-builder-grid {
  display: grid;
  grid-template-columns: 1.05fr repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
}
.night-builder-intro { padding: 3px 18px 3px 0; }
.night-builder-intro > p {
  margin: 0 0 6px;
  color: #638000;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.night-builder-intro h2 {
  margin: 0 0 8px;
  color: var(--home-ink);
  font-size: 31px;
  line-height: 1;
  letter-spacing: -.04em;
}
.night-builder-intro > span {
  display: block;
  color: var(--home-muted);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
.night-builder-intro > a {
  display: inline-flex;
  gap: 18px;
  margin-top: 18px;
  padding: 10px 16px;
  border: 1px solid #9ebd12;
  border-radius: 999px;
  background: var(--lime);
  font-size: 12px;
  font-weight: 900;
}
.night-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 176px;
  padding: 20px;
  border: 1px dashed #7c929a;
  border-radius: 11px;
  background: rgba(255,255,255,.28);
  text-align: center;
}
.night-step > b {
  position: absolute;
  top: -12px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--lime);
  color: var(--home-ink);
  font-size: 13px;
}
.night-step > i {
  margin-bottom: 10px;
  color: var(--home-ink);
  font: normal 30px/1 Outfit, sans-serif;
}
.night-step > strong { font-size: 13px; font-weight: 900; }
.night-step > span {
  margin-top: 4px;
  color: var(--home-muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
}
.night-step:hover { border-color: var(--home-ink); background: rgba(255,255,255,.58); }
.home-app-banner-wrap {
  padding: 20px 0 50px;
  background: var(--home-bg);
}
.home-app-banner {
  position: relative;
  overflow:hidden;
  border:1px solid rgba(16,38,58,.12);
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 50px rgba(16,38,58,.10);
}
.app-promo-link { display:block; color:inherit; text-decoration:none; }
.app-promo-link:focus-visible { outline:4px solid var(--lime); outline-offset:4px; }
.app-promo-photo { line-height: 0; }
.app-promo-photo-image {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .28s ease;
}
.app-promo-link:hover .app-promo-photo-image { transform: scale(1.006); }
.app-promo {
  display:grid;
  grid-template-columns: minmax(280px, 1.05fr) auto minmax(240px, 0.95fr);
  align-items:center;
  gap: 8px 12px;
  min-height: 420px;
  padding: 28px 20px 28px 36px;
}
.app-promo-copy {
  position:relative;
  z-index:1;
  max-width: 420px;
}
.app-promo-kicker {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #0b1c2c;
}
.app-promo-copy h2 {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-weight: 900;
  font-size: clamp(40px, 5.2vw, 68px);
  letter-spacing: -.045em;
  line-height: .9;
  color: #0b1c2c;
  text-transform: uppercase;
}
.app-promo-lead {
  margin: 16px 0 0;
  max-width: 34ch;
  color: #24384a;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.45;
}
.app-promo-pills {
  display:flex;
  flex-wrap:wrap;
  gap: 10px 16px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}
.app-promo-pills li {
  display:inline-flex;
  align-items:center;
  gap: 7px;
  color: #0b1c2c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.app-promo-pills svg { flex: 0 0 auto; }
.app-promo-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top: 22px;
  padding: 13px 28px;
  border-radius: 999px;
  background: #c8f024;
  color: #0b1c2c;
  font-family: Outfit, sans-serif;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.app-promo-link:hover .app-promo-cta { filter: brightness(1.04); }
.app-promo-copy .app-promo-stores {
  justify-content: flex-start;
  width: auto;
  margin-top: 16px;
}
.app-promo-cards {
  display:grid;
  gap: 16px;
  width: 210px;
}
.app-promo-card {
  padding: 14px 16px 16px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(11,28,44,.10);
}
.app-promo-card p {
  margin: 0 0 8px;
  color: #0b1c2c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: center;
}
.app-promo-card-spin { text-align:center; }
.app-promo-wheel { display:block; margin: 4px auto 8px; }
.app-promo-card-spin small {
  display:block;
  color: #5b6b78;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.app-promo-crawl-stops {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 4px 10px;
}
.app-promo-crawl-stops span {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #0b1c2c;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}
.app-promo-crawl-stops span:not(:last-child) {
  box-shadow: 22px 0 0 -8px #d7dee4, 44px 0 0 -8px #d7dee4;
}
.app-promo-card-crawl ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: crawl;
}
.app-promo-card-crawl li {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 10px;
  padding: 7px 0;
  border-top: 1px solid #eef1f4;
  color: #0b1c2c;
  font-size: 11px;
  line-height: 1.25;
  counter-increment: crawl;
}
.app-promo-card-crawl li:before {
  content: counter(crawl);
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #0b1c2c;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  line-height: 16px;
  text-align: center;
}
.app-promo-card-crawl li:first-child { border-top: 0; }
.app-promo-card-crawl b { font-weight: 800; }
.app-promo-card-crawl span { color: #6a7a86; font-weight: 700; white-space: nowrap; }
.app-promo-visual {
  align-self: stretch;
  min-height: 360px;
}
.app-promo-visual img {
  display:block;
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: 70% 42%;
}
.home-guide-links { padding: 26px 0 10px; justify-content: center; }
.home .foot { color: #66777e; }

@media (max-width: 1080px) {
  .home-app-banner .app-promo {
    grid-template-columns: 1.05fr 0.95fr;
  }
  .home-app-banner .app-promo-cards { display: none; }
}
@media (max-width: 900px) {
  .home-hero,
  .home-hero-inner { min-height: 610px; }
  .hub-hero,
  .hub-hero .home-hero-inner { min-height: 0; }
  .home-hero-copy { width: min(520px, 68%); }
  .mood-card { min-height: 270px; }
  .browse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .home .nav { position: relative; background: var(--home-paper); }
  .home-hero { background-position: 62% 50%; }
  .home-hero::before {
    background:
      linear-gradient(90deg, rgba(255,253,248,.97), rgba(255,253,248,.83) 70%, rgba(255,253,248,.42)),
      linear-gradient(0deg, var(--home-mist), rgba(231,238,240,0) 25%);
  }
  .home-hero { min-height: 0; }
  .home-hero-inner { align-items: flex-start; min-height: 0; padding-top: 62px; padding-bottom: 44px; }
  .home-hero-copy { width: min(520px, 100%); }
  .home-hero h1 { font-size: clamp(36px, 11vw, 52px); }
  .hub-hero,
  .hub-hero .home-hero-inner { min-height: 0; }
  .hub-hero .home-kicker { display: none; }
  .hub-hero .home-hero-inner { padding-top: 10px; padding-bottom: 6px; }
  .hub-hero h1 { font-size: clamp(22px, 6.4vw, 28px); }
  .hub-hero .hub-lead { margin-top: 6px; font-size: 14px; }
  .hub-stack > .hub-city { order: 1; }
  .hub-stack > .hub-hero { order: 2; }
  .hub-stack > .hub-main { order: 3; }
  .home-lead { max-width: 380px; font-size: 16px; }
  .mood-grid { margin-right:-16px; padding-right:16px; }
  .mood-card { min-height: 250px; }
  .home .home-map-band .hero-map { height: 480px; border-radius: 0; }
  .home .home-featured .pop-grid { grid-template-columns: 1fr; }
  .home-browse { margin-top: 34px; padding: 38px 0 42px; }
  .home-browse-head { display: block; }
  .home-browse-head > p { margin-top: 10px; }
  .browse-tile { min-height: 160px; }
  .browse-copy { inset: auto 40px 14px 14px; }
  .browse-copy strong { font-size: 20px; }
  .browse-copy small { font-size: 10px; }
  .app-promo,
  .lander-app-banner .app-promo {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 26px 20px 0;
  }
  .app-promo-cards { display: none; }
  .app-promo-visual { min-height: 280px; margin: 8px -8px 0; }
  .app-promo-copy { max-width: none; }
}
@media (max-width: 480px) {
  .home-hero-actions { flex-wrap: wrap; }
  .home-band-head { align-items: flex-start; }
  .home-view-switch a { padding: 7px 10px; }
  .home .home-map-band .hero-chips {
    left: 12px;
    right: 12px;
    max-width: none;
    transform: none;
    border-radius: 18px;
  }
  .home .home-featured .pop { min-height: 405px; }
  .home-app-banner { border-radius:18px; }
}

.promo {
  border-radius: 22px; overflow: hidden; min-height: 420px;
  background: #143 center/cover no-repeat;
  color: #fff; padding: 22px 20px; display: flex; flex-direction: column; justify-content: flex-end;
  box-shadow: 0 12px 28px rgba(20,33,43,.12);
}
.promo h3 { margin: 0 0 8px; font-size: 22px; }
.promo ul { margin: 0 0 14px; padding-left: 18px; font-weight: 700; line-height: 1.6; }
.promo .btn {
  background: var(--lime); color: var(--navy); font-weight: 900;
  border-radius: 999px; padding: 12px 16px; text-align: center;
}

.fab {
  position: fixed; z-index: 30; right: 18px; bottom: 18px;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--lime); color: var(--navy);
  display: grid; place-items: center;
  box-shadow: 0 10px 24px rgba(0,0,0,.2);
  border: 2px solid rgba(11,28,44,.18);
  transition: transform .16s ease, box-shadow .16s ease;
}
.fab:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(0,0,0,.24); }
.fab:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.fab svg { display: block; }

.foot {
  padding: 18px 0 40px; color: var(--muted); font-size: 12px; font-weight: 600;
}

.place { display: grid; gap: 16px; padding: 24px 0 40px; }
.place-stack { display: grid; gap: 12px; }
.place-map { display: grid; gap: 10px; }
@media (min-width: 840px) {
  article.place { grid-template-columns: 1.1fr .9fr; align-items: start; }
  .place-map { position: static; }
}
.mini-map {
  height: min(52vh, 420px); border-radius: 24px; overflow: hidden;
  position: relative; background: #123;
  box-shadow: 0 16px 36px rgba(11,28,44,.16);
}
.mini-map-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.mini-map .map-fallback {
  margin: 0;
  padding: 24px;
  color: #f6edd8;
  font: 700 14px Outfit, sans-serif;
}
.map-dirs { margin: 0; display: grid; gap: 8px; }
.map-dirs .btn { width: 100%; text-align: center; }
.map-rewards-cta {
  position: relative;
  isolation: isolate;
  display: block;
  min-height: 300px;
  overflow: hidden;
  border-radius: 24px;
  padding: 20px 18px 32px;
  color: var(--navy);
  background:
    radial-gradient(circle at 96% 8%, rgba(34,188,224,.22), transparent 34%),
    radial-gradient(circle at 10% 105%, rgba(255,207,37,.22), transparent 38%),
    linear-gradient(145deg, #fff 0%, #fffdf6 66%, #eefcfc 100%);
  border: 1px solid rgba(11,28,44,.1);
  box-shadow: 0 16px 36px rgba(11,28,44,.16);
  transition: transform .18s ease, box-shadow .18s ease;
}
.map-rewards-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .28;
  background:
    linear-gradient(118deg, transparent 0 72%, rgba(43,184,176,.16) 72% 74%, transparent 74%),
    radial-gradient(ellipse at 88% 110%, rgba(43,184,176,.22) 0 20%, transparent 21%);
  pointer-events: none;
}
.map-rewards-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 42px rgba(11,28,44,.2);
}
.map-rewards-cta:focus-visible {
  outline: 4px solid var(--lime);
  outline-offset: 3px;
}
.rewards-cta-copy {
  position: relative;
  z-index: 3;
  display: flex;
  width: 69%;
  min-height: 248px;
  flex-direction: column;
}
.rewards-cta-kicker {
  display: block;
  margin-bottom: 5px;
  font-size: clamp(10px, 1.2vw, 12px);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.rewards-cta-title {
  display: block;
  max-width: 13ch;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.rewards-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 16px 0 12px;
}
.rewards-benefit {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 0 5px;
  text-align: center;
  border-right: 1px solid rgba(11,28,44,.14);
}
.rewards-benefit:first-child { padding-left: 0; }
.rewards-benefit:last-child { padding-right: 0; border-right: 0; }
.benefit-icon {
  display: block;
  width: clamp(38px, 5.4vw, 52px);
  height: clamp(38px, 5.4vw, 52px);
  margin-bottom: 5px;
  filter: drop-shadow(0 4px 6px rgba(11,28,44,.1));
}
.rewards-benefit strong {
  font-size: clamp(8px, 1.1vw, 10px);
  font-weight: 900;
  line-height: 1.05;
  text-transform: uppercase;
}
.rewards-cta-button {
  display: block;
  margin-top: auto;
  border-radius: 999px;
  padding: 10px 12px;
  background: var(--lime);
  color: var(--navy);
  box-shadow: 0 7px 16px rgba(143,176,0,.26);
  font-size: clamp(10px, 1.4vw, 13px);
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
}
.rewards-phone-hand {
  position: absolute;
  z-index: 2;
  right: -54px;
  bottom: -120px;
  display: block;
  width: min(62%, 275px);
  height: auto;
  pointer-events: none;
  filter: drop-shadow(0 14px 18px rgba(11,28,44,.18));
}
.rewards-footnote {
  position: absolute;
  z-index: 4;
  right: 10px;
  bottom: 7px;
  max-width: 48%;
  border-radius: 5px;
  padding: 2px 4px;
  background: rgba(255,255,255,.82);
  color: #51616a;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.15;
  text-align: right;
}
@media (max-width: 390px) {
  .map-rewards-cta { min-height: 292px; padding-inline: 14px; }
  .rewards-cta-copy { width: 72%; min-height: 240px; }
  .rewards-phone-hand { right: -64px; bottom: -104px; width: 66%; }
  .rewards-benefit { padding-inline: 3px; }
}
.mini-map #map .mapboxgl-canvas,
.mini-map #map .mapboxgl-canvas-container { touch-action: pan-y; }
.hero-map #map .mapboxgl-canvas,
.hero-map #map .mapboxgl-canvas-container,
.lander-map #map .mapboxgl-canvas,
.lander-map #map .mapboxgl-canvas-container,
.map-frame #map .mapboxgl-canvas,
.map-frame #map .mapboxgl-canvas-container { touch-action: none; }
.place-card, .place-box {
  background: #fff; border-radius: 24px; padding: 22px;
  box-shadow: 0 12px 32px rgba(11,28,44,.1);
}
.place-box { border-radius: 22px; padding: 18px 20px; }
.place-box h2 {
  margin: 0 0 10px;
  font-size: 12px; font-weight: 900; letter-spacing: .12em;
  text-transform: uppercase; color: var(--teal);
}
.about-box {
  padding: 22px 22px 20px;
}
.about-box h2 {
  margin: 0 0 12px;
  font: italic 700 clamp(1.35rem, 3vw, 1.7rem)/1.15 "DM Serif Display", serif;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--navy);
}
.about-box p {
  margin: 0 0 14px;
  font-weight: 500;
  font-size: 1.02rem;
  line-height: 1.6;
  color: #24343c;
}
.about-box p:last-child { margin-bottom: 0; }
.hours-list {
  list-style: none; margin: 0; padding: 0;
}
.hours-list li {
  padding: 7px 0;
  border-bottom: 1px solid var(--line);
  font-weight: 700; font-size: 14px; color: var(--ink);
}
.hours-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.hours-list li:first-child { padding-top: 0; }
.nap-addr { margin: 0 0 10px; font-weight: 700; }
.cta-box { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.change-request-box p { margin: 0; color: var(--muted); font-weight: 700; line-height: 1.45; }
.change-request-email { color: var(--ink); font-weight: 900; user-select: all; }
.place-card h1 { margin: 4px 0 8px; font-size: clamp(26px, 4vw, 34px); letter-spacing: -.03em; }
.place-kind {
  margin: 14px 0 0; font-size: 12px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase; color: var(--teal);
}
.place-hero {
  width: 100%; height: min(42vh, 280px); object-fit: cover; display: block;
  border-radius: 18px; margin-bottom: 8px;
  box-shadow: 0 10px 24px rgba(11,28,44,.12);
}
.wish {
  display: inline-block; margin: 6px 0 10px; font-weight: 800; color: var(--teal);
}
.wish:hover { text-decoration: underline; }
.meta { color: var(--muted); font-weight: 700; margin: 0 0 10px; }
.about { font-weight: 600; line-height: 1.45; }
.links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.btn {
  appearance: none; -webkit-appearance: none; border: 0;
  display: inline-block; background: var(--lime); color: var(--navy); font-weight: 900;
  padding: 12px 16px; border-radius: 999px;
  box-shadow: 0 8px 18px rgba(126,157,0,.16);
}
.btn.ghost { background: #fff; border: 1px solid var(--line); color: var(--ink); }
.mini-map #map { position: absolute; inset: 0; }
.place-gallery-layout {
  position: relative; margin: 0 0 12px; border-radius: 18px; overflow: hidden;
  box-shadow: 0 10px 24px rgba(11,28,44,.12);
}
.place-gallery-layout .hero-frame { border-radius: 0; }
.place-gallery-layout .place-hero {
  height: min(52vh, 390px); margin: 0; border-radius: 0; box-shadow: none;
}
.gallery {
  position: absolute; z-index: 3; left: 50%; bottom: 12px; transform: translateX(-50%);
  display: flex; gap: 7px; max-width: calc(100% - 24px); overflow-x: auto;
  padding: 7px; margin: 0; border-radius: 15px;
  background: rgba(8, 24, 36, .72);
  scrollbar-width: none;
}
.gallery::-webkit-scrollbar { display: none; }
.gallery img, .gallery-shot {
  height: 62px; width: 82px; object-fit: cover; border-radius: 10px; flex: 0 0 auto;
  border: 2px solid rgba(255,255,255,.7);
}
.gallery-shot, .place-hero[role="button"] { cursor: pointer; }
.gallery-shot:hover, .gallery-shot:focus-visible {
  border-color: var(--lime); outline: 2px solid var(--lime); outline-offset: 1px;
}
.photo-viewer {
  position: fixed; inset: 0; z-index: 1000; padding: 24px;
  display: grid; place-items: center; background: rgba(5, 15, 25, .92);
}
.photo-viewer img {
  display: block; max-width: min(1100px, 94vw); max-height: 88vh;
  object-fit: contain; border-radius: 16px;
}
.photo-viewer-close {
  position: fixed; top: 16px; right: 18px; z-index: 1;
  width: 46px; height: 46px; border: 0; border-radius: 999px;
  background: #fff; color: var(--navy); font: 800 30px/1 sans-serif; cursor: pointer;
}
.ph { background: #d7ecec center/cover no-repeat; }
.hours { white-space: pre-line; font-weight: 700; color: var(--ink); margin: 0; }
.nap-box .links { margin-top: 4px; }
.hidden { display: none !important; }
.map-frame { position: relative; height: 280px; border-radius: 18px; overflow: hidden; background: #123; }
.map-frame #map { position: absolute; inset: 0; }
.split { display: grid; gap: 16px; }
@media (min-width: 900px) {
  .split { grid-template-columns: 1fr 1fr; }
}
.section.is-empty { display: none; }
.list-wrap { display: grid; gap: 12px; min-width: 0; }
.pager {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 4px 0 8px;
}
.pager[hidden] { display: none; }
.pager-btn {
  border: 0; border-radius: 999px; padding: 10px 16px; cursor: pointer;
  font: 800 13px Outfit, sans-serif; background: #fff; color: var(--navy);
  box-shadow: 0 6px 14px rgba(11,28,44,.08);
}
.pager-btn:disabled { opacity: .4; cursor: default; }
.pager-btn:not(:disabled):hover { background: var(--lime); }
.pager-meta { font-weight: 800; font-size: 13px; color: var(--muted); }
.badge {
  display: inline-block; margin-top: 8px; border-radius: 999px; padding: 3px 8px;
  font-size: 11px; font-weight: 800; background: #eef3f4;
}
.badge.partner { background: var(--lime); color: var(--navy); }
.app {
  margin: 24px 0; background: #fff; color: var(--ink);
  border-radius: 24px; padding: 22px;
  box-shadow: 0 10px 28px rgba(11,28,44,.08);
  border: 1px solid var(--line);
}
.app h2 { color: var(--navy); margin-top: 0; }
.app p { font-weight: 600; color: var(--muted); }

.crumbs {
  padding: 18px 0 0; font-size: 13px; font-weight: 700; color: var(--muted);
}
.crumbs a { color: var(--teal); }
.lander-head { padding: 8px 0 18px; }
.lander-head .kicker {
  margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase; color: var(--teal);
}
.lander-head h1 {
  margin: 6px 0 8px; font-size: clamp(26px, 4vw, 36px); font-weight: 900;
  letter-spacing: -.03em; line-height: 1.1;
}
.lander-head .count { margin: 0; font-weight: 700; color: var(--muted); }
.lander-hero {
  display: grid; gap: 14px; margin-bottom: 22px;
}
@media (min-width: 900px) {
  .lander-hero { grid-template-columns: 1.05fr .95fr; align-items: stretch; }
}
.lander-photo { margin: 0; }
.lander-photo img, .lander-photo .ph {
  width: 100%; height: min(42vh, 340px); object-fit: cover; display: block;
  border-radius: 22px;
  background: #d7ecec;
  box-shadow: 0 16px 36px rgba(11,28,44,.14);
}
.lander-photo figcaption {
  margin: 8px 2px 0; font-size: 12px; font-weight: 700; color: var(--muted);
}
.lander-map {
  position: relative; min-height: 280px; height: min(42vh, 340px);
  border-radius: 22px; overflow: hidden; background: #123;
  box-shadow: 0 16px 36px rgba(11,28,44,.14);
}
.lander-map .mapboxgl-map, .lander-map #map { position: absolute; inset: 0; height: 100%; }
.prose {
  background: #fff; border-radius: 22px; padding: 22px 22px 8px;
  box-shadow: 0 10px 28px rgba(11,28,44,.06);
  margin-bottom: 8px;
}
.prose p {
  margin: 0 0 16px; font-size: 17px; line-height: 1.55; font-weight: 600; color: #2a3a44;
}
.prose h2 {
  margin: 8px 0 12px; font-size: 22px; font-weight: 900; color: var(--navy);
  letter-spacing: -.02em;
}
.prose a { color: var(--teal); font-weight: 800; }
.vgrid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
.vcard {
  display: flex; flex-direction: column;
  background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: 0 10px 24px rgba(20,33,43,.08);
  transition: transform .15s ease, box-shadow .15s ease;
}
.vcard:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(20,33,43,.12); }
.vcard .ph { height: 150px; }
.vcard .body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.vcard h3 { margin: 0; font-size: 17px; }
.vcard .sub {
  margin: 0; color: var(--muted); font-size: 13px; font-weight: 600;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.vcard .go-btn {
  margin-top: auto; align-self: flex-start;
  background: var(--lime); color: var(--navy); font-weight: 900;
  padding: 8px 12px; border-radius: 999px; font-size: 13px;
}
.faq details {
  background: #fff; border-radius: 16px; padding: 12px 16px; margin-bottom: 8px;
  box-shadow: 0 6px 16px rgba(20,33,43,.05);
}
.faq summary { cursor: pointer; font-weight: 800; }
.faq details p { margin: 8px 0 4px; font-weight: 600; color: #3a4a52; line-height: 1.45; }
.related {
  display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 0 12px;
}
.related a {
  background: #fff; border-radius: 999px; padding: 8px 12px;
  font-size: 13px; font-weight: 800;
  box-shadow: 0 6px 14px rgba(20,33,43,.06);
}
.related a:hover { background: var(--lime); }

/* Editorial category pages ------------------------------------------------ */
.lander {
  background-color: #fbf8f1;
  background-image: none;
}
.lander-page {
  --lander-accent: #c8f024;
  --lander-accent-2: #2bb8b0;
  --lander-deep: #071a2d;
  --lander-soft: #eef8d8;
  width: min(1360px, calc(100% - 32px));
  padding-bottom: 48px;
}
.lander-theme-rock { --lander-accent:#ff644f; --lander-accent-2:#ffb133; --lander-deep:#160d13; --lander-soft:#fff0e8; }
.lander-theme-pub { --lander-accent:#f0b24a; --lander-accent-2:#bf6e39; --lander-deep:#21140e; --lander-soft:#fff4df; }
.lander-theme-late { --lander-accent:#c7ff35; --lander-accent-2:#8668ff; --lander-deep:#0e0922; --lander-soft:#f0edff; }
.lander-theme-club { --lander-accent:#ff4fd8; --lander-accent-2:#6d68ff; --lander-deep:#08071d; --lander-soft:#fceaff; }
.lander-theme-beach { --lander-accent:#f5d447; --lander-accent-2:#20bdc7; --lander-deep:#073445; --lander-soft:#e8fbf8; }
.lander-theme-irish { --lander-accent:#c8f024; --lander-accent-2:#26a067; --lander-deep:#08261c; --lander-soft:#ebf8e7; }
.lander-theme-boliches { --lander-accent:#ff7960; --lander-accent-2:#23b7bd; --lander-deep:#092d3a; --lander-soft:#fff0e8; }
.lander-theme-bars { --lander-accent:#c8f024; --lander-accent-2:#20aaa8; --lander-deep:#071a2d; --lander-soft:#eef8dc; }
.lander-theme-restaurant { --lander-accent:#f0b65a; --lander-accent-2:#38a596; --lander-deep:#25170f; --lander-soft:#fff3df; }
.lander-theme-tonight { --lander-accent:#c8f024; --lander-accent-2:#ff6956; --lander-deep:#07172f; --lander-soft:#ecf1ff; }
.lander-page > .crumbs { padding: 18px 4px 12px; }
.lander-editorial {
  position: relative;
  isolation: isolate;
  min-height: 430px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 350px);
  align-items: end;
  gap: clamp(32px, 6vw, 90px);
  overflow: hidden;
  border-radius: 34px;
  padding: clamp(30px, 5vw, 68px);
  background-color: var(--lander-deep);
  background-position: center;
  background-size: cover;
  box-shadow: 0 28px 80px rgba(7,25,40,.22);
}
.lander-editorial-solo {
  grid-template-columns:minmax(0,760px);
  align-items:center;
}
.lander-editorial-solo .lander-editorial-copy { max-width:760px; }
.lander-editorial-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--lander-deep) 98%, transparent) 0%, color-mix(in srgb, var(--lander-deep) 82%, transparent) 43%, color-mix(in srgb, var(--lander-deep) 26%, transparent) 78%),
    linear-gradient(0deg, color-mix(in srgb, var(--lander-deep) 82%, transparent), transparent 72%);
}
.lander-editorial-copy { max-width: 650px; color: #fff; }
.lander-editorial .kicker,
.lander-section-head .kicker,
.lander-results-panel .kicker {
  margin: 0 0 10px;
  color: var(--lander-accent);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.lander-editorial h1 {
  max-width: 720px;
  margin: 0;
  color: #fff;
  font-size: clamp(46px, 6.2vw, 86px);
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: .92;
}
.lander-count-row { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 14px; }
.lander-count-row > span {
  display:inline-flex; align-items:center; gap:7px;
  border:1px solid rgba(255,255,255,.24); border-radius:999px;
  padding:8px 12px; background:rgba(7,20,34,.5); color:#fff;
  font-size:13px; font-weight:800; backdrop-filter:blur(8px);
}
.lander-count-row > span:first-child::before { content:""; width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:var(--lander-accent); }
.lander-intro { max-width:600px; margin:0; color:rgba(255,255,255,.82); font-size:17px; font-weight:650; line-height:1.5; }
.lander-utility {
  align-self:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:26px;
  padding:25px;
  color:#fff;
  background:color-mix(in srgb, var(--lander-deep) 82%, transparent);
  box-shadow:0 24px 60px rgba(0,0,0,.22);
  backdrop-filter:blur(18px);
}
.lander-utility .utility-kicker { margin:0 0 4px; color:var(--lander-accent); font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.lander-utility h2 { margin:0 0 18px; color:#fff; font-size:24px; }
.lander-utility ul { display:grid; gap:13px; list-style:none; margin:0 0 22px; padding:0; }
.lander-utility li { display:flex; align-items:flex-start; gap:11px; color:rgba(255,255,255,.86); font-size:14px; font-weight:750; line-height:1.35; }
.lander-utility li > span:first-child:not([data-i18n-lang]),
.lander-utility .utility-dot { width:11px; height:11px; margin-top:4px; flex:0 0 auto; border:3px solid var(--lander-accent); border-radius:50%; }
.lander-utility li [data-i18n-lang] { min-width:0; }
.lander-utility > a { display:block; border-radius:999px; padding:12px 16px; background:var(--lander-accent); color:var(--lander-deep); text-align:center; font-weight:900; }
.lander-discovery {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
  min-height:410px;
  margin:-30px 42px 42px;
  overflow:hidden;
  border:1px solid rgba(12,35,48,.11);
  border-radius:28px;
  background:#fff;
  box-shadow:0 24px 65px rgba(8,30,44,.14);
}
.lander-map-shell { position:relative; min-height:410px; background:#dcece9; }
.lander-map { position:absolute; inset:0; width:100%; height:100%; min-height:0; border-radius:0; box-shadow:none; }
.lander-results-panel { display:flex; flex-direction:column; justify-content:center; gap:20px; padding:clamp(26px,4vw,48px); }
.lander-results-panel h2 { margin:0 0 5px; color:var(--lander-deep); font-size:clamp(32px,4vw,48px); letter-spacing:-.04em; }
.lander-results-panel p { margin:0; color:#66737c; font-weight:650; line-height:1.5; }
.lander-search { display:block; margin-top:18px; }
.lander-search input {
  width:100%;
  border:1px solid #d7dfdf;
  border-radius:14px;
  padding:13px 15px;
  background:#fbfcfa;
  color:var(--lander-deep);
  font:700 14px Outfit,sans-serif;
  outline:none;
}
.lander-search input:focus {
  border-color:var(--lander-accent-2);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--lander-accent-2) 18%,transparent);
}
.sr-only {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.lander-view-links { display:flex; gap:9px; }
.lander-view-links a { border:1px solid #dfe6e7; border-radius:12px; padding:10px 15px; background:#fff; color:var(--lander-deep); font-weight:850; }
.lander-view-links a.on { border-color:var(--lander-deep); background:var(--lander-deep); color:#fff; }
.lander-quick-links { display:flex; flex-wrap:wrap; gap:8px; padding-top:18px; border-top:1px solid #e7ecec; }
.lander-quick-links a { border:1px solid #e1e7e6; border-radius:999px; padding:8px 11px; background:var(--lander-soft); color:var(--lander-deep); font-size:12px; font-weight:850; }
.lander-places { scroll-margin-top:80px; }
.lander-section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:0 0 20px; }
.lander-section-head h2 { margin:0; color:var(--lander-deep); font-size:clamp(30px,4vw,48px); letter-spacing:-.04em; }
.lander-section-head > p { max-width:370px; margin:0; color:#6b7880; text-align:right; font-weight:700; }
.lander-page .vgrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.lander-page .vcard {
  min-height:300px;
  display:grid;
  grid-template-columns:minmax(190px,42%) minmax(0,1fr);
  grid-template-rows:auto;
  border:1px solid rgba(10,37,49,.09);
  border-radius:24px;
  background:#fff;
  box-shadow:0 13px 34px rgba(13,36,48,.08);
}
.lander-page .vcard-media { position:relative; min-height:100%; overflow:hidden; background:#d7ecec; }
.lander-page .vcard-media .ph { width:100%; height:100%; min-height:300px; object-fit:cover; transition:transform .35s ease; }
.lander-page .vcard:hover .vcard-media .ph { transform:scale(1.035); }
.vcard-partner { position:absolute; top:13px; left:13px; border-radius:999px; padding:7px 10px; background:var(--lander-accent); color:var(--lander-deep); font-size:11px; font-weight:900; text-transform:uppercase; }
.lander-page .vcard .body,
.lander-page .vcard .vcard-info {
  position:relative;
  z-index:1;
  min-width:0;
  width:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:21px;
  background:#fff;
  color:#1a242c;
  transform:none;
  opacity:1;
  visibility:visible;
}
.lander-page .vcard h3 {
  display:block;
  margin:0;
  color:var(--lander-deep);
  font-size:23px;
  letter-spacing:-.025em;
  line-height:1.05;
  opacity:1;
  visibility:visible;
}
.vcard-location,.vcard-hours { display:flex; align-items:flex-start; gap:8px; margin:0; color:#63717a; font-size:13px; font-weight:750; line-height:1.35; }
.vcard-location span,.vcard-hours span { color:var(--lander-accent-2); font-size:16px; font-weight:900; line-height:1; }
.vcard-hours { width:max-content; max-width:100%; border-radius:999px; padding:7px 10px; background:var(--lander-soft); color:var(--lander-deep); }
.card-hours-lines { display:grid; gap:3px; min-width:0; color:inherit!important; font-size:inherit!important; font-weight:inherit!important; line-height:1.35!important; }
.card-hours-line { display:block; color:inherit!important; font-size:inherit!important; font-weight:inherit!important; line-height:inherit!important; }
.row .row-hours { display:flex; overflow:visible; -webkit-line-clamp:unset; -webkit-box-orient:initial; }
.lander-page .vcard .sub {
  display:-webkit-box;
  margin:0;
  overflow:hidden;
  color:#53616a;
  line-height:1.45;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  opacity:1;
  visibility:visible;
}
.lander-page .vcard .tags { display:flex; margin-top:1px; opacity:1; visibility:visible; }
.lander-page .vcard .go-btn { display:inline-flex; align-items:center; gap:8px; background:var(--lander-accent); color:var(--lander-deep); opacity:1; visibility:visible; }
.lander-theme-restaurant .pager { padding:18px 0 4px; }
.lander-theme-restaurant .pager-btn { border:1px solid rgba(37,23,15,.14); box-shadow:none; }
.lander-theme-restaurant .pager-btn:not(:disabled):hover { background:var(--lander-accent); }
.bars-directory .bars-filter-chips { margin:0; padding-bottom:3px; }
.bars-directory .bars-filter-chips .chip {
  border:1px solid rgba(7,26,45,.1);
  background:var(--lander-soft);
  box-shadow:none;
}
.bars-directory .bars-filter-chips .chip.on,
.bars-directory .bars-filter-chips .chip:hover { background:var(--lander-accent); }
.bars-directory .pager { padding:18px 0 4px; }
.bars-directory .pager-btn { border:1px solid rgba(7,26,45,.14); box-shadow:none; }
.bars-directory .pager-btn:not(:disabled):hover { background:var(--lander-accent); }
.lander-app-banner {
  width:min(980px,100%);
  margin:34px auto 10px;
  overflow:hidden;
  border:1px solid rgba(10,37,49,.12);
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 48px rgba(10,37,49,.10);
}
.lander-app-banner .app-promo {
  grid-template-columns: 1.05fr 0.95fr;
  min-height: 360px;
  padding: 24px 8px 24px 30px;
}
.lander-app-banner .app-promo-cards { display: none; }
.lander-app-banner .app-promo-copy h2 { font-size: clamp(36px, 5vw, 56px); }
@media (max-width: 700px) {
  .lander-app-banner .app-promo {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 26px 20px 0;
  }
}
.lander-page .prose { margin-top:34px; border:1px solid rgba(10,37,49,.08); box-shadow:none; }
.lander-page .faq details { border:1px solid rgba(10,37,49,.08); box-shadow:none; }
@media (max-width: 1080px) {
  .lander-page .vgrid { grid-template-columns:1fr; }
  .lander-page .vcard { grid-template-columns:minmax(220px,35%) 1fr; }
}
@media (max-width: 820px) {
  .lander-page { width:min(100% - 20px, 680px); }
  .lander-editorial { min-height:560px; grid-template-columns:1fr; align-content:end; padding:28px 22px; border-radius:25px; }
  .lander-editorial-shade { background:linear-gradient(0deg,color-mix(in srgb,var(--lander-deep) 98%,transparent) 0%,color-mix(in srgb,var(--lander-deep) 72%,transparent) 70%,color-mix(in srgb,var(--lander-deep) 26%,transparent) 100%); }
  .lander-editorial h1 { font-size:clamp(42px,13vw,68px); }
  .lander-utility { align-self:auto; }
  .lander-discovery { grid-template-columns:1fr; margin:-14px 10px 32px; }
  .lander-map-shell { min-height:340px; }
  .lander-results-panel { padding:25px 22px; }
  .lander-section-head { align-items:flex-start; flex-direction:column; }
  .lander-section-head > p { text-align:left; }
}
@media (max-width: 590px) {
  .lander-page .vcard { display:flex; min-height:0; }
  .lander-page .vcard-media {
    flex:0 0 220px;
    min-height:220px;
  }
  .lander-page .vcard-media .ph { height:220px; min-height:220px; }
  .lander-page .vcard .body { padding:18px; }
  .lander-page .vcard .go-btn { margin-top:10px; }
  .lander-count-row > span { font-size:12px; }
  .lander-app-banner { margin-top:28px; border-radius:18px; }
}

.nearby-places { margin: 4px 0 32px; }
.nearby-places h2 {
  margin: 8px 0 12px;
  color: var(--navy);
  font-size: clamp(20px, 2.5vw, 25px);
  font-weight: 900;
  letter-spacing: -.025em;
}
.nearby-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.nearby-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(11,28,44,.1);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(20,33,43,.08);
  transition: transform .15s ease, box-shadow .15s ease;
}
.nearby-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(20,33,43,.13);
}
.nearby-photo {
  display: block;
  width: 100%;
  height: 138px;
  object-fit: cover;
}
.nearby-card-body {
  display: flex;
  min-height: 132px;
  flex-direction: column;
  padding: 11px 12px 12px;
}
.nearby-card-body > strong {
  overflow: hidden;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nearby-desc {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 6px 0 0;
  color: #3d4d56;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}
.nearby-card .tags {
  flex-wrap: nowrap;
  overflow: hidden;
  margin-top: 7px;
}
.nearby-card .tag { flex: 0 0 auto; }
.nearby-distance {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  margin-top: auto;
  color: #60717a;
  font-size: 11px;
  font-weight: 800;
}
.nearby-distance svg { width: 14px; height: 14px; fill: var(--teal); }
.google-review-carousel { overscroll-behavior-inline: contain; }
@media (max-width: 720px) {
  .nearby-grid {
    grid-auto-flow: column;
    grid-auto-columns: minmax(230px, 82%);
    grid-template-columns: none;
    overflow-x: auto;
    padding: 0 2px 8px;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  .nearby-card { scroll-snap-align: start; }
}

.join-page { padding-bottom: 24px; }
.join-hero {
  position: relative;
  isolation: isolate;
  min-height: 520px;
  color: #fff8eb;
  background: #0b1c2c var(--join-hero-image, none) 50% 42% / cover no-repeat;
}
.join-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(11,28,44,.88) 0%, rgba(11,28,44,.52) 56%, rgba(11,28,44,.28) 100%),
    linear-gradient(180deg, rgba(11,28,44,.28) 0%, rgba(11,28,44,.12) 42%, rgba(11,28,44,.78) 100%);
}
.join-hero-inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 520px;
  padding: 28px 0 48px;
}
.join-crumbs {
  margin: 0 0 22px;
  color: rgba(255,248,235,.78);
}
.join-crumbs a { color: #fff8eb; text-decoration: underline; text-underline-offset: 3px; }
.join-kicker {
  margin: 0 0 10px;
  color: var(--lime);
  font: 900 12px/1 Outfit, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.join-free-tag {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 14px;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--lime);
  color: var(--navy);
  font: 900 12px/1 Outfit, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.join-hero h1 {
  margin: 0;
  max-width: 16ch;
  font: 900 clamp(42px, 8vw, 76px)/.94 Outfit, sans-serif;
  letter-spacing: -.045em;
}
.join-lead {
  max-width: 36rem;
  margin: 16px 0 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 600;
  color: rgba(255,248,235,.9);
}
.join-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}
.join-hero-ghost {
  background: rgba(255,255,255,.14);
  color: #fff8eb;
  border: 1px solid rgba(255,255,255,.55);
}
.join-hero-ghost:hover { background: rgba(255,255,255,.22); }
.join-hero-signin {
  margin: 14px 0 0;
  font-weight: 700;
  font-size: 0.95rem;
  color: rgba(255,248,235,.88);
}
.join-hero-signin a {
  color: #fff8eb;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.join-partner-ask .join-hero-actions,
body.join-partner-ask .join-map-block,
body.join-partner-ask .join-add-map-block,
body.join-partner-ask .join-plans,
body.join-partner-ask .join-intent,
body.join-partner-ask .join-tags,
body.join-partner-ask .join-check,
body.join-partner-ask .join-partner-box,
body.join-partner-ask .join-selected button,
body.join-partner-ask .join-next-steps,
body.join-partner-ask .related,
body.join-partner-ask .join-prefer,
body.join-partner-ask .fab,
body.join-partner-ask label[for="join-address"],
body.join-partner-ask #join-address {
  display: none !important;
}
body.join-partner-ask .join-hero { min-height: 220px; }
body.join-partner-ask .join-form-box { margin-top: 8px; }
.join-body { padding-top: 10px; }
.join-map-block,
.join-plans,
.join-form-box { scroll-margin-top: 86px; }
.join-map-block { margin: 28px 0 8px; }
.join-map-block h2,
.join-plans h2 { margin: 0 0 8px; }
.join-map-block > p:not(.eyebrow):not(.join-map-meta) {
  margin: 0 0 16px;
  max-width: 40rem;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.5;
}
.join-map-frame {
  position: relative;
  height: min(58vh, 520px);
  min-height: 320px;
  border-radius: 22px;
  overflow: hidden;
  background: #d8e1df;
  box-shadow: 0 16px 40px rgba(11,28,44,.16);
}
.join-add-map-block[hidden] { display: none !important; }
.join-add-continue { margin-top: 14px; }
.join-map-frame #map,
.join-map-frame #join-pin-map,
.join-map-frame .mapboxgl-map,
.join-map-frame .mapboxgl-canvas-container,
.join-map-frame .mapboxgl-canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}
.join-map-meta {
  margin: 10px 2px 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}
.join-missing {
  display: block;
  margin: 16px 0 0;
  padding: 18px 20px;
  border-radius: 18px;
  background: #fff;
  border: 1px dashed rgba(11,28,44,.24);
  box-shadow: 0 8px 20px rgba(11,28,44,.06);
}
.join-missing strong {
  display: block;
  font-size: 18px;
  font-weight: 900;
  color: var(--navy);
}
.join-missing span {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.45;
}
.join-missing:hover {
  border-style: solid;
  border-color: var(--teal);
}
.join-plans { margin: 36px 0 8px; }
.join-plans-lead {
  max-width: 40rem;
  margin: 0 0 4px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.5;
}
.join-plan-grid {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}
@media (min-width: 760px) {
  .join-plan-grid { grid-template-columns: 1fr 1fr; }
}
.join-plan {
  padding: 20px 20px 8px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 10px 24px rgba(11,28,44,.06);
}
.join-plan h3 { margin: 0 0 8px; }
.join-plan ul {
  margin: 0;
  padding: 0 0 8px 18px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.55;
}
.join-plan-free {
  border-color: #d5dde2;
  background: #f3f5f6;
  box-shadow: none;
}
.join-plan-partner {
  border-color: #c8f024;
  background: #f8ffea;
  box-shadow: 0 12px 28px rgba(126,157,0,.12);
}
.join-plan-chip {
  display: inline-flex;
  margin: 0 0 10px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #e4e8ea;
  color: #3a4a52;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.join-plan-partner .join-plan-chip {
  background: var(--lime);
  color: var(--navy);
}
.join-plan-trial {
  margin: 0 0 14px;
  font-size: 15px;
  font-weight: 800;
  color: #638000;
  line-height: 1.4;
}
.join-plan-hype {
  list-style: none;
  padding: 0 0 10px;
}
.join-plan-hype li {
  margin: 0 0 12px;
  font-weight: 600;
}
.join-plan-hype strong {
  display: block;
  margin-bottom: 2px;
  color: var(--navy);
  font-size: 15px;
}
.join-form-lead {
  margin: 0 0 4px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.55;
}
.join-form-hint {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  line-height: 1.45;
}
.join-hp { display: none !important; }
.join-form.is-sent { display: none; }
.join-sent {
  margin-top: 16px;
  padding: 18px 20px;
  border-radius: 18px;
  background: #f4fbf4;
  border: 1px solid #cfe8cf;
  text-align: center;
}
.join-sent-title {
  margin: 0 0 8px;
  font-weight: 900;
  font-size: 18px;
  color: var(--navy);
}
.join-sent-meta {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.45;
}
.join-prefer { margin-top: 16px; }
.join-prefer a {
  color: var(--teal);
  font-weight: 800;
}
.join-prefer a:hover { text-decoration: underline; }
.join-next-steps{display:grid;gap:8px;margin:22px 0 8px;padding:17px 18px;border:1px solid rgba(7,127,132,.17);border-radius:17px;background:linear-gradient(135deg,#f5ffff,#f8ffea);color:#40545b}
.join-next-steps strong{color:var(--navy);font-size:1.02rem}
.join-next-steps span{position:relative;padding-left:22px;font-size:.9rem;font-weight:700;line-height:1.4}
.join-next-steps span:before{content:"✓";position:absolute;left:0;color:#78ad00;font-weight:900}
.join-next-steps a{color:#087f84;font-weight:900}
.join-intent {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 8px 0 14px;
  padding: 0;
  border: 0;
}
.join-form .join-intent-opt {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  min-height: 62px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  cursor: pointer;
}
.join-form .join-intent-opt span {
  display: block;
  width: 100%;
  text-align: center;
}
.join-intent-opt input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.join-form .join-intent-opt:has(input:checked) {
  background: var(--lime);
  border-color: #9ebd12;
  color: var(--navy);
}
.join-selected {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  justify-content: space-between;
  margin: 4px 0 8px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #f4fbf4;
  border: 1px solid #cfe8cf;
}
.join-selected[hidden] { display: none !important; }
.join-selected strong {
  display: block;
  color: var(--navy);
}
.join-selected span {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 600;
  color: #3a4a52;
}
.join-selected button {
  border: 0;
  background: none;
  padding: 0;
  color: #087f84;
  font: 800 13px Outfit, sans-serif;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.join-form-box .opt { font-weight: 600; color: var(--muted); text-transform: none; letter-spacing: 0; }
.join-form label {
  display: block; margin: 14px 0 6px;
  font-size: 13px; font-weight: 800;
}
.join-form input[type="text"],
.join-form input[type="email"],
.join-form input[type="tel"],
.join-form textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 14px; font: 600 15px Outfit, sans-serif; color: var(--ink);
  background: #fff;
}
.join-form input[readonly] {
  background: #f4f8f8;
  color: #24343c;
}
.join-form textarea { min-height: 110px; resize: vertical; }
.join-tags {
  margin: 16px 0 8px;
  padding: 0;
  border: 0;
}
.join-form .join-tags legend {
  display: block;
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 800;
}
.join-tags-hint {
  margin: 0 0 10px;
  color: var(--muted);
  font: 600 14px/1.45 Outfit, sans-serif;
}
.join-form .join-tag-chips {
  margin: 0;
}
.join-form .listing-chip {
  display: inline-flex;
  margin: 0;
  font-size: 13px;
  font-weight: 800;
}
.join-form .listing-chip span {
  display: inline;
}
.join-check {
  display: flex; gap: 10px; align-items: flex-start;
  font-weight: 700; margin: 16px 0 8px; cursor: pointer;
}
.join-check input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; }
.join-trial {
  display: block;
  margin-top: 4px;
  font-style: normal;
  font-weight: 800;
  color: #638000;
}
.join-partner-box {
  margin: 0 0 8px;
  padding: 16px 18px 8px;
  border-radius: 18px;
  background: #f8ffea;
  border: 1px solid rgba(126,157,0,.28);
}
.join-partner-box.is-on {
  border-color: #9ebd12;
  box-shadow: 0 8px 20px rgba(126,157,0,.12);
}
.join-partner-kicker {
  margin: 0 0 6px;
  color: #638000;
  font: 900 11px/1 Outfit, sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.join-partner-lead {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 700;
  color: #2a3a44;
  line-height: 1.45;
}
.join-partner-box ul {
  margin: 0;
  padding: 0 0 4px 18px;
}
.join-partner-box li {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.45;
}
.join-see-above {
  display: inline-block;
  margin: 2px 0 10px;
  font: 800 14px Outfit, sans-serif;
  color: #087f84;
}
.join-see-above:hover { text-decoration: underline; }
.join-form .btn { margin-top: 14px; border: 0; cursor: pointer; font: inherit; }
.join-status { margin: 12px 0 0; font-weight: 700; min-height: 1.2em; }
.join-status.ok { color: #1f6a28; }
.join-status.err { color: #8a2458; }
.join-mail { color: var(--teal); font-weight: 800; }
.join-mail:hover { text-decoration: underline; }
.join-pin-kicker {
  margin: 0 0 4px;
  color: #087f84;
  font: 900 11px/1 Outfit, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.join .pin-sheet .btn {
  border: 0;
  cursor: pointer;
  font: inherit;
  text-align: center;
}

body.listing .fab,
body.listing #perk,
body.manage #perk,
.sales-portal #perk { display: none !important; }
.sales-join-banner {
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #f8ffea;
  border: 1px solid #c8f024;
}
.sales-join-banner .eyebrow { margin: 0 0 4px; }
.sales-join-banner strong { display: block; color: var(--navy); }
.sales-join-banner span { display: block; margin-top: 4px; color: #3a4a52; font-weight: 700; }
.sales-join-banner .sales-request-note {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff;
  color: #103e49;
  font-weight: 750;
  line-height: 1.4;
}
.sales-join-banner .sales-request-note.is-missing {
  background: #fff2bd;
}
body.sales-join-open .sales-home-actions { display: none !important; }
.sales-done-card {
  display: grid;
  gap: 12px;
  padding: 28px 24px;
  border: 1px solid #b8e86a;
  background: linear-gradient(180deg, #f7ffe8 0%, #fff 72%);
}
.sales-done-card[hidden] { display: none !important; }
.sales-done-card h2 { margin: 0; color: #0b3340; }
.sales-done-card p { margin: 0; max-width: 42rem; color: #3a4a52; font-weight: 700; }
.sales-done-card .btn { justify-self: start; }
body:has(.listing-page) {
  background-image: none;
  background-color: #fef8eb;
}
.listing-page { padding-bottom: 28px; }
.listing-hero {
  position: relative;
  isolation: isolate;
  min-height: 280px;
  color: #fff8eb;
  background: #0b1c2c var(--join-hero-image, none) 50% 40% / cover no-repeat;
}
.listing-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(11,28,44,.9) 0%, rgba(11,28,44,.55) 56%, rgba(11,28,44,.3) 100%),
    linear-gradient(180deg, rgba(11,28,44,.22) 0%, rgba(11,28,44,.1) 38%, rgba(11,28,44,.82) 100%);
}
.listing-hero-inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 280px;
  padding: 24px 0 36px;
}
.listing-hero h1 {
  margin: 0;
  max-width: 12ch;
  font: 900 clamp(36px, 7vw, 62px)/.94 Outfit, sans-serif;
  letter-spacing: -.045em;
}
.listing-body { padding-top: 8px; }
.listing-message {
  min-height: 1.2em;
  margin: 0 0 14px;
  font-weight: 700;
}
.listing-message.bad { color: #8a2458; }
.listing-card {
  margin: 0 0 16px;
  padding: 22px 22px 20px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(11,28,44,.08);
  box-shadow: 0 12px 28px rgba(11,28,44,.06);
}
.listing-card h2 { margin: 0 0 8px; }
.listing-card > p:not(.eyebrow) {
  margin: 0 0 16px;
  font-weight: 600;
  color: #3a4a52;
  line-height: 1.5;
}
.listing-session {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 700;
  color: #3a4a52;
}
.listing-session button,
.listing-switch {
  border: 0;
  background: none;
  padding: 0;
  color: #087f84;
  font: 800 13px Outfit, sans-serif;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.listing-google { margin: 8px 0 4px; border: 0; cursor: pointer; font: inherit; }
.listing-email-option { margin-top: 14px; }
.listing-email-option summary {
  cursor: pointer;
  font-weight: 800;
  color: #3a4a52;
}
.listing-email-option .btn {
  margin-top: 12px;
  cursor: pointer;
  font: inherit;
}
#sales-listed-access[hidden] { display: none !important; }
#listing-form label,
.listing-form label,
.listing-auth label {
  display: grid;
  gap: 7px;
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  color: #103e49;
}
#listing-form [hidden],
.listing-form [hidden] {
  display: none !important;
}
#listing-form input:not([type="file"]):not([type="checkbox"]):not([type="radio"]):not([type="time"]),
#listing-form select,
#listing-form textarea,
.listing-form input:not([type="file"]):not([type="checkbox"]):not([type="radio"]):not([type="time"]),
.listing-form select,
.listing-form textarea,
.listing-auth input[type="email"] {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  border: 1px solid rgba(7,65,80,.16);
  border-radius: 14px;
  padding: 12px 14px;
  font: 600 15px Outfit, sans-serif;
  color: var(--ink);
  background: #f6fbfa;
}
#listing-form select,
.listing-form select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23103e49' stroke-width='2'><path d='M4 6l4 4 4-4'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 42px;
}
#listing-form textarea,
.listing-form textarea {
  min-height: 132px;
  resize: vertical;
  line-height: 1.5;
  font-weight: 500;
}
#listing-form input:focus,
#listing-form select:focus,
#listing-form textarea:focus,
.listing-form input:focus,
.listing-form select:focus,
.listing-form textarea:focus,
.listing-auth input:focus {
  outline: none;
  border-color: #087f84;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(8,127,132,.16);
}
.listing-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.listing-form-grid .wide { grid-column: 1 / -1; }
.listing-file {
  position: relative;
  display: block;
  margin: 0;
  cursor: pointer;
}
.listing-file input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.listing-file-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 76px;
  padding: 14px 16px;
  border: 1.5px dashed rgba(7,127,132,.34);
  border-radius: 18px;
  background: #f4fffc;
}
.listing-file-ico {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #c8f024;
  display: grid;
  place-items: center;
  font: 800 22px Outfit, sans-serif;
  color: #0b1c2c;
}
.listing-file-card strong,
.listing-file-card small { display: block; }
.listing-file-card strong { color: var(--navy); font-weight: 900; }
.listing-file-card small { margin-top: 3px; color: #5a6a72; font-weight: 700; }
.listing-file:focus-within .listing-file-card {
  border-color: #087f84;
  border-style: solid;
  box-shadow: 0 0 0 3px rgba(8,127,132,.16);
}
.listing-file.is-full { cursor: default; }
.listing-file.is-full .listing-file-card {
  border-style: solid;
  background: #f3f6f5;
  opacity: .7;
}
.listing-file.is-full .listing-file-ico { background: #d9e3df; }
.listing-head {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin-bottom: 8px;
}
.listing-cover {
  width: 92px;
  height: 92px;
  border-radius: 18px;
  overflow: hidden;
  background: #eef6f4;
  display: grid;
  place-items: center;
  font-size: 28px;
  color: #087f84;
}
.listing-cover img { width: 100%; height: 100%; object-fit: cover; }
.listing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
}
.listing-actions .btn { border: 0; cursor: pointer; font: inherit; }
.listing-photos {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.listing-photo {
  position: relative;
  width: 112px;
  height: 112px;
  border-radius: 16px;
  overflow: hidden;
  background: #eef6f4;
}
.listing-photo img { width: 100%; height: 100%; object-fit: cover; }
.listing-photo button {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 999px;
  background: rgba(11,28,44,.78);
  color: #fff;
  font: 800 16px Outfit, sans-serif;
  cursor: pointer;
}
.listing-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.listing-chip {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.listing-chip input { position: absolute; opacity: 0; pointer-events: none; }
.listing-chip:has(input:checked) {
  background: var(--lime);
  border-color: #9ebd12;
  color: var(--navy);
}
.listing-picks { display: grid; gap: 10px; }
.listing-pick {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.listing-pick img,
.listing-pick > span:first-child {
  width: 64px;
  height: 64px;
  border-radius: 14px;
  object-fit: cover;
  background: #eef6f4;
  display: grid;
  place-items: center;
  color: #087f84;
}
.manage-bar-group { margin: 0 0 20px; }
.manage-listing-pick {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: inherit;
}
.manage-listing-pick img,
.manage-listing-pick .venue-search-placeholder {
  width: 72px;
  height: 72px;
  border-radius: 14px;
  object-fit: cover;
  background: #dce9e7;
}
.manage-listing-pick .venue-search-placeholder {
  display: grid;
  place-items: center;
  color: #087f84;
  font-size: 1.4rem;
}
.manage-listing-pick > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.manage-listing-pick small { display: block; }
.listing-pick strong { display: block; color: var(--navy); }
.listing-pick small { display: block; margin-top: 2px; color: #5a6a72; font-weight: 700; }
.listing-empty-card,
.listing-upgrade-card { text-align: left; }
.listing-empty-card .btn,
.listing-upgrade-card .btn { margin-top: 8px; }
.listing-save-bar {
  position: sticky;
  bottom: 12px;
  z-index: 8;
  display: flex;
  justify-content: flex-end;
  margin: 8px 0 18px;
  padding: 12px 0;
}
.listing-save-bar .btn { min-width: 160px; }
.listing-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 0;
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, #f5ffff, #f8ffea);
  border: 1px solid rgba(7,127,132,.17);
  color: #40545b;
}
.listing-note strong { display: block; color: var(--navy); font-weight: 900; }
.listing-note p { margin: 4px 0 0; font-weight: 700; line-height: 1.45; }
.listing-note .btn { flex: 0 0 auto; }
.listing-exit-zone { margin-top: 22px; }
.listing-exit-error {
  margin: 0;
  color: #a72b27;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.4;
}
.listing-exit-error[hidden] { display: none; }
.listing-about-field { margin-top: 4px; }
@media (max-width: 680px) {
  .listing-form-grid { grid-template-columns: 1fr; }
  .listing-head { grid-template-columns: 72px minmax(0, 1fr); }
  .listing-cover { width: 72px; height: 72px; }
  .listing-note { flex-direction: column; align-items: stretch; }
  .listing-note .btn { text-align: center; }
}

.hero-frame { position: relative; }
.hero-frame .place-hero { margin-bottom: 0; }
.hero-ribbon {
  position: absolute; top: 14px; left: -6px; z-index: 2;
  margin: 0; padding: 7px 14px 7px 12px;
  background: var(--lime); color: var(--navy);
  font-size: 12px; font-weight: 900; letter-spacing: .04em;
  box-shadow: 0 8px 18px rgba(11,28,44,.18);
  clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 50%, 100% 100%, 0 100%);
  padding-right: 22px;
}
.hero-frame-empty { min-height: 48px; }

.hours-box { position: relative; overflow: hidden; }
.hours-box h2, .partner-board h2 {
  display: flex;
  align-items: center;
  gap: 8px;
}
.box-ico { flex: 0 0 auto; }
.hours-deco {
  position: absolute;
  right: 4px;
  top: 2px;
  pointer-events: none;
}

.place-box.partner-board {
  position: relative;
  overflow: hidden;
  margin: 0;
  color: var(--ink);
  background: #fff;
}
.partner-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.partner-star {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--lime);
  color: var(--navy);
  font-size: 13px;
  line-height: 1;
}
.partner-seal {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
}
.partner-lead {
  margin: 10px 0 8px;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -.03em;
  line-height: 1.2;
  color: var(--navy);
}
.partner-lead em {
  font-style: normal;
  color: var(--teal);
}
.partner-board > p {
  margin: 0;
  font-weight: 600;
  line-height: 1.5;
  color: #5a6a74;
}
.partner-perks {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 12px;
  margin: 18px 0 0;
  padding: 0;
}
@media (min-width: 560px) {
  .partner-perks { grid-template-columns: repeat(4, 1fr); }
}
.partner-perks li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}
.partner-perks b {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--navy);
  line-height: 1.2;
}
.partner-perks li > span:last-child {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: #5a6a74;
  line-height: 1.35;
}
.partner-perks .ico {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
}
.partner-cta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}
.partner-cta .btn {
  width: 100%;
  min-height: 48px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
}
.partner-cta .btn > span:not(.store-marks):not(.partner-dl-label) { flex: 1; }
.partner-dl {
  border-color: var(--teal) !important;
  color: var(--navy);
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  min-height: auto;
}
.partner-dl-label {
  font-weight: 900;
  font-size: 15px;
  line-height: 1.2;
}
.store-marks {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  width: 100%;
}
.store-badge {
  display: block;
  height: 32px;
  width: auto;
  max-width: none;
  object-fit: contain;
}
.store-badge-ios { height: 30px; }
.store-badge-play { height: 34px; }
/* Venue owner portal */
.portal{max-width:980px;padding-top:42px;padding-bottom:80px}.portal-hero{max-width:760px;margin:0 auto 24px;text-align:center}.portal-hero h1{font-size:clamp(2.5rem,7vw,5rem);line-height:.94;margin:.15em 0}.portal-hero>p:last-child{font-size:1.1rem;color:var(--muted)}.eyebrow{font-weight:900;letter-spacing:.12em;color:#087f84;font-size:.78rem}.portal-card{margin:18px 0;padding:clamp(20px,4vw,38px);border:1px solid rgba(7,65,80,.14);border-radius:28px;background:rgba(255,255,255,.88);box-shadow:0 18px 55px rgba(5,54,65,.1)}.portal-card h2{margin:.15em 0 .35em;font-size:clamp(1.7rem,4vw,2.5rem)}.portal-auth{max-width:560px;margin:24px auto}.portal-form{display:grid;gap:14px}.portal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-form label{display:grid;gap:7px;font-weight:800;color:#103e49}.portal-form input,.portal-form textarea,.portal-form select,.admin-request textarea{width:100%;box-sizing:border-box;border:1px solid rgba(7,65,80,.24);border-radius:14px;padding:13px 14px;background:#fff;color:#0a3340;font:inherit}.portal-form textarea{resize:vertical}.portal-form .wide{grid-column:1/-1}.portal-actions,.portal-session{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:14px;flex-wrap:wrap}.text-button{border:0;background:none;padding:4px;color:#087f84;text-decoration:underline;font:inherit;font-weight:800;cursor:pointer}.portal-message{position:sticky;top:74px;z-index:20;min-height:0;margin:0 auto;max-width:720px;text-align:center;font-weight:800;border-radius:14px}.portal-message:not(:empty){padding:12px;background:#d9ff7a;color:#073948;box-shadow:0 8px 30px rgba(0,0,0,.12)}.portal-message.bad:not(:empty){background:#ffe0dc;color:#831f16}.venue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.venue-pick{display:grid;gap:5px;text-align:left;border:1px solid rgba(7,65,80,.17);border-radius:18px;background:#f8ffea;padding:18px;color:#073948;font:inherit;cursor:pointer}.venue-pick strong{font-size:1.1rem}.venue-pick span,.portal-empty{color:#597079}.visibility-note,.admin-warning{padding:13px 15px;border-radius:14px;background:#fff2bd;color:#674b00;font-weight:800}.photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:10px}.portal-photo{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;background:#dce9e7}.portal-photo img{width:100%;height:100%;object-fit:cover}.portal-photo button{position:absolute;right:5px;top:5px;width:30px;height:30px;border:0;border-radius:50%;background:#082f3a;color:#fff;font-size:20px;cursor:pointer}.request-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid rgba(7,65,80,.12)}.request-row small{width:100%;color:#597079}.status{padding:4px 9px;border-radius:999px;text-transform:uppercase;font-size:.72rem;font-weight:900}.status.pending{background:#fff2bd}.status.approved{background:#d9ff7a}.status.rejected{background:#ffe0dc}.admin-request{border-top:1px solid rgba(7,65,80,.14);padding:18px 0}.admin-request h3{margin:0}.admin-request textarea{min-height:70px}.admin-request .portal-actions{justify-content:flex-start}
.portal-google{width:100%;margin-top:10px;background:#fff;color:#17333b;border:1px solid rgba(7,65,80,.25)}.portal-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#718187}.portal-divider:before,.portal-divider:after{content:"";height:1px;flex:1;background:rgba(7,65,80,.16)}
.portal-hero .portal-hero-note{margin:.55rem 0 0;color:#087f84;font-size:.95rem;font-weight:800}
.portal-purpose-note{display:grid;gap:3px;max-width:620px;margin:18px auto 0;padding:13px 16px;border:1px solid rgba(7,127,132,.18);border-radius:16px;background:rgba(255,255,255,.76);color:#52676e;text-align:left;font-size:.9rem;line-height:1.4}
.portal-purpose-note strong{color:#073948}
.portal-email-option{margin:16px 0 8px;text-align:center}.portal-email-option summary{display:inline-block;color:#60747b;font-size:.84rem;font-weight:700;text-decoration:underline;cursor:pointer}.portal-email-option[open] summary{margin-bottom:14px}.portal-email-option .portal-form{text-align:left}
.visibility-control{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:16px 18px;border:1px solid rgba(7,65,80,.16);border-radius:18px;background:#fff}.visibility-control>div{display:grid;gap:3px}.visibility-control strong{font-size:1.05rem}.visibility-control #visibility-label{font-size:.78rem;font-weight:900;letter-spacing:.1em;color:#6c7c81}.portal-switch{position:relative;display:block!important;width:58px;height:32px;cursor:pointer}.portal-switch input{position:absolute;opacity:0;pointer-events:none}.portal-switch span{position:absolute;inset:0;border-radius:999px;background:#afbbc0;transition:.2s}.portal-switch span:after{content:"";position:absolute;left:4px;top:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:.2s}.portal-switch input:checked+span{background:#91d800}.portal-switch input:checked+span:after{transform:translateX(26px)}.portal-switch input:focus-visible+span{outline:3px solid #28bbb5;outline-offset:3px}.portal-switch input:disabled+span{opacity:.55;cursor:wait}.visibility-note.is-on{background:#e4ffab;color:#315500}
.portal [hidden]{display:none!important}.venue-finder{position:relative;padding:16px;border:1px solid rgba(7,127,132,.2);border-radius:18px;background:#f7ffef}.venue-finder label{display:grid;gap:7px;font-weight:800;color:#103e49}.venue-finder input{display:block;width:100%;box-sizing:border-box;border:1px solid rgba(7,65,80,.24);border-radius:14px;padding:13px 14px;background:#fff;color:#0a3340;font:inherit}.venue-finder .meta{margin:0;color:#60747b;font-size:.82rem}.venue-search-results{display:grid;gap:7px;margin-top:10px;padding:7px;border:1px solid rgba(7,65,80,.14);border-radius:16px;background:#fff;box-shadow:0 14px 35px rgba(5,54,65,.12)}.venue-search-hit{display:flex;align-items:center;gap:11px;width:100%;border:0;border-radius:12px;padding:9px;background:#fff;color:#073948;text-align:left;font:inherit;cursor:pointer}.venue-search-hit:hover,.venue-search-hit:focus-visible{background:#efffc8;outline:none}.venue-search-hit img,.venue-search-placeholder{width:52px;height:52px;flex:0 0 auto;border-radius:10px;object-fit:cover;background:#dce9e7}.venue-search-placeholder{display:grid;place-items:center;color:#087f84;font-size:1.4rem}.venue-search-hit>span,.venue-selected>span{display:grid;gap:2px}.venue-search-hit strong,.venue-selected strong{font-weight:900}.venue-search-hit small,.venue-selected small{color:#60747b;font-weight:700}.venue-selected{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:13px 14px;border:2px solid #91d800;border-radius:15px;background:#fff}.venue-selected button{border:0;background:none;color:#087f84;text-decoration:underline;font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}
.portal-empty-card{display:grid;gap:6px;padding:18px;border:1px dashed rgba(7,65,80,.25);border-radius:16px;background:#fff}.portal-empty-card strong{color:#073948}.portal-empty-card span{color:#597079}.sales-hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:18px}.sales-hero-pdf{display:grid;justify-items:center;gap:6px;min-width:200px;max-width:240px}.sales-hero-actions .btn{min-width:200px;text-align:center}.sales-hero-actions span{color:#60747b;font-size:.82rem;font-weight:700;text-align:center;line-height:1.35}.sales-portal{max-width:1100px}.sales-hero h1{max-width:none}.sales-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.sales-heading h2{margin-top:0}.sales-mode{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.sales-location-block{display:grid;gap:10px}.sales-map{height:360px;border:1px solid rgba(7,65,80,.2);border-radius:20px;overflow:hidden;background:#e7f1ef}.sales-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sales-subcard{margin-top:24px;padding:22px;border:1px solid rgba(7,65,80,.14);border-radius:22px;background:#f8ffea}.sales-subcard h3{margin:.15em 0 .65em;font-size:1.45rem}.sales-publish{display:flex;align-items:center;justify-content:space-between;gap:20px}.sales-publish p{margin:.25em 0}.status.draft{background:#fff2bd}.status.ready{background:#d9f1ff}.status.published{background:#d9ff7a}.sales-portal code{padding:2px 6px;border-radius:6px;background:#edf4f2;color:#073948}.sales-map .portal-empty{padding:24px}.sales-portal .mapboxgl-ctrl-logo,.sales-portal .mapboxgl-ctrl-attrib{font-size:10px}
.sales-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 20px}
.sales-flow>div{display:grid;grid-template-columns:34px 1fr;align-content:start;gap:3px 10px;padding:17px;border:1px solid rgba(7,65,80,.13);border-radius:18px;background:rgba(255,255,255,.82);box-shadow:0 10px 28px rgba(5,54,65,.07)}
.sales-flow span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#071e2a;color:#baff00;font-weight:900}
.sales-flow strong{color:#073948}
.sales-flow p{grid-column:2;margin:0;color:#60747b;font-size:.82rem;font-weight:650;line-height:1.4}
.sales-new-partner{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#e8fbff 0%,#f5ffc8 100%);border-color:rgba(14,155,164,.28)}.sales-new-partner h2{margin:.15em 0}.sales-new-partner p:last-child{margin:0;color:var(--muted);font-weight:650}.sales-new-partner .btn{flex:0 0 auto}
.sales-listed-hub{background:linear-gradient(135deg,#ffffff 0%,#ecfbff 58%,#f3ffd1 100%);border-color:rgba(14,155,164,.28)}.sales-listed-hub .sales-heading>div>p:last-child{max-width:680px;color:var(--muted);font-weight:650}.sales-catalog-finder{margin:22px 0 18px;background:rgba(255,255,255,.75)}.sales-owned-label{margin:4px 0 10px}.catalog-search-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px;border-radius:12px;background:#fff}.catalog-search-row>img{width:52px;height:52px;border-radius:10px;object-fit:cover}.catalog-search-row>span:nth-child(2){display:grid;gap:2px}.catalog-search-row small{color:#60747b;font-weight:700}.catalog-search-actions{display:flex;gap:7px}.catalog-search-actions a,.catalog-search-actions button{border:0;border-radius:999px;padding:7px 10px;background:#efffc8;color:#405c00;font:inherit;font-size:.78rem;font-weight:900;text-decoration:none;cursor:pointer}.status.listed{background:#dff8f7;color:#087f84}.listed-pick{position:relative;padding-right:54px;background:#fff}.listed-pick:after{content:"→";position:absolute;right:18px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8ff9c;color:#405c00;font-weight:900}.listed-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:4px;border-top:1px solid rgba(7,65,80,.12)}.listed-actions .btn{width:auto}.sales-listed-hub+.portal-card{scroll-margin-top:90px}
.sales-rewards-intro{max-width:680px;margin:-4px 0 20px;color:var(--muted);font-weight:650}.sales-rewards-builder{gap:18px}.reward-builder-block{display:grid;gap:18px;padding:clamp(18px,3vw,26px);border:1px solid rgba(7,65,80,.14);border-radius:20px;background:#fff}.reward-builder-heading{display:flex;align-items:flex-start;gap:13px}.reward-builder-heading h4{margin:0 0 3px;font-size:1.35rem}.reward-builder-heading p{margin:0;color:var(--muted);font-weight:650}.reward-builder-number{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900}.stamp-goal-control{display:grid;grid-template-columns:48px minmax(130px,190px) 48px;justify-content:center;align-items:center;gap:8px}.stamp-goal-control button{height:48px;border:1px solid rgba(7,65,80,.2);border-radius:14px;background:#efffc8;color:var(--navy);font:900 1.5rem/1 Outfit,sans-serif;cursor:pointer}.stamp-goal-control button:disabled{opacity:.35;cursor:not-allowed}.stamp-goal-control output{display:grid;place-items:center;height:48px;border:2px solid #14a4ab;border-radius:14px;background:#f5ffff;color:var(--navy);font-size:1.15rem;font-weight:900}.reward-field-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px}.reward-field-heading>div{display:grid;gap:2px}.reward-field-heading strong{color:#103e49;font-size:1.05rem}.reward-field-heading span:not(.reward-count){color:var(--muted);font-size:.86rem;font-weight:650}.reward-count{padding:5px 9px;border-radius:999px;background:#efffc8;color:#567700;font-size:.78rem;font-weight:900}.reward-options{display:grid;gap:10px}.reward-option-row{display:grid;grid-template-columns:34px 1fr 40px;align-items:center;gap:9px}.reward-option-index,.spin-prize-grid b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#dff8f7;color:#087f84;font-size:.85rem}.reward-option-row input,.spin-prize-grid input{width:100%;box-sizing:border-box;border:1px solid rgba(7,65,80,.22);border-radius:14px;padding:13px 14px;background:#fff;color:#0a3340;font:inherit;font-weight:700}.reward-remove-button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:#fff0ed;color:#9b3026;font-size:1.25rem;cursor:pointer}.reward-remove-button[hidden]{visibility:hidden}.reward-add-button{justify-self:start;border:1px dashed #14a4ab;border-radius:999px;padding:10px 15px;background:#f4ffff;color:#087f84;font:inherit;font-weight:900;cursor:pointer}.reward-add-button span{font-size:1.15rem}.reward-add-button[hidden]{display:none}.spin-prize-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.spin-prize-grid label{display:grid;gap:8px;padding:14px;border:1px solid rgba(7,65,80,.13);border-radius:16px;background:#fbfff0}.spin-prize-grid label>span{display:flex;align-items:center;gap:7px;color:#103e49;font-weight:900}.spin-odds-control{display:grid;gap:13px;padding:17px;border-radius:18px;background:#f5ffff}.spin-odds-control output{min-width:62px;padding:6px 10px;border-radius:999px;background:var(--navy);color:#fff;text-align:center;font-weight:900}.spin-odds-control input[type=range]{--range-progress:50%;width:100%;height:10px;margin:4px 0;appearance:none;border-radius:999px;background:linear-gradient(90deg,#9ee600 0 var(--range-progress),#ff9b8f var(--range-progress) 100%);cursor:pointer}.spin-odds-control input[type=range]::-webkit-slider-thumb{appearance:none;width:28px;height:28px;border:4px solid #fff;border-radius:50%;background:var(--navy);box-shadow:0 2px 10px rgba(0,0,0,.25)}.spin-odds-control input[type=range]::-moz-range-thumb{width:20px;height:20px;border:4px solid #fff;border-radius:50%;background:var(--navy);box-shadow:0 2px 10px rgba(0,0,0,.25)}.spin-odds-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.spin-odds-summary>span{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:13px;background:#fff}.spin-odds-summary small{color:var(--muted);font-weight:750}.spin-odds-summary strong{color:var(--navy);font-size:1.05rem}.sales-rewards-builder>.btn{width:100%}
.reward-builder-heading{display:block;padding-bottom:14px;border-bottom:1px solid rgba(7,65,80,.12)}.reward-builder-heading h4{font-size:1.5rem}.stamp-goal-wrap{display:grid;gap:10px;padding:16px;border-radius:17px;background:#f5ffff}.stamp-goal-wrap>strong{color:#103e49;font-size:.95rem}.sales-tags{min-width:0;margin:2px 0;padding:18px;border:1px solid rgba(7,65,80,.18);border-radius:18px;background:#f8ffea}.sales-tags legend{padding:0 7px;color:#103e49;font-weight:900}.sales-tags>p{margin:0 0 14px;color:#597079;font-size:.9rem;line-height:1.45}.sales-tag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:9px}.portal-form .sales-tag-grid label{display:flex;align-items:center;gap:9px;min-width:0;padding:10px 12px;border:1px solid rgba(7,65,80,.14);border-radius:999px;background:#fff;color:#103e49;cursor:pointer}.portal-form .sales-tag-grid input{width:18px;height:18px;flex:0 0 auto;margin:0;accent-color:#8fbd00}.portal-form .sales-tag-grid label:has(input:checked){border-color:#8fbd00;background:#e8ff9c;box-shadow:0 4px 12px rgba(99,128,0,.12)}
.sales-toast,.portal-toast{position:fixed;right:22px;bottom:22px;z-index:1000;max-width:min(390px,calc(100vw - 32px));padding:13px 17px;border:1px solid rgba(7,65,80,.16);border-radius:15px;background:#d9ff7a;color:#073948;font-weight:900;box-shadow:0 14px 40px rgba(0,0,0,.2);opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.sales-toast.show,.portal-toast.show{opacity:1;transform:translateY(0)}.sales-toast.bad,.portal-toast.bad{background:#ffe0dc;color:#831f16}.portal-checklist-wrap{padding:16px;border:1px solid rgba(7,65,80,.14);border-radius:18px;background:#f7fbfa}.portal-checklist-wrap .eyebrow{margin:0 0 10px}.portal-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.check-item{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:12px;background:#fff2bd;color:#674b00;font-size:.88rem;font-weight:800}.check-item b{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:#c99200;color:#fff}.check-item.done{background:#e4ffab;color:#315500}.check-item.done b{background:#75ad00}.sales-access-list{display:grid;gap:8px;margin-top:14px}.sales-access-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;border:1px solid rgba(7,65,80,.14);border-radius:14px;background:#fff}.sales-access-row span{display:grid;gap:2px}.sales-access-row small{color:#60747b;text-transform:capitalize}.sales-danger{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff7f2;border-color:#e7b9a3}.sales-danger p{margin:.25em 0}.status.archived{background:#e5e8e9}.portal-form :disabled{opacity:.62;cursor:not-allowed}
@media(max-width:680px){.portal{padding-top:24px}.portal-form-grid{grid-template-columns:1fr}.portal-form-grid>*{grid-column:1!important}.portal-card{border-radius:20px;padding:20px}.portal-session{padding:0 4px}.sales-flow{grid-template-columns:1fr}.sales-new-partner{align-items:stretch;flex-direction:column}.sales-new-partner .btn,.sales-listed-hub .btn{width:100%}.listed-actions{align-items:stretch;flex-direction:column}.listed-actions .btn{width:100%;box-sizing:border-box;text-align:center}.spin-prize-grid{grid-template-columns:1fr}.stamp-goal-control{grid-template-columns:44px minmax(120px,1fr) 44px}.reward-builder-block{padding:16px}.spin-odds-summary>span{align-items:flex-start;flex-direction:column}}
@media(max-width:680px){.sales-map{height:300px}.sales-coordinates{grid-template-columns:1fr}.sales-publish{align-items:flex-start}}

/* Unified Partner Portal */
.partner-workspace{margin-top:18px}.partner-command{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:26px 30px;border-radius:28px 28px 0 0;background:linear-gradient(125deg,#071e2a,#0a3544 65%,#075b63);color:#fff;box-shadow:0 18px 55px rgba(5,54,65,.16)}.partner-command h2{margin:.15rem 0;font-size:clamp(2rem,5vw,3.5rem);line-height:1}.partner-command p{margin:.3rem 0;color:#d9e9eb}.partner-command .eyebrow{color:#baff00}.partner-command-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.partner-command .ghost{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.06)}.partner-command .text-button{color:#dffcff}.partner-tabs{position:sticky;top:66px;z-index:18;display:flex;gap:5px;overflow-x:auto;padding:9px;background:#071e2a;border-top:1px solid rgba(255,255,255,.1);border-radius:0 0 20px 20px;scrollbar-width:none}.partner-tabs::-webkit-scrollbar{display:none}.partner-tabs button{flex:0 0 auto;border:0;border-radius:999px;padding:10px 15px;background:transparent;color:#bdd0d5;font:inherit;font-size:.88rem;font-weight:900;cursor:pointer}.partner-tabs button.active{background:#baff00;color:#10212b}.partner-panel{scroll-margin-top:130px}.partner-panel[hidden]{display:none!important}.partner-overview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.partner-overview-head h2{margin-top:.1rem}.partner-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.partner-quick-grid button{display:grid;gap:5px;min-height:110px;padding:20px;border:1px solid rgba(7,65,80,.14);border-radius:18px;background:linear-gradient(135deg,#fff,#efffd5);color:#103e49;text-align:left;font:inherit;cursor:pointer}.partner-quick-grid b{font-size:1.08rem}.partner-quick-grid span{color:#597079;font-size:.9rem}.portal-section-toggles{display:flex;gap:10px 18px;flex-wrap:wrap;padding:16px;border:1px solid rgba(7,65,80,.16);border-radius:18px;background:#f7fbfa}.portal-section-toggles legend{padding:0 8px;font-weight:900}.portal-section-toggles label{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px}.portal-section-toggles input{width:20px!important;height:20px;accent-color:#88c900}.partner-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:22px 0}.partner-feature{display:grid;grid-template-columns:30px 1fr 22px;align-items:center;gap:8px;min-height:54px;padding:10px 13px;border:2px solid rgba(7,65,80,.14);border-radius:17px;background:#fff;color:#103e49;text-align:left;font:inherit;font-weight:900;cursor:pointer}.partner-feature>span{font-size:1.25rem;text-align:center}.partner-feature>b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:transparent}.partner-feature.selected{border-color:#08a8b0;background:#efffd0;box-shadow:0 5px 16px rgba(0,119,126,.12)}.partner-feature.selected>b{background:#18aab0;color:#fff}.partner-reward-block{margin:18px 0;padding:22px;border:1px solid rgba(7,65,80,.14);border-radius:22px;background:linear-gradient(140deg,#f3ffff,#fff)}.partner-reward-block.wheel{background:linear-gradient(140deg,#fffbea,#f5ffe0)}.partner-reward-block h3{font-size:1.55rem;margin:0 0 5px}.partner-reward-block h4{margin:22px 0 8px}.portal-stepper{display:grid;grid-template-columns:46px minmax(120px,190px) 46px;align-items:center;gap:8px;margin:16px 0}.portal-stepper button{width:46px;height:46px;border:1px solid rgba(7,65,80,.18);border-radius:50%;background:#fff;color:#073948;font-size:1.6rem;cursor:pointer}.portal-stepper strong{text-align:center;font-size:1.15rem}.portal-dynamic-fields{display:grid;gap:11px}.portal-dynamic-fields label{display:grid;gap:6px;color:#103e49;font-weight:900}.portal-dynamic-fields input{width:100%;box-sizing:border-box;border:1px solid rgba(7,65,80,.22);border-radius:14px;padding:13px 14px;background:#fff;color:#0a3340;font:inherit}.portal-field-action{display:grid;grid-template-columns:1fr 42px;gap:7px}.portal-field-action button{border:0;border-radius:12px;background:#ffe0dc;color:#831f16;font-size:1.3rem;cursor:pointer}.portal-range-label{display:grid;gap:10px;margin-top:20px}.portal-range-label>span{display:flex;justify-content:space-between}.portal-range-label output{color:#087f84;font-weight:900}.portal-range-label input{width:100%;accent-color:#8acb00}.partner-tonight-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.portal-subcard{display:grid;align-content:start;gap:12px;padding:20px;border:1px solid rgba(7,65,80,.14);border-radius:20px;background:#f7fbfa}.portal-subcard h3{margin:0}.portal-subcard label,.portal-inline-form label{display:grid;gap:6px;color:#103e49;font-weight:900}.portal-subcard input,.portal-subcard select,.portal-inline-form input,.portal-inline-form select{width:100%;box-sizing:border-box;border:1px solid rgba(7,65,80,.22);border-radius:13px;padding:12px;background:#fff;color:#0a3340;font:inherit}.portal-list{display:grid;gap:9px;margin-top:14px}.portal-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid rgba(7,65,80,.12);border-radius:15px;background:#fff}.portal-list-row>div{display:grid;gap:3px}.portal-list-row small{color:#60747b;line-height:1.35}.portal-inline-form{display:grid;grid-template-columns:minmax(180px,1fr) 150px auto;align-items:end;gap:11px;margin:20px 0}.portal-photo>span{position:absolute;left:6px;top:6px;padding:4px 7px;border-radius:999px;background:#baff00;color:#10212b;font-size:.7rem;font-weight:900}
.portal-wheel-share{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,2fr) 48px;align-items:center;gap:10px;color:#60747b;font-size:.8rem}.portal-wheel-share input{padding:0;border:0;accent-color:#087f84}.portal-wheel-share output{color:#087f84;text-align:right;font-weight:900}.portal-wheel-share-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.portal-wheel-share-summary strong.bad{color:#a63127}.event-timing{display:flex;gap:10px 18px;padding:13px;border:1px solid rgba(7,65,80,.16);border-radius:15px;background:#fff}.event-timing legend{padding:0 6px;font-weight:900}.event-timing label{display:flex;grid-template-columns:none;align-items:center;gap:7px}.event-timing input{width:19px;height:19px;padding:0;accent-color:#087f84}
@media(max-width:760px){.partner-command{align-items:flex-start;flex-direction:column;padding:22px}.partner-command-actions{width:100%}.partner-command-actions .btn{flex:1;text-align:center}.partner-tabs{top:58px;margin:0 -4px}.partner-quick-grid,.partner-tonight-grid{grid-template-columns:1fr}.portal-inline-form{grid-template-columns:1fr}.partner-panel{padding:20px}.portal-list-row{grid-template-columns:auto minmax(0,1fr)}.portal-list-row>.text-button{grid-column:2;justify-self:start}.partner-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-wheel-share{grid-template-columns:1fr 48px}.portal-wheel-share>span:first-child{grid-column:1/-1}.event-timing{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:420px){.partner-feature-grid{grid-template-columns:1fr}.partner-command-actions{align-items:stretch;flex-direction:column}.partner-command-actions .btn{width:100%;box-sizing:border-box}}
@media(max-width:520px){.catalog-search-row{grid-template-columns:44px minmax(0,1fr)}.catalog-search-row>img,.catalog-search-row>.venue-search-placeholder{width:44px;height:44px}.catalog-search-actions{grid-column:2;justify-content:flex-start}}

/* Polished segmented stamp-count stepper. */
.stamp-goal-control{display:grid;grid-template-columns:54px minmax(120px,180px) 54px;justify-content:start;align-items:stretch;width:max-content;max-width:100%;padding:5px;gap:0;border:1px solid rgba(7,65,80,.13);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(5,54,65,.09)}
.stamp-goal-control button{display:grid;place-items:center;min-width:54px;height:54px;padding:0;border:0;border-radius:13px;background:var(--navy);color:#fff;font:800 1.7rem/1 Outfit,sans-serif;cursor:pointer;box-shadow:0 4px 10px rgba(5,54,65,.18);transition:transform .15s ease,background .15s ease,box-shadow .15s ease}
.stamp-goal-control button:hover{background:#087f84;box-shadow:0 5px 14px rgba(5,54,65,.24)}
.stamp-goal-control button:active{transform:scale(.94);box-shadow:0 2px 5px rgba(5,54,65,.2)}
.stamp-goal-control button:focus-visible{outline:3px solid #a8ef00;outline-offset:2px}
.stamp-goal-control button:disabled{background:#dbe3e3;color:#718187;box-shadow:none;opacity:1;cursor:not-allowed}
.stamp-goal-control output{display:grid;place-items:center;min-width:0;height:54px;padding:0 13px;border:0;background:#fff;color:var(--navy);font-size:1.15rem;font-weight:900;white-space:nowrap}
@media(max-width:680px){.stamp-goal-control{grid-template-columns:52px minmax(112px,1fr) 52px;width:100%;box-sizing:border-box}.stamp-goal-control button{min-width:52px;height:52px}.stamp-goal-control output{height:52px}}

.google-reviews-card{overflow:hidden;background:linear-gradient(145deg,#fff 0%,#f7ffff 100%)}
.google-reviews-mobile-anchor{display:none}
.google-reviews-desktop-slot:empty{display:none}
.google-reviews-desktop-slot{display:grid;gap:10px}
.google-reviews-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.google-reviews-head .eyebrow{margin:0 0 4px}
.google-reviews-head h2{margin:0}
.google-maps-link{flex:0 0 auto;color:#087f84;font-size:.82rem;font-weight:850;text-decoration:underline;text-underline-offset:3px}
.google-place-widget{display:grid;place-items:start;min-height:112px}
.google-place-widget[hidden]{display:none!important;min-height:0}
.google-place-details{display:block;width:100%;max-width:400px;height:440px;margin:0 auto;color-scheme:light;--gmp-mat-color-primary:#087f84;--gmp-mat-color-surface:#fff;--gmp-mat-color-on-surface:#0b1c2c}
.google-place-loading{display:flex;align-items:center;gap:12px;width:100%;padding:18px;border:1px solid rgba(7,65,80,.12);border-radius:16px;background:#fff;color:#60747b;font-weight:750;box-sizing:border-box}
.google-rating-skeleton{display:block;width:104px;height:24px;border-radius:999px;background:linear-gradient(90deg,#e7efee 25%,#f8fbfa 50%,#e7efee 75%);background-size:200% 100%;animation:google-rating-shimmer 1.2s linear infinite}
.google-place-error{margin:0;padding:14px 16px;border-radius:14px;background:#fff2bd;color:#674b00;font-weight:750}
.google-place-error a{color:inherit;text-decoration:underline}
@keyframes google-rating-shimmer{to{background-position:-200% 0}}

.app-discovery-card{position:relative;overflow:hidden;display:grid;gap:18px;padding-bottom:24px;background:linear-gradient(145deg,#fff 0%,#fbffff 100%);border-color:rgba(7,65,80,.12);box-shadow:0 14px 34px rgba(5,54,65,.09)}
.app-discovery-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,#c8f024 0%,#63d8a7 53%,#15bdc5 100%)}
.app-discovery-heading{display:grid;gap:6px}
.app-discovery-heading .eyebrow{margin:0}
.app-discovery-heading h2{margin:0;color:var(--navy);font-size:clamp(1.55rem,4vw,2rem);line-height:1.08}
.app-discovery-heading .app-discovery-lead,.app-discovery-heading>p:last-child{max-width:560px;margin:2px 0 0;color:#596d74;font-size:.94rem;font-weight:650;line-height:1.45}
.app-discovery-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0;padding:0;list-style:none}
.app-discovery-features[hidden]{display:none}
.app-discovery-features li{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;padding:11px 10px;border-radius:999px;background:#edf8f7;color:#173b45;font-size:.82rem;font-weight:850;white-space:nowrap}
.app-discovery-features svg{width:25px;height:25px;flex:0 0 25px;fill:none;stroke:#07969c;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-discovery-link{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:#087f84;font-weight:900;text-decoration:none}
.app-discovery-link svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.app-discovery-link:hover svg{transform:translateX(3px)}
.app-discovery-link:focus-visible{outline:3px solid var(--lime);outline-offset:5px;border-radius:5px}
.app-rewards-live{display:grid;gap:10px}
.app-rewards-live[hidden]{display:none}
.app-reward-col{display:grid;gap:7px;min-width:0}
.app-reward-col h3{margin:0;color:#596d74;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.app-reward-col ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.app-reward-col li{padding:9px 12px;border-radius:999px;background:#edf8f7;color:#173b45;font-size:.8rem;font-weight:850;line-height:1.25}

.unclaimed-partner-box{background:linear-gradient(145deg,#f8ffea 0%,#eafbff 100%);border-color:rgba(20,164,171,.25)}
.unclaimed-partner-box .eyebrow{margin:0 0 7px}
.unclaimed-partner-box h2{margin:0 0 9px}
.unclaimed-partner-box>p:not(.eyebrow){margin:0;color:#51656d;line-height:1.5}
.locked-partner-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:17px 0;padding:0;list-style:none}
.locked-partner-features li{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid rgba(7,65,80,.11);border-radius:13px;background:rgba(255,255,255,.8);color:#173b45;font-size:.86rem;font-weight:850}
.locked-partner-features span{display:grid;place-items:center;width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:#eaffaa;color:#557900;font-weight:900}
.unclaimed-partner-box .btn{width:100%;box-sizing:border-box;text-align:center}
@media(max-width:560px){.google-reviews-head{display:grid}.google-maps-link{justify-self:start}.google-place-details{height:400px}.locked-partner-features{grid-template-columns:1fr}.app-discovery-card{gap:16px}.app-discovery-features{gap:7px}.app-discovery-features li{display:grid;justify-items:center;gap:5px;padding:10px 4px;border-radius:18px;font-size:.74rem}.app-discovery-features svg{width:24px;height:24px}.app-discovery-link{justify-content:flex-end;padding-right:54px}}
@media(min-width:840px){.google-reviews-desktop-slot .google-reviews-card{width:100%;box-sizing:border-box}.google-reviews-desktop-slot .google-place-details{max-width:none}}
@media(prefers-reduced-motion:reduce){.google-rating-skeleton{animation:none}}

/* Sales workspace: compact, progressive and explicit. */
.sales-workflow-section{padding:0;overflow:hidden}.sales-workflow-section>summary{list-style:none}.sales-workflow-section>summary::-webkit-details-marker{display:none}.sales-workflow-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;cursor:pointer;user-select:none}.sales-workflow-summary>span:first-child{display:flex;align-items:center;gap:13px}.sales-workflow-summary b{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#092f3c;color:#fff}.sales-workflow-summary span span{display:grid;gap:2px}.sales-workflow-summary strong{color:#0b3340;font-size:1.12rem}.sales-workflow-summary small{color:#60747b;font-weight:650}.sales-workflow-summary>span:last-child{color:#087f84;font-size:1.5rem;transition:transform .18s ease}.sales-workflow-section[open]>.sales-workflow-summary>span:last-child{transform:rotate(180deg)}.sales-workflow-body{padding:4px 24px 24px;border-top:1px solid rgba(7,65,80,.11)}.sales-workflow-body.sales-new-partner{padding-top:22px}.sales-step-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 24px;padding:8px;border-radius:18px;background:#eaf3f2}.sales-step-nav button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:13px;background:transparent;color:#60747b;font:inherit;font-weight:900;cursor:pointer}.sales-step-nav button span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#cddcda}.sales-step-nav button.active{background:#fff;color:#073948;box-shadow:0 4px 14px rgba(5,54,65,.1)}.sales-step-nav button.active span{background:#baff00;color:#173000}.sales-step-nav button:disabled{opacity:.42;cursor:not-allowed}.sales-success-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:center;padding:22px;border:2px solid #9ed900;border-radius:22px;background:linear-gradient(135deg,#f6ffe0,#effcff)}.sales-success-card h3{margin:3px 0 5px;font-size:1.45rem}.sales-success-card p{margin:0}.sales-success-card .listed-actions{grid-column:1/-1;justify-content:flex-start}.sales-success-photo{display:grid;place-items:center;width:96px;height:96px;overflow:hidden;border-radius:18px;background:#dff8f7;color:#4e7500;font-size:2.4rem;font-weight:900}.sales-success-photo img{width:100%;height:100%;object-fit:cover}.listed-pick{grid-template-columns:48px minmax(0,1fr);align-items:center;padding:10px 54px 10px 10px}.listed-pick>img,.listed-pick>.venue-search-placeholder{width:48px;height:48px;border-radius:11px;object-fit:cover}.listed-pick>span:nth-child(2){display:grid;gap:3px}.listed-pick small{color:#60747b}.portal-photo.pending:after{content:"";position:absolute;inset:0;border:2px dashed #8acb00;border-radius:14px;pointer-events:none}.venue-finder.has-selection>label,.venue-finder.has-selection>p,.venue-finder.has-selection>.venue-search-results{display:none!important}.field-error{color:#a62f26;font-size:.84rem;font-weight:850}.field-invalid textarea,.field-invalid input{border:2px solid #e94e43!important;background:#fff6f4!important}.spin-odds-summary .spin-win{background:#e7ffc0;border:1px solid #8acb00}.spin-odds-summary .spin-win small,.spin-odds-summary .spin-win strong{color:#315d00}.spin-odds-summary .spin-lose{background:#ffe1dc;border:1px solid #ed8d82}.spin-odds-summary .spin-lose small,.spin-odds-summary .spin-lose strong{color:#8b261e}.spin-prize-shares{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.spin-prize-shares span{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:10px 12px;border-radius:12px;background:#fff}.spin-prize-shares small{color:#60747b;font-weight:750}.spin-prize-shares strong{color:#087f84}.ibar-linked-tools{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:20px;padding:20px;border:1px solid rgba(7,65,80,.14);border-radius:20px;background:linear-gradient(135deg,#071e2a,#0a4b57);color:#fff}.ibar-linked-tools h3,.ibar-linked-tools p{margin:.2rem 0}.ibar-linked-tools .eyebrow{color:#baff00}.ibar-linked-tools>div:last-child{display:flex;gap:10px;flex-wrap:wrap}.ibar-linked-tools .ghost{color:#fff;border-color:rgba(255,255,255,.5);background:transparent}
.listed-visibility-control{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid rgba(7,65,80,.14);border-radius:16px;background:#fff}.listed-visibility-control>div{display:grid;gap:3px}.listed-visibility-control strong{font-size:.78rem;letter-spacing:.1em;color:#52676e}.listed-visibility-control p{margin:0;color:#60747b;font-size:.9rem;font-weight:650}
@media(max-width:680px){.sales-workflow-summary{padding:17px}.sales-workflow-body{padding:3px 17px 18px}.sales-step-nav{grid-template-columns:1fr}.sales-step-nav button{justify-content:flex-start;padding:0 14px}.sales-success-card{grid-template-columns:70px minmax(0,1fr);padding:17px}.sales-success-photo{width:70px;height:70px}.listed-visibility-control{align-items:flex-start}.spin-prize-shares{grid-template-columns:1fr}.ibar-linked-tools{align-items:stretch;flex-direction:column}.ibar-linked-tools>div:last-child{display:grid}.ibar-linked-tools .btn{width:100%;box-sizing:border-box;text-align:center}}
.btn[aria-disabled="true"]{opacity:.58;cursor:not-allowed;pointer-events:none}

/* Manage My Bar: real shared operations, aligned to the iBar workspace. */
.portal{min-width:0;overflow-x:clip}.partner-workspace,.partner-workspace>*{min-width:0;box-sizing:border-box}.partner-tabs{max-width:100%;box-sizing:border-box}
.portal-operations-preview{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px;margin-top:22px}.portal-operation-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid rgba(7,65,80,.16);border-radius:20px;background:rgba(255,255,255,.82);color:#092f3c;text-align:left;font:inherit;cursor:pointer;box-shadow:0 12px 32px rgba(5,54,65,.08);transition:transform .16s ease,box-shadow .16s ease}.portal-operation-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(5,54,65,.13)}.portal-operation-card.primary{background:linear-gradient(135deg,#071e2a,#075b63);color:#fff;border-color:transparent}.portal-operation-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#baff00;color:#092f3c}.portal-operation-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.portal-operation-card>span:nth-child(2){display:grid;gap:2px}.portal-operation-card small{color:#087f84;font-size:.7rem;font-style:normal;font-weight:900;letter-spacing:.11em}.portal-operation-card.primary small{color:#baff00}.portal-operation-card strong{font-size:1.05rem;line-height:1.15}.portal-operation-card em{color:#60747b;font-size:.78rem;font-style:normal;line-height:1.35}.portal-operation-card.primary em{color:#d4e7e8}.portal-operation-card>b{font-size:.78rem;white-space:nowrap}.operations-panel{padding:24px}.operations-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.operations-heading h2,.operations-heading p{margin:.15rem 0}.operations-heading>.text-button{flex:0 0 auto}.workspace-chat{display:flex;flex-direction:column;gap:10px;height:min(56vh,520px);min-height:330px;overflow-y:auto;padding:18px;border:1px solid rgba(7,65,80,.14);border-radius:20px;background:linear-gradient(180deg,#edfafa,#fffdf5)}.workspace-message{display:flex;gap:8px;align-items:flex-end;max-width:min(82%,680px)}.workspace-message.mine{align-self:flex-end;flex-direction:row-reverse}.workspace-message-avatar{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:#087f84;color:#fff;font-size:.72rem;font-weight:900}.workspace-message-bubble{padding:10px 13px;border:1px solid rgba(7,65,80,.13);border-radius:16px 16px 16px 4px;background:#fff;box-shadow:0 5px 16px rgba(5,54,65,.06)}.workspace-message.mine .workspace-message-bubble{border-radius:16px 16px 4px;background:#ddff9b}.workspace-message-bubble strong{display:block;color:#087f84;font-size:.72rem}.workspace-message-bubble p{margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}.workspace-message-bubble time{color:#60747b;font-size:.66rem}.workspace-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:12px}.workspace-chat-compose textarea{min-height:50px;max-height:130px;resize:vertical;border:1px solid rgba(7,65,80,.24);border-radius:16px;padding:13px 15px;font:inherit}.workspace-chat-compose .btn{align-self:stretch;min-width:96px}.schedule-toolbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;margin:4px 0 14px}.schedule-toolbar strong{text-align:center}.schedule-toolbar button{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(7,65,80,.18);border-radius:50%;background:#fff;color:#073948;font:inherit;font-size:1.7rem;cursor:pointer}.schedule-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;min-height:310px}.schedule-day{min-width:0;padding:9px 7px;border:1px solid rgba(7,65,80,.13);border-radius:16px;background:#fff}.schedule-day.today{border-color:#9ed900;box-shadow:inset 0 0 0 1px #9ed900}.schedule-day-head{display:grid;place-items:center;margin-bottom:8px}.schedule-day-head small{color:#60747b;font-size:.66rem;font-weight:850;text-transform:uppercase}.schedule-day-head strong{font-size:1.1rem}.schedule-item{position:relative;display:grid;gap:2px;margin:5px 0;padding:8px 7px;border-radius:10px;background:#dff8f7;color:#073948;font-size:.69rem;line-height:1.15}.schedule-item.event{background:#fff0bc}.schedule-item b,.schedule-item span{overflow:hidden;text-overflow:ellipsis}.schedule-item-actions{display:flex;gap:5px;margin-top:4px}.schedule-item-actions button{border:0;padding:0;background:transparent;color:#087f84;font:inherit;font-size:.64rem;font-weight:850;cursor:pointer}.schedule-empty{display:block;padding:14px 2px;color:#9aacb0;font-size:.66rem;text-align:center}.schedule-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.schedule-editor{border:1px solid rgba(7,65,80,.15);border-radius:17px;background:#f8ffef}.schedule-editor summary{padding:15px 17px;color:#087f84;font-weight:900;cursor:pointer}.schedule-editor[open] summary{border-bottom:1px solid rgba(7,65,80,.12)}.schedule-editor form{padding:16px}.schedule-outside-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;border:1px dashed rgba(7,65,80,.22);border-radius:14px;background:#fff;color:#103e49;font-weight:800}.schedule-outside-toggle input{width:auto}.schedule-outside-toggle small{flex:1 1 100%;color:#60747b;font-size:.78rem;font-weight:650}.schedule-form-actions{display:flex;align-items:center;gap:14px}.portal-save-success{display:grid;grid-template-columns:42px minmax(0,1fr) 32px;align-items:center;gap:12px;margin-bottom:20px;padding:15px;border:1px solid #8acb00;border-radius:16px;background:#efffd4}.portal-save-success>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#baff00;color:#173000;font-size:1.25rem;font-weight:950}.portal-save-success strong{display:block}.portal-save-success p{margin:2px 0;color:#4f666d}.portal-save-success button{border:0;background:transparent;color:#52676d;font-size:1.4rem;cursor:pointer}
@media(max-width:760px){.portal-operations-preview{grid-template-columns:1fr}.portal-operation-card{grid-template-columns:46px minmax(0,1fr);padding:15px}.portal-operation-icon{width:46px;height:46px}.portal-operation-card>b{grid-column:2}.partner-tabs{margin:0;overscroll-behavior-inline:contain}.operations-heading{display:grid}.operations-heading>.text-button{justify-self:start}.workspace-chat{height:54vh;min-height:310px;padding:12px}.workspace-message{max-width:92%}.workspace-chat-compose{grid-template-columns:1fr}.workspace-chat-compose .btn{width:100%}.schedule-week{grid-template-columns:1fr;min-height:0}.schedule-day{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;padding:10px}.schedule-day-head{margin:0;border-right:1px solid rgba(7,65,80,.12)}.schedule-day-items{min-width:0}.schedule-empty{padding:8px}.schedule-actions{grid-template-columns:1fr}.schedule-form-actions{align-items:stretch;flex-direction:column}.schedule-form-actions .btn{width:100%}}
@media(max-width:420px){.portal-operation-card em{display:none}.portal-operation-card{gap:10px}.operations-panel{padding:17px}}

/* Sales home: three clear jobs, never a fake numbered setup flow. */
.sales-inbox-card{margin:0 0 22px;border-color:rgba(14,155,164,.28);background:#fff}
.sales-inbox-card .sales-heading p{max-width:42rem;color:#3a4a52}
.sales-inbox-list{display:grid;gap:10px}
.sales-inbox-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px}
.sales-inbox .venue-pick{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:center;
  gap:14px;
  padding:16px 48px 16px 16px;
  border:1px solid rgba(7,65,80,.2);
  background:#fff;
  box-shadow:0 8px 22px rgba(5,54,65,.08);
}
.sales-inbox .venue-pick > span{display:grid;gap:3px;min-width:0;color:#103e49}
.sales-inbox .venue-pick strong{color:#0b3340}
.sales-inbox .venue-pick small{display:block;color:#5a6a72}
.sales-inbox .venue-search-placeholder{background:#baff00;color:#173000}
.sales-inbox-dismiss{border:0;border-radius:16px;padding:12px 14px;background:#f3f6f6;color:#3a4a52;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.sales-inbox-dismiss:hover{background:#ffe0dc;color:#831f16}
.sales-portal{overflow:visible}
.sales-hero h1{font-size:clamp(2rem,5.2vw,3.3rem);line-height:1.05;overflow:visible}
.sales-portal .portal-message{position:static;top:auto;max-width:none}.sales-home-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;margin:18px 0}.sales-home-action{display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;width:100%;min-width:0;box-sizing:border-box;padding:16px;border:1px solid rgba(7,65,80,.15);border-radius:18px;background:rgba(255,255,255,.82);color:#0b3340;text-align:left;font:inherit;cursor:pointer;box-shadow:0 8px 24px rgba(5,54,65,.07)}.sales-home-action>span{grid-row:1/3;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#dff8f7;color:#087f84;font-size:1.35rem;font-weight:950}.sales-home-action strong{align-self:end;font-size:.94rem;line-height:1.15}.sales-home-action small{align-self:start;color:#60747b;font-size:.73rem;font-weight:700}.sales-home-action.active{border-color:#8acb00;background:linear-gradient(135deg,#f8ffe7,#edfcff);box-shadow:inset 0 0 0 1px #8acb00,0 10px 28px rgba(80,135,0,.1)}.sales-home-action.active>span{background:#baff00;color:#173000}.sales-workspace-section{scroll-margin-top:86px}.sales-workspace-section>.sales-listed-hub,.sales-workspace-section>.sales-new-partner{padding:0;border:0;background:transparent}.sales-bars-filter{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;margin:4px 0 18px;padding:4px;border-radius:999px;background:#e8f1f1}.sales-bars-filter button{border:0;border-radius:999px;padding:10px 17px;background:transparent;color:#60747b;font:inherit;font-weight:900;cursor:pointer}.sales-bars-filter button.active{background:#092f3c;color:#fff;box-shadow:0 4px 12px rgba(5,54,65,.16)}
@media(max-width:760px){.sales-home-actions{grid-template-columns:1fr}.sales-home-action{padding:14px}.sales-workspace-section .sales-heading{align-items:stretch;flex-direction:column}.sales-workspace-section .sales-heading .btn{width:100%}.sales-bars-filter{display:grid;width:100%}}

/* Compact Google rating with a swipeable review preview. */
.google-place-widget{display:block;min-height:0}.google-review-summary{display:flex;align-items:center;gap:12px;padding-bottom:12px}.google-review-summary .eyebrow{margin:0 auto 0 0}.google-review-score{display:flex;align-items:center;gap:7px}.google-review-score>strong{font-size:1.55rem;line-height:1}.google-review-score>strong>span{font-size:.76rem;font-weight:800;color:#60747b}.google-review-count{color:#60747b;font-size:.8rem;font-weight:850;white-space:nowrap}.google-stars{display:inline-flex;gap:1px;color:#c6d0d1;white-space:nowrap}.google-stars .filled{color:#f6a700}.google-review-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,calc(50% - 5px));gap:10px;overflow-x:auto;padding:1px 1px 9px;scrollbar-color:#72d9d3 transparent;scrollbar-width:thin;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.google-review{min-height:138px;padding:13px 14px;border:1px solid rgba(7,65,80,.11);border-radius:15px;background:#fff;box-sizing:border-box;scroll-snap-align:start}.google-review header{display:flex;align-items:center;gap:9px;margin-bottom:7px}.google-review header>img,.google-review header>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#dff8f7;color:#087f84;object-fit:cover;font-weight:900}.google-review header>div{display:grid;gap:1px;min-width:0}.google-review header a,.google-review header strong{overflow:hidden;color:#0b3340;font-size:.83rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.google-review header small{color:#60747b;font-size:.68rem}.google-review>.google-stars{font-size:.8rem}.google-review p{display:-webkit-box;overflow:hidden;margin:7px 0 0;color:#31464d;font-size:.82rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:4}.google-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.google-review-action{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:9px 14px;border:2px solid #087f84;border-radius:14px;box-sizing:border-box;font-size:.8rem;font-weight:900;text-align:left;text-decoration:none}.google-review-action b{display:grid;place-items:center;width:25px;height:25px;flex:0 0 25px;border-radius:50%;font-size:1rem;line-height:1}.google-review-action.secondary{background:#fff;color:#087f84}.google-review-action.secondary b{background:#e4f8f7}.google-review-action.primary{background:#087f84;color:#fff;box-shadow:0 6px 16px rgba(8,127,132,.2)}.google-review-action.primary b{background:rgba(255,255,255,.18)}.google-review-action:hover,.google-review-action:focus-visible{box-shadow:0 7px 18px rgba(8,127,132,.22);transform:translateY(-1px)}.google-review-attribution{margin:9px 2px 0;color:#60747b;font-size:.7rem;text-align:center}.google-review-attribution b{color:#4285f4}.google-reviews-title{margin-bottom:9px}.google-reviews-title .eyebrow{margin:0}.google-ui-kit-content{position:relative;height:275px;overflow:auto;border:1px solid rgba(7,65,80,.11);border-radius:15px;background:#fff;overscroll-behavior:contain}.google-ui-kit-content .google-place-details{width:100%;max-width:none;height:440px;margin:0}.google-ui-kit-placeholder,.google-ui-kit-unavailable{display:grid;place-items:center;min-height:100%;margin:0;padding:22px;box-sizing:border-box;color:#60747b;font-size:.82rem;font-weight:800;text-align:center}.google-ui-kit-placeholder+.google-place-details{position:absolute;inset:0}.google-place-error{margin-top:0}
@media(max-width:560px){.google-review-summary{display:grid;grid-template-columns:1fr auto;gap:7px 10px}.google-review-summary .eyebrow{grid-column:1/-1}.google-review-score>strong{font-size:1.45rem}.google-review-count{text-align:right}.google-review-carousel{grid-auto-columns:86%}.google-review p{-webkit-line-clamp:4}.google-review-action{min-height:46px;padding:8px 10px;font-size:.74rem}.google-review-action b{width:22px;height:22px;flex-basis:22px}}

/* Recoverable removal for a salesperson's own Directory additions. */
.sales-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:18px;padding:18px 20px;border:1px solid rgba(167,43,39,.24);border-radius:17px;background:#fff4f1}.sales-danger-zone[hidden]{display:none}.sales-danger-zone strong{display:block;color:#7f201d}.sales-danger-zone p{margin:4px 0 0;color:#775b58;font-size:.8rem;line-height:1.45}.btn.danger{border-color:#a72b27;background:#a72b27;color:#fff;box-shadow:none}.btn.danger:hover,.btn.danger:focus-visible{background:#831f1c}.btn.danger:disabled{opacity:.48;cursor:not-allowed}.portal-confirm-dialog{width:min(520px,calc(100vw - 28px));max-width:none;padding:0;border:0;border-radius:24px;background:#fffdf7;color:#0b3340;box-shadow:0 26px 80px rgba(3,22,29,.34)}.portal-confirm-dialog::backdrop{background:rgba(2,18,25,.68);backdrop-filter:blur(3px)}.portal-confirm-dialog form{display:grid;gap:15px;padding:26px}.portal-confirm-dialog h2,.portal-confirm-dialog p{margin:0}.portal-confirm-dialog p:not(.eyebrow){color:#60747b;line-height:1.5}.portal-confirm-dialog label{display:grid;gap:7px;font-weight:900}.portal-confirm-dialog input{min-height:48px;padding:10px 13px;border:1px solid rgba(7,65,80,.28);border-radius:12px;background:#fff;font:inherit}.portal-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.portal-confirm-actions .btn{width:100%}
@media(max-width:560px){.sales-danger-zone{align-items:stretch;flex-direction:column}.sales-danger-zone .btn{width:100%}.portal-confirm-dialog form{padding:21px}.portal-confirm-actions{grid-template-columns:1fr}}

/* Football in Málaga — fixture-first, honest about unconfirmed screens. */
.football-page{padding-bottom:28px}.football-page .crumbs{margin-bottom:12px}.football-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:end;min-height:430px;overflow:hidden;padding:clamp(28px,5vw,62px);border-radius:30px;background:linear-gradient(90deg,rgba(3,14,25,.98) 0%,rgba(4,25,42,.91) 52%,rgba(5,30,47,.43) 100%),url(/assets/category-sports-v1.jpg) center/cover;color:#fff;box-shadow:0 24px 60px rgba(11,28,44,.25)}.football-hero:after{content:"";position:absolute;z-index:-1;inset:auto -10% -56% 31%;width:680px;aspect-ratio:1;border:2px solid rgba(20,198,255,.8);border-radius:50%;box-shadow:0 0 0 54px rgba(20,198,255,.18),0 0 0 108px rgba(20,198,255,.15),0 0 0 162px rgba(20,198,255,.11),0 0 45px #05a8ff}.football-radar{position:absolute;z-index:-1;top:-170px;right:-120px;width:560px;aspect-ratio:1;border:1px solid rgba(36,204,255,.42);border-radius:50%;background:conic-gradient(from 220deg,transparent 0 72%,rgba(116,255,225,.3) 77%,transparent 84%);filter:drop-shadow(0 0 16px rgba(10,184,255,.58))}.football-hero-copy{max-width:700px}.football-hero .kicker{margin:0 0 12px;color:var(--lime-hot);letter-spacing:.14em}.football-hero h1{max-width:780px;margin:0;font:900 clamp(2.65rem,7vw,5.6rem)/.88 Outfit,sans-serif;letter-spacing:-.065em;text-transform:uppercase}.football-hero h1 span{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.88);font-size:.63em;letter-spacing:-.04em}.football-hero-copy>p:not(.kicker){max-width:650px;margin:22px 0 0;color:#e2f0f3;font-size:clamp(.98rem,2vw,1.15rem);line-height:1.55}.football-hero-actions{display:flex;align-items:center;gap:18px;margin-top:27px}.football-hero-actions>a:not(.btn){color:#fff;font-weight:900;text-decoration:underline;text-underline-offset:5px}.football-hero-score{justify-self:end;width:160px;padding:17px;border:1px solid rgba(255,255,255,.28);border-radius:21px;background:rgba(4,22,35,.7);backdrop-filter:blur(12px);text-align:center}.football-hero-score span,.football-hero-score small{display:block;color:#cfe1e6;font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.football-hero-score strong{display:block;color:var(--lime-hot);font-size:4.2rem;line-height:1}.football-trust-strip{display:grid;grid-template-columns:repeat(3,1fr);margin:0 22px;border-radius:0 0 22px 22px;background:#fff;box-shadow:0 16px 38px rgba(11,28,44,.1)}.football-trust-strip>div{display:grid;gap:3px;padding:18px 22px}.football-trust-strip>div+div{border-left:1px solid var(--line)}.football-trust-strip b{color:var(--navy);font-size:.86rem}.football-trust-strip span{color:#667880;font-size:.76rem;line-height:1.4}.football-fixtures,.football-watch{padding-top:64px;scroll-margin-top:78px}.football-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.football-section-head .kicker{margin:0 0 4px;color:#087f84}.football-section-head h2{margin:0;font:900 clamp(2rem,5vw,3.6rem)/.96 Outfit,sans-serif;letter-spacing:-.05em}.football-section-head>p{max-width:320px;margin:0;color:#65767e;font-size:.78rem;font-weight:750;text-align:right}.football-filters{display:flex;gap:8px;overflow-x:auto;margin-bottom:15px;padding:2px 1px 8px;scrollbar-width:none}.football-filters::-webkit-scrollbar{display:none}.football-filters button{flex:0 0 auto;min-height:42px;padding:9px 15px;border:1px solid rgba(7,65,80,.18);border-radius:999px;background:#fff;color:#31505a;font:800 .82rem Outfit,sans-serif;cursor:pointer}.football-filters button[aria-pressed="true"]{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:inset 0 -3px 0 var(--lime)}.football-match-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.football-match{display:grid;grid-template-columns:108px minmax(0,1fr);min-width:0;overflow:hidden;border:1px solid rgba(7,65,80,.13);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(11,28,44,.07)}.football-match[hidden]{display:none!important}.football-match-featured{border-color:rgba(128,188,0,.5);box-shadow:0 12px 30px rgba(83,125,0,.1)}.football-date{display:grid;align-content:center;justify-items:center;gap:1px;padding:14px 9px;background:var(--navy);color:#fff;text-align:center}.football-date span{color:#9beaff;font-size:.68rem;font-weight:900;letter-spacing:.15em}.football-date strong{font-size:1.2rem;line-height:1.1}.football-date time{margin-top:8px;color:var(--lime-hot);font-size:1.12rem;font-weight:950}.football-match-main{display:grid;align-content:start;min-width:0;padding:17px}.football-match-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#087f84;font-size:.7rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.football-next-badge{padding:4px 7px;border-radius:999px;background:var(--lime);color:#173000;font-size:.63rem}.football-match h3{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin:12px 0 8px;color:var(--navy);font-size:1.05rem;line-height:1.15}.football-match h3 span:last-child{text-align:right}.football-match h3 em{color:#8a9aa0;font-size:.65rem;font-style:normal;text-transform:uppercase}.football-source{justify-self:start;color:#61737b;font-size:.67rem;font-weight:750;text-decoration:underline;text-underline-offset:3px}.football-unconfirmed,.football-confirmed{display:flex;align-items:center;justify-content:space-between;gap:11px;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}.football-unconfirmed>span{display:grid;gap:2px;color:#718087;font-size:.66rem;line-height:1.3}.football-unconfirmed b{color:#775b08;font-size:.7rem}.football-unconfirmed>a{flex:0 0 auto;padding:7px 9px;border-radius:10px;background:#fff2bd;color:#684d00;font-size:.68rem;font-weight:900}.football-confirmed strong{color:#427000}.football-confirmed a{color:#087f84;font-weight:900}.football-empty{padding:24px;border-radius:18px;background:#fff;color:#60747b;text-align:center}.football-watch-note{display:flex;align-items:center;gap:18px;margin-bottom:14px;padding:14px 18px;border-left:5px solid #f0bc19;border-radius:13px;background:#fff6d5}.football-watch-note strong{flex:0 0 280px;color:#624b00}.football-watch-note span{color:#665f46;font-size:.82rem;line-height:1.45}.football-map{height:370px;overflow:hidden;margin-bottom:18px;border:1px solid rgba(7,65,80,.14);border-radius:24px;background:#112b38;box-shadow:0 14px 34px rgba(11,28,44,.12)}.football-bar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.football-publisher{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:30px;margin-top:54px;padding:32px;border-radius:26px;background:linear-gradient(120deg,#071e2a,#07505d);color:#fff;box-shadow:0 18px 42px rgba(11,28,44,.2)}.football-publisher .kicker{margin:0;color:var(--lime)}.football-publisher h2{margin:5px 0;font-size:clamp(1.8rem,4vw,3rem)}.football-publisher p:not(.kicker){max-width:720px;margin:0;color:#d6e9eb;line-height:1.5}.football-faq{margin-top:54px}.football-sources{margin-top:20px;padding:22px;border:1px solid rgba(7,65,80,.13);border-radius:20px;background:rgba(255,255,255,.76)}.football-sources h2{margin:0 0 4px;font-size:1rem}.football-sources p{margin:0;color:#65767e;font-size:.77rem}.football-sources ul{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0;padding:0;list-style:none}.football-sources a{display:inline-flex;padding:7px 10px;border-radius:999px;background:#e7f8f6;color:#087f84;font-size:.72rem;font-weight:850}.football-page+.foot{margin-top:0}
@media(max-width:850px){.football-hero{grid-template-columns:1fr;min-height:510px}.football-hero-score{justify-self:start;margin-top:28px}.football-trust-strip{grid-template-columns:1fr}.football-trust-strip>div+div{border-top:1px solid var(--line);border-left:0}.football-match-list{grid-template-columns:1fr}.football-bar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.football-watch-note{align-items:flex-start;flex-direction:column;gap:4px}.football-watch-note strong{flex-basis:auto}.football-publisher{grid-template-columns:1fr;gap:18px}.football-publisher .btn{justify-self:start}}
@media(max-width:560px){.football-page{width:min(100% - 24px,1180px)}.football-hero{min-height:530px;padding:25px 20px;border-radius:23px;background-position:58% center}.football-hero:after{width:430px;inset:auto -42% -29% 12%}.football-radar{top:-100px;right:-220px;width:430px}.football-hero h1{font-size:clamp(2.45rem,13vw,4.25rem)}.football-hero h1 span{display:block;margin-top:8px;font-size:.51em;line-height:1.05}.football-hero-copy>p:not(.kicker){font-size:.94rem}.football-hero-actions{align-items:stretch;flex-direction:column;gap:13px}.football-hero-actions .btn{text-align:center}.football-hero-actions>a:not(.btn){text-align:center}.football-hero-score{display:grid;grid-template-columns:1fr auto;align-items:center;width:100%;box-sizing:border-box;text-align:left}.football-hero-score strong{grid-row:1/3;grid-column:2;font-size:3rem}.football-trust-strip{margin:0 10px}.football-trust-strip>div{padding:14px 16px}.football-fixtures,.football-watch{padding-top:46px}.football-section-head{align-items:flex-start;flex-direction:column;gap:8px}.football-section-head>p{text-align:left}.football-match{grid-template-columns:84px minmax(0,1fr)}.football-date strong{font-size:.95rem}.football-date time{font-size:1rem}.football-match-main{padding:14px}.football-match h3{font-size:.92rem}.football-unconfirmed{align-items:flex-start;flex-direction:column}.football-unconfirmed>a{align-self:stretch;text-align:center}.football-map{height:310px}.football-bar-grid{grid-template-columns:1fr}.football-publisher{padding:23px}.football-publisher .btn{width:100%;box-sizing:border-box;text-align:center}.football-sources ul{display:grid}.football-sources a{border-radius:11px}}

/* Partner-controlled football schedule. */
.football-all-toggle{display:flex;align-items:flex-start;gap:12px;margin:20px 0;padding:16px;border:1px solid rgba(43,184,176,.32);border-radius:18px;background:#f2fbfa}.football-all-toggle input{width:22px;height:22px;margin:2px 0 0;accent-color:#087f84}.football-all-toggle span{display:grid;gap:4px}.football-all-toggle small{color:#63777e;line-height:1.4}.portal-football-schedule{display:grid;gap:10px;margin:16px 0}.portal-football-match{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.72fr);gap:16px;padding:15px;border:1px solid rgba(7,65,80,.14);border-radius:18px;background:#fff;transition:border-color .18s,box-shadow .18s}.portal-football-match.selected{border-color:rgba(128,188,0,.62);box-shadow:inset 4px 0 0 #a8e600}.portal-football-choice{display:flex;align-items:flex-start;gap:11px}.portal-football-choice input{width:21px;height:21px;margin:2px 0 0;accent-color:#087f84}.portal-football-choice span{display:grid;gap:4px}.portal-football-choice small{color:#087f84;font-weight:850;text-transform:uppercase}.portal-football-choice b{font-size:1rem}.portal-football-choice em{padding:0 5px;color:#829198;font-size:.7rem;font-style:normal;text-transform:uppercase}.portal-football-offer{display:grid;gap:6px}.portal-football-offer>span{font-size:.78rem;font-weight:850}.portal-football-offer small{color:#718188;font-weight:600}.portal-football-offer input{width:100%;box-sizing:border-box;padding:11px;border:1px solid rgba(7,65,80,.2);border-radius:12px}.portal-football-offer input:disabled{background:#eef1ef;color:#8a9697}.football-showing-box{overflow:hidden;border:1px solid rgba(43,184,176,.34);background:linear-gradient(145deg,#061d2a,#073c49);color:#fff}.football-showing-box h2{display:flex;align-items:center;gap:9px;margin-bottom:4px;color:#fff}.football-showing-box>p{margin:0 0 14px;color:#cce2e5;font-size:.8rem}.bar-football-list{display:grid;gap:9px}.bar-football-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.07)}.bar-football-row time{color:#c8f024;font-size:.78rem;font-weight:900;text-align:center}.bar-football-row div{display:grid;gap:2px}.bar-football-row small{color:#8ee4e2;font-size:.65rem;font-weight:850;text-transform:uppercase}.bar-football-row b{font-size:.86rem}.football-offer-badge{display:inline-flex!important;width:max-content;margin-top:4px;padding:5px 8px;border-radius:999px;background:#c8f024;color:#173000!important;font-size:.68rem!important;font-weight:900}.football-confirmed{flex-wrap:wrap}.football-confirmed-links{display:flex;flex-wrap:wrap;gap:6px}.football-confirmed-link{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#e7f8f6;color:#087f84!important;font-size:.7rem}.football-confirmed-link.has-offer{background:#dfff73;color:#274000!important}.football-confirmed-link small{font-weight:900}.football-live-offer{flex-basis:100%;margin:2px 0 0;color:#4a6500;font-size:.69rem;font-weight:850}
@media(max-width:720px){.portal-football-match{grid-template-columns:1fr}.portal-football-offer{padding-left:32px}.bar-football-row{grid-template-columns:56px minmax(0,1fr)}}

/* Checkboxes sit beside their label, never stacked as full-width fields. */
.portal-subcard label:has(> input[type="checkbox"]),
.portal-subcard label:has(> input[type="radio"]),
.portal-form label:has(> input[type="checkbox"]),
.portal-form label:has(> input[type="radio"]),
.event-repeat-toggle,
.event-repeat-days label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.portal-subcard input[type="checkbox"],
.portal-subcard input[type="radio"],
.portal-form input[type="checkbox"],
.portal-form input[type="radio"],
.event-repeat-days input {
  width: 20px;
  min-width: 20px;
  height: 20px;
  margin: 2px 0 0;
  padding: 0;
  border-radius: 6px;
  accent-color: #087f84;
}
.event-repeat-days {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}

/* Week editor for opening hours — same data as the public bar page. */
.hours-late-note {
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid rgba(7,65,80,.14);
  border-radius: 14px;
  background: #f5ffff;
  color: #103e49;
  font-weight: 750;
}
.hours-late-note.is-late { background: #fff6d5; border-color: #f0bc19; }
.hours-editor { display: grid; gap: 8px; }
.hours-day {
  padding: 12px 14px;
  border: 1px solid rgba(7,65,80,.14);
  border-radius: 16px;
  background: #fff;
}
.hours-day.is-closed { background: #f7f8f6; }
.hours-day.is-unset { background: #fbfaf6; border-style: dashed; }
.hours-empty-note {
  margin: 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: #fff8e8;
  color: #5a4a20;
  font-size: .86rem;
  font-weight: 750;
  line-height: 1.4;
}
.hours-day header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.hours-day header strong { color: #103e49; }
.hours-switch {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #60747b;
  font-size: .82rem;
  font-weight: 800;
}
.hours-switch input { width: 20px; height: 20px; accent-color: #087f84; }
.hours-times {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto;
  align-items: end;
  gap: 8px;
  margin-top: 10px;
}
.hours-times label { display: grid; gap: 5px; font-size: .72rem; }
.hours-times input[type="time"] {
  width: 100%;
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid rgba(7,65,80,.16);
  border-radius: 14px;
  background: #f6fbfa;
  font: 600 15px Outfit, sans-serif;
}
.hours-times input[type="time"]:focus {
  outline: none;
  border-color: #087f84;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(8,127,132,.16);
}
.hours-tools { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 4px; }
.hours-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
}
.hours-preview strong { flex: 1 1 100%; color: #087f84; font-size: .78rem; }
.hours-preview span {
  padding: 7px 10px;
  border-radius: 999px;
  background: #e7f8f6;
  color: #103e49;
  font-size: .8rem;
  font-weight: 800;
}
.portal-form .btn.wide {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
}
@media (max-width: 640px) {
  .hours-times { grid-template-columns: 1fr; }
  .hours-times > span { display: none; }
}

.site-language {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border: 1px solid rgba(7, 65, 80, .14);
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
}
.site-language button {
  width: 38px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  opacity: .55;
}
.site-language button.active {
  background: #e4f7f4;
  box-shadow: 0 1px 5px rgba(7, 65, 80, .18);
  opacity: 1;
}
.site-language button:focus-visible {
  outline: 3px solid rgba(8, 127, 132, .28);
  outline-offset: 2px;
}
.spanish-content-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(8, 127, 132, .24);
  border-radius: 18px;
  background: #f3fbfa;
}
.spanish-content-fields legend {
  padding: 0 8px;
  color: #087f84;
  font-weight: 900;
}
.spanish-content-fields > .meta,
.spanish-content-fields > label:first-of-type {
  grid-column: 1 / -1;
}
.spanish-content-fields small {
  color: #60747b;
}
@media (max-width: 780px) {
  .site-language {
    margin-left: auto;
  }
  .site-language button {
    width: 35px;
    height: 30px;
    font-size: 19px;
  }
  .spanish-content-fields { grid-template-columns: 1fr; }
  .spanish-content-fields > label { grid-column: 1; }
}

/* Top Lists — extra discovery layer, same type and lime as the rest of www. */
.home-toplists { padding: 8px 0 36px; }
.home-toplists-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 14px;
}
.home-toplists-head h2 {
  margin: 0;
  color: var(--home-ink);
  font: 900 clamp(30px, 4vw, 44px)/1 Outfit, sans-serif;
  letter-spacing: -.045em;
}
.home-toplists-lead {
  margin: 8px 0 0;
  max-width: 36rem;
  color: var(--home-muted);
  font-size: 15px;
  font-weight: 650;
}
.home-toplists-more {
  color: #638000;
  font: 900 15px/1 Outfit, sans-serif;
  text-decoration: none;
  white-space: nowrap;
}
.home-toplists-more:focus-visible { outline: 3px solid var(--teal); outline-offset: 4px; }
.home-toplists .toplist-pills {
  justify-content: flex-start;
  max-width: none;
  margin: 0 0 16px;
}
.toplist-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 8px;
}
.toplist-pill {
  border: 1px solid rgba(16,38,58,.16);
  border-radius: 999px;
  padding: 7px 12px;
  background: #fff;
  color: var(--home-ink);
  font: 800 12px/1 Outfit, sans-serif;
  text-decoration: none;
  cursor: pointer;
}
.toplist-pill.on,
.toplist-pill[aria-current="page"] {
  background: var(--lime);
  border-color: var(--lime);
}
.toplist-pill:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.toplist-scroller { position: relative; }
.toplist-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 48px) / 4);
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 0;
  padding: 4px 2px 10px;
  -webkit-overflow-scrolling: touch;
}
.toplist-track:focus-visible { outline: 3px solid var(--teal); outline-offset: 4px; }
.toplist-card,
.toplist-feature,
.toplist-row {
  display: flex;
  color: inherit;
  text-decoration: none;
  background: var(--home-paper, #fff);
  border: 1px solid rgba(16,38,58,.14);
  border-radius: 14px;
  overflow: hidden;
  scroll-snap-align: start;
  transition: transform .2s ease, box-shadow .2s ease;
}
.toplist-card { flex-direction: column; min-width: 0; }
.toplist-card:hover,
.toplist-feature:hover,
.toplist-row:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(16,38,58,.1);
}
.toplist-card .toplist-media,
.toplist-feature .toplist-media { position: relative; overflow: hidden; background: #d7ecec; }
.toplist-card .ph,
.toplist-feature .ph { width: 100%; height: 168px; object-fit: cover; display: block; transition: transform .35s ease; }
.toplist-card:hover .ph,
.toplist-feature:hover .ph { transform: scale(1.03); }
.toplist-rank {
  position: absolute;
  z-index: 2;
  left: 10px;
  top: 10px;
  min-width: 34px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #0b1c2c;
  color: #fff;
  font: 900 13px/1 Outfit, sans-serif;
  letter-spacing: .04em;
}
.toplist-partner {
  position: absolute;
  z-index: 2;
  right: 10px;
  top: 10px;
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--lime);
  color: var(--navy);
  font: 900 10px/1 Outfit, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.toplist-body { display: flex; flex-direction: column; gap: 6px; padding: 14px 14px 16px; }
.toplist-card .toplist-body,
.toplist-feature .toplist-body { flex: 1; }
.toplist-card h3,
.toplist-feature h3,
.toplist-row h3 {
  margin: 0;
  font: 900 18px/1.1 Outfit, sans-serif;
  letter-spacing: -.03em;
}
.toplist-score {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin: 0;
  color: var(--home-ink, #10263a);
  font-size: 13px;
}
.toplist-score.is-empty {
  color: var(--home-muted, #60747b);
  font-weight: 800;
}
.toplist-score strong { font: 900 15px/1 Outfit, sans-serif; }
.toplist-score .google-stars { font-size: 13px; }
.toplist-score-count { color: var(--home-muted, #60747b); font-weight: 700; }
.toplist-card .sub,
.toplist-feature .sub,
.toplist-row .sub {
  margin: 0;
  color: var(--home-muted, #60747b);
  font-size: 13px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.toplist-card .tags,
.toplist-feature .tags,
.toplist-row .tags { opacity: .78; }
.toplist-card .tag,
.toplist-feature .tag,
.toplist-row .tag { font-size: 11px; padding: 4px 7px; }
.toplist-row .tags { margin-top: 4px; }
.toplist-arrow {
  position: absolute;
  top: 72px;
  z-index: 3;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #0b1c2c;
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.toplist-arrow.prev { left: -6px; }
.toplist-arrow.next { right: -6px; }
.toplist-arrow:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }

.top-lists-page { background: #f6f3ea; }
.top-lists-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin: 18px 0 28px;
  padding: clamp(36px, 6vw, 72px) clamp(22px, 5vw, 56px);
  border-radius: 28px;
  background:
    linear-gradient(90deg, rgba(246,243,234,.94) 0%, rgba(246,243,234,.55) 48%, rgba(246,243,234,.18) 100%),
    url(/assets/top-lists-hero-v1.jpg?v=20260916a) right center / cover no-repeat,
    #e7f4ea;
  color: var(--home-ink, #10263a);
}
.top-lists-hero h1 {
  margin: .1em 0 .15em;
  font: 900 clamp(48px, 8vw, 86px)/.92 Outfit, sans-serif;
  letter-spacing: -.055em;
}
.top-lists-sub {
  margin: 0 0 10px;
  font: 800 clamp(20px, 3vw, 28px)/1.1 Outfit, sans-serif;
}
.top-lists-lead { margin: 0; max-width: 34rem; font-size: 17px; font-weight: 650; }
.top-lists-dir {
  margin: 12px 0 0;
  max-width: 36rem;
  font-size: 15px;
  font-weight: 650;
  opacity: .88;
}
.top-lists-dir a { color: inherit; text-underline-offset: 2px; }
.toplist-pills-page {
  justify-content: flex-start;
  max-width: none;
  margin-bottom: 28px;
  overflow-x: auto;
  flex-wrap: nowrap;
  padding-bottom: 6px;
}
.toplist-entries {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
  margin: 8px 0 8px;
}
.toplist-feature { flex-direction: column; min-width: 0; grid-column: span 2; }
.toplist-feature .ph { height: 210px; }
.toplist-feature .toplist-rank { font-size: 15px; }
.toplist-rest-head {
  display: flex;
  justify-content: center;
  margin: 8px 0 16px;
  color: #8a97a0;
  font: 800 12px/1 Outfit, sans-serif;
  letter-spacing: .14em;
}
.toplist-rest-head span {
  display: flex;
  align-items: center;
  gap: 14px;
}
.toplist-rest-head span:before,
.toplist-rest-head span:after {
  content: "";
  width: 72px;
  height: 1px;
  background: rgba(16,38,58,.16);
}
.toplist-rest {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.toplist-entries:not(.is-paged) .toplist-entry:nth-child(n+22) { display: none; }
.toplist-entry.is-off { display: none !important; }
.toplist-row {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
  padding: 10px 14px 10px 10px;
  scroll-snap-align: unset;
  grid-column: span 3;
}
.toplist-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 16px;
  margin: 24px 0 8px;
}
.toplist-page-btn {
  border: 0;
  border-radius: 999px;
  background: #0b1c2c;
  color: #fff;
  font: 800 14px/1 Outfit, sans-serif;
  padding: 12px 18px;
  cursor: pointer;
}
.toplist-page-btn:disabled {
  opacity: .35;
  cursor: default;
}
.toplist-page-btn:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.toplist-page-status {
  margin: 0;
  min-width: 7rem;
  text-align: center;
  color: #0b1c2c;
  font: 800 14px/1 Outfit, sans-serif;
}
.toplist-row .toplist-rank {
  left: 6px;
  top: auto;
  bottom: 6px;
  min-width: 30px;
  padding: 4px 7px;
  font-size: 12px;
}
.toplist-row .toplist-media {
  position: relative;
  width: 100%;
  max-width: none;
  height: 96px;
  flex: 0 0 auto;
  border-radius: 10px;
  overflow: hidden;
  background: #d7ecec;
}
.toplist-row .ph {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  display: block;
}
.toplist-row .toplist-partner {
  right: 6px;
  top: 6px;
  padding: 4px 6px;
  font-size: 9px;
}
.toplist-row .toplist-body { min-width: 0; padding: 0; gap: 4px; }
.toplist-row .go-link { color: #638000; font: 800 13px/1 Outfit, sans-serif; white-space: nowrap; }
.toplist-feature .go-btn {
  margin-top: auto;
  align-self: flex-start;
  background: var(--lime);
  color: var(--navy);
  font: 900 13px/1 Outfit, sans-serif;
  padding: 8px 12px;
  border-radius: 999px;
}
@media (max-width: 1100px) {
  .toplist-track { grid-auto-columns: calc((100% - 16px) / 2); }
  .toplist-top3 { grid-template-columns: 1fr; }
  .toplist-rest { grid-template-columns: 1fr; }
  .toplist-feature,
  .toplist-row { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .home-toplists-head { display: block; }
  .home-toplists-more { display: inline-block; margin-top: 12px; }
  .toplist-pills { justify-content: flex-start; max-width: none; flex-wrap: nowrap; overflow-x: auto; }
  .toplist-track { grid-auto-columns: 78%; }
  .toplist-arrow { display: none; }
  .top-lists-hero { padding: 28px 20px; background-position: 72% center; }
  .toplist-row {
    grid-template-columns: 104px minmax(0, 1fr);
    align-items: end;
    padding: 10px;
    gap: 10px;
  }
  .toplist-row .toplist-media { height: 88px; max-width: none; }
  .toplist-row .go-link { display: none; }
  .toplist-entries:not(.is-paged) .toplist-entry:nth-child(n+11) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .toplist-card,
  .toplist-feature,
  .toplist-row,
  .toplist-card .ph,
  .toplist-feature .ph { transition: none; }
}
