/* SukNuh – Occasions section only */
.sn-occasions,
.sn-occasions * {
  box-sizing: border-box;
}

.sn-occasions {
  --sn-olive: #3f4715;
  --sn-gold: #b49e26;
  --sn-ink: #44492d;
  --sn-wine: #8f1537;
  width: 100%;
  overflow: hidden;
  background: var(--sn-olive);
  padding: clamp(22px, 3vw, 42px) 18px clamp(40px, 5vw, 76px);
  font-family: Arial, Helvetica, sans-serif;
}

.sn-occasions__inner {
  width: min(100%, 1180px);
  margin: 0 auto;
}

.sn-occasions__title {
  margin: 0 0 clamp(28px, 4vw, 52px);
  color: #fff;
  text-align: center;
  font-size: clamp(24px, 2.4vw, 39px);
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: .01em;
  text-shadow: 0 2px 0 rgba(0, 0, 0, .12);
}

.sn-occasions__title span {
  position: relative;
  display: inline-block;
}

.sn-occasions__title span::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.15em;
  height: 3px;
  background: #e5c93c;
  border-radius: 999px;
  transform: rotate(-2deg);
}

.sn-occasions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 3.2vw, 48px) clamp(24px, 3vw, 44px);
  align-items: stretch;
}

.sn-occasion-card {
  position: relative;
  min-height: 240px;
  padding: 12px;
  border: 2px solid var(--sn-gold);
  opacity: 0;
  transform: translateY(56px) scale(.92) rotate(var(--sn-rot));
  filter: blur(4px);
  transition:
    opacity .75s cubic-bezier(.2,.8,.2,1),
    transform .9s cubic-bezier(.16,1,.3,1),
    filter .75s ease;
  will-change: transform, opacity;
}

.sn-occasion-card::before {
  content: "";
  position: absolute;
  inset: -7px 7px 7px -7px;
  border: 2px solid rgba(180, 158, 38, .62);
  pointer-events: none;
}

.sn-occasion-card__paper {
  min-height: 214px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px 24px;
  background: #fbfbf7;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
  text-align: center;
}

.sn-occasion-card h3 {
  margin: 0 0 17px;
  color: var(--sn-ink);
  font-size: clamp(20px, 1.65vw, 28px);
  line-height: .95;
  font-weight: 800;
  letter-spacing: .025em;
}

.sn-occasion-card p {
  max-width: 270px;
  margin: 0;
  color: var(--sn-wine);
  font-size: clamp(13px, 1.05vw, 17px);
  line-height: 1.45;
  font-weight: 600;
}

.sn-occasion-card--1 { --sn-rot: -4.5deg; --sn-float-rot: -3.2deg; }
.sn-occasion-card--2 { --sn-rot: 3.6deg;  --sn-float-rot: 2.2deg; }
.sn-occasion-card--3 { --sn-rot: -3deg;   --sn-float-rot: -1.8deg; }
.sn-occasion-card--4 { --sn-rot: 4deg;    --sn-float-rot: 2.7deg; }
.sn-occasion-card--5 { --sn-rot: -2.8deg; --sn-float-rot: -1.5deg; }
.sn-occasion-card--6 { --sn-rot: 3.8deg;  --sn-float-rot: 2.5deg; }

.sn-occasions.is-visible .sn-occasion-card {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1) rotate(var(--sn-rot));
  animation: sn-card-float 4.8s ease-in-out infinite alternate;
}

.sn-occasions.is-visible .sn-occasion-card--1 { transition-delay: .05s; animation-delay: .05s; }
.sn-occasions.is-visible .sn-occasion-card--2 { transition-delay: .14s; animation-delay: .32s; }
.sn-occasions.is-visible .sn-occasion-card--3 { transition-delay: .23s; animation-delay: .58s; }
.sn-occasions.is-visible .sn-occasion-card--4 { transition-delay: .32s; animation-delay: .22s; }
.sn-occasions.is-visible .sn-occasion-card--5 { transition-delay: .41s; animation-delay: .46s; }
.sn-occasions.is-visible .sn-occasion-card--6 { transition-delay: .50s; animation-delay: .72s; }

.sn-occasion-card:hover {
  z-index: 2;
  animation-play-state: paused !important;
  transform: translateY(-8px) scale(1.025) rotate(var(--sn-float-rot)) !important;
}

@keyframes sn-card-float {
  0%   { transform: translate3d(0, 0, 0) rotate(var(--sn-rot)); }
  50%  { transform: translate3d(0, -4px, 0) rotate(var(--sn-float-rot)); }
  100% { transform: translate3d(0, 3px, 0) rotate(var(--sn-rot)); }
}

@media (max-width: 820px) {
  .sn-occasions__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .sn-occasions {
    padding-inline: 20px;
  }

  .sn-occasions__grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .sn-occasion-card {
    width: min(100%, 360px);
    min-height: 210px;
    margin-inline: auto;
  }

  .sn-occasion-card__paper {
    min-height: 190px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sn-occasion-card,
  .sn-occasions.is-visible .sn-occasion-card {
    opacity: 1;
    filter: none;
    animation: none;
    transition: none;
    transform: rotate(var(--sn-rot));
  }
}
