/* Sweet Moments — /boxes page skin (signature gift boxes, coming soon). */

.boxes-hero {
  position: relative;
  overflow: hidden;
  background: var(--cream);
  padding: 150px 20px 28px;   /* 70px fixed header clearance + air */
  text-align: center;
}
.boxes-hero::before {
  content: ''; position: absolute; left: -10vw; top: -12vw;
  width: 46vw; height: 46vw;
  background: radial-gradient(closest-side, rgba(221,155,181,.12), rgba(221,155,181,0) 70%);
  pointer-events: none;
}
.boxes-hero h1 {
  position: relative;
  font-family: var(--display); font-weight: 400;
  font-size: clamp(38px, 5vw, 64px); line-height: 1.12;
  color: var(--brown);
}
.boxes-hero .flourish {
  position: relative;
  display: block;
  margin-top: 20px;                  /* balanced gap from the heading */
  font-family: var(--script);
  font-size: clamp(54px, 7.2vw, 92px);
  line-height: 1.12;
  color: var(--pink);
  white-space: nowrap;
}
.boxes-hero p {
  position: relative;
  max-width: 560px; margin: 24px auto 0;
  font-size: 19px; line-height: 28px;
  color: var(--black);
}

/* ---------- grid of three boxes ---------- */
.boxes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
  padding: 20px 20px 60px;
}
.box-card {
  background: #fff;
  border-radius: 30px;
  overflow: hidden;
  display: flex; flex-direction: column;
}
.box-card img {
  width: 100%; aspect-ratio: 4 / 5;
  object-fit: cover;
}
.box-body {
  padding: 26px 26px 30px;
  display: flex; flex-direction: column; gap: 12px;
  flex: 1;
}
.box-name {
  font-family: var(--display); font-weight: 400;
  font-size: 26px; line-height: 1.2;
  color: var(--brown);
}
.box-desc {
  font-size: 16px; line-height: 24px;
  color: var(--black);
  flex: 1;
}
.chip-soon {
  align-self: flex-start;
  font-family: var(--sans); font-weight: 500;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--pink-deep);
  background: var(--pink-band);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 14px;
}
.box-cta {
  width: 100%;
  height: 54px;
  font-size: 17px;
  border-radius: 14px;
}

.boxes-note {
  max-width: 640px;
  margin: 0 auto;
  padding: 10px 20px 110px;
  text-align: center;
  font-size: 15px; line-height: 23px;
  color: var(--muted);
}
.boxes-note a { color: var(--brown); text-decoration: underline; }

/* ---------- responsive ---------- */
@media (max-width: 1023px) {
  .boxes-hero { padding-top: 120px; }
  .boxes-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
}
@media (min-width: 1024px) and (max-width: 1239px) {
  .boxes-grid { gap: 20px; }
  .box-body { padding: 20px 20px 26px; }
}
