/*
 * Fasto V3.9
 * Correct card flow and a self-contained mobile filter drawer.
 * Loaded after all older V2/V3 CSS. Uses normal cascade only.
 */

/* ==========================================================
   Bike cards: remove the year from grid flow and use fixed zones
   ========================================================== */
ul.articles.bikes,
.ajax-bikes-holder ul.articles.bikes,
.bikes-filter-data ul.articles.bikes,
.fasto-v25-browse ul.articles.bikes,
.fasto-v2-discovery-section ul.articles.bikes{
  align-items:stretch;
  grid-auto-rows:1fr;
}

ul.articles.bikes > li.bike-model,
.ajax-bikes-holder ul.articles.bikes > li.bike-model,
.bikes-filter-data ul.articles.bikes > li.bike-model,
.fasto-v25-browse ul.articles.bikes > li.bike-model,
.fasto-v2-discovery-section ul.articles.bikes > li.bike-model{
  display:flex;
  align-self:stretch;
  height:100%;
  min-width:0;
}

ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
.ajax-bikes-holder ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
.bikes-filter-data ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
.fasto-v25-browse ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
.fasto-v2-discovery-section ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card{
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  height:520px;
  min-height:520px;
  padding:0;
  overflow:hidden;
}

/* The year used to consume the first CSS-grid row, creating the huge blank gap. */
.fasto-v37-bike-card .bike-year{
  position:absolute;
  top:16px;
  left:20px;
  z-index:5;
  display:block;
  min-height:0;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
}

.fasto-v37-bike-card .compare-holder-main{
  position:absolute;
  top:14px;
  right:16px;
  z-index:5;
}

.fasto-v37-bike-card .fasto-v37-card-media{
  flex:0 0 300px;
  width:100%;
  height:300px;
  min-height:300px;
  overflow:hidden;
}

.fasto-v37-bike-card .fasto-v37-card-media .post-thumb{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:300px;
  min-height:300px;
  max-height:300px;
  margin:0;
  padding:34px 18px 12px;
  overflow:hidden;
  box-sizing:border-box;
  background:#fff;
}

.fasto-v37-bike-card .fasto-v37-card-media .post-thumb > a,
.fasto-v37-bike-card .fasto-v37-card-media .post-thumb .image,
.fasto-v37-bike-card .fasto-v37-card-media .post-thumb picture{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  margin:0;
  padding:0;
}

.fasto-v37-bike-card .fasto-v37-card-media .post-thumb img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:254px;
  margin:0;
  object-fit:contain;
  object-position:center;
  transform:none;
}

.fasto-v37-bike-card .fasto-v37-card-content{
  flex:0 0 132px;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:132px;
  padding:18px 20px 14px;
  box-sizing:border-box;
}

.fasto-v37-bike-card .fasto-v37-card-content .bike-categories-wrapper{
  flex:0 0 32px;
  display:flex;
  align-items:flex-start;
  min-height:32px;
  margin:0;
  overflow:hidden;
}

.fasto-v37-bike-card .fasto-v37-card-content .post-details{
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 15px 0 0;
}

.fasto-v37-bike-card .fasto-v37-card-content .post-title{
  display:-webkit-box;
  width:100%;
  min-height:52px;
  max-height:52px;
  margin:0;
  overflow:hidden;
  line-height:1.08;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.fasto-v37-bike-card .fasto-v37-card-footer{
  flex:1 0 88px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  min-width:0;
  min-height:88px;
  margin-top:auto;
  padding:10px 20px 12px;
  border-top:1px solid #e2e6ec;
  box-sizing:border-box;
}

.fasto-v37-bike-card .fasto-v37-card-footer .brand-price{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-width:0;
  min-height:46px;
  margin:0;
  margin-bottom: 25px;
  padding:0;
  border:0;
}

.fasto-v37-bike-card .fasto-v37-card-footer .fasto-v2-admin-card-links{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:20px;
  margin:0;
  padding:0;
}

/* ==========================================================
   Filter toggle is mobile-only
   ========================================================== */
.fasto-v2-filter-toggle,
.fasto-v39-filter-drawer-head{
  display:none;
}

@media (max-width:1024px){
  .fasto-v2-filter-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    min-height:44px;
    margin:0 0 10px;
    padding:0 18px;
    border:1px solid #ff3434;
    border-radius:0;
    background:#ff3434;
    color:#fff;
    font:inherit;
    font-weight:700;
    text-transform:uppercase;
    cursor:pointer;
  }

  .bikes-filter-container .filters{
    position:fixed;
    inset:0 auto 0 0;
    z-index:9000;
    display:block;
    width:min(420px,94vw);
    max-width:94vw;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    padding:0 16px 24px;
    overflow-x:hidden;
    overflow-y:auto;
    border:0;
    border-right:1px solid #dfe4ea;
    border-radius:0;
    background:#fff;
    box-shadow:none;
    transform:translateX(-105%);
    transition:transform .22s ease;
  }

  .bikes-filter-container .filters.fasto-v39-drawer-open,
  .bikes-filter-container .filters.fasto-v2-open,
  .bikes-filter-container .filters.fasto-v38-open{
    transform:translateX(0);
  }

  .fasto-v39-filter-drawer-head{
    position:sticky;
    top:0;
    z-index:20;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:58px;
    margin:0 -16px 8px;
    padding:0 12px 0 18px;
    border-bottom:1px solid #e2e6ec;
    background:#fff;
  }

  .fasto-v39-filter-drawer-head strong{
    color:#111318;
    font-size:15px;
    text-transform:uppercase;
    letter-spacing:.04em;
  }

  .fasto-v39-filter-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-width:86px;
    min-height:42px;
    padding:0 8px;
    border:1px solid #dfe4ea;
    border-radius:0;
    background:#fff;
    color:#111318;
    font:inherit;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    cursor:pointer;
  }

  .fasto-v39-filter-close b{
    font-family:Arial,sans-serif;
    font-size:24px;
    font-weight:400;
    line-height:1;
  }

  .bikes-filter-container .filter-main-holder{
    position:relative;
    display:block;
    width:100%;
    margin:0;
    border:0;
    border-bottom:1px solid #e7eaee;
  }

  .bikes-filter-container .filter-main-btn{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-height:50px;
    margin:0;
    padding:0 4px;
    border:0;
    border-radius:0;
    background:#fff;
    color:#111318;
    text-align:left;
    cursor:pointer;
  }

  .bikes-filter-container .filter-main-btn:after{
    content:'+';
    color:#111318;
    font-family:Arial,sans-serif;
    font-size:20px;
    font-weight:400;
  }

  .bikes-filter-container .filter-main-btn.fasto-v39-open:after{
    content:'−';
  }

  .bikes-filter-container .filter-main-holder.selected .filter-main-btn{
    background:#fff;
    color:#111318;
  }

  .bikes-filter-container .filter-main-holder.selected .filter-main-btn.fasto-v39-open{
    color:#e85d14;
  }

  /* Closed by default. JS sets inline display:block on the active panel. */
  .bikes-filter-container .filter-holder-holder,
  .bikes-filter-container .filter-main-holder.pos-static .filter-holder-holder{
    position:static;
    display:none;
    width:100%;
    min-width:0;
    max-width:none;
    max-height:none;
    margin:0;
    padding:2px 0 18px;
    overflow:visible;
    opacity:1;
    visibility:visible;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
    transform:none;
  }

  .bikes-filter-container .filter-holder-holder.fasto-v39-panel-open{
    display:block;
  }

  .bikes-filter-container .filter-holder{
    position:static;
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
    margin:0 0 14px;
    padding:0;
    overflow:visible;
    opacity:1;
    visibility:visible;
    transform:none;
  }

  .bikes-filter-container .filter-title-holder{
    display:block;
    margin:8px 0 6px;
    color:#667085;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.05em;
  }

  .bikes-filter-container .chosen_values{
    display:none;
  }

  .bikes-filter-container .filter-ul,
  .bikes-filter-container .filter-holder-holder .filter-ul{
    position:static;
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
    margin:0;
    padding:0;
    overflow:visible;
    opacity:1;
    visibility:visible;
    transform:none;
  }

  .bikes-filter-container .filter-ul li{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:42px;
    margin:0;
    padding:8px 2px;
    color:#111318;
    list-style:none;
  }

  .bikes-filter-container .filter-ul li.filter_filter_li{
    display:block;
  }

  .bikes-filter-container .filter_filter{
    display:block;
    width:100%;
    min-height:42px;
    padding:0 10px;
    border:1px solid #dfe4ea;
    border-radius:0;
    background:#fff;
  }

  .bikes-filter-container .filter-ul input[type='checkbox']{
    display:block;
    flex:0 0 auto;
    width:18px;
    height:18px;
    margin:0;
  }

  .bikes-filter-container .filter-ul label{
    display:block;
    margin:0;
    color:#111318;
    line-height:1.35;
  }

  .bikes-filter-container .filter_range{
    display:block;
    min-height:92px;
  }

  .bikes-filter-container .filter-holder-holder .close-filter{
    display:none;
  }

  .bikes-filter-container .filter_submit{
    display:block;
    width:100%;
    margin:12px 0 0;
  }

  .bikes-filter-container .filter_submit .apply_filter,
  .bikes-filter-container .reset_filter{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:46px;
    border-radius:0;
  }

  body.fasto-v39-filter-open{
    overflow:hidden;
  }
}

@media (max-width:680px){
  ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
  .ajax-bikes-holder ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
  .fasto-v25-browse ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card,
  .fasto-v2-discovery-section ul.articles.bikes > li.bike-model > article.fasto-v37-bike-card{
    height:500px;
    min-height:500px;
  }

  .fasto-v37-bike-card .fasto-v37-card-media,
  .fasto-v37-bike-card .fasto-v37-card-media .post-thumb{
    flex-basis:280px;
    height:280px;
    min-height:280px;
    max-height:280px;
  }

  .fasto-v37-bike-card .fasto-v37-card-media .post-thumb img{
    max-height:236px;
  }
}
