/*
  Clasitrónicos results-page visual prototype — Design V1
  ------------------------------------------------------
  This file is intentionally loaded after listado.css, results-heading.css,
  and the production photo stylesheet. It changes presentation only. It does not alter the CGI,
  database queries, paid-banner loader, filters, or column-selection logic.
*/

:root {
  --clx-page-bg: #f3f6f7;
  --clx-surface: #ffffff;
  --clx-border: #dfe6e8;
  --clx-border-strong: #cfdadd;
  --clx-text: #263537;
  --clx-muted: #6f7e81;
  --clx-teal: #147d7e;
  --clx-teal-dark: #0f6264;
  --clx-teal-soft: #e7f4f3;
  --clx-coral: #e65d70;
  --clx-gold: #d8a23f;
  --clx-shadow: 0 5px 18px rgba(28, 43, 41, 0.08);
  --clx-shadow-hover: 0 10px 28px rgba(28, 43, 41, 0.14);
}

/* Quiet background: the photographs and listing cards become the focus. */
html {
  background: var(--clx-page-bg);
}

body,
body.screen {
  background: var(--clx-page-bg) !important;
  color: var(--clx-text);
}

body::after {
  content: none !important;
  display: none !important;
  background-image: none !important;
}

.grid-container {
  background: var(--clx-page-bg);
  padding-bottom: 36px;
}

/* Keep the existing header architecture, but separate it cleanly from content. */
.menu {
  border-bottom: 1px solid var(--clx-border);
  box-shadow: 0 3px 16px rgba(28, 43, 41, 0.08) !important;
}

/* Server-rendered H1 panel. */
.results-header {
  box-sizing: border-box;
  min-height: 84px !important;
  margin-top: 4px;
  padding: 14px 20px !important;
  background: var(--clx-surface) !important;
  border: 1px solid var(--clx-border);
  border-radius: 14px;
  box-shadow: var(--clx-shadow);
}

.results-heading-wrap {
  padding: 0 12px;
}

.results-heading {
  color: var(--clx-text) !important;
  font-size: clamp(21px, 2vw, 29px) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em;
  line-height: 1.2 !important;
}

.results-heading a,
.results-heading .results-subject {
  color: var(--clx-text) !important;
  border-bottom: 1px solid rgba(20, 125, 126, 0.25) !important;
}

.results-heading a:hover {
  color: var(--clx-teal) !important;
  border-bottom-color: var(--clx-teal) !important;
}

.results-summary {
  margin-top: 7px !important;
  color: var(--clx-muted) !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.results-header .aviso {
  padding: 6px 8px;
  background: #eef2f3;
  color: var(--clx-muted);
  border: 1px solid var(--clx-border);
  border-radius: 7px;
  font-size: 9px !important;
  line-height: 1.2;
}

.results-header .bc-flag {
  width: 38px !important;
  height: 24px !important;
  padding: 3px;
  background: #f8fafb;
  border: 1px solid var(--clx-border);
  border-radius: 7px;
  opacity: 1;
}

/* Filter panel. */
#listing-breadcrumbs-container {
  min-height: 0;
}

#listing-breadcrumbs,
#listing-breadcrumbs.filters {
  box-sizing: border-box;
  min-height: 58px;
  height: auto !important;
  padding: 9px 14px;
  background: var(--clx-surface) !important;
  border: 1px solid var(--clx-border);
  border-radius: 12px;
  box-shadow: 0 3px 12px rgba(28, 43, 41, 0.06);
}

.filters form {
  box-sizing: border-box;
  gap: 7px;
  flex-wrap: wrap;
  align-items: center;
  padding: 0;
}

.filters label {
  margin: 0 2px 0 9px;
  color: var(--clx-muted);
  font-size: 11px;
  font-weight: 600;
}

.filters select {
  box-sizing: border-box;
  width: auto;
  min-width: 116px;
  height: 36px;
  padding: 6px 28px 6px 10px;
  background: #ffffff;
  color: var(--clx-text);
  border: 1px solid var(--clx-border-strong);
  border-radius: 8px;
  font-size: 12px;
  opacity: 1;
}

.filters .buscar {
  box-sizing: border-box;
  width: auto !important;
  min-width: 78px;
  height: 36px;
  margin: 0 0 0 5px;
  padding: 7px 15px !important;
  background: var(--clx-teal) !important;
  color: #ffffff !important;
  border: 0;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
}

.filters .buscar:hover {
  background: var(--clx-teal-dark) !important;
}

/* Main results region. */
.listado {
  background: transparent !important;
}

.ads {
  align-items: stretch;
}

/* Direct advertisers: retain the working loader, improve only presentation. */
.paid-ads {
  box-sizing: border-box;
  margin: 0 0 18px !important;
  padding: 15px !important;
  background: var(--clx-surface) !important;
  border: 1px solid var(--clx-border);
  border-radius: 14px;
  box-shadow: var(--clx-shadow);
}

.paid-ads > span {
  margin-bottom: 12px !important;
  color: var(--clx-muted) !important;
  font-size: 11px !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.paid-ads-images {
  gap: 12px;
  align-items: center;
}

.paid-ad,
.image.placeholder {
  box-sizing: border-box;
  margin: 0 !important;
  overflow: hidden;
  background: #f1f4f5 !important;
  border: 1px solid var(--clx-border);
  border-radius: 10px;
}

.paid-ad img {
  padding: 5px;
  box-sizing: border-box;
}

/* Classified listing cards. Width and column count remain controlled by the
   existing JavaScript during this first, reversible design pass. */
.ads > .ad-listing.not-featured:not(.googleAd) {
  box-sizing: border-box;
  margin-top: 0 !important;
  margin-bottom: 18px;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--clx-surface) !important;
  border: 1px solid var(--clx-border);
  border-radius: 14px;
  box-shadow: var(--clx-shadow);
  transition: transform 0.16s ease, box-shadow 0.16s ease,
              border-color 0.16s ease;
}

.ads > .ad-listing.not-featured:not(.googleAd):hover {
  transform: translateY(-2px);
  border-color: #c7d6d8;
  box-shadow: var(--clx-shadow-hover);
}


.premium-label {
  top: 9px !important;
  left: 9px;
  padding: 4px 8px !important;
  background: var(--clx-coral) !important;
  border-radius: 999px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
  font-size: 9px !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ad-image {
  box-sizing: border-box;
  max-height: none !important;
  background: #edf2f3 !important;
  border-bottom: 1px solid var(--clx-border);
}

.ad-image .front {
  box-sizing: border-box;
  padding: 5px;
  object-fit: contain;
  filter: saturate(1.04) contrast(1.01);
}

.ad-image .background-blur {
  opacity: 0.2;
  transform: scale(1.14);
  filter: blur(14px) saturate(0.75);
}

.ad-listing .info {
  box-sizing: border-box;
  align-content: flex-start;
  width: 100% !important;
  margin: 0 !important;
  padding: 13px 14px 12px !important;
  background: var(--clx-surface) !important;
}

.ad-listing .info > * {
  line-height: 1.35;
}

.info .location:first-child {
  color: var(--clx-teal-dark) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.info .location:nth-child(2) {
  color: var(--clx-muted) !important;
  font-size: 10px !important;
}

.info .price {
  color: var(--clx-text) !important;
  font-size: clamp(16px, 1.15vw, 21px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
}

.info div.title,
.info div.title > a.title,
.info a.title {
  color: var(--clx-teal-dark) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.35;
}

.info div.title {
  box-sizing: border-box;
  min-height: 2.7em;
  margin-top: 3px;
}

.info .vendor {
  margin-top: 2px;
  color: #49595c !important;
  font-size: 11px !important;
  font-weight: 600;
}

.info .phone {
  margin-top: 4px;
  color: #4f5d60 !important;
  font-size: 12px !important;
  font-weight: 500;
}

.phone:before {
  color: transparent;
  text-shadow: 0 0 0 var(--clx-teal) !important;
}

.info .keywords {
  gap: 5px;
  margin-top: 4px;
}

.info .keywords a.keyword {
  box-sizing: border-box;
  margin: 0 4px 3px 0 !important;
  padding: 3px 7px !important;
  background: var(--clx-teal-soft) !important;
  color: var(--clx-teal-dark) !important;
  border-radius: 999px;
  font-size: 9px !important;
  line-height: 1.25;
}

.info a.ver-mas {
  box-sizing: border-box;
  min-width: 54px;
  max-width: none !important;
  height: auto !important;
  margin-top: 2px;
  padding: 4px 9px;
  justify-content: center;
  background: transparent !important;
  color: var(--clx-coral) !important;
  border: 1px solid rgba(230, 93, 112, 0.45);
  border-radius: 999px;
  font-size: 9px !important;
  font-weight: 600;
  text-decoration: none;
}

.info a.ver-mas:hover {
  background: #fff0f3 !important;
  border-color: var(--clx-coral);
}

.info .views,
.info .id {
  color: #879396 !important;
  font-size: 9px !important;
}

.info .views span {
  color: #677579 !important;
  font-weight: 600;
}

/* Column selector: retain function, reduce visual dominance. */
.change-columns {
  box-sizing: border-box;
  left: 12px !important;
  top: 190px !important;
  gap: 5px;
  padding: 6px !important;
  background: rgba(255, 255, 255, 0.94) !important;
  border: 1px solid var(--clx-border);
  border-radius: 10px !important;
  box-shadow: 0 4px 16px rgba(28, 43, 41, 0.12) !important;
}

.change-columns button {
  margin: 0 !important;
  padding: 7px 9px;
  background: #ffffff !important;
  color: var(--clx-muted) !important;
  border: 1px solid transparent;
  border-radius: 7px !important;
  font-size: 10px;
}

.change-columns button:hover,
.change-columns button.selected {
  background: var(--clx-teal-soft) !important;
  color: var(--clx-teal-dark) !important;
  border-color: rgba(20, 125, 126, 0.35) !important;
}

footer {
  min-height: 70px;
  margin-top: 0;
  padding-top: 22px;
  background: #ffffff;
  color: var(--clx-muted);
  border-top: 1px solid var(--clx-border);
  font-size: 12px;
}

@media only screen and (min-width: 701px) and (max-width: 1099px) {
  .results-header,
  #listing-breadcrumbs-container,
  #popup-searchbar,
  .listado {
    grid-column: 1 / 13 !important;
    width: calc(100% - 24px);
    max-width: none;
    justify-self: center;
  }
}

@media only screen and (min-width: 1100px) {
  .results-header,
  #listing-breadcrumbs-container,
  #popup-searchbar,
  .listado {
    grid-column: 2 / 12 !important;
    width: 100%;
    max-width: 1180px;
    justify-self: center;
  }
}

@media only screen and (max-width: 700px) {
  .grid-container {
    padding-bottom: 22px;
  }

  .results-header {
    min-height: 76px !important;
    margin: 7px 7px 0;
    padding: 11px 8px !important;
    border-radius: 11px;
  }

  .results-heading-wrap {
    padding: 0 4px;
  }

  .results-heading {
    font-size: 18px !important;
  }

  .results-summary {
    margin-top: 5px !important;
    font-size: 10px !important;
  }

  .results-header .aviso {
    display: none;
  }

  .results-header .bc-flag {
    width: 29px !important;
    height: 19px !important;
  }

  #listing-breadcrumbs,
  #listing-breadcrumbs.filters {
    margin: 0 7px;
    padding: 9px;
    border-radius: 10px;
  }

  .filters form {
    gap: 6px;
  }

  .filters label {
    margin-left: 2px;
  }

  .filters select {
    min-width: 105px;
    height: 34px;
  }

  .filters .buscar {
    height: 34px;
  }

  .paid-ads {
    margin: 0 7px 14px !important;
    padding: 11px !important;
    border-radius: 11px;
  }

  .paid-ads-images {
    gap: 7px;
  }

  .ads {
    padding: 0 7px;
  }

  .ads > .ad-listing.not-featured:not(.googleAd) {
    width: 100% !important;
    height: auto !important;
    margin-bottom: 14px;
    border-radius: 11px;
  }

  .ad-image {
    aspect-ratio: 16 / 10;
    height: auto !important;
  }

  .ad-listing .info {
    padding: 12px !important;
  }

  .info div.title,
  .info div.title > a.title,
  .info a.title {
    font-size: 15px !important;
  }

  .info .price {
    font-size: 18px !important;
  }

  .change-columns {
    display: none !important;
  }
}
