.dosarmec-product-gallery.dm-gallery-ready { display: block; min-width: 0; }
.dm-gallery-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; }
.dm-gallery-track .dosarmec-product-image { flex: 0 0 100%; scroll-snap-align: start; min-width: 0; }
.dm-gallery-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem; margin-top: 1rem; }
.dm-gallery-controls button, .dm-image-preview, .dm-image-dialog button { min-height: 44px; min-width: 44px; background: #063b91; color: #fff; border: 1px solid #063b91; border-radius: 4px; padding: .65rem 1rem; }
.dm-gallery-controls button:disabled { background: #e5eaf0; border-color: #e5eaf0; color: #465366; }
.dm-gallery-controls button:focus-visible, .dm-image-preview:focus-visible, .dm-image-dialog button:focus-visible, .dm-gallery-track a:focus-visible { outline: 3px solid #08789e; outline-offset: 3px; }
.dm-preview-card { position: relative; }
.dm-image-preview { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 10px; border: 1px solid #c3d0de; border-radius: 50%; background: #fff; color: #063b91; box-shadow: 0 2px 8px rgb(6 19 46 / 12%); }
.dm-image-preview:hover { background: #063b91; color: #fff; }
.dm-image-preview svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dm-image-dialog { width: min(1000px, 94vw); max-width: 94vw; max-height: 94dvh; padding: 1rem; border: 0; border-radius: 8px; }
.dm-image-dialog::backdrop { background: rgb(6 19 46 / 85%); }
.dm-preview-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.dm-preview-header h2 { font-size: clamp(1.1rem, 3vw, 1.5rem); margin: 0; }
.dm-image-dialog .dm-gallery-track .dosarmec-product-image img { display: block; width: 100%; height: min(52dvh, 540px); aspect-ratio: auto; object-fit: contain; }
.dm-image-dialog .dm-gallery-track { background: #f4f7fb; }
.dm-gallery-thumbnails { display: flex; gap: .5rem; overflow-x: auto; padding: 5px; margin-top: .5rem; }
.dm-gallery-thumbnails button { flex: 0 0 68px; width: 68px; height: 68px; padding: 2px; border: 2px solid #c3d0de; border-radius: 4px; background: #fff; }
.dm-gallery-thumbnails button[aria-pressed="true"] { border-color: #063b91; box-shadow: 0 0 0 1px #063b91; }
.dm-gallery-thumbnails img { display: block; width: 100%; height: 100%; object-fit: contain; }
.dm-gallery-thumbnails button:focus-visible, .dm-preview-specifications:focus-visible { outline: 3px solid #08789e; outline-offset: 2px; }
.dm-preview-specifications { display: inline-flex; align-items: center; min-height: 44px; margin-top: 1rem; padding: .65rem 1rem; border-radius: 4px; background: #063b91; color: #fff; }
.dm-preview-specifications:hover { background: #061d3c; color: #fff; }
@media (max-width: 480px) { .dm-preview-header { align-items: flex-start; } .dm-preview-header button { padding: .5rem; } .dm-image-dialog { padding: .75rem; } }
.dosarmec-identifiers-video { display: block; width: 100%; max-width: 540px; height: auto; margin-inline: auto; }
.dosarmec-product-video figcaption { max-width: 700px; margin: 1rem auto; }
.dosarmec-carousel-card, .dosarmec-catalog-card { box-shadow: 0 6px 18px rgb(6 19 46 / 8%); }
.dosarmec-carousel-card:focus-visible, .dosarmec-catalog-card > a:focus-visible { outline: 3px solid rgb(28 155 209 / 55%); outline-offset: 3px; }
.gb-carousel-dosarmec { max-width: 100%; min-width: 0; overflow: hidden; }
.gb-carousel-dosarmec:not(.gb-carousel-initialized) > .gb-carousel-items { gap: var(--gb-carousel-slide-gap, 24px) !important; }
.gb-carousel-dosarmec.gb-carousel-initialized > .gb-carousel-items { gap: 0 !important; }
.gb-carousel-dosarmec.dm-carousel-fallback > .gb-carousel-items { overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gb-carousel-dosarmec.dm-carousel-fallback > .gb-carousel-items::-webkit-scrollbar { display: none; }
.gb-carousel-dosarmec.dm-carousel-fallback > .gb-carousel-items > .gb-carousel-item { scroll-snap-align: start; }
.dosarmec-catalog-section .dosarmec-carousel-footer { margin-bottom: 2rem; }
