/*
 * Fasto V4.1 - square layout polish for V4.0 branch.
 * Loaded last after all V2/V3 CSS.
 */
:root{
  --fasto-v41-page-pad:48px;
  --fasto-v41-page-pad-mobile:18px;
  --fasto-v41-line:#dfe4ea;
  --fasto-v41-ink:#10141b;
  --fasto-v41-muted:#687386;
  --fasto-v41-red:#ff3131;
  --fasto-v41-footer:#25272b;
  --fasto-v41-footer-line:#373a40;
}

/* Global square visual language. */
*,*::before,*::after{border-radius:0;}
body{background:#f5f6f8;}
.site-grid,.site-grid-inner{max-width:none;width:100%;}
.fasto-v2-page,
.fasto-v25-page{overflow-x:hidden;}

/* Shared page width: almost full page, only small left/right padding. */
.fasto-v25-section,
.fasto-v2-section,
.page-content,
.bike-advisor-main-wrapper,
.bike-gear-calculator,
.bikes-filter-container,
.bikes-filter-data,
.fasto-v2-gearing-page .fasto-v2-page-title,
.fasto-v2-advisor-page .fasto-v2-page-title,
.fasto-v25-home .fasto-v25-section{
  padding-left:var(--fasto-v41-page-pad);
  padding-right:var(--fasto-v41-page-pad);
  box-sizing:border-box;
}

.fasto-v2-container,
.container,
.bike-advisor-holder,
.bike-advisor-results-wrapper,
.advisor-price-main-wrapper,
.bike-gear-calculator > .container,
.bikes-filter-container,
.bikes-filter-data,
ul.articles.bikes,
.ajax-bikes-holder ul.articles.bikes,
.bikes-filter-data ul.articles.bikes,
.bike-advisor-results ul.articles.bikes,
.fasto-v25-browse ul.articles.bikes{
  width:100%;
  max-width:none;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}

/* Bike Advisor results: use same card grid as filter/archive. */
.fasto-v2-advisor-page .fasto-v2-section.tight{
  padding-top:62px;
  padding-bottom:62px;
}
.fasto-v2-advisor-page .fasto-v2-section.tight > .container{
  width:100%;
  max-width:none;
  display:block;
  margin:0;
  padding:0;
}
.bike-advisor-results-wrapper{
  width:100%;
  max-width:none;
  padding:0;
  margin:0;
}
.bike-advisor-results:not(:empty){margin:0 0 42px;}
.bike-advisor-results ul.articles.bikes,
.bike-advisor-results .articles.bikes{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  width:100%;
  max-width:none;
  padding:0;
  margin:0;
}
.bike-advisor-results ul.articles.bikes > li.bike-model,
.bike-advisor-results .articles.bikes > li.bike-model{
  width:auto;
  max-width:none;
  flex:initial;
  padding:0;
  display:flex;
}
.advisor-price-main-wrapper{
  width:min(360px,100%);
  max-width:none;
  margin:42px auto 0;
  padding:0;
}
.advisor-price-holder,
.advisor-price-inner,
.bike-advisor-step .choice > div,
.bike-advisor-step .dark-box{
  border-radius:0;
  box-shadow:none;
}

/* Bike filter width/padding and square controls. */
.bikes-filter-container{
  padding-left:var(--fasto-v41-page-pad);
  padding-right:var(--fasto-v41-page-pad);
}
.bikes-filter-data{
  padding-left:0;
  padding-right:0;
}
.bikes-filter-data ul.articles.bikes,
.bikes-filter-container ul.articles.bikes,
.fasto-v25-browse ul.articles.bikes,
ul.articles.bikes{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  width:100%;
  max-width:none;
  padding:0;
  margin:38px 0 0;
}
.bikes-filter-container .filters,
.bikes-filter-container .filter-main-holder,
.bikes-filter-container .filter-holder-holder,
.bikes-filter-container .filter-main-btn,
.bikes-filter-container .fasto-v2-filter-toggle,
.bikes-filter-container .apply_filter,
.bikes-filter-container .reset_filter,
.bikes-filter-container input,
.bikes-filter-container select,
.bikes-filter-container button{
  border-radius:0;
}

/* Equal, square bike cards on every loop. */
ul.articles.bikes > li.bike-model,
.ajax-bikes-holder ul.articles.bikes > li.bike-model,
.bikes-filter-data ul.articles.bikes > li.bike-model,
.bike-advisor-results ul.articles.bikes > li.bike-model,
.fasto-v25-browse ul.articles.bikes > li.bike-model{
  display:flex;
  min-width:0;
  max-width:none;
  width:auto;
  padding:0;
}
ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
.ajax-bikes-holder ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
.bikes-filter-data ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
.bike-advisor-results ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
.fasto-v25-browse ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card{
  display:grid;
  grid-template-rows:300px 158px 88px;
  width:100%;
  min-height:546px;
  height:546px;
  padding:0;
  margin:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--fasto-v41-line);
  border-left:0;
  border-top:3px solid transparent;
  border-image:linear-gradient(90deg,#f47a28,#38d4dd) 1;
  box-shadow:none;
  border-radius:0;
}
ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card,
.ajax-bikes-holder ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card,
.bikes-filter-data ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card,
.bike-advisor-results ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card,
.fasto-v25-browse ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card{
  border-left:1px solid var(--fasto-v41-line);
}
.fasto-v37-bike-card .bike-year{
  position:absolute;
  top:20px;
  left:28px;
  z-index:4;
  margin:0;
  color:var(--fasto-v41-red);
  font-size:13px;
  line-height:1;
  font-weight:700;
}
.fasto-v37-bike-card .compare-holder-main{
  position:absolute;
  top:18px;
  right:22px;
  z-index:4;
}
.fasto-v37-bike-card .compare-holder a,
.compare-holder.loop a{
  width:34px;
  height:34px;
  padding:0;
  border:1px solid var(--fasto-v41-line);
  background:#fff;
  border-radius:0;
  box-shadow:none;
}
.fasto-v37-bike-card .compare-holder a span{display:none;}
.fasto-v37-bike-card .fasto-v37-card-media{
  grid-row:1;
  display:block;
  min-height:0;
  overflow:hidden;
  background:#fff;
}
.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;
  margin:0;
  padding:32px 32px 18px;
  box-sizing:border-box;
  border-bottom:1px solid #e5e0d7;
  background:#fff;
}
.fasto-v37-bike-card .fasto-v37-card-media .post-thumb img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  margin:0 auto;
}
.fasto-v37-bike-card .fasto-v37-card-content{
  grid-row:2;
  display:grid;
  grid-template-rows:34px minmax(0,1fr);
  min-height:0;
  padding:0 28px 20px;
  border-bottom:1px solid var(--fasto-v41-line);
  box-sizing:border-box;
}
.fasto-v37-bike-card .bike-categories-wrapper{
  display:flex;
  align-items:center;
  min-height:34px;
  margin:0;
  padding:0;
  overflow:hidden;
}
.fasto-v37-bike-card .bike-categories-wrapper ul,
.fasto-v37-bike-card .bike-categories{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:nowrap;
  margin:0;
  padding:0;
  white-space:nowrap;
}
.fasto-v37-bike-card .bike-categories-wrapper li,
.fasto-v37-bike-card .bike-categories-wrapper a{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 10px;
  border:1px solid var(--fasto-v41-line);
  background:#fff;
  border-radius:0;
  color:#556174;
  font-size:12px;
  line-height:1;
}
.fasto-v37-bike-card .post-details{
  display:flex;
  align-items:flex-start;
  min-height:0;
  padding:18px 0 0;
  margin:0;
}
.fasto-v37-bike-card .post-title{
  display:-webkit-box;
  width:100%;
  margin:0;
  padding:0;
  color:var(--fasto-v41-ink);
  font-size:clamp(20px,1.35vw,29px);
  line-height:1.08;
  letter-spacing:-.02em;
  max-height:94px;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.fasto-v37-bike-card .post-title a{color:inherit;}
.fasto-v37-bike-card .fasto-v37-card-footer{
  grid-row:3;
  display:grid;
  grid-template-rows:1fr auto;
  gap:6px;
  min-height:88px;
  padding:18px 28px 16px;
  box-sizing:border-box;
  border-top:0;
  background:#fff;
}
.fasto-v37-bike-card .brand-price{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  min-height:34px;
  margin:0;
  padding:0;
  border:0;
}
.fasto-v37-bike-card .brand-price .price,
.fasto-v37-bike-card .brand-price .bike-price,
.fasto-v37-bike-card .bike-price{
  margin:0;
  color:var(--fasto-v41-red);
  font-size:clamp(24px,1.7vw,34px);
  line-height:1;
  font-weight:800;
}
.fasto-v37-bike-card .brand-price ul{margin:0;padding:0;list-style:none;}
.fasto-v37-bike-card .brand-price li,
.fasto-v37-bike-card .brand-price a{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 12px;
  border:1px solid var(--fasto-v41-line);
  border-radius:0;
  color:#647086;
  font-size:12px;
  line-height:1;
  background:#fff;
}
.fasto-v37-bike-card .fasto-v2-admin-card-links{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:18px;
  margin:0;
  padding:0;
  font-size:12px;
}

/* Gearing page: full width, square, readable tables/results. */
.fasto-v2-gearing-page .fasto-v2-page-title{
  padding-top:72px;
  padding-bottom:42px;
}
.fasto-v2-gearing-page .fasto-v2-page-title .fasto-v2-container,
.fasto-v2-gearing-page .page-content,
.bike-gear-calculator > .container{
  width:100%;
  max-width:none;
  margin:0;
}
.bike-gear-calculator > .container{
  display:grid;
  grid-template-columns:minmax(280px,.9fr) minmax(0,2.1fr);
  gap:0;
  padding:0;
}
.bike-gear-calculator > .container > .col-desktop-4,
.bike-gear-calculator > .container > .col-desktop-8,
.bike-gear-calculator > .container > .col-desktop-12{
  width:auto;
  max-width:none;
  flex:initial;
  padding:0;
}
.bike-gear-calculator > .container > .col-desktop-4{grid-column:1;}
.bike-gear-calculator > .container > .col-desktop-8{grid-column:2;}
.bike-gear-calculator > .container > .col-desktop-12{grid-column:1 / -1;}
.gearing-box{
  margin:0;
  padding:24px;
  background:#fff;
  border:1px solid var(--fasto-v41-line);
  box-shadow:none;
  border-radius:0;
}
.gearing-box + .gearing-box{border-top:0;}
.gearing-box h3,.gearing-box h4{margin:0 0 14px;}
.gearing-box .choose,
.gearing-box .results,
.predefined_cassets ul,
.cassette_cogs_inputs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 22px;
  padding:0;
  list-style:none;
}
.gearing-box .choose a,
.gearing-box input,
.gearing-box select{
  border-radius:0;
  box-shadow:none;
}
.calculate-gearing{margin:34px 0 70px;}
.gear-calculator-results{
  width:100%;
  max-width:none;
  margin:0 0 72px;
  padding:0;
  overflow-x:auto;
  background:#fff;
  border:1px solid var(--fasto-v41-line);
  border-radius:0;
  box-shadow:none;
}
.gear-calculator-results h3,
.gear-calculator-results h4{
  margin:0;
  padding:18px 20px;
  border-bottom:1px solid var(--fasto-v41-line);
  background:#fff;
  color:var(--fasto-v41-ink);
}
.gear-calculator-results > ul{
  display:flex;
  gap:18px;
  align-items:center;
  margin:0;
  padding:14px 20px;
  list-style:none;
  border-bottom:1px solid var(--fasto-v41-line);
  background:#fff;
}
.gear-calculator-results table{
  width:max-content;
  min-width:100%;
  border-collapse:collapse;
  border-spacing:0;
  margin:0;
  background:#fff;
}
.gear-calculator-results th,
.gear-calculator-results td{
  padding:13px 16px;
  border:1px solid var(--fasto-v41-line);
  white-space:nowrap;
}
.gear-calculator-results th{
  background:#111317;
  color:#fff;
}

/* Homepage category section: tighter and no overlap. */
.fasto-v25-category-grid,
.fasto-v25-category-grid.fasto-v26-category-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--fasto-v41-line);
  border-left:1px solid var(--fasto-v41-line);
}
.fasto-v25-category-card,
.fasto-v25-category-card.fasto-v26-category-card{
  position:relative;
  display:grid;
  grid-template-rows:auto auto 1fr auto;
  min-height:250px;
  padding:32px 34px 28px;
  border-right:1px solid var(--fasto-v41-line);
  border-bottom:1px solid var(--fasto-v41-line);
  background:#fff;
  color:var(--fasto-v41-ink);
  overflow:visible;
}
.fasto-v25-category-card small{
  position:static;
  display:block;
  width:auto;
  margin:0 0 16px;
  padding:0;
  color:var(--fasto-v41-red);
  font-size:13px;
  line-height:1;
  font-weight:800;
  letter-spacing:.04em;
}
.fasto-v25-category-card span{
  position:static;
  display:block;
  margin:0 0 22px;
  padding:0;
  color:#04080f;
  font-size:clamp(28px,2.2vw,42px);
  line-height:1;
  letter-spacing:-.04em;
  text-transform:uppercase;
}
.fasto-v25-category-card p{
  margin:0;
  max-width:420px;
  color:var(--fasto-v41-muted);
  font-size:15px;
  line-height:1.65;
}
.fasto-v25-category-card em{
  position:static;
  display:block;
  align-self:end;
  margin:28px 0 0;
  padding:0;
  color:var(--fasto-v41-red);
  background:transparent;
  font-style:normal;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* Footer: dark gray, premium, square and clean. */
footer#footer,
#footer{
  margin:0;
  padding:0;
  background:var(--fasto-v41-footer);
  color:#fff;
  border:0;
}
#footer .fasto-v2-footer-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:start;
  width:100%;
  max-width:none;
  margin:0;
  padding:72px var(--fasto-v41-page-pad);
  border:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
}
#footer .fasto-v2-footer-brand strong{
  display:block;
  margin:0 0 12px;
  color:#fff;
  font-size:34px;
  line-height:1;
  letter-spacing:-.03em;
}
#footer .fasto-v2-footer-brand p{
  max-width:520px;
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:15px;
}
#footer .fasto-v2-footer-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(120px,1fr));
  gap:16px 40px;
}
#footer .fasto-v2-footer-links a{
  display:block;
  min-height:auto;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.76);
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  border-radius:0;
}
#footer .fasto-v2-footer-links a:hover{color:#fff;background:transparent;}
#footer .copyright-user{
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:start;
  width:100%;
  max-width:none;
  margin:0;
  padding:28px var(--fasto-v41-page-pad) 40px;
  color:rgba(255,255,255,.58);
  border-top:1px solid var(--fasto-v41-footer-line);
  text-align:left;
}
#footer .copyright-user a{color:rgba(255,255,255,.62);}
#footer .copyright-user a:hover{color:#fff;}
#footer .copyright-menu ul{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin:0;
  padding:0;
  list-style:none;
}
#footer .copyright-menu li{margin:0;padding:0;line-height:1.4;}
#footer .copyright-text{text-align:right;}

/* More buttons strip before footer: square and consistent. */
.fasto-v2-tools-strip,
.latest-compares.more-buttons{
  width:min(1200px,calc(100% - 96px));
  margin:56px auto 32px;
  border-radius:0;
  box-shadow:none;
}
.fasto-v2-tools-strip a,
.latest-compares.more-buttons a{border-radius:0;}

@media (max-width:1180px){
  .bike-advisor-results ul.articles.bikes,
  .bike-advisor-results .articles.bikes,
  .bikes-filter-data ul.articles.bikes,
  .bikes-filter-container ul.articles.bikes,
  .fasto-v25-browse ul.articles.bikes,
  ul.articles.bikes{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card,
  .bike-advisor-results ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model:nth-child(4n+1) > article.fasto-v2-bike-card{
    border-left:0;
  }
  ul.articles.bikes > li.bike-model:nth-child(3n+1) > article.fasto-v2-bike-card,
  .bike-advisor-results ul.articles.bikes > li.bike-model:nth-child(3n+1) > article.fasto-v2-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model:nth-child(3n+1) > article.fasto-v2-bike-card{
    border-left:1px solid var(--fasto-v41-line);
  }
}
@media (max-width:900px){
  :root{--fasto-v41-page-pad:var(--fasto-v41-page-pad-mobile);}
  .bike-advisor-results ul.articles.bikes,
  .bike-advisor-results .articles.bikes,
  .bikes-filter-data ul.articles.bikes,
  .bikes-filter-container ul.articles.bikes,
  .fasto-v25-browse ul.articles.bikes,
  ul.articles.bikes{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  ul.articles.bikes > li.bike-model:nth-child(3n+1) > article.fasto-v2-bike-card,
  .bike-advisor-results ul.articles.bikes > li.bike-model:nth-child(3n+1) > article.fasto-v2-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model:nth-child(3n+1) > article.fasto-v2-bike-card{
    border-left:0;
  }
  ul.articles.bikes > li.bike-model:nth-child(2n+1) > article.fasto-v2-bike-card,
  .bike-advisor-results ul.articles.bikes > li.bike-model:nth-child(2n+1) > article.fasto-v2-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model:nth-child(2n+1) > article.fasto-v2-bike-card{
    border-left:1px solid var(--fasto-v41-line);
  }
  ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
  .bike-advisor-results ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card{
    grid-template-rows:250px 154px 82px;
    height:486px;
    min-height:486px;
  }
  .fasto-v37-bike-card .fasto-v37-card-media .post-thumb{height:250px;min-height:250px;padding:26px 22px 14px;}
  .bike-gear-calculator > .container{grid-template-columns:1fr;}
  .bike-gear-calculator > .container > .col-desktop-4,
  .bike-gear-calculator > .container > .col-desktop-8{grid-column:1;}
  .fasto-v25-category-grid,
  .fasto-v25-category-grid.fasto-v26-category-grid{grid-template-columns:1fr;}
  #footer .fasto-v2-footer-inner,
  #footer .copyright-user{grid-template-columns:1fr;}
  #footer .copyright-text{text-align:left;}
}
@media (max-width:560px){
  .bike-advisor-results ul.articles.bikes,
  .bike-advisor-results .articles.bikes,
  .bikes-filter-data ul.articles.bikes,
  .bikes-filter-container ul.articles.bikes,
  .fasto-v25-browse ul.articles.bikes,
  ul.articles.bikes{
    grid-template-columns:1fr;
  }
  ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
  .bike-advisor-results ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card,
  .bikes-filter-data ul.articles.bikes > li.bike-model > article.fasto-v2-bike-card{
    border-left:1px solid var(--fasto-v41-line);
  }
}
