/* Homepage slides share the site's existing navy, red, typography and spacing. */
[data-carousel] [hidden] { display: none !important; }
.carousel-slides { min-width: 0; }
.carousel-slide { animation: carousel-reveal .45s ease-out; }
.carousel-controls { display: flex; align-items: center; gap: .5rem; padding: .75rem 1.25rem; color: var(--navy); }
.carousel-controls button { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; padding: .5rem; border: 1px solid var(--line); border-radius: 0; background: var(--white); color: var(--navy); font: 600 1.25rem/1 var(--body); cursor: pointer; touch-action: manipulation; }
.carousel-controls button:hover { color: var(--white); background: var(--navy); border-color: var(--navy); }
.carousel-controls button:focus-visible, .bag-slide a:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.carousel-controls .carousel-play { margin-left: auto; min-width: 4.75rem; font-size: .875rem; }
.carousel-position { min-width: 3.5rem; text-align: center; font: 400 .875rem/1.5 var(--label); font-variant-numeric: tabular-nums; }
.bag-carousel { justify-content: center; }
.bag-carousel .carousel-slides { flex: 1; display: grid; }
.bag-slide { display: flex; flex-direction: column; min-width: 0; height: 100%; }
.bag-image-link { display: flex; justify-content: center; align-items: center; flex: 1; min-height: 0; }
.hero-visual.bag-carousel img { width: 100%; height: clamp(25rem, 38vw, 36rem); min-height: 0; flex: none; object-fit: contain; object-position: center; }
.bag-carousel figcaption { min-height: 5rem; align-items: center; padding: 1rem 1.5rem .5rem; border-top-width: 3px; }
.bag-carousel figcaption a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 2.75rem; }
.bag-carousel figcaption a:hover { color: var(--red); }
.diagram-carousel .carousel-controls { padding: 0 0 .75rem; border-bottom: 1px solid var(--line); }
.diagram-frame { display: flex; align-items: center; width: 100%; aspect-ratio: 1; }
.diagram-frame .furnace-scene { flex: none; }
.diagram-slide figcaption { min-height: 4.5rem; }
.diagram-slide figcaption > strong { display: block; color: var(--navy); font-size: 1.05rem; }
.diagram-slide figcaption > span { display: block; }
.diagram-slide .furnace-product-links { min-height: 17rem; align-content: start; }
@keyframes carousel-reveal { from { opacity: .2; } to { opacity: 1; } }
@media (max-width: 1100px) {
  .diagram-slide .furnace-product-links { display: none; }
}
@media (max-width: 760px) {
  .hero-visual.bag-carousel img { height: clamp(19rem, 85vw, 30rem); aspect-ratio: auto; }
  .bag-carousel figcaption { min-height: 4.75rem; font-size: .8125rem; }
  .carousel-controls { padding: .5rem 1rem .85rem; }
  .diagram-slide figcaption { font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
  .carousel-slide { animation: none; }
}
