/* ==========================================================
   RESULTS CSS (Page-only)
   Depends on: base.css + layout.css + inner.css
   ========================================================== */

/* ==========================================================
   Page root
   ========================================================== */

.d25-page--results .d25-results{
  min-height:98vh;
  display:flex;
  flex-direction:column;
}

/* ==========================================================
   Shell
   ========================================================== */

.d25-page--results .d25-results-shell{
  width:min(94vw, 1440px);
  margin:22px auto;
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:start;
}

.d25-page--results .d25-results-search{
  margin-bottom:40px;
}

/* ==========================================================
   Main layout (left facets + right list)
   ========================================================== */

.d25-page--results .d25-results-grid{
  display:grid;
  grid-template-columns:320px minmax(0, 1fr);
  gap:40px;
  align-items:start;
}

@media (max-width:980px){
  .d25-page--results .d25-results-grid{
    grid-template-columns:1fr;
  }
}

/* ==========================================================
   Cards grid
   - Desktop: 3 cards per row
   - Tablet: 2 cards per row
   - Mobile: 1 card per row
   ========================================================== */

.d25-page--results .d25-results-list .results-masonry{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:60px !important;
  align-items:stretch;
  min-width:0;
}

.d25-page--results .d25-results-list .results-masonry > *{
  grid-column:span 1 !important;
  min-width:0;
}

@media (max-width:1200px){
  .d25-page--results .d25-results-list .results-masonry{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width:980px){
  .d25-page--results .d25-results-list .results-masonry{
    grid-template-columns:1fr !important;
  }

  .d25-page--results .d25-results-list .results-masonry > *{
    grid-column:auto !important;
  }
}

/* ==========================================================
   Results meta + filter bar
   ========================================================== */

.d25-page--results .d25-results-bar{
  display:grid;
  grid-template-columns:320px minmax(0, 1fr);
  column-gap:40px;
  align-items:center;
}

.d25-page--results .d25-results-meta{
  grid-column:1;
  white-space:nowrap;
  font-size:var(--p-s-3);
  color:var(--text);
}

.d25-page--results .d25-fbar{
  grid-column:2;
  justify-self:start;
  min-width:0;
}

.d25-page--results .d25-fbar-row{
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:nowrap;
  white-space:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.d25-page--results .d25-fbar-row::-webkit-scrollbar{
  display:none;
}

/* Select pill */
.d25-page--results .d25-fbar-sortselect{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  border:0;
  background-color:var(--surface);
  color:var(--grey-08);
  border-radius:999px;
  padding:10px 30px 10px 14px;
  font:inherit;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
  box-shadow:none;
  outline:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%23696969' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 8px center;
  background-size:16px 16px;
}

.d25-page--results .d25-fbar-sortselect:hover{
  background-color:var(--grey-01);
}

.d25-page--results .d25-fbar-sortselect:focus{
  background-color:var(--grey-02);
}

@media (max-width:980px){
  .d25-page--results .d25-results-bar{
    grid-template-columns:1fr;
    row-gap:10px;
    align-items:start;
  }

  .d25-page--results .d25-fbar{
    grid-column:1;
    width:100%;
  }

  .d25-page--results .d25-fbar-row{
    flex-wrap:wrap;
    white-space:normal;
    overflow:visible;
  }
}

/* ==========================================================
   Result card (rcard)
   ========================================================== */

.d25-page--results .rcard{
  position:relative;
  height:100%;
  display:flex;
  flex-direction:column;
  border-radius:12px;
  background:var(--surface);
  box-shadow:var(--shadow-2);
  overflow:hidden;
  transition:
    box-shadow var(--dur-2) var(--ease-out),
    transform var(--dur-1) var(--ease-out);
}

.d25-page--results .rcard--tap:hover{
  box-shadow:var(--shadow-2);
  transform:translateY(-1px);
}

/* Full card click */
.d25-page--results .rcard-hit{
  position:absolute;
  inset:0;
  z-index:5;
  border-radius:inherit;
  text-decoration:none;
}

.d25-page--results .rcard-hit:focus-visible{
  outline:2px solid rgba(166,192,64,0.45);
  outline-offset:6px;
}

/* Body */
.d25-page--results .rcard-body{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  background:var(--surface);
}

/* Media */
.d25-page--results .rcard-media{
  width:100%;
  flex:0 0 auto;
}

/* Default media wrapper for cards with image */
.d25-page--results .rcard-avatar{
  width:100%;
  background:var(--grey-01);
  border-radius:12px 12px 0 0;
  padding:24px 24px 0;
  overflow:hidden;
  line-height:0;
}

/* Real image stays square */
.d25-page--results .rcard-avatarimg{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  display:block;
  border-radius:6px 6px 0 0;
  background:transparent;
}

.d25-page--results .rcard--noimg .rcard-avatar{
  aspect-ratio:1 / 1;
  padding:0;
  background:var(--grey-01);
  border-radius:6px 6px 0 0;
}

.d25-page--results .rcard--noimg .rcard-avatarimg{
  display:none;
}

/* Content */
.d25-page--results .rcard-main{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  padding:28px;
}

/* Title */
.d25-page--results .rcard-title{
  margin:0;
  font-size:1.25rem;
  font-weight:700;
  line-height:1.3;
  color:var(--grey-09);
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* Sub text */
.d25-page--results .rcard-sub{
  margin:0;
  font-size:1rem;
  line-height:1.55;
  color:var(--grey-08);
  word-break:break-word;
  overflow-wrap:anywhere;
}

.d25-page--results .rcard-sub--brief{
  margin-bottom:2px;
}

/* Bottom */
.d25-page--results .rcard-bottom{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}

.d25-page--results .rcard-rating{
  display:inline-flex;
  align-items:center;
  gap:2px;
  font-size:1rem;
  line-height:1;
}

.d25-page--results .rcard-rating .star{
  color:var(--grey-04);
}

.d25-page--results .rcard-rating .star.is-on{
  color:var(--grey-09);
}

.d25-page--results .rcard-hours{
  display:flex;
  flex-wrap:wrap;
  gap:6px 8px;
  font-size:13px;
  line-height:1.45;
  color:var(--grey-08);
}

.d25-page--results .rcard-hourslbl{
  font-weight:600;
}

.d25-page--results .rcard-hoursval{
  color:var(--grey-09);
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* Mobile */
@media (max-width:520px){
  .d25-page--results .rcard-avatar{
    padding:16px 16px 0;
  }

  .d25-page--results .rcard--noimg .rcard-avatar{
    padding:0;
  }

  .d25-page--results .rcard-main{
    padding:16px;
  }

  .d25-page--results .rcard-title{
    font-size:1.05rem;
  }

  .d25-page--results .rcard-sub{
    font-size:.96rem;
  }
}

/* ==========================================================
   Facets (left)
   ========================================================== */

.d25-page--results .d25-results-facets{
  position:sticky;
  top:80px;
  align-self:start;
}

@media (max-width:980px){
  .d25-page--results .d25-results-facets{
    position:static;
    top:auto;
  }
}

.d25-page--results .d25-searchleft{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* ==========================================================
   Independent sidebar blocks
   ========================================================== */

.d25-page--results .d25-sidebarBlock{
  background:var(--surface);
  border-radius:0;
}

.d25-page--results .d25-sidebarBlock--area,
.d25-page--results .d25-sidebarBlock--switcher{
  padding:0;
}

/* ==========================================================
   Area selector
   ========================================================== */

.d25-page--results .d25-areaPick{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 0 0 0;
  border:0;
  background:transparent;
  color:var(--grey-09);
  text-align:left;
  cursor:pointer;
}

.d25-page--results .d25-areaPick__label{
  font-size:1rem;
  font-weight:500;
  color:var(--grey-09);
}

.d25-page--results .d25-areaPick__chev{
  color:var(--grey-06);
  font-size:12px;
  line-height:1;
}

.d25-page--results .d25-areaPick:hover .d25-areaPick__label{
  color:var(--grey-10);
}

/* ==========================================================
   Sidebar category switcher
   ========================================================== */

.d25-page--results .d25-sidebarSwitch__details{
  display:block;

}

/* rotate arrow when open */

.d25-page--results .d25-sidebarSwitch__details[open] .d25-sidebarSwitch__buttonIcon{
  transform:rotate(180deg);
}

/* switcher button */

.d25-page--results .d25-sidebarSwitch__button{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  width:100%;
  min-height:44px;
  padding:10px 16px;
  border:var(--b1) solid var(--grey-01);
  border-radius:8px;
  background:var(--surface);
  cursor:pointer;
  user-select:none;
}

.d25-page--results .d25-sidebarSwitch__button::-webkit-details-marker{
  display:none;
}

.d25-page--results .d25-sidebarSwitch__buttonText{
  font-size:1rem;
  font-weight:600;
  color:var(--grey-09);
}

.d25-page--results .d25-sidebarSwitch__buttonIcon{
  flex:0 0 auto;
  width:16px;
  height:16px;

  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%23696969' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  background-repeat:no-repeat;
  background-position:center;
  background-size:16px 16px;

  transition:transform .18s ease;
}

/* dropdown menu */

.d25-page--results .d25-sidebarSwitch__menu{
  margin-top:-1px;

  border:var(--b1) solid var(--grey-01);
  border-radius:8px;

  background:var(--surface);

  overflow:hidden;
}

/* dropdown items */

.d25-page--results .d25-sidebarSwitch__item{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:12px;

  padding:10px 16px;

  text-decoration:none;

  color:var(--grey-08);
  background:var(--surface);
}

.d25-page--results .d25-sidebarSwitch__item + .d25-sidebarSwitch__item{
  border-top:var(--b1) solid var(--grey-01);
}

.d25-page--results .d25-sidebarSwitch__item:hover{
  background:var(--grey-01);
}

/* active sibling */

.d25-page--results .d25-sidebarSwitch__item.is-active{
  font-weight:600;
  color:var(--grey-09);
  background:var(--grey-01);
}

/* right-side meta (count / arrow) */

.d25-page--results .d25-sidebarSwitch__itemMeta{
  flex:0 0 auto;
  color:var(--grey-07);
}


/* ==========================================================
   Facets wrapper
   ========================================================== */

.d25-page--results .d25-searchleft__facets{
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* ==========================================================
   Facet blocks
   Store Type / Availability / similar groups
   ========================================================== */

.d25-page--results .d25-facet{
  margin:0;
  padding:0;
  border:0;
}

.d25-page--results .d25-facet__hd{
  margin:0;
  font-size:1rem;
  font-weight:600;
  color:var(--grey-09);
}

.d25-page--results .d25-facet__title{
  font-size:1rem;
  font-weight:600;
  color:var(--grey-09);
}

.d25-page--results .d25-facet__clear{
  border:0;
  background:transparent;
  color:var(--grey-07);
  font-size:0.9rem;
  padding:0;
}

.d25-page--results .d25-facet__clear:hover{
  color:var(--grey-09);
}

/* --------------------------
   Generic facet item spacing
-------------------------- */

.d25-page--results .d25-facet__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 4px;
  border:0;
  background:transparent;
  color:var(--grey-09);
  text-align:left;
}

/* --------------------------
   Vertical navigation style
-------------------------- */

.d25-page--results .d25-facet__bd--nav{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.d25-page--results .d25-facet__navitem{
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border:0;
  background:transparent;
  color:var(--grey-08);
  text-align:left;
  cursor:pointer;
  transition:
    color var(--dur-1) var(--ease-out),
    transform var(--dur-1) var(--ease-out);
}

.d25-page--results .d25-facet__navitem:hover{
  color:var(--grey-10);
}

.d25-page--results .d25-facet__navitem:active{
  transform:translateY(1px);
}

.d25-page--results .d25-facet__navitem:focus-visible{
  outline:2px solid rgba(170,196,45,0.35);
  outline-offset:4px;
  border-radius:8px;
}

.d25-page--results .d25-facet__navlabel{
  flex:1 1 auto;
  min-width:0;
  font-size:1rem;
  line-height:1.35;
  color:inherit;
}

.d25-page--results .d25-facet__navmeta{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.d25-page--results .d25-facet__navcount{
  font-size:0.84rem;
  color:var(--grey-06);
}

.d25-page--results .d25-facet__navarrow{
  color:var(--grey-05);
  font-size:1rem;
  line-height:1;
  transform:translateX(0);
  transition:
    transform var(--dur-1) var(--ease-out),
    color var(--dur-1) var(--ease-out);
}

.d25-page--results .d25-facet__navitem:hover .d25-facet__navarrow{
  color:var(--grey-08);
  transform:translateX(2px);
}

.d25-page--results .d25-facet__navitem.is-active{
  color:var(--grey-10);
  font-weight:600;
}

.d25-page--results .d25-facet__navitem.is-active .d25-facet__navcount{
  color:var(--grey-08);
}

.d25-page--results .d25-facet__navitem.is-active .d25-facet__navarrow{
  color:var(--grey-09);
}

/* --------------------------
   Checkbox facet
-------------------------- */

.d25-page--results .d25-facet__item--check{
  display:grid;
  grid-template-columns:16px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px 6px;
  border-radius:4px;
  background:transparent;
  cursor:pointer;
}

.d25-page--results .d25-facet__check{
  width:16px;
  height:16px;
  border-radius:4px;
  border:var(--b1) solid var(--grey-04);
  background:var(--surface);
  position:relative;
  margin-top:0;
}

.d25-page--results .d25-facet__item--check .d25-facet__label{
  font-size:.9rem;
  line-height:1.3;
}

.d25-page--results .d25-facet__item--check .d25-facet__count{
  font-size:.86rem;
  color:var(--grey-06);
  padding-left:8px;
}

.d25-page--results .d25-facet__item--check:hover{
  background:transparent;
}

.d25-page--results .d25-facet__item--check.is-active .d25-facet__label{
  font-weight:600;
  color:var(--grey-09);
}

.d25-page--results .d25-facet__item--check.is-active .d25-facet__check{
  border-color:var(--grey-09);
}

.d25-page--results .d25-facet__item--check.is-active .d25-facet__check::after{
  content:"";
  position:absolute;
  left:4px;
  top:2px;
  width:6px;
  height:9px;
  border-right:2px solid var(--grey-09);
  border-bottom:2px solid var(--grey-09);
  transform:rotate(45deg);
}

.d25-page--results .d25-facet__item--check:focus-visible{
  outline:2px solid rgba(170,196,45,0.35);
  outline-offset:3px;
}

.d25-page--results .d25-searchleft__modulefilters:empty{
  display:none;
}


/* ==========================================================
   Result card badge (store status)
   ========================================================== */
.d25-page--results .rcard-badge{
  position:absolute;
  top:8px;
  right:8px;
  font-size:11px;
  padding:4px 8px;
  border-radius:4px;
  font-weight:500;
  z-index:2;
}

.d25-page--results .rcard-badge--online{
  background:#e8f5e9;
  color:#2e7d32;
}

.d25-page--results .rcard-badge--soon{
  background:#fff8e1;
  color:#b26a00;
}