.layout-product {
  display: grid;
  width: 100%;
  height: 100%;
  gap: 2rem;
  grid-template-areas: "block-2 block-1""block-3 block-1";
  grid-template-columns: 1.618033fr 1fr;
  grid-template-rows: auto auto
}

.layout-product .block-1 {
  grid-area: block-1
}

.layout-product .block-2 {
  grid-area: block-2
}

.layout-product .block-3 {
  grid-area: block-3;
  overflow-x: hidden
}

@media (max-width:999px) {
  .layout-product {
    grid-template-areas: "block-2""block-1""block-3";
    grid-template-columns: 1fr;
    grid-template-rows: auto
  }
}

@media(min-width:1200px) {
  .box-add-to-cart {
    position: sticky;
    top: 120px;
    min-height: fit-content
  }
}

.image-container {
  position: relative;
  overflow: hidden;
  mix-blend-mode: darken
}

img.brand {
  position: absolute;
  left: 0;
  top: 0;
  width: 14vw;
  mix-blend-mode: darken;
  object-fit: contain;
  aspect-ratio: 1 / 1;
  max-width: 100px
}

.reveal-image {
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  mix-blend-mode: darken;
  max-width: 800px
}

.product-information .product-info-list {
  font-weight: 400;
  font-size: var(--font-size-medium);
  list-style: none;
  padding: 0;
  margin: 0
}

.product-information .product-info-list li {
  border-bottom: 1px solid var(--neutral);
  padding: .5rem 0;
  display: flex;
  gap: .5rem
}

.product-information .product-info-list li .info-label {
  flex: 0 0 33%
}

.product-information .product-info-list li:last-child {
  border-bottom: none
}

.product-information .product-info-list a {
  text-decoration: underline;
  text-underline-offset: 3px
}

.product-information .product-info-list .extra-info-link {
  background-color: var(--neutral);
  border-bottom: none;
  padding-left: 1rem;
  padding-right: 1rem;
  border-radius: var(--border-radius-sm);
  cursor: pointer
}

.product-information .product-info-list .extra-info-link::after {
  content: "\f54e";
  display: inline-block;
  font: normal normal normal 24px / 1 'Pedalmoto';
  speak: none;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  position: absolute;
  right: 1rem;
  margin-top: -.15rem
}

.comparison-wrapper {
  position: relative
}

.comparison-wrapper::after {
  display: none;
  position: absolute;
  top: -1.5rem;
  right: 30px;
  content: "←";
  font-size: 1.5rem;
  color: var(--dark);
  background: rgba(255, 255, 255, .9);
  padding: .5rem .25rem;
  border-radius: var(--border-radius-sm);
  z-index: 1;
  animation: arrowFadeLeft 2s ease-in-out infinite
}

.comparison-wrapper::before {
  display: none;
  position: absolute;
  top: -1.5rem;
  right: 0;
  content: "→";
  font-size: 1.5rem;
  color: var(--dark);
  background: rgba(255, 255, 255, .9);
  padding: .5rem .25rem;
  border-radius: var(--border-radius-sm);
  z-index: 1;
  animation: arrowFadeRight 2s ease-in-out infinite
}

@keyframes arrowFadeLeft {
  0%, 100% {
    opacity: 1
  }

  50% {
    opacity: .2
  }
}

@keyframes arrowFadeRight {
  0% {
    opacity: .2
  }

  50% {
    opacity: 1
  }

  100% {
    opacity: .2
  }
}

@media (max-width:1024px) {
  .comparison-wrapper::after, .comparison-wrapper::before {
    display: block
  }
}

.comparison-table thead th {
  border-bottom: 1px solid var(--neutral)
}

.comparison-table {
  position: relative;
  overflow-x: auto
}

.comparison-table table, .comparison-table tr, .comparison-table td, .comparison-table th, .comparison-table thead {
  border: none;
  text-wrap: balance
}

.comparison-table td {
  text-align: center
}

.comparison-table tbody tr:nth-child(odd) {
  background-color: #f5fbff
}

.comparison-table tr:not(:last-child) {
  border-bottom: 1px solid var(--neutral)
}

.comparison-table td:not(.sticky-col) {
  min-width: 150px
}

.comparison-table .sticky-col {
  position: sticky;
  left: 0;
  background-color: #fff;
  z-index: 4;
  text-align: left;
  vertical-align: middle;
  width: 80px;
  padding-left: 0
}

.comparison-table .sticky-col-2 {
  left: 98px;
  position: sticky;
  z-index: 1;
  background-color: #eef9ff
}

.comparison-table tbody tr:nth-child(odd) .sticky-col-2 {
  background-color: #d9f2ff
}

.comparison-table tbody tr:last-child .sticky-col-2 {
  border-radius: 0 0 var(--border-radius-sm) var(--border-radius-sm)
}

.comparison-table .bike-img {
  width: 150px;
  height: 100px;
  object-fit: cover;
  padding: 8px;
  mix-blend-mode: darken
}

.comparison-table .spec-label {
  font-weight: bold
}

.comparison-table .price {}

.comparison-table .table-header {
  text-align: center;
  padding: .25rem;
  border-radius: var(--border-radius-sm) var(--border-radius-sm) 0 0
}

.comparison-table .title-responsive {
  display: none
}

@media (max-width:1024px) {
  .sticky-col {
    display: none
  }

  .comparison-table .bike-img {
    width: 100px;
    height: 70px
  }

  .comparison-table .title-responsive {
    display: block;
    position: absolute;
    top: .5rem;
    width: 100vw;
    border-bottom: 1px solid var(--neutral)
  }

  .comparison-table .sticky-col-2 {
    left: 0
  }

  .comparison-table td:not(.sticky-col) {
    min-width: 150px;
    padding-top: 2rem;
    text-align: left
  }
}

.title-comparision {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
  max-height: 2.4rem;
  min-height: 2.4rem
}

.type-radios, .type-radios div {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: flex-start
}

.type-radios div {
  flex-direction: row;
  align-items: center
}

.type-radios .input-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0
}

.type-radios .control-label {
  width: 70px
}

.type-radios label {
  display: inline-block;
  cursor: pointer;
  margin: 0
}

.type-radios label.no-stock {
  position: relative;
  color: #c4c4c4
}

.type-radios label.no-stock::after {
  position: absolute;
  content: "";
  left: 0;
  top: 50%;
  right: 0;
  border-top: 2px solid;
  border-color: inherit;
  transform: rotate(-45deg);
  color: #dbdbdb;
  z-index: -1;
  overflow: hidden;
  width: 58px;
  margin: auto
}

.type-radios .text-radio {
  display: inline-block;
  padding: 10px 20px;
  border: 2px solid #e5e7eb;
  border-radius: var(--border-radius-sm);
  transition: all .2s ease;
  font-size: var(--font-size-medium);
  white-space: nowrap;
  font-weight: var(--font-weight-bold)
}

.type-radios label:hover .text-radio {
  border-color: var(--neutral)
}

.type-radios input[type="radio"]:checked+.text-radio {
  background-color: var(--neutral);
  border-color: var(--brand)
}

.type-radios .no-stock input[type="radio"]:checked+.text-radio {
  border-color: var(--danger);
  background-color: #ffc2c8;
  color: var(--danger)
}

.extras {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  width: 100%
}

.extras .product-panel-link {
  transform: var(--degreesNeg);
  background: var(--neutral);
  padding: .5rem 2rem .5rem 1rem;
  text-wrap: balance;
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: var(--font-weight-normal);
  justify-content: flex-start;
  border-radius: var(--border-radius-sm);
  transition: all .2s ease-in-out
}

.extras .product-panel-link:hover {
  background-color: var(--highlight)
}

.extras i {
  font-size: 42px;
  opacity: .8;
  transform: var(--degreesPos)
}

.extras span {
  transform: var(--degreesPos)
}

.features {
  font-size: var(--font-size-medium)
}

.features ul {
  padding: 0;
  margin: 0;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  display: grid;
  gap: 1rem
}

.features ul li {
  display: flex;
  gap: .5rem;
  align-items: flex-start
}

.features .icon {
  font-size: 34px;
  padding: .50rem;
  border-radius: var(--border-radius-sm);
  color: var(--brand);
  background-color: var(--neutral)
}

.features span {
  display: flex;
  flex-direction: column;
  font-weight: var(--font-weight-light)
}

.features span b {
  font-weight: var(--font-weight-bold)
}

.product-name {
  transition: font-size .6s ease-in-out;
  font-size: var(--font-size-xl);
  position: relative
}

ul.extra-info-product {
  list-style: none;
  display: flex;
  padding: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2)
}

ul.extra-info-product a {
  background-color: var(--border-color);
  padding: .2rem 1rem;
  border-radius: 2rem;
  display: inline-block;
  border: 1px solid var(--border-color);
  transition: all ease-in-out 300ms
}

ul.extra-info-product a:hover {
  transform: translateY(-2px);
  background-color: var(--neutral-base);
  border: 1px solid var(--brand)
}

span.product-reference {
  position: absolute;
  bottom: 0;
  left: 0;
  font-size: var(--font-size-sm)
}

.d-flex-price-info {
  display: flex;
  gap: .5rem;
  align-items: flex-end;
  flex-wrap: wrap
}

.masonry {
  columns: 3;
  gap: 1.5rem;
  width: 100%;
  padding: 0
}

.masonry>* {
  break-inside: avoid;
  margin-bottom: 1.5rem
}

.masonry-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius-sm);
  transform-origin: center;
  view-timeline-name: --masonry;
  view-timeline-axis: block;
  animation: showMasonry both linear;
  animation-timeline: --masonry;
  animation-range: entry 25% cover 55%;
  border: 1px solid var(--border-color);
  box-shadow: var(--box-shadow)
}

.masonry-item a {
  display: block;
  width: 100%;
  height: 100%
}

.masonry-item img {
  width: 100%;
  object-fit: cover;
  border-radius: var(--border-radius-sm);
  transform: scale(1.9)
}

@keyframes showMasonry {
  from {
    opacity: 0;
    scale: .8;
    transform: translateY(20px)
  }

  to {
    opacity: 1;
    scale: 1;
    transform: translateY(0)
  }
}

.masonry-item:nth-child(6n + 1) {
  aspect-ratio: 3 / 4
}

.masonry-item:nth-child(6n + 2) {
  aspect-ratio: 4 / 3
}

.masonry-item:nth-child(6n + 3) {
  aspect-ratio: 4 / 3
}

.masonry-item:nth-child(6n + 4) {
  aspect-ratio: 3 / 4
}

.masonry-item:nth-child(6n + 5) {
  aspect-ratio: 3 / 4
}

.masonry-item:nth-child(6n + 6) {
  aspect-ratio: 4 / 3
}

@media (max-width:1024px) {
  .masonry {
    columns: 2;
    gap: 1rem
  }
}

@media (max-width:600px) {
  .masonry {
    columns: 2
  }

  .masonry-item {
    animation-range: entry 15% cover 45%
  }
}

@supports not (animation-timeline:view()) {
  .masonry-item {
    opacity: 1;
    scale: 1;
    animation: none
  }
}

.product-reviews .stars {
  margin: 0
}

.shipping-info i, .shipping-info .highlight-effect {
  display: none
}

.shipping-info b {
  text-transform: lowercase
}

.shipping-info span {
  display: inline
}

.shipping-info .highlight-text {
  margin: unset;
  display: inline
}

.btn-simulator {
  background: transparent;
  border: none;
  font-weight: var(--font-family-base);
  text-decoration: underline;
  padding: 0;
  display: inline;
  text-underline-offset: 4px
}

#iframemodal .toast-notification {
  display: none !important
}

div#productos-comprados-juntos {
  width: 100%;
  max-width: 800px;
  overflow: hidden
}

div#productos-comprados-juntos img {
  object-fit: cover
}

.product-not-bike .reveal-image {
  aspect-ratio: 1 / 1;
  max-width: 550px
}

.product-not-bike .image-container {
  padding: 1rem 0;
  text-align: center
}

.product-not-bike .masonry-item img {
  transform: scale(1);
  padding: 0
}

.product-not-bike .masonry-item {
  aspect-ratio: 1 / 1 !important
}

body#product #wrapper {
  margin-bottom: 0
}

.box-add-to-cart.presale-allowed li.extra-info.shipping-info {
  display: none;
}

b.info-value.presale-allowed {
  background-color: #efffcc;
  font-weight: 400;
  padding: 1rem;
  border-radius: 1rem
}