:root {
  --bg: #ffffff;
  --text: #1f1c1a;
  --muted: #5c5148;
  --border: #e7e3dd;
  --shadow: 0 30px 60px rgba(84, 69, 58, 0.08);
  --accent: #c79c61;
}

.GiftShowcase_section {
  padding: 80px min(5vw, 60px) 120px;
  background: var(--bg);
}

.GiftShowcase_intro {
  max-width: 860px;
  margin: 0 auto 28px;
  text-align: center;
}

.GiftShowcase_intro h1 {
    margin: 0 0 10px;
    font-size: clamp(4rem, 3.5vw, 2.6rem);
    font-family: bickham-script-pro-3;
    line-height: 37px;
    letter-spacing: 0;
    text-transform: lowercase;
    color: var(--stone);

}

.GiftShowcase_intro p {
  margin: 0;
  color: var(--muted);
}

.CartTrigger {
  margin: 16px auto 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  cursor: pointer;
}

.GiftGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
}

.GiftCard {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--shadow);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.GiftCard:hover {
  transform: translateY(-2px);
  box-shadow: 0 40px 80px rgba(84,69,58,0.12);
}

.GiftImage {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: #eee center/cover no-repeat;
}

.GiftImage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.GiftInfo {
  padding: 14px 16px 16px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
}

.GiftTitle { margin: 0; font-size: 1rem; font-family: 'ui-monospace !important;' }
.GiftPrice { margin: 0; color: var(--muted); font-weight: 500; }

.GiftCTA {
  grid-column: 1 / -1;
  margin-top: 6px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--accent);
  color: var(--text);
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.AddToCart {
  grid-column: 1 / -1;
  margin-top: 6px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--text);
  background: #fff;
  font: inherit;
  cursor: pointer;
}

/* Modal */
.ModalOverlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
}
.ModalOverlay.is-open { display: flex; }

.GiftModal {
  background: #fff;
  border-radius: 22px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  width: min(760px, 96vw);
  overflow: hidden;
}

.GiftModalBody {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 18px;
}

.GiftModalImage { width: 100%; aspect-ratio: 1 / 1; background: #eee; }
.GiftModalImage img { width: 100%; height: 100%; object-fit: cover; display:block; }

.GiftModalContent { padding: 18px; }
.GiftModalContent h3 { margin: 0 0 6px; }
.GiftModalContent p { margin: 0 0 12px; color: var(--muted); }

.ModalActions { display: flex; gap: 10px; }

.Button {
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid var(--accent);
  background: transparent;
  color: var(--text);
  cursor: pointer;
}
.Button.primary { background: var(--accent); color: #fff; border-color: var(--accent); }

.ModalHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}
.ModalHeader h2 { margin: 0; font-size: 1.2rem; }
.CloseX { cursor: pointer; border:none; background:transparent; font-size: 20px; line-height:1; }

@media (max-width: 720px) {
  .GiftModalBody { grid-template-columns: 1fr; }
}

/* Pagination */
.GiftPagination {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  margin: 24px auto 0;
}

.PageButton {
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  cursor: pointer;
}

.PageButton.is-active,
.PageButton:hover {
  border-color: var(--accent);
}

.PageButton[disabled] {
  opacity: 0.5;
  cursor: default;
}

/* Cart modal */
.CartHeader { display: grid; grid-template-columns: 1fr auto; padding: 8px 0; border-bottom: 1px solid var(--border); color: var(--muted); }
.CartItems { display: flex; flex-direction: column; gap: 14px; margin: 12px 0; }
.CartItem { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.CartItem img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.CartItemDetails { display: flex; flex-direction: column; gap: 4px; }
.CartItemDetails strong { font-weight: 600; }
.CartItemRemove { border: none; background: transparent; color: #b00; cursor: pointer; padding: 0; text-decoration: underline; width: fit-content; }
.CartItemPrice { font-weight: 600; }
.CartSummary { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }

/* Summary modal */
.SummaryGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.SummaryTotals { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.SummaryTotals li { display: flex; justify-content: space-between; border-bottom: 1px solid var(--border); padding: 8px 0; }
.SummaryTotals li.SummaryTotal span { font-weight: 600; }
.SummaryTotals li.SummaryTotal strong { color: #b44; }
.SummaryField { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.SummaryField input, .SummaryField textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font: inherit; }
.CharCount { color: var(--muted); }
.SummaryCards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.CardOption { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; cursor: pointer; position: relative; background: #fff; }
.CardOption img { width: 100%; height: 120px; object-fit: cover; display: block; }
.CardOption .Badge { background: #eee; color: var(--text); padding: 4px 8px; border-radius: 999px; font-size: 12px; }
.CardOption .PriceTag { background: #f8d0d8; color: #b44; padding: 4px 8px; border-radius: 999px; font-size: 12px; }
.CardOption .LabelRow { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; }
.CardOption .Tag { position: absolute; top: 8px; left: 8px; background: #f8d0d8; color: #b44; padding: 4px 8px; border-radius: 999px; font-size: 12px; }
.CardOption.is-selected { outline: 2px solid var(--accent); }

@media (max-width: 720px) {
  .SummaryGrid { grid-template-columns: 1fr; }
}
