/* Catalog layout; Cotton UI supplies the shared component appearance. */
.catalog-section {
  margin:1.75rem 0 2.5rem
}
.catalog-section>h1 {
  font-size:1.65rem;
  font-weight:650;
  margin:0 0 1.5rem
}
.catalog-banner {
  display:block;
  width:100%;
  border-radius:var(--radius-box,.8rem)
}
.catalog-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem
}
.catalog-product-card {
  display:flex;
  flex-direction:column;
  overflow:hidden
}
/* Keep intrinsic photo dimensions from stretching the shared image area. */
.catalog-product-image {
  position:relative;
  display:block;
  flex-shrink:0;
  aspect-ratio:4/3
}
.catalog-product-image img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:1.5rem;
  box-sizing:border-box;
  object-fit:contain
}
.catalog-product-body {
  padding:1.3rem;
  border-top:1px solid #e9ecea;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:1rem
}
.catalog-product-body h2 {
  font-size:1.05rem;
  line-height:1.45;
  font-weight:650;
  margin:0
}
.catalog-product-body p {
  color:#536158;
  margin:auto 0 0
}
.catalog-pagination {
  display:flex;
  gap:1.25rem;
  align-items:center;
  justify-content:center;
  margin:2rem 0;
  flex-wrap:wrap
}
.catalog-steps {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
  text-align:center
}
.catalog-steps svg {
  font-size:2.25rem;
  color:#b99525;
  margin:.5rem auto 1rem
}
.catalog-steps h2 {
  font-weight:650;
  font-size:1.1rem
}
.catalog-steps p {
  color:#647067;
  margin:.5rem 0
}
.catalog-faq {
  max-width:900px;
  margin-inline:auto
}
.catalog-faq a {
  color:var(--color-accent-content,#17663d);
  text-decoration:underline
}
.pdp-card {
  margin:1.75rem 0;
  padding:2rem
}
.pdp-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(250px,.8fr);
  gap:2rem;
  align-items:start
}
.pdp-image {
  width:100%;
  height:300px;
  object-fit:contain
}
.pdp-description h1 {
  font-size:1.6rem;
  line-height:1.3;
  font-weight:650;
  margin:.7rem 0 1rem
}
.pdp-description p {
  color:#526058;
  line-height:1.7
}
.pdp-description ul {
  list-style:disc;
  padding-left:1.25rem;
  margin-top:.5rem
}
.pdp-badges {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem
}
#pdp-last-one {
  cursor:help
}
.pdp-price {
  font-size:1.1rem;
  font-weight:650;
  margin:1rem 0;
  color:#1e2922
}
.pdp-booking {
  padding:1.25rem
}
.pdp-booking .rental-controls {
  display:grid;
  gap:1rem
}
.pdp-booking .pdp-actions {
  margin-top:1rem
}
.pdp-actions>* {
  width:100%
}
.pdp-alert {
  margin-top:1rem
}
.pdp-page-addons {
  border-top:1px solid #e5e9e6;
  margin-top:2rem;
  padding-top:1.75rem
}
.pdp-page-addons>h2 {
  font-size:1.35rem;
  font-weight:650;
  text-align:center
}
.pdp-addon-help {
  color:#68736c;
  font-size:.875rem;
  margin:.4rem 0 1rem
}
.pdp-page-addons>.pdp-addon-help {
  text-align:center
}
.pdp-addon-scroller {
  overflow-x:auto;
  padding:3px 2px 12px
}
.pdp-addon-list {
  display:flex;
  list-style:none;
  gap:1rem;
  padding:0;
  margin:0
}
.pdp-addon-list>li {
  flex:0 0 210px
}
.pdp-addon-card {
  padding:1rem;
  height:100%;
  display:flex;
  flex-direction:column
}
.pdp-addon-image-link {
  height:140px;
  display:grid;
  place-items:center
}
.pdp-addon-image {
  width:100%;
  height:100%;
  object-fit:contain;
  min-height:0
}
.pdp-addon-details {
  display:flex;
  flex:1;
  flex-direction:column
}
.pdp-addon-name {
  font-size:.9rem;
  font-weight:600;
  line-height:1.45;
  margin:1rem 0
}
.pdp-addon-purchase {
  margin-top:auto;
  display:grid;
  gap:.7rem
}
.pdp-addon-price {
  font-weight:650;
  margin:0
}
.pdp-addon-list--compact>li {
  flex-basis:190px
}
.pdp-cart-confirmation {
  display:flex;
  gap:1rem;
  align-items:center;
  margin-bottom:1.5rem
}
.pdp-cart-confirmation-image {
  width:76px;
  height:76px;
  object-fit:contain
}
.pdp-modal-actions {
  display:flex;
  justify-content:flex-end;
  gap:.75rem;
  margin-top:1.5rem
}
.pdp-modal-content {
  max-height:calc(100dvh - 100px);
  overflow:auto
}
.pdp-modal-content h3 {
  font-size:1.2rem;
  font-weight:650
}
.pdp-modal-content .pdp-addon-list>li {
  flex-basis:190px
}
.rental-unavailable-day {
  box-shadow:inset 0 -3px #e9967a
}
.rental-calendar-help {
  font-size:.75rem;
  color:#6e5c54;
  margin-top:.35rem
}
@media(max-width:1000px) {
  .pdp-layout {
    grid-template-columns:1fr 1fr
  }
  .pdp-booking {
    grid-column:1/-1
  }
  .pdp-booking .rental-controls {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .pdp-actions {
    max-width:300px;
    margin-inline:auto
  }
}
@media(max-width:720px) {
  .catalog-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .pdp-card {
    padding:1.25rem
  }
  .pdp-layout {
    gap:1.25rem
  }
  .pdp-booking .rental-controls {
    grid-template-columns:1fr
  }
}
@media(max-width:500px) {
  .catalog-grid,.catalog-steps,.pdp-layout {
    grid-template-columns:1fr
  }
  .pdp-image {
    height:250px
  }
  .pdp-description h1 {
    font-size:1.4rem
  }
  .pdp-modal-actions {
    flex-direction:column
  }
  .pdp-addon-list>li {
    flex-basis:180px
  }
  .catalog-product-image {
    aspect-ratio:3/2
  }
}

/* Retain the original whole-card navigation supplied by Bootstrap stretched-link. */
.catalog-product-card {
  position: relative;
}
.catalog-product-body > .frontend-button::after {
  content: "";
  position: absolute;
  inset: 0;
}
