display: inline-block в стили к div a и поставьте точку с запятой после импорта шрифта, а то сейчас у вас первое правило вообще не работает:.prop:last-child выберет последний .prop, только если он является последним элементом своего родителя, а у вас после него ещё один div с пустым классом. Используйте last-of-type вместо last-child, будет работать. .swiper-container по умолчанию overflow: hidden, иначе торчали бы лишние слайды. Если хотите тени внутри слайдов, заверните их содержимое в обёртку, перенесите на неё тень, а самому слайду добавьте паддинги по размеру тени. При необходимости можно это скомпенсировать маргинами у самого .swiper-container. .p-0 и его responsive-аналоги, с брейкпойнтами..row, придётся добавить родителю .overflow-hidden. .item присваиваете высоту .hidden. Там ещё label рядом лежит, у которого своя высота есть + бордер + маргин. Замените 70 в расчёте h на высоту лейбла + его нижний маргин, и логика будет правильной. А ещё лучше просто сделайте так: let h = parent.scrollHeight;