/* Native horizontal scrolling keeps the photographs usable without JavaScript. */
[data-carousel] .carousel-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}
.carousel-hint {
  color:var(--muted);
  font-family:'Manrope',Arial,sans-serif;
  font-size:11px;
}
.carousel-navigation {
  display:flex;
  align-items:center;
  gap:12px;
}
.carousel-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:11px 15px;
  border:1px solid #cbb2a7;
  border-radius:999px;
  background:#fffaf2;
  color:#71332c;
  font-family:'Manrope',Arial,sans-serif;
  font-size:11px;
  font-weight:600;
  line-height:1.4;
  transition:background .2s,border-color .2s;
}
.carousel-button svg {
  width:17px;
  height:17px;
}
.carousel-next {
  border-color:var(--brand-red);
  background:var(--brand-red);
  color:#fffdf7;
}
.carousel-button:not(:disabled):hover {
  border-color:#b4947e;
  background:#ecddd6;
}
.carousel-next:not(:disabled):hover {
  background:var(--brand-red-hover);
  border-color:var(--brand-red-hover);
}
.carousel-button:disabled {
  opacity:.4;
}
.carousel-counter {
  min-width:76px;
  color:#565a50;
  font-family:'Manrope',Arial,sans-serif;
  font-size:11px;
  font-variant-numeric:tabular-nums;
  text-align:center;
  white-space:nowrap;
}
[data-carousel] .gallery-grid {
  --slide-size:calc((100% - 48px) / 3);
  position:relative;
  display:flex;
  flex-wrap:nowrap;
  gap:24px;
  overflow-x:auto;
  overflow-y:hidden;
  padding-block:3px 16px;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  scrollbar-color:#cbb2a7 transparent;
}
[data-carousel] .gallery-item {
  flex:0 0 var(--slide-size);
  scroll-snap-align:start;
}
[data-carousel] .gallery-photo {
  aspect-ratio:4/5;
}
[data-carousel] .gallery-label {
  display:block;
  min-height:75px;
  padding-top:15px;
}
[data-carousel] .gallery-label strong {
  display:block;
  color:var(--ink);
  font-family:'Manrope',Arial,sans-serif;
  font-size:14px;
  font-weight:600;
  line-height:1.5;
}
[data-carousel] .gallery-label>span {
  display:block;
  margin-top:5px;
  font-size:10px;
  line-height:1.5;
}
[data-carousel] .gallery-photo .gallery-plus {
  opacity:1;
}
.carousel-button:focus-visible,
[data-carousel-track]:focus-visible {
  outline:2px solid var(--brand-red);
  outline-offset:4px;
}
[data-carousel] .gallery-item:focus-visible {
  outline:2px solid var(--brand-red);
  outline-offset:-2px;
}
@media(max-width:1100px) {
  [data-carousel] .gallery-grid {
    --slide-size:calc((100% - 20px) / 2);
    gap:20px;
  }
}
@media(max-width:650px) {
  [data-carousel] .carousel-toolbar {
    flex-direction:column;
    align-items:stretch;
    gap:15px;
    margin-bottom:20px;
  }
  .carousel-navigation {
    justify-content:space-between;
    gap:8px;
  }
  .carousel-button {
    padding-inline:12px;
    font-size:10px;
  }
  .carousel-counter {
    min-width:65px;
    font-size:10px;
  }
  [data-carousel] .gallery-grid {
    --slide-size:90%;
    gap:16px;
  }
  [data-carousel] .gallery-label strong {
    font-size:13px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .carousel-button,
  [data-carousel] .gallery-photo img {
    transition:none;
  }
  [data-carousel] .gallery-item:hover img {
    transform:none;
  }
}
