.vbg-occasions { padding-block: 25px 35px; scroll-margin-top: 110px; }
.vbg-occasions__heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 30px; margin-bottom: 25px; }
.vbg-occasions__heading h2 { margin: 0; font-size: clamp(1.5rem, 2.4vw, 1.9rem); font-weight: 500; line-height: 1.25; letter-spacing: -.035em; }
.vbg-occasions__heading p { margin: 0; color: #626769; font-size: .8rem; }
.vbg-occasions__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.vbg-occasion { --occasion-paper: #f5f2ec; display: flex; flex-direction: column; min-width: 0; overflow: hidden; color: #242826; background: var(--occasion-paper); border: 1px solid #e2e5e1; border-radius: 16px; text-decoration: none; transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease; }
.vbg-occasion--club { --occasion-paper: #f0f4ed; }
.vbg-occasion--craft { --occasion-paper: #eef2f1; }
.vbg-occasion--beauty { --occasion-paper: #f6eeeb; }
.vbg-occasion__image { overflow: hidden; aspect-ratio: 1.82; background: #d1d6cd; }
.vbg-occasion__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.vbg-occasion--wedding .vbg-occasion__image img { object-position: 50% center; }
.vbg-occasion--club .vbg-occasion__image img { object-position: 50% 56%; }
.vbg-occasion--craft .vbg-occasion__image img { object-position: 65% 47%; }
.vbg-occasion__copy { display: flex; flex: 1; flex-direction: column; padding: 21px 23px 20px; }
.vbg-occasion__brand { display: flex; align-items: center; gap: 9px; min-height: 35px; margin-bottom: 15px; color: #4e5a49; }
.vbg-occasion__brand--wedding { font: 1.4rem Georgia, serif; }
.vbg-occasion__brand--wedding i { color: #a47851; }
.vbg-occasion__brand--club { font: .88rem Georgia, serif; }
.vbg-occasion__brand--club img { width: 25px; height: 35px; object-fit: contain; filter: invert(1); mix-blend-mode: multiply; }
.vbg-occasion__brand--club small { display: block; margin-top: 3px; font: .51rem/1.2 sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.vbg-occasion__brand--craft img { display: block; width: 150px; max-width: 100%; height: 33px; object-fit: contain; object-position: left; }
.vbg-occasion__brand--beauty { flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; color: #785451; font: 1.45rem/1 Georgia, serif; letter-spacing: .16em; }
.vbg-occasion__brand--beauty small { font: .5rem/1.2 sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.vbg-occasion h3 { margin: 0 0 8px; font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-weight: 600; line-height: 1.25; letter-spacing: -.035em; }
.vbg-occasion__copy p { margin: 0 0 19px; color: #58615b; font-size: .83rem; line-height: 1.55; }
.vbg-occasion__link { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: auto; font-size: .76rem; font-weight: 600; }
.vbg-occasion__link > span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #a7b2a9; border-radius: 50%; font-size: 1rem; transition: background .25s ease, color .25s ease; }
.vbg-occasion:hover { transform: translateY(-4px); border-color: #a7b2a9; box-shadow: 0 14px 28px #293a3010; }
.vbg-occasion:hover .vbg-occasion__image img { transform: scale(1.035); }
.vbg-occasion:hover .vbg-occasion__link > span { color: #fff; background: #31594f; border-color: #31594f; }
.vbg-occasion:focus-visible { outline: 3px solid #31594f; outline-offset: 5px; }
.vbg-occasions__note { margin: 11px 0 0; font-size: .7rem; color: #626769; }
html[data-contrast="high"] .vbg-occasion { color: #000; border-color: #000; background: #fff; }
html[data-contrast="high"] :is(.vbg-occasions__heading p, .vbg-occasion__copy p, .vbg-occasions__note) { color: #222; }
@media (max-width: 980px) {
    .vbg-occasions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .vbg-occasion__copy { padding: 18px; }
    .vbg-occasion__copy p { font-size: .8rem; }
}
@media (max-width: 700px) {
    .vbg-occasions { padding-block: 14px 26px; }
    .vbg-occasions__heading { gap: 10px; margin-bottom: 20px; }
    .vbg-occasions__heading h2 { max-width: 25ch; }
    .vbg-occasions__grid { grid-template-columns: 1fr; gap: 12px; }
    .vbg-occasion { display: grid; grid-template-columns: minmax(100px, 35%) minmax(0, 1fr); border-radius: 13px; }
    .vbg-occasion__image { aspect-ratio: auto; min-height: 174px; }
    .vbg-occasion__copy { padding: 18px 16px; }
    .vbg-occasion__brand { min-height: 29px; margin-bottom: 11px; }
    .vbg-occasion__brand--wedding { font-size: 1.2rem; }
    .vbg-occasion__brand--craft img { width: 125px; height: 29px; }
    .vbg-occasion__brand--club { font-size: .78rem; }
    .vbg-occasion__brand--club img { width: 21px; height: 29px; }
    .vbg-occasion h3 { font-size: 1.16rem; text-wrap: initial; }
    .vbg-occasion__copy p { margin-bottom: 13px; font-size: .76rem; }
    .vbg-occasion__link { gap: 6px; font-size: .7rem; }
    .vbg-occasion__link > span { flex: 0 0 25px; width: 25px; height: 25px; font-size: .9rem; }
    .vbg-occasions__note { font-size: .66rem; }
}
@media (max-width: 360px) {
    .vbg-occasion__copy { padding-inline: 12px; }
    .vbg-occasion h3 { font-size: 1.04rem; }
}
@media (prefers-reduced-motion: reduce) {
    .vbg-occasion, .vbg-occasion__image img, .vbg-occasion__link > span { transition: none; }
    .vbg-occasion:hover, .vbg-occasion:hover img { transform: none; }
}
html[data-motion="reduced"] .vbg-occasion:hover, html[data-motion="reduced"] .vbg-occasion:hover img { transform: none; }
