.wrap-v {
    position: absolute;
    display: flex;
    flex-direction: column;
}
.wrap-h {
    position: absolute;
    display: flex;
    justify-content: center;
}
.wrap-v > .wrap-h {
    position: relative;
}
.wrap-h > p {
    position: relative;
}
.wrap-h > a {
    position: relative;
}
.wrap-h > img {
    position: relative;
    margin-top: auto;
    margin-bottom: auto;
}
.wrap-v > p {
    position: relative;
}
.wrap-v > img {
    position: relative;
}
.wrap-v > a {
    position: relative;
}
.wrap-full { width: 100%; }
.wrap-left { justify-content: left; }
.wrap-right { justify-content: right; }

.item-align {
    margin-top: auto;
    margin-bottom: auto;
}
.center-h {
    margin-left: auto;
    margin-right: auto;
}
.center-v {
    margin-top: auto;
    margin-bottom: auto;
}

.gap-1 { gap: min(0.5vw, 3px); }
.gap-2 { gap: min(1vw, 6px); }
.gap-3 { gap: min(1.5vw, 9px); }
.gap-4 { gap: min(2vw, 12px); }
.gap-5 { gap: min(2.5vw, 15px); }
.gap-6 { gap: min(3vw, 18px); }
.gap-7 { gap: min(3.5vw, 21px); }
.gap-8 { gap: min(4vw, 24px); }
.gap-9 { gap: min(4.5vw, 27px); }
.gap-10 { gap: min(5vw, 30px); }
.gap-11 { gap: min(5.5vw, 33px); }
.gap-12 { gap: min(6vw, 36px); }
.gap-13 { gap: min(6.5vw, 39px); }
.gap-14 { gap: min(7vw, 42px); }
.gap-15 { gap: min(7.5vw, 45px); }
.gap-16 { gap: min(8vw, 48px); }
.gap-17 { gap: min(8.5vw, 51px); }
.gap-18 { gap: min(9vw, 54px); }
.gap-19 { gap: min(9.5vw, 57px); }
.gap-20 { gap: min(10vw, 60px); }