.occasion-catalogue .section-title{
  margin-bottom:36px;
}

.occasion-catalogue .section-title h2{
  max-width:none;
  font-size:clamp(34px,4vw,52px);
}

.occasion-cards{
  gap:24px;
}

.occasion-cards>.card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:0;
  gap:0;
  overflow:hidden;
  border:1px solid rgba(74,40,55,.12);
  border-radius:24px;
  background:#fff;
  box-shadow:0 16px 40px rgba(56,28,40,.07);
  transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease;
}

.occasion-cards>.card:hover{
  transform:translateY(-4px);
  border-color:rgba(200,70,136,.28);
  box-shadow:0 24px 54px rgba(56,28,40,.12);
}

.occasion-cards>.card>img,
.occasion-card-placeholder{
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:4/3;
  border:0;
  border-radius:0;
}

.occasion-cards>.card>img{
  object-fit:cover;
}

.occasion-card-placeholder{
  position:relative;
  isolation:isolate;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:24px;
  background:
    radial-gradient(circle at 25% 20%,rgba(236,113,177,.18),transparent 34%),
    linear-gradient(145deg,#fff8fb 0%,#fcebf3 100%);
  color:#9f416d;
  font-family:var(--font-ui);
  text-align:center;
}

.occasion-card-placeholder::before,
.occasion-card-placeholder::after{
  content:"";
  position:absolute;
  z-index:-1;
  border:1px solid rgba(200,70,136,.14);
  border-radius:50%;
}

.occasion-card-placeholder::before{
  width:180px;
  height:180px;
  top:-92px;
  right:-66px;
}

.occasion-card-placeholder::after{
  width:110px;
  height:110px;
  bottom:-58px;
  left:-34px;
}

.occasion-card-placeholder span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:9px 15px;
  border:1px solid rgba(159,65,109,.3);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  box-shadow:0 8px 24px rgba(159,65,109,.08);
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
}

.occasion-cards>.card>div:last-child{
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  padding:22px;
}

.occasion-cards>.card h3{
  margin:0 0 9px;
  color:#2b2025;
  font-family:var(--font-ui);
  font-size:clamp(20px,1.65vw,24px);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.025em;
}

.occasion-cards>.card p{
  margin:0;
  color:#75666d;
  font-size:15px;
  line-height:1.6;
}

.occasion-cards .inline-links{
  width:100%;
  margin-top:auto;
  padding-top:20px;
}

.occasion-cards .card-link{
  display:flex;
  width:100%;
  min-height:44px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 14px;
  border:1px solid #4e2638;
  border-radius:12px;
  background:#4e2638;
  color:#fff;
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:700;
  letter-spacing:0;
  transition:background-color 180ms ease,border-color 180ms ease,transform 180ms ease;
}

.occasion-cards .card-link::after{
  content:"\2192";
  font-size:17px;
  line-height:1;
}

.occasion-cards .card-link:hover{
  border-color:var(--pink-strong);
  background:var(--pink-strong);
  transform:none;
}

.occasion-cards .card-link:hover::after{
  transform:translateX(3px);
}

@media(min-width:720px){
  .occasion-cards>.card{
    grid-column:span 4;
  }
}

@media(max-width:719px){
  .occasion-catalogue{
    padding-top:48px;
    padding-bottom:48px;
  }

  .occasion-cards{
    gap:18px;
  }

  .occasion-cards>.card{
    border-radius:20px;
  }

  .occasion-cards>.card>div:last-child{
    padding:19px;
  }

  .occasion-cards>.card h3{
    font-size:21px;
  }
}

@media(prefers-reduced-motion:reduce){
  .occasion-cards>.card,
  .occasion-cards .card-link{
    transition:none;
  }
}
