/* Age gate always follows the admin-selected primary theme color on every public page. */
.age-gate {
  --primary: #ff007b !important;
}

/* Header CTA text must stay white even when the dynamic link-color rule changes all links. */
html body .site-header .header-bar a.post-free-ads,
html body.city-page .site-header .header-bar a.post-free-ads,
html body .site-header .header-bar a.post-free-ads:visited,
html body .site-header .header-bar a.post-free-ads:hover,
html body .site-header .header-bar a.post-free-ads:focus {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Admin controlled colors: home + city pages only */
      html {
        background: #ffffff !important;
        background-color: #ffffff !important;
        color: #000000 !important;
      }
      body.city-page {
        --bg: #ffffff !important;
        --surface: #ffffff !important;
        --card: #ffffff !important;
        --footer-bg: #ffffff !important;
        --text: #000000 !important;
        --muted: #000000 !important;
        --footer-text: #000000 !important;
        --primary: #ff007b !important;
        --border: #ff007b !important;
      }

      body.city-page,
      body.city-page .site-header,
      body.city-page header,
      body.city-page header.site-header,
      body.city-page .site-header .container,
      body.city-page .site-header .header-bar,
      body.city-page main,
      body.city-page main.container,
      body.city-page .container,
      body.city-page .city-head,
      body.city-page .home-city-head,
      body.city-page .city-description,
      body.city-page .home-city-description,
      body.city-page .city-shortcode,
      body.city-page .breadcrumb-wrap,
      body.city-page .site-footer,
      body.city-page footer.site-footer,
      body.city-page .site-footer .container,
      body.city-page .footer-inner,
      body.city-page .footer-links,
      body.city-page .footer-copy-wrap,
      body.city-page .city-footer-dropdown {
        background: #ffffff !important;
        background-color: #ffffff !important;
        color: #000000 !important;
      }

      body.city-page,
      body.city-page .breadcrumb,
      body.city-page .breadcrumb-item.active,
      body.city-page .footer-copy,
      body.city-page .footer-sep,
      body.city-page .city-footer-dropdown,
      body.city-page .city-footer-dropdown *:not(a),
      body.city-page .city-head,
      body.city-page .city-head h1,
      body.city-page .city-head h2,
      body.city-page .home-city-head h1,
      body.city-page .home-city-head h2,
      body.city-page .city-description,
      body.city-page .home-city-description,
      body.city-page .city-shortcode,
      body.city-page .city-description p,
      body.city-page .home-city-description p,
      body.city-page .city-shortcode p,
      body.city-page .city-description li,
      body.city-page .home-city-description li,
      body.city-page .city-shortcode li,
      body.city-page .city-description h1,
      body.city-page .city-description h2,
      body.city-page .city-description h3,
      body.city-page .city-description h4,
      body.city-page .city-description h5,
      body.city-page .city-description h6,
      body.city-page .home-city-description h1,
      body.city-page .home-city-description h2,
      body.city-page .home-city-description h3,
      body.city-page .home-city-description h4,
      body.city-page .home-city-description h5,
      body.city-page .home-city-description h6,
      body.city-page .city-shortcode h1,
      body.city-page .city-shortcode h2,
      body.city-page .city-shortcode h3,
      body.city-page .city-shortcode h4,
      body.city-page .city-shortcode h5,
      body.city-page .city-shortcode h6,
      body.city-page .city-description strong,
      body.city-page .home-city-description strong,
      body.city-page .city-shortcode strong,
      body.city-page .city-description b,
      body.city-page .home-city-description b,
      body.city-page .city-shortcode b,
      body.city-page .city-description em,
      body.city-page .home-city-description em,
      body.city-page .city-shortcode em,
      body.city-page .city-description div,
      body.city-page .home-city-description div,
      body.city-page .city-shortcode div,
      body.city-page .city-description span,
      body.city-page .home-city-description span,
      body.city-page .city-shortcode span,
      body.city-page .city-description table,
      body.city-page .home-city-description table,
      body.city-page .city-shortcode table,
      body.city-page .city-description thead,
      body.city-page .home-city-description thead,
      body.city-page .city-shortcode thead,
      body.city-page .city-description tbody,
      body.city-page .home-city-description tbody,
      body.city-page .city-shortcode tbody,
      body.city-page .city-description tr,
      body.city-page .home-city-description tr,
      body.city-page .city-shortcode tr,
      body.city-page .city-description th,
      body.city-page .home-city-description th,
      body.city-page .city-shortcode th,
      body.city-page .city-description td,
      body.city-page .home-city-description td,
      body.city-page .city-shortcode td,
      body.city-page .city-description .table,
      body.city-page .home-city-description .table,
      body.city-page .city-shortcode .table,
      body.city-page .city-description .table th,
      body.city-page .home-city-description .table th,
      body.city-page .city-shortcode .table th,
      body.city-page .city-description .table td,
      body.city-page .home-city-description .table td,
      body.city-page .city-shortcode .table td {
        color: #000000 !important;
      }

      /* Force text color on EVERY element inside admin content, including
         elements that the rich-text editor gave an inline style="color:.."
         or a <font color> attribute. Links and contact buttons excluded. */
      body.city-page .city-head *:not(a):not(.btn):not(.fixed-contact-btn):not([class*="contact"]),
      body.city-page .home-city-head *:not(a):not(.btn):not(.fixed-contact-btn):not([class*="contact"]),
      body.city-page .city-description *:not(a):not(.btn):not(.fixed-contact-btn):not([class*="contact"]),
      body.city-page .home-city-description *:not(a):not(.btn):not(.fixed-contact-btn):not([class*="contact"]),
      body.city-page .city-shortcode *:not(a):not(.btn):not(.fixed-contact-btn):not([class*="contact"]) {
        color: #000000 !important;
      }
      body.city-page .city-head font[color],
      body.city-page .home-city-head font[color],
      body.city-page .city-description font[color],
      body.city-page .home-city-description font[color],
      body.city-page .city-shortcode font[color] {
        color: #000000 !important;
      }

      /* CONTENT TEXT COLOR — target real rich-text elements instead of a
         universal body.city-page * selector. This keeps editor text colours
         under the theme while substantially reducing style-matching work on
         large city pages. */
      body.city-page,
      body.city-page .city-description :where(p,li,h1,h2,h3,h4,h5,h6,span,div,section,article,strong,b,em,small,blockquote,table,thead,tbody,tr,th,td,label),
      body.city-page .home-city-description :where(p,li,h1,h2,h3,h4,h5,h6,span,div,section,article,strong,b,em,small,blockquote,table,thead,tbody,tr,th,td,label),
      body.city-page .city-shortcode :where(p,li,h1,h2,h3,h4,h5,h6,span,div,section,article,strong,b,em,small,blockquote,table,thead,tbody,tr,th,td,label) {
        color: #000000 !important;
      }

      /* Contact buttons stay LOCKED white — undo the wildcard above for the
         buttons themselves AND every element inside them (span, svg, svg *, i). */
      body.city-page .fixed-contact-bar,
      body.city-page .fixed-contact-bar *,
      body.city-page .fixed-contact-btn,
      body.city-page .fixed-contact-btn *,
      body.city-page a.btn.phone,
      body.city-page a.btn.phone *,
      body.city-page a.btn.whatsapp,
      body.city-page a.btn.whatsapp *,
      body.city-page .btn.phone,
      body.city-page .btn.phone *,
      body.city-page .btn.whatsapp,
      body.city-page .btn.whatsapp * {
        color: #ffffff !important;
        fill: #ffffff !important;
      }

      body.city-page .city-description table,
      body.city-page .home-city-description table,
      body.city-page .city-shortcode table,
      body.city-page .city-description th,
      body.city-page .home-city-description th,
      body.city-page .city-shortcode th,
      body.city-page .city-description td,
      body.city-page .home-city-description td,
      body.city-page .city-shortcode td,
      body.city-page .city-description .table th,
      body.city-page .home-city-description .table th,
      body.city-page .city-shortcode .table th,
      body.city-page .city-description .table td,
      body.city-page .home-city-description .table td,
      body.city-page .city-shortcode .table td {
        background: #ffffff !important;
        background-color: #ffffff !important;
        border-color: #ff007b !important;
      }

      body.city-page a:not(.btn):not(.fixed-contact-btn),
      body.city-page a:not(.btn):not(.fixed-contact-btn) strong,
      body.city-page .brand a,
      body.city-page .breadcrumb a,
      body.city-page .footer-link,
      body.city-page .footer-link:visited,
      body.city-page .footer-link:hover,
      body.city-page .footer-link:focus,
      body.city-page .city-description a:not(.btn):not(.fixed-contact-btn),
      body.city-page .home-city-description a:not(.btn):not(.fixed-contact-btn),
      body.city-page .city-shortcode a:not(.btn):not(.fixed-contact-btn) {
        color: #ff007b !important;
      }

      body.city-page .chip.active,
      body.city-page .city-link:hover {
        background: #ff007b !important;
        background-color: #ff007b !important;
        border-color: #ff007b !important;
        color: #000000 !important;
      }

      /* Contact buttons are locked: admin home/city text/primary color will not change their font color. */
      body.city-page .fixed-contact-bar {
        background: #000000 !important;
        background-color: #000000 !important;
      }
      body.city-page .btn.phone,
      body.city-page a.btn.phone,
      body.city-page .fixed-contact-btn.call,
      body.city-page a.fixed-contact-btn.call {
        background: #b0004b !important;
        background-color: #b0004b !important;
        border-color: #b0004b !important;
        color: #ffffff !important;
      }
      body.city-page .btn.whatsapp,
      body.city-page a.btn.whatsapp,
      body.city-page .fixed-contact-btn.whatsapp,
      body.city-page a.fixed-contact-btn.whatsapp {
        background: #075e24 !important;
        background-color: #075e24 !important;
        border-color: #075e24 !important;
        color: #ffffff !important;
      }
      body.city-page .btn.telegram,
      body.city-page a.btn.telegram,
      body.city-page .fixed-contact-btn.telegram,
      body.city-page a.fixed-contact-btn.telegram {
        background: #229ED9 !important;
        background-color: #229ED9 !important;
        border-color: #229ED9 !important;
        color: #ffffff !important;
      }
      body.city-page .fixed-contact-btn {
        flex: 1 1 0 !important;
        width: auto !important;
      }
      body.city-page .btn.phone span,
      body.city-page .btn.whatsapp span,
      body.city-page .btn.telegram span,
      body.city-page .btn.phone svg,
      body.city-page .btn.whatsapp svg,
      body.city-page .btn.telegram svg,
      body.city-page .btn.phone svg *,
      body.city-page .btn.whatsapp svg *,
      body.city-page .btn.telegram svg *,
      body.city-page .btn.phone i,
      body.city-page .btn.whatsapp i,
      body.city-page .btn.telegram i,
      body.city-page .fixed-contact-btn span,
      body.city-page .fixed-contact-btn.call span,
      body.city-page .fixed-contact-btn.whatsapp span,
      body.city-page .fixed-contact-btn.telegram span,
      body.city-page .fixed-contact-btn svg,
      body.city-page .fixed-contact-btn svg *,
      body.city-page .fixed-contact-btn i {
        color: #ffffff !important;
        fill: #ffffff !important;
      }

      body.city-page .site-header,
      body.city-page .site-footer,
      body.city-page .city-footer-dropdown,
      body.city-page .city-footer-select,
      body.city-page .gallery-item,
      body.city-page .gallery-grid .gallery-item,
      body.city-page .city-description .gallery-item,
      body.city-page .home-city-description .gallery-item,
      body.city-page .city-shortcode .gallery-item {
        border-color: #ff007b !important;
      }

      body.city-page .site-header,
      body.city-page .site-footer,
      body.city-page .city-footer-dropdown {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
      }

      body.city-page .site-header,
      body.city-page header.site-header,
      body.city-page .site-header .container,
      body.city-page .site-header .header-bar {
        background: #ffffff !important;
        background-color: #ffffff !important;
        color: #000000 !important;
      }

      body.city-page .city-footer-select,
      body.city-page .city-footer-select option {
        background: #ffffff !important;
        background-color: #ffffff !important;
        color: #000000 !important;
        border-color: #ff007b !important;
      }

      body.city-page .gallery-item,
      body.city-page .gallery-grid .gallery-item,
      body.city-page .city-description .gallery-item,
      body.city-page .home-city-description .gallery-item,
      body.city-page .city-shortcode .gallery-item {
        border: 3px solid #ff007b !important;
      }

      body.city-page .gallery-img,
      body.city-page .gallery-item img,
      body.city-page .post-image,
      body.city-page .list-thumb,
      body.city-page .card-img {
        border: 0 !important;
      }

      /* ============================================================
         FINAL LOCK (placed last = highest priority):
         Contact button font + icon ALWAYS white, never affected by
         the home/city color picker. Extra :not() chains push the
         specificity ABOVE the content rule (0,5,2) so white wins.
         ============================================================ */
      html body.city-page .fixed-contact-bar:not(#x):not(#y):not(#z),
      html body.city-page .fixed-contact-bar:not(#x):not(#y):not(#z) *,
      html body.city-page .fixed-contact-btn:not(#x):not(#y):not(#z),
      html body.city-page .fixed-contact-btn:not(#x):not(#y):not(#z) *,
      html body.city-page a.fixed-contact-btn:not(#x):not(#y):not(#z),
      html body.city-page a.fixed-contact-btn:not(#x):not(#y):not(#z) *,
      html body.city-page a.btn.phone:not(#x):not(#y):not(#z),
      html body.city-page a.btn.phone:not(#x):not(#y):not(#z) *,
      html body.city-page a.btn.whatsapp:not(#x):not(#y):not(#z),
      html body.city-page a.btn.whatsapp:not(#x):not(#y):not(#z) *,
      html body.city-page a.btn.telegram:not(#x):not(#y):not(#z),
      html body.city-page a.btn.telegram:not(#x):not(#y):not(#z) *,
      html body.city-page .btn.phone:not(#x):not(#y):not(#z),
      html body.city-page .btn.phone:not(#x):not(#y):not(#z) *,
      html body.city-page .btn.whatsapp:not(#x):not(#y):not(#z),
      html body.city-page .btn.whatsapp:not(#x):not(#y):not(#z) *,
      html body.city-page .btn.telegram:not(#x):not(#y):not(#z),
      html body.city-page .btn.telegram:not(#x):not(#y):not(#z) * {
        color: #ffffff !important;
        fill: #ffffff !important;
      }

      /* 56-city internal-link buttons above the footer */
      body.city-page .city-interlinks {
        width: 100%;
        margin: 18px 0 8px;
        padding: 14px;
        background: #ffffff !important;
        background-color: #ffffff !important;
        border: 0 !important;
        border-radius: 12px;
        box-shadow: none !important;
      }
      body.city-page .city-interlinks-title {
        margin: 0 0 12px !important;
        text-align: center;
        font-size: 18px !important;
        line-height: 1.3 !important;
        font-weight: 800;
        color: #000000 !important;
      }
      body.city-page .city-interlink-grid {
        display: grid;
        grid-template-columns: repeat(8, minmax(0, 1fr));
        gap: 7px;
      }
      html body.city-page a.city-interlink-btn,
      html body.city-page a.city-interlink-btn:visited,
      html body.city-page a.city-interlink-btn:hover,
      html body.city-page a.city-interlink-btn:focus {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 38px;
        padding: 7px 6px;
        border: 1px solid #ff007b !important;
        border-radius: 8px;
        background: #ffffff !important;
        background-color: #ffffff !important;
        color: #111111 !important;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.2;
        text-align: center;
        text-decoration: none !important;
        overflow-wrap: anywhere;
        transition: transform .18s ease, filter .18s ease;
      }
      html body.city-page a.city-interlink-btn:hover,
      html body.city-page a.city-interlink-btn:focus {
        transform: translateY(-1px);
        background: #f2f2f2 !important;
        background-color: #f2f2f2 !important;
        color: #111111 !important;
        filter: none;
      }
      @media (max-width: 900px) {
        body.city-page .city-interlink-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
      }
      @media (max-width: 600px) {
        body.city-page .city-interlinks {
          width: calc(100% + 10px);
          margin-left: -5px;
          margin-right: -5px;
          padding: 10px 5px;
          border-radius: 9px;
        }
        body.city-page .city-interlinks-title { font-size: 16px !important; }
        body.city-page .city-interlink-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 6px;
        }
        html body.city-page a.city-interlink-btn,
        html body.city-page a.city-interlink-btn:visited,
        html body.city-page a.city-interlink-btn:hover,
        html body.city-page a.city-interlink-btn:focus {
          min-height: 36px;
          padding: 7px 5px;
          font-size: 12px;
        }
      }

      /* Final H1 font size: home + city pages */
      html body.city-page h1,
      html body.city-page .page-title,
      html body.city-page .city-head h1,
      html body.city-page .home-city-head h1,
      html body.city-page .city-description h1,
      html body.city-page .home-city-description h1,
      html body.city-page .city-shortcode h1,
      html body.city-page main.container h1,
      html body.city-page h1.brand,
      html body.city-page h1.brand a {
        font-size: 18px !important;
        line-height: 1.35 !important;
      }




      /* === EXPLORE CARD LAYOUT FINAL FIX === */
      body.city-page .city-interlinks {
        border: 0 !important;
        box-shadow: none !important;
      }
      html body.city-page a.city-interlink-btn,
      html body.city-page a.city-interlink-btn:visited,
      html body.city-page a.city-interlink-btn:hover,
      html body.city-page a.city-interlink-btn:focus {
        border: 1px solid #ff007b !important;
      }
      /* === EXPLORE CARD LAYOUT FINAL FIX END === */

/* Age verification: force every text node white. This is intentionally at the
   end of theme.css because theme.css loads after the base stylesheet. */
html body #ageVerificationGate,
html body #ageVerificationGate * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body #ageVerificationGate .age-gate-enter,
html body #ageVerificationGate .age-gate-exit,
html body #ageVerificationGate button,
html body #ageVerificationGate button * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Final header CTA override: keep Post Free Ads text white in every state. */
html body .site-header .header-bar a.post-free-ads,
html body .site-header .header-bar a.post-free-ads:link,
html body .site-header .header-bar a.post-free-ads:visited,
html body .site-header .header-bar a.post-free-ads:hover,
html body .site-header .header-bar a.post-free-ads:focus,
html body .site-header .header-bar a.post-free-ads:active {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Legal / info pages use the same city theme. */
body.city-page .legal-static,
body.city-page .legal-static .city-description,
body.city-page .footer-grid,
body.city-page .footer-col,
body.city-page .footer-title,
body.city-page .footer-links,
body.city-page .footer-copy-wrap {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #000000 !important;
}
body.city-page .footer-title {
  margin: 0 0 10px;
  font-weight: 700;
  font-size: 15px;
}
body.city-page .footer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  padding: 18px 0 8px;
}
body.city-page .footer-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.city-page .footer-link,
body.city-page .footer-link:visited {
  color: #ff007b !important;
  text-decoration: none;
}
body.city-page .footer-link:hover,
body.city-page .footer-link:focus {
  color: #000000 !important;
  text-decoration: underline;
}
html body.city-page .legal-static a.legal-btn,
html body.city-page .legal-static a.legal-btn:link,
html body.city-page .legal-static a.legal-btn:visited,
html body.city-page .legal-static a.legal-btn:hover,
html body.city-page .legal-static a.legal-btn:focus,
html body.city-page .legal-static a.legal-btn:active,
html body.city-page .legal-static a.legal-btn.secondary,
html body.city-page .legal-static a.legal-btn.secondary:hover,
html body.city-page .city-description a.legal-btn,
html body.city-page .city-description a.legal-btn:hover,
html body.city-page .legal-static a.legal-btn *,
html body.city-page .legal-static a.city-interlink-btn,
html body.city-page .legal-static a.city-interlink-btn:link,
html body.city-page .legal-static a.city-interlink-btn:visited,
html body.city-page .legal-static a.city-interlink-btn:hover,
html body.city-page .legal-static a.city-interlink-btn:focus,
html body.city-page .legal-static a.city-interlink-btn:active,
html body.city-page .legal-static .legal-more a,
html body.city-page .legal-static .legal-more a:hover,
html body.city-page .legal-static .link-cards a,
html body.city-page .legal-static .link-cards a:hover,
html body.city-page .legal-static .link-cards a strong,
html body.city-page .legal-static .link-cards a span {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body.city-page .legal-static a.legal-btn,
html body.city-page .city-description a.legal-btn,
html body.city-page .legal-static a.legal-btn.secondary,
html body.city-page .legal-static a.city-interlink-btn,
html body.city-page .legal-static .legal-more a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 8px 8px 8px 0;
  padding: 11px 16px;
  border-radius: 10px;
  background: #ff007b !important;
  background-color: #ff007b !important;
  border: 1px solid #ff007b !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 700;
}
body.city-page .legal-static .link-cards {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
body.city-page .legal-static .link-cards a {
  display: block;
  border: 1px solid #ff007b !important;
  border-radius: 12px;
  padding: 14px;
  text-decoration: none;
  background: transparent !important;
}
body.city-page .legal-static .legal-more {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
body.city-page .copy-wrap,
body.city-page .footer-copy-wrap {
  border-top: 1px solid #ff007b !important;
  padding-top: 12px;
}
@media (max-width: 800px) {
  body.city-page .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  body.city-page .footer-grid { grid-template-columns: 1fr; }
}

/* ===== Footer redesign: text links only, each page URL once ===== */
.site-footer,
body.city-page .site-footer,
body.city-page footer.site-footer {
  margin-top: 18px !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #000000 !important;
  border-top: 2px solid #ff007b !important;
}
.site-footer .footer-inner,
body.city-page .site-footer .footer-inner {
  padding-top: 26px !important;
  padding-bottom: 16px !important;
  background: transparent !important;
}
.site-footer .footer-grid,
body.city-page .site-footer .footer-grid {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.45fr) repeat(3, minmax(150px, 1fr)) !important;
  gap: 26px !important;
  padding: 0 0 22px !important;
  background: transparent !important;
  text-align: left !important;
}
.site-footer .footer-col,
body.city-page .site-footer .footer-col {
  min-width: 0;
  background: transparent !important;
  text-align: left !important;
}
.site-footer .footer-title,
body.city-page .site-footer .footer-title {
  display: block !important;
  margin: 0 0 11px !important;
  padding: 0 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.site-footer .footer-site-title,
body.city-page .site-footer .footer-site-title {
  color: #ff007b !important;
  -webkit-text-fill-color: #ff007b !important;
  font-size: 19px !important;
  font-weight: 900 !important;
}
.site-footer .footer-description,
body.city-page .site-footer .footer-description {
  max-width: 430px;
  margin: 0 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  text-align: left !important;
  opacity: .88;
}
.site-footer .footer-links,
body.city-page .site-footer .footer-links {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 7px !important;
  background: transparent !important;
  text-align: left !important;
}
.site-footer .footer-link,
.site-footer .footer-link:link,
.site-footer .footer-link:visited,
body.city-page .site-footer .footer-link,
body.city-page .site-footer .footer-link:link,
body.city-page .site-footer .footer-link:visited {
  display: inline !important;
  min-height: 0 !important;
  width: auto !important;
  padding: 2px 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #ff007b !important;
  -webkit-text-fill-color: #ff007b !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  text-align: left !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.site-footer .footer-link:hover,
.site-footer .footer-link:focus-visible,
body.city-page .site-footer .footer-link:hover,
body.city-page .site-footer .footer-link:focus-visible {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.site-footer .footer-copy-wrap,
body.city-page .site-footer .footer-copy-wrap {
  margin-top: 0 !important;
  padding-top: 14px !important;
  border-top: 1px solid #ff007b !important;
  background: transparent !important;
  text-align: center !important;
}
.site-footer .footer-copyright,
body.city-page .site-footer .footer-copyright {
  margin: 0 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  text-align: center !important;
  opacity: .82;
}
@media (max-width: 900px) {
  .site-footer .footer-grid,
  body.city-page .site-footer .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px 28px !important;
  }
  .site-footer .footer-brand-col,
  body.city-page .site-footer .footer-brand-col {
    grid-column: 1 / -1;
  }
}
@media (max-width: 560px) {
  .site-footer .footer-inner,
  body.city-page .site-footer .footer-inner {
    padding-top: 22px !important;
  }
  .site-footer .footer-grid,
  body.city-page .site-footer .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .site-footer .footer-col,
  .site-footer .footer-title,
  .site-footer .footer-description,
  .site-footer .footer-links,
  body.city-page .site-footer .footer-col,
  body.city-page .site-footer .footer-title,
  body.city-page .site-footer .footer-description,
  body.city-page .site-footer .footer-links {
    text-align: center !important;
    align-items: center !important;
  }
  .site-footer .footer-description,
  body.city-page .site-footer .footer-description {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .site-footer .footer-link,
  body.city-page .site-footer .footer-link {
    text-align: center !important;
  }
}


/* === ACCESSIBILITY + FIXED CONTACT PATCH 2026-10-02 === */
/* Readable content even when admin accidentally saves the same text/background color. */
html body.city-page,
html body.city-page .breadcrumb,
html body.city-page .breadcrumb-item.active,
html body.city-page .city-head,
html body.city-page .city-head h1,
html body.city-page .home-city-head h1,
html body.city-page .city-description,
html body.city-page .home-city-description,
html body.city-page .city-shortcode,
html body.city-page .city-description :where(p,li,h1,h2,h3,h4,h5,h6,span,div,strong,b,em,small,blockquote,th,td),
html body.city-page .home-city-description :where(p,li,h1,h2,h3,h4,h5,h6,span,div,strong,b,em,small,blockquote,th,td),
html body.city-page .city-shortcode :where(p,li,h1,h2,h3,h4,h5,h6,span,div,strong,b,em,small,blockquote,th,td),
html body.city-page .footer-title,
html body.city-page .footer-description,
html body.city-page .footer-copyright {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Links use the theme primary only when it is readable on the selected background. */
html body.city-page .brand a,
html body.city-page .breadcrumb a,
html body.city-page .public-post-card h2 a,
html body.city-page .city-description a:not(.btn):not(.fixed-contact-btn),
html body.city-page .home-city-description a:not(.btn):not(.fixed-contact-btn),
html body.city-page .city-shortcode a:not(.btn):not(.fixed-contact-btn),
html body.city-page .site-footer .footer-link,
html body.city-page .site-footer .footer-link:visited {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Lighthouse contrast: CTA and pagination select black/white text automatically. */
html body .post-free-ads,
html body .post-free-ads:link,
html body .post-free-ads:visited,
html body .post-free-ads:hover,
html body .post-free-ads:focus,
html body.city-page .post-page-btn {
  background: #ff007b !important;
  background-color: #ff007b !important;
  border-color: #ff007b !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* City interlinks stay white/dark for guaranteed contrast, independent of theme color. */
html body.city-page a.city-interlink-btn,
html body.city-page a.city-interlink-btn:link,
html body.city-page a.city-interlink-btn:visited,
html body.city-page a.city-interlink-btn:hover,
html body.city-page a.city-interlink-btn:focus {
  min-height: 44px !important;
  padding: 9px 7px !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
}

/* 44px minimum touch target for Lighthouse/mobile accessibility. */
html body.city-page .site-footer .footer-link,
html body.city-page .site-footer .footer-link:link,
html body.city-page .site-footer .footer-link:visited {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding: 10px 2px !important;
  line-height: 1.4 !important;
}
html body.city-page .city-description p > strong > a:not(.btn),
html body.city-page .home-city-description p > strong > a:not(.btn),
html body.city-page .city-shortcode p > strong > a:not(.btn) {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding: 8px 2px !important;
}

/* Fixed contact bar is emitted after the footer; keep it viewport-fixed and visible. */
html body .fixed-contact-bar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 999999 !important;
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  min-height: 48px !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: hidden !important;
  background: #000000 !important;
}
html body.has-fixed-contact { padding-bottom: 48px !important; }
html body .fixed-contact-btn {
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 48px !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body .fixed-contact-btn *,
html body .fixed-contact-btn svg,
html body .fixed-contact-btn svg * { color:#ffffff !important; fill:#ffffff !important; }
html body .fixed-contact-btn.call { background:#b0004b !important; }
html body .fixed-contact-btn.whatsapp { background:#075e24 !important; }
html body .fixed-contact-btn.telegram { background:#0b6fa4 !important; }
/* === END ACCESSIBILITY + FIXED CONTACT PATCH === */

/* === FINAL FOOTER LINK WCAG CONTRAST OVERRIDE 2026-10-02 ===
   theme.css loads after site.min.css, so footer links must use the computed
   accessible link color here rather than the raw admin primary color. */
html body.city-page footer.site-footer a.footer-link,
html body.city-page footer.site-footer a.footer-link:link,
html body.city-page footer.site-footer a.footer-link:visited,
html body.city-page footer.site-footer a.footer-link:hover,
html body.city-page footer.site-footer a.footer-link:focus,
html body.city-page footer.site-footer a.footer-link:focus-visible,
html body.city-page footer.site-footer a.footer-link:active {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px !important;
}
/* === END FINAL FOOTER LINK WCAG CONTRAST OVERRIDE === */
