/* YOSUTRAVELS_CLIENT_EXPERIENCE_CLEANUP_V283
   Replaces noisy V282 visual rules. Client UI only: icons, dark-mode contrast,
   cards, buttons, and quick action visibility. No business logic. */

:root {
  --yt-client-ink: #10241c;
  --yt-client-muted: #637066;
  --yt-client-lime: #9bb400;
  --yt-client-lime-soft: #e7ef88;
  --yt-client-cream: #fffdf4;
  --yt-client-surface: rgba(255, 255, 255, 0.96);
  --yt-client-line: rgba(16, 36, 28, 0.13);
  --yt-client-shadow: 0 18px 54px rgba(16, 36, 28, 0.09);
  --yt-client-radius: 28px;
  --yt-client-radius-md: 20px;
  --yt-client-font: "Inter", "Manrope", "Plus Jakarta Sans", "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body:not(.admin-layout):not(.admin-body) {
  color: var(--yt-client-ink);
  font-family: var(--yt-client-font);
}

body:not(.admin-layout):not(.admin-body) :where(h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea, label) {
  font-family: var(--yt-client-font);
}

body:not(.admin-layout):not(.admin-body) :where(h1, h2, h3, h4, h5, h6) {
  color: var(--yt-client-ink);
  letter-spacing: -0.045em;
}

/* Keep native icon fonts alive after font cleanup. Do not inject SVG icons. */
:where(.ti, [class^="ti-"], [class*=" ti-"], .ti::before, [class^="ti-"]::before, [class*=" ti-"]::before) {
  font-family: "tabler-icons" !important;
  font-style: normal !important;
  font-variant: normal !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  speak: never !important;
  text-transform: none !important;
}

:where(.fa, .fas, .far, .fal, .fat, .fad, .fab, .fa::before, .fas::before, .far::before, .fal::before, .fat::before, .fad::before, .fab::before) {
  font-style: normal !important;
  font-variant: normal !important;
  line-height: 1 !important;
  speak: never !important;
}

:where(.bi, .bi::before, [class^="bi-"]::before, [class*=" bi-"]::before) {
  font-family: "bootstrap-icons" !important;
  font-style: normal !important;
  font-variant: normal !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  speak: never !important;
}

/* Hide old SVG/script icon-repair layers if any remain in cached markup. */
:where(.yosu-v229-icon, .yosu-v228-icon, .yosu-v227-icon, .yosu-home-icon-fixed, .yosu-icon-injected, .yosu-icon-repaired) {
  display: none !important;
}

/* Restore original quick action bar behavior: one native icon, one label. */
:where(.mobile-bottom-nav, .mobile-quick-actions, .quick-actions, .quick-action-bar) {
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

:where(.mobile-bottom-nav-link, .mobile-bottom-nav a, .mobile-quick-actions a, .quick-actions a, .quick-action) {
  align-items: center !important;
  color: var(--yt-client-ink) !important;
  display: inline-flex !important;
  font-family: var(--yt-client-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  gap: 0.18rem !important;
  justify-content: center !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
}

:where(.mobile-bottom-nav-link::before, .mobile-bottom-nav-link::after, .mobile-bottom-nav a::before, .mobile-bottom-nav a::after, .mobile-quick-actions a::before, .mobile-quick-actions a::after, .quick-actions a::before, .quick-actions a::after, .quick-action::before, .quick-action::after, .mobile-header-icon-button::before, .mobile-header-icon-button::after, .navbar-toggler::before, .navbar-toggler::after) {
  content: none !important;
  display: none !important;
}

:where(.mobile-bottom-nav i[class^="ti"], .mobile-bottom-nav i[class*=" ti-"], .mobile-quick-actions i[class^="ti"], .mobile-quick-actions i[class*=" ti-"], .quick-actions i[class^="ti"], .quick-actions i[class*=" ti-"], .mobile-header-icon-button i[class^="ti"], .mobile-header-icon-button i[class*=" ti-"], .navbar-toggler i[class^="ti"], .navbar-toggler i[class*=" ti-"]) {
  align-items: center !important;
  color: currentColor !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  font-family: "tabler-icons" !important;
  font-size: 20px !important;
  font-style: normal !important;
  height: 22px !important;
  justify-content: center !important;
  line-height: 1 !important;
  width: 22px !important;
}

:where(.mobile-bottom-nav img, .mobile-quick-actions img, .quick-actions img, .mobile-header-icon-button img) {
  display: block !important;
  flex: 0 0 auto !important;
  height: 22px !important;
  max-width: 22px !important;
  object-fit: contain !important;
  width: 22px !important;
}

/* Product/listing cards used by live public pages. */
:where(.listing-editorial-card, .yosu-image-tile, .hotel-card, .tour-card, .transport-card, .tourist-site-card, .product-card, .listing-card, .recommendation-card, .you-may-also-like-card, .tavura-card) {
  background: var(--yt-client-surface) !important;
  border: 1px solid var(--yt-client-line) !important;
  border-radius: var(--yt-client-radius) !important;
  box-shadow: var(--yt-client-shadow) !important;
  color: var(--yt-client-ink) !important;
  overflow: hidden;
}

:where(.listing-editorial-card img, .yosu-image-tile img, .hotel-card img, .tour-card img, .transport-card img, .tourist-site-card img, .product-card img, .listing-card img, .recommendation-card img, .you-may-also-like-card img) {
  background: #eef2e0;
  object-fit: cover !important;
}

:where(.offer-card-location, .card-subtitle, .text-muted, .listing-meta, .product-meta) {
  color: var(--yt-client-muted) !important;
}

:where(.travel-card-cta, .reserve-button, .booking-button, .product-cta, .tourist-site-button, .tavura-favorite-button, .favorite-button, .review-button, .partner-button, .search-button, button[type="submit"]) {
  border-radius: 999px !important;
  font-family: var(--yt-client-font) !important;
  font-weight: 720 !important;
  min-height: 44px;
}

:where(.travel-card-cta, .reserve-button, .booking-button, .product-cta, .tourist-site-button, .partner-button, .search-button) {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}

/* Lightweight polish for standalone public marketing pages. */
:where(.public-shell-v267, .partner-recruitment-page-v267, .tourist-sites-public-v267, .tourist-site-public-page) {
  background: linear-gradient(180deg, #fffef8 0%, #fff 48%, #f8faef 100%) !important;
  color: var(--yt-client-ink);
}

.tourist-sites-search {
  border: 1px solid var(--yt-client-line);
  border-radius: 999px;
}

.tourist-sites-search input {
  min-height: 46px;
}

/* Keep the existing compact public footer readable; do not create another one. */
:where(.public-footer-wrap, .public-footer) {
  color: inherit;
}

:where(.public-footer a, .public-footer-wrap a) {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

@media (max-width: 768px) {
  :where(.mobile-bottom-nav-link, .mobile-bottom-nav a) {
    min-height: 48px;
    padding-inline: 0.22rem;
  }

  :where(.tourist-sites-search) {
    border-radius: 24px;
  }
}

@media (prefers-color-scheme: dark) {
  :root {
    --yt-client-ink: #f8fbf0;
    --yt-client-muted: rgba(248, 251, 240, 0.74);
    --yt-client-surface: rgba(255, 255, 255, 0.08);
    --yt-client-line: rgba(255, 255, 255, 0.14);
    --yt-client-shadow: 0 18px 54px rgba(0, 0, 0, 0.34);
  }

  body:not(.admin-layout):not(.admin-body) {
    background: #0f1712 !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.home-stable-page, .listing-shell, .booking-flow-page, .product-detail-page, .tourist-site-public-page, .public-shell-v267, .partner-recruitment-page-v267, .tourist-sites-public-v267, .tavura-page, .tavura-dashboard) {
    background: linear-gradient(180deg, #101711 0%, #131d16 58%, #0f1712 100%) !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(h1, h2, h3, h4, h5, h6, strong, .title, .section-title) {
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(p, li, span, label, .text-muted, .partner-lead, .tourist-sites-lead, .offer-card-location, .card-subtitle, .listing-meta, .product-meta) {
    color: rgba(248, 251, 240, 0.76) !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.card, .listing-editorial-card, .yosu-image-tile, .hotel-card, .tour-card, .transport-card, .tourist-site-card, .product-card, .listing-card, .recommendation-card, .you-may-also-like-card, .tavura-card, .partner-soft-card, .home-service-link-card, .home-destination-card) {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.16) !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(input, select, textarea, .form-control) {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(input::placeholder, textarea::placeholder) {
    color: rgba(248, 251, 240, 0.54) !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.mobile-bottom-nav, .mobile-quick-actions, .quick-actions, .quick-action-bar, .header, .fixed-header, .navbar) {
    background: rgba(15, 23, 18, 0.94) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.mobile-bottom-nav-link, .mobile-bottom-nav a, .mobile-quick-actions a, .quick-actions a, .quick-action, .mobile-header-icon-button) {
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.mobile-bottom-nav-link.active, .mobile-bottom-nav a.active, .quick-actions a.active) {
    color: var(--yt-client-lime-soft) !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.travel-card-cta, .reserve-button, .booking-button, .product-cta, .tourist-site-button, .partner-button, .search-button, button[type="submit"]) {
    background: #e7ef88 !important;
    border-color: #e7ef88 !important;
    color: #10241c !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.btn-outline, .btn-outline-dark, .btn-light, .favorite-button, .tavura-favorite-button, .review-button) {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.rating, .stars, .review-stars, .fa-star, .ti-star, [class*="star"]) {
    color: #f3d55b !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.public-footer-wrap, .public-footer) {
    background: #0b110d !important;
    color: #f8fbf0 !important;
  }

  body:not(.admin-layout):not(.admin-body) :where(.public-footer a, .public-footer-wrap a) {
    color: #e7ef88 !important;
  }
}
