/*
Theme Name: Sheshi Component Contrast Pass
Version: 0.28.9
Description: Aligns mobile navigation, status, footer, map and intentional dark-island components with the Slate system.
*/

/* Functional navigation controls use the brand Slate, not near-black. */
.sheshi-site-header .sheshi-mobile-menu > summary,
.sheshi-site-header .sheshi-menu-toggle-icon,
.sheshi-site-header .sheshi-menu-toggle-icon span {
  color: var(--accent) !important;
}

.sheshi-site-header .sheshi-menu-toggle-icon span {
  border-color: var(--accent) !important;
  background: var(--accent) !important;
}

.sheshi-site-header .sheshi-desktop-nav a:hover,
.sheshi-site-header .sheshi-desktop-nav a:focus-visible,
.sheshi-site-header .sheshi-desktop-nav a[aria-current="page"],
.sheshi-site-header .sheshi-nav-dropdown > summary:hover,
.sheshi-site-header .sheshi-nav-dropdown > summary:focus-visible,
.sheshi-site-header .sheshi-mobile-menu > summary:hover,
.sheshi-site-header .sheshi-mobile-menu > summary:focus-visible,
.sheshi-site-header .sheshi-nav-cta:hover,
.sheshi-site-header .sheshi-nav-cta:hover span,
.sheshi-site-header .sheshi-nav-cta:focus-visible,
.sheshi-site-header .sheshi-nav-cta:focus-visible span {
  color: var(--accent) !important;
}

.sheshi-site-header .sheshi-menu > li > a:hover,
.sheshi-site-header .sheshi-menu > li > a:focus-visible,
.sheshi-site-header .sheshi-nav-dropdown > summary:hover,
.sheshi-site-header .sheshi-nav-dropdown > summary:focus-visible,
.sheshi-site-header .sheshi-nav-dropdown[open] > summary {
  color: var(--accent) !important;
  background: var(--surface-sunken) !important;
}

.sheshi-site-header .sheshi-nav-panel a:hover,
.sheshi-site-header .sheshi-nav-panel a:focus-visible,
.sheshi-site-header .sheshi-nav-panel a[aria-current="page"] {
  color: var(--accent) !important;
  background: var(--surface-sunken) !important;
}

.sheshi-site-header .sheshi-nav-panel a:hover strong,
.sheshi-site-header .sheshi-nav-panel a:focus-visible strong,
.sheshi-site-header .sheshi-nav-panel a[aria-current="page"] strong {
  color: var(--accent) !important;
}

.sheshi-site-header .sheshi-nav-panel a:hover span,
.sheshi-site-header .sheshi-nav-panel a:focus-visible span,
.sheshi-site-header .sheshi-nav-panel a[aria-current="page"] span {
  color: var(--text-muted) !important;
}

/* The legacy navigation applied a text underline and a pseudo-element line at
   the same time. Keep exactly the structural pseudo-element on level one; use
   a quiet filled state inside the dropdown. */
.sheshi-site-header .sheshi-menu > li > a[aria-current="page"],
.sheshi-site-header .sheshi-nav-dropdown.is-current > summary,
.sheshi-site-header .sheshi-nav-panel a[aria-current="page"] {
  text-decoration: none !important;
}

.sheshi-site-header .sheshi-nav-panel a[aria-current="page"]::after {
  display: none !important;
  content: none !important;
}

@media (min-width: 1024px) {
  .sheshi-site-header .sheshi-nav-cta {
    width: max-content !important;
    min-width: max-content !important;
    flex: 0 0 auto !important;
    gap: 8px !important;
    padding-inline: 18px !important;
    white-space: nowrap !important;
  }

  .sheshi-site-header .sheshi-nav-cta span {
    white-space: nowrap !important;
  }
}

/* Editorial status is secondary information, but still normal readable text. */
.sheshi-meta-chip--status-editorial,
.sheshi-meta-chip--status-demo {
  color: #586a73 !important;
}

/* The footer is a fixed black brand edge and therefore needs its own dark
   tokens instead of inheriting the light page's muted color. */
.sheshi-site-footer {
  border-color: var(--dark-border) !important;
  color: var(--dark-text-primary) !important;
  background: #000 !important;
}

.sheshi-site-footer p,
.sheshi-site-footer small,
.sheshi-site-footer .sheshi-footer-meta {
  color: var(--dark-text-muted) !important;
}

.sheshi-site-footer a,
.sheshi-site-footer a span {
  color: var(--dark-text-secondary) !important;
}

.sheshi-site-footer a:hover,
.sheshi-site-footer a:focus-visible {
  color: var(--dark-text-primary) !important;
}

/* Intentional dark cards must use the matching dark token set all the way
   down. Generic light-theme p/h3 rules otherwise win later in the cascade. */
body.sheshi-home .sheshi-trust-item p,
body.sheshi-shell .sheshi-trust-item p,
body.sheshi-shell .sheshi-travel-route-list p,
body.sheshi-shell .sheshi-travel-provider-grid p,
body.sheshi-shell .sheshi-travel-provider-index p,
body.sheshi-shell .sheshi-travel-transparency p {
  color: var(--dark-text-secondary) !important;
}

body.sheshi-shell .sheshi-travel-route-list small,
body.sheshi-shell .sheshi-travel-route-list em,
body.sheshi-shell .sheshi-travel-provider-grid small,
body.sheshi-shell .sheshi-travel-provider-index span {
  color: var(--dark-text-muted) !important;
}

body.sheshi-shell .sheshi-travel-route-list em,
body.sheshi-shell .sheshi-travel-label,
body.sheshi-shell .sheshi-travel-provider-index span {
  padding: 0 !important;
  border: 0 !important;
  color: var(--dark-text-muted) !important;
  background: transparent !important;
}

body.sheshi-shell .sheshi-travel-route-list > a > span,
body.sheshi-shell .sheshi-travel-route-list b,
body.sheshi-shell .sheshi-travel-provider-grid a,
body.sheshi-shell .sheshi-travel-provider-grid a span,
body.sheshi-shell .sheshi-travel-provider-index b,
body.sheshi-shell .sheshi-travel-transparency a,
body.sheshi-shell .sheshi-travel-transparency a span,
body.sheshi-shell .sheshi-travel-dark .sheshi-kicker {
  color: var(--dark-accent-text) !important;
}

body.sheshi-shell .sheshi-travel-dark h2,
body.sheshi-shell .sheshi-travel-provider-grid h3,
body.sheshi-shell .sheshi-travel-provider-index strong,
body.sheshi-shell .sheshi-travel-transparency strong {
  color: var(--dark-text-primary) !important;
}

body.sheshi-shell .sheshi-travel-dark .sheshi-travel-heading > p {
  color: var(--dark-text-secondary) !important;
}

/* Empty states are light page components, never unlabelled dark islands. */
body.search.sheshi-shell .sheshi-empty-state,
body.archive.sheshi-shell .sheshi-empty-state,
body.tax-listing-category.sheshi-shell .sheshi-empty-state,
body.tax-location.sheshi-shell .sheshi-empty-state {
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
  background: var(--surface-card) !important;
}

body.search.sheshi-shell .sheshi-empty-state strong,
body.archive.sheshi-shell .sheshi-empty-state strong,
body.tax-listing-category.sheshi-shell .sheshi-empty-state strong,
body.tax-location.sheshi-shell .sheshi-empty-state strong {
  color: var(--text-primary) !important;
}

body.search.sheshi-shell .sheshi-empty-state p,
body.archive.sheshi-shell .sheshi-empty-state p,
body.tax-listing-category.sheshi-shell .sheshi-empty-state p,
body.tax-location.sheshi-shell .sheshi-empty-state p {
  color: var(--text-secondary) !important;
}

/* Dense city names collide inside the intentionally compact DACH map.
   Below desktop the dots stay visible and the adjacent, fully labelled list
   remains the primary usable location control. */
@media (max-width: 1023px) {
  .sheshi-dach-map .sheshi-map-markers text,
  .sheshi-dach-map .sheshi-map-leader {
    display: none !important;
  }
}

@media (max-width: 767px) {
  body.search.sheshi-shell .sheshi-search-results .sheshi-search-submit-label {
    position: static !important;
    display: inline !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    white-space: nowrap !important;
  }

  body.search.sheshi-shell .sheshi-active-filters {
    max-width: 100% !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding-inline: 0 !important;
  }

  body.search.sheshi-shell .sheshi-active-filters .sheshi-filter-reset {
    width: auto !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    min-height: 36px !important;
    padding-inline: 2px !important;
    white-space: nowrap !important;
  }

  body.search.sheshi-shell .sheshi-results-layout {
    padding-top: 24px !important;
    padding-bottom: 40px !important;
  }

  body.search.sheshi-shell .sheshi-results-toolbar {
    display: grid !important;
    min-height: 56px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding-block: 10px !important;
  }

  body.search.sheshi-shell .sheshi-results-toolbar > p {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }

  body.search.sheshi-shell .sheshi-results-toolbar .sheshi-sort-form {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }
}

/* -------------------------------------------------------------------------
   CTA hierarchy
   ---------------------------------------------------------------------- */

/* Primary: one page task or one provider task. */
.sheshi-search-submit,
.sheshi-button:not(.sheshi-button--secondary),
.sheshi-beta-form button[type="submit"],
.sheshi-profile-primary-link--cta,
.sheshi-profile-mobile-primary,
.sheshi-profile-mobile-callbar a {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border: 1px solid var(--accent) !important;
  border-radius: 8px !important;
  color: #fff !important;
  background: var(--accent) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.sheshi-search-submit:hover,
.sheshi-button:not(.sheshi-button--secondary):hover,
.sheshi-beta-form button[type="submit"]:hover,
.sheshi-profile-primary-link--cta:hover,
.sheshi-profile-mobile-primary:hover,
.sheshi-profile-mobile-callbar a:hover {
  border-color: var(--accent-hover) !important;
  color: #fff !important;
  background: var(--accent-hover) !important;
}

.sheshi-search-submit:active,
.sheshi-button:not(.sheshi-button--secondary):active,
.sheshi-beta-form button[type="submit"]:active,
.sheshi-profile-primary-link--cta:active,
.sheshi-profile-mobile-primary:active,
.sheshi-profile-mobile-callbar a:active {
  border-color: var(--accent-active) !important;
  background: var(--accent-active) !important;
}

/* Secondary: on-site, corrective and telephone actions. */
.sheshi-nav-cta,
.sheshi-mobile-action,
.sheshi-button--secondary,
.sheshi-result-details,
.sheshi-profile-phone-link,
.sheshi-profile-phone-copy,
.sheshi-profile-management a {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 8px !important;
  color: var(--text-primary) !important;
  background: var(--surface-card) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.sheshi-nav-cta:hover,
.sheshi-mobile-action:hover,
.sheshi-button--secondary:hover,
.sheshi-result-details:hover,
.sheshi-profile-phone-link:hover,
.sheshi-profile-phone-copy:hover,
.sheshi-profile-management a:hover {
  border-color: var(--accent) !important;
  color: var(--accent) !important;
  background: var(--surface-sunken) !important;
  text-decoration: none !important;
}

/* External provider action in dense result lists: visible hierarchy without
   turning every row into another filled primary surface. */
.sheshi-result-website {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border: 1px solid var(--accent) !important;
  border-radius: 8px !important;
  color: var(--accent) !important;
  background: var(--surface-card) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.sheshi-result-website:hover {
  border-color: var(--accent-hover) !important;
  color: var(--accent-hover) !important;
  background: var(--accent-bg) !important;
}

body.search.sheshi-shell .sheshi-result-links .sheshi-result-details,
body.archive.sheshi-shell .sheshi-result-links .sheshi-result-details,
body.tax-listing-category.sheshi-shell .sheshi-result-links .sheshi-result-details,
body.tax-location.sheshi-shell .sheshi-result-links .sheshi-result-details {
  border: 1px solid var(--border-strong) !important;
  color: var(--text-primary) !important;
  background: var(--surface-card) !important;
  text-decoration: none !important;
}

body.search.sheshi-shell .sheshi-result-links .sheshi-result-details:hover,
body.archive.sheshi-shell .sheshi-result-links .sheshi-result-details:hover,
body.tax-listing-category.sheshi-shell .sheshi-result-links .sheshi-result-details:hover,
body.tax-location.sheshi-shell .sheshi-result-links .sheshi-result-details:hover {
  border-color: var(--accent) !important;
  color: var(--accent) !important;
  background: var(--surface-sunken) !important;
}

.sheshi-search-submit svg,
.sheshi-nav-cta svg,
.sheshi-mobile-action svg,
.sheshi-result-website svg,
.sheshi-profile-primary-link--cta svg,
.sheshi-profile-mobile-primary svg,
.sheshi-profile-phone-link svg,
.sheshi-profile-mobile-callbar svg {
  color: currentColor !important;
  stroke: currentColor !important;
}

.sheshi-search-submit:disabled,
.sheshi-beta-form button[type="submit"]:disabled,
.sheshi-button[aria-disabled="true"] {
  opacity: .55 !important;
  cursor: not-allowed !important;
}

body.single-listing .sheshi-profile-phone-link,
body.single-listing .sheshi-profile-phone-copy {
  background: var(--surface-card) !important;
}

@media (max-width: 1023px) {
  .sheshi-site-header .sheshi-nav > .sheshi-nav-cta {
    display: none !important;
  }
}

@media (min-width: 768px) {
  /* Dense directory rows may stay compact on pointer devices while still
     exceeding the 24px WCAG 2.5.8 target minimum. */
  .sheshi-result-details,
  .sheshi-result-website {
    min-height: 36px !important;
  }
}
