.gift-page { padding-bottom: clamp(36px, 6vw, 80px); }
.gift-hero p:not(.eyebrow) { max-width: 36rem; }
.gift-hero h1 { max-width: 16ch; }
.gift-ideas h2, .gift-builder h2 { font-size: clamp(1.65rem, 4vw, 2.3rem); margin: 0 0 16px; }
.gift-ideas { margin-top: clamp(30px, 6vw, 62px); }

.gift-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: clamp(14px, 2vw, 24px);
}

.gift-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e4d2ac;
  border-radius: 19px;
  background: #fffdfa;
  box-shadow: 0 8px 28px #133a3010;
  content-visibility: auto;
  contain-intrinsic-block-size: auto 370px;
}

.gift-photos {
  position: relative;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 7px;
  align-items: center;
  min-height: 115px;
  padding: 12px;
  background: linear-gradient(135deg, #ecf2e9, #f4e9d1);
}

.gift-photos::after {
  content: '';
  position: absolute;
  inset: 0 0 auto auto;
  width: 40px;
  aspect-ratio: 150 / 171;
  background: var(--holiday-ornament) right top / contain no-repeat;
  pointer-events: none;
}

.gift-photos img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  max-height: 138px;
  object-fit: contain;
  background: white;
  border-radius: 9px;
}

.gift-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 18px 20px 20px; }
.gift-copy h3 { margin: 0 0 7px; color: var(--holiday-pine); font-size: 1.3rem; }
.gift-copy p { margin: 0 0 12px; color: #536057; font-size: .9rem; }
.gift-copy ul { margin: 0 0 18px; padding-left: 1.1rem; color: #263d35; font-size: .87rem; }
.gift-copy li + li { margin-top: 4px; }
.gift-copy .gift-button { margin-top: auto; }

.gift-button:not([hidden]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 9px 16px;
  border: 0;
  border-radius: 24px;
  background: var(--holiday-evergreen);
  color: white;
  font: 700 .88rem/1.3 var(--body, system-ui);
  text-decoration: none;
  cursor: pointer;
}
.gift-button:hover { background: #235643; }
.gift-hero .gift-button-light { background: var(--holiday-gold); color: var(--holiday-pine); margin-top: 10px; }

.gift-builder {
  margin-top: clamp(26px, 5vw, 55px);
  padding: clamp(20px, 5vw, 44px);
  border: 1px solid #e4d2ac;
  border-radius: 20px;
  background: var(--holiday-ornament) top right / 66px auto no-repeat, #fffdfa;
  scroll-margin-top: 110px;
}
.gift-builder h2 { padding-right: 35px; }
.gift-builder label { display: block; font-weight: 700; margin-bottom: 5px; }
.gift-picker { display: flex; gap: 8px; max-width: 540px; }
.gift-picker select { flex: 1; min-width: 0; min-height: 44px; }
.gift-selection { list-style: none; margin: 0 0 14px; padding: 0; max-width: 540px; }
.gift-selection:empty, .gift-builder [role='status']:empty { display: none; }
.gift-selection li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid #e9dfcb;
}
.gift-selection button { border: 0; background: none; color: var(--holiday-cranberry); text-decoration: underline; cursor: pointer; padding: 7px; }

@media (max-width: 480px) {
  .gift-card { contain-intrinsic-block-size: auto 330px; }
  .gift-builder { background-size: 44px auto; }
}
