@import url("wishlist-items.css");
:root{color-scheme:light;--ink:#24342e;--paper:#fcfaf6;--sage:#e9f0e8;--coral:#dc785d}
.item-content {
  flex: 1;
  min-width: 0;
  width: 100%;
  overflow-wrap: anywhere;
}
.inline-gift-action {
  margin-top: 16px;
}
.inline-gift-action summary {
  width: fit-content;
  color: #5e45bb;
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.inline-gift-action summary:focus-visible,
.inline-gift-form :focus-visible,
.gift-undo button:focus-visible {
  outline: 3px solid #765ed8;
  outline-offset: 4px;
}
.inline-gift-form {
  width: 100%;
  margin-top: 20px;
  gap: 18px;
}
.inline-gift-form label {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
}
.inline-gift-form input {
  min-width: 0;
}
.inline-gift-form .gift-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-weight: 400;
}
.gift-confirmation input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: #765ed8;
}
.gift-undo {
  margin-top: 16px;
}
.gift-undo button {
  padding: 4px 0;
  background: transparent;
  color: #293b34;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.item[hidden] {
  display: none;
}
.item.item--wrapped {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  min-height: 240px;
  overflow: hidden;
  border: 1px solid #d1cadf;
  border-radius: 12px;
  background: #e2dfea;
}
.item--wrapped::before,
.item--wrapped::after {
  content: "";
  position: absolute;
  z-index: -1;
  background: #765ed8;
}
.item--wrapped::before {
  inset: 0 auto 0 25%;
  width: 28px;
}
.item--wrapped::after {
  inset: 45% 0 auto;
  height: 28px;
}
.gift-tag {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  padding: 12px;
  border-radius: 10px;
  background: #f6f3ec;
  text-align: center;
  overflow-wrap: anywhere;
}
.gift-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  color: #765ed8;
}
.site-wrap{width:min(1180px,calc(100% - 96px));margin-inline:auto}.site-header{height:114px;padding:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dcded3}.site-header .brand,.site-footer .brand{display:flex;align-items:center;font:750 30px Arial,Helvetica,sans-serif;letter-spacing:-1.5px;text-decoration:none}.site-header .brand img{width:33px;height:33px;margin-right:10px}.site-header .brand span,.site-footer .brand span{color:var(--coral)}.site-header nav{display:flex;align-items:center;gap:38px;font:13px Arial,Helvetica,sans-serif}.site-header nav>a{text-decoration:none}.site-header .nav-cta{border:1px solid #9ca69a;padding:14px 19px;border-radius:30px;display:flex;gap:20px}.site-header .nav-cta:hover{background:var(--sage)}.site-footer{border-top:1px solid #dcded3;display:flex;align-items:center;justify-content:space-between;padding-block:30px 35px;text-align:left}.site-footer .brand{font-size:23px}.site-footer .brand img{width:25px;height:25px;margin-right:8px}.site-footer p,.site-footer small{margin:0;font:10px Arial,Helvetica,sans-serif;color:#667069}
.share-button{width:44px;height:44px;padding:10px;margin-top:1rem}.share-button svg{display:block;width:100%;height:100%;fill:currentColor}.share-button+ #share-feedback{margin:.4rem 0 0}
.giving-invitation,
.gift-favourite {
  border: 1px solid #dcded3;
  border-radius: 8px;
  padding: 24px;
  background: #e2dfea;
  margin-block: 28px;
}
.giving-invitation h2,
.gift-favourite h2 {
  margin: 0 0 12px;
}
.giving-invitation a,
.gift-account-links a:first-child {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  padding: 14px 20px;
  border-radius: 5px;
  background: #293b34;
  color: #f6f3ec;
  font-size: 13px;
  text-decoration: none;
}
.giving-back {
  display: inline-block;
  margin-bottom: 30px;
  font-size: 13px;
}
.giving-help,
.gift-items,
.gift-favourite,
.favourite-lists {
  max-width: 900px;
}
.giving-help {
  color: var(--muted);
  font-size: 13px;
}
.gift-items {
  display: grid;
  gap: 24px;
  margin-block: 36px;
}
.gift-card {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 28px;
  background: #fffdf7;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.gift-image {
  width: 120px;
  height: 120px;
  flex-shrink: 0;
  object-fit: contain;
}
.gift-content {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.gift-card h2 {
  font-size: 28px;
  margin: 0 0 16px;
}
.gift-card p {
  font-size: 14px;
}
.gift-shop {
  font-size: 13px;
  text-underline-offset: 4px;
}
.gift-availability {
  border-top: 1px solid var(--line);
  padding-top: 20px;
  margin-top: 24px;
}
.gift-mine,
.gift-notice {
  background: var(--sage);
  padding: 16px;
  border-radius: 5px;
}
.gift-notice,
.gift-error {
  max-width: 900px;
}
.gift-error {
  padding: 16px;
  border: 1px solid #a43c2b;
  color: #a43c2b;
  border-radius: 5px;
}
.giving-page .gift-form {
  max-width: none;
  margin-top: 20px;
  gap: 18px;
}
.gift-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px;
  gap: 16px;
}
.gift-fields label {
  display: block;
  margin-bottom: 8px;
}
.giving-page .gift-fields input {
  padding: 12px;
  height: 50px;
}
.gift-actions,
.gift-account-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.giving-page .gift-secondary {
  background: transparent;
  border: 1px solid var(--ink);
  color: var(--ink);
}
.giving-page .gift-secondary:hover {
  background: var(--sage);
}
.gift-favourite form {
  margin-block: 20px;
}
.gift-account-links a:last-child,
.gift-favourite > a {
  font-size: 13px;
}
@media (max-width: 600px) {
  .gift-card {
    flex-direction: column;
    padding: 20px;
    gap: 16px;
  }
  .gift-content {
    width: 100%;
  }
  .gift-fields {
    grid-template-columns: minmax(0, 1fr) 80px;
    gap: 12px;
  }
  .gift-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
.search-page {
  --paper: #f6f3ec;
  --ink: #293b34;
  --coral: #765ed8;
  --sage: #e1e8db;
  --muted: #667069;
  --line: #dcded3;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.search-page main {
  flex: 1;
  width: min(1180px, calc(100% - 96px));
  max-width: none;
  padding: 85px 0 100px;
}
.search-page h1,
.search-page h2,
.search-page h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}
.search-page h1 {
  font-size: clamp(44px, 6vw, 72px);
  line-height: 1.08;
  letter-spacing: -2.5px;
  margin: 0 0 24px;
}
.search-page h1 em {
  color: var(--coral);
  font-weight: 400;
}
.search-page .description {
  font-size: 17px;
  line-height: 1.7;
  color: var(--muted);
  margin: 0;
}
.search-page form.search {
  max-width: 760px;
  gap: 12px;
  margin: 38px 0 55px;
}
.search-page label {
  font-size: 13px;
}
.search-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}
.search-field {
  position: relative;
  min-width: 0;
}
.search-field svg {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 21px;
  height: 21px;
  color: var(--muted);
  pointer-events: none;
}
.search-page input {
  height: 58px;
  padding: 16px 18px 16px 50px;
  border: 1px solid #9ca69a;
  border-radius: 5px;
  background: #fffdf7;
  color: var(--ink);
  font: 16px Arial, Helvetica, sans-serif;
}
.search-page input::placeholder {
  color: var(--muted);
  opacity: 1;
}
.search-page button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  min-height: 58px;
  padding: 16px 24px;
  border-radius: 5px;
  font: 400 13px Arial, Helvetica, sans-serif;
  justify-self: stretch;
}
.search-page button span {
  font-size: 20px;
}
.search-page button:hover {
  background: #40594b;
}
.search-page :is(a, input, button):focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 4px;
}
.search-page #search-help {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
  color: var(--muted);
}
.search-results {
  max-width: 760px;
  border-top: 1px solid var(--line);
  padding-top: 28px;
}
.search-results h2 {
  font-size: 28px;
  margin: 0 0 24px;
}
.search-page .wishlist-result .item,
.search-empty {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffdf7;
}
.search-page .wishlist-result .item {
  flex-direction: row;
}
.search-page .wishlist-result:hover .item {
  border-color: var(--coral);
}
.search-page .wishlist-result h3,
.search-empty h3 {
  font-size: 23px;
  overflow-wrap: anywhere;
}
.search-page .wishlist-result span {
  color: var(--coral);
}
.search-empty h3 {
  margin: 0 0 10px;
}
.search-empty p {
  color: var(--muted);
  font-size: 14px;
  margin: 0;
}
@media (max-width: 1050px) {
  .search-page main {
    width: calc(100% - 64px);
  }
}
@media (max-width: 760px) {
  .search-page main {
    width: calc(100% - 40px);
    padding-block: 48px 60px;
  }
  .search-page .site-header .brand {
    font-size: 26px;
  }
  .search-page .site-header .brand img {
    width: 28px;
    height: 28px;
  }
  .search-page .site-header nav {
    font-size: 12px;
  }
  .search-controls {
    grid-template-columns: 1fr;
  }
}
.added-from{display:grid;grid-template-columns:1fr auto;column-gap:.7rem;align-items:center;margin-top:1rem;padding:.8rem 1rem;background:var(--sage);border-radius:12px;text-decoration:none}.added-from span:first-child{grid-column:1;font-size:.8rem;color:#56665e}.added-from strong{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.added-from span:last-child{grid-column:2;grid-row:1 / span 2;color:#56665e}.wishlist-result{text-decoration:none}.wishlist-result .item{justify-content:space-between;align-items:center}.wishlist-result h3{margin:0}.wishlist-result p{margin:.35rem 0 0;color:#56665e}.wishlist-result span{font-size:1.5rem;color:#56665e}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'DM Sans',system-ui,sans-serif}header{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem max(1.25rem,calc((100vw - 900px)/2));border-bottom:1px solid #dfe5dc}a{color:inherit}header a{text-decoration:none}.brand{font:600 1.4rem 'Fraunces',Georgia,serif}main{max-width:900px;margin:0 auto;padding:3rem 1.25rem 5rem}h1,h2,h3{font-family:'Fraunces',Georgia,serif;line-height:1.2}h1{font-size:clamp(2.3rem,6vw,4.2rem);margin:.5rem 0}h2{font-size:1.4rem}.owner,.description{font-size:1.1rem;color:#56665e}.panel,.item{background:#fff;border:1px solid #e2e8df;border-radius:18px;padding:1.3rem}.panel{margin-top:2rem}.items{display:grid;gap:1rem;margin:1rem 0 2rem}.item{display:flex;gap:1.2rem;align-items:start}.item img{width:132px;height:132px;object-fit:contain;border-radius:12px;background:var(--sage)}.item h2,.item h3{margin:.1rem 0 .6rem}.item p{margin:.3rem 0 1rem}.item a,.more{text-decoration-color:var(--coral);text-underline-offset:3px}form{display:grid;gap:.65rem;max-width:480px}form.search{margin:2rem 0 3rem}label{font-weight:700}input,select{font:inherit;padding:.8rem 1rem;border:1px solid #a9b9ac;border-radius:10px;width:100%;background:#fff}button{font:700 1rem 'DM Sans',system-ui,sans-serif;border:0;border-radius:10px;background:var(--ink);color:white;padding:.9rem 1.3rem;cursor:pointer;justify-self:start}.item-controls{display:flex;gap:.75rem;align-items:center;margin-top:2rem}.item-controls label{display:flex;gap:.4rem;align-items:center}.item-controls select{width:auto;padding:.45rem}.filter-drawer{position:fixed;inset:0 auto 0 0;width:min(380px,88vw);z-index:2;background:var(--paper);padding:2rem;box-shadow:4px 0 22px #0003;display:grid;align-content:start;gap:1rem}.filter-drawer[hidden]{display:none}.filter-drawer label{display:grid;gap:.35rem}.filter-drawer button{margin-top:.5rem}.error{color:#a43c2b}.more{display:inline-block;margin-top:.5rem}footer{padding:2rem 1.25rem;text-align:center;border-top:1px solid #dfe5dc;color:#66766b}@media(max-width:760px){.site-wrap{width:calc(100% - 40px)}.site-header{height:auto;min-height:80px;padding-block:15px}.site-header .nav-cta{padding:10px 13px}.site-footer{gap:15px;flex-wrap:wrap}.item{flex-direction:column}.item img{width:100%;height:180px}.item-controls{align-items:flex-start;flex-wrap:wrap}}
.site-header nav > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.site-header nav > a:not(.nav-cta):hover {
  text-decoration: underline;
}
.site-header .nav-cta {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
  white-space: nowrap;
}
.site-header .nav-cta:hover {
  background: #40594b;
}
.site-header a:focus-visible {
  outline: 3px solid #765ed8;
  outline-offset: 4px;
}
@media (max-width: 760px) {
  .site-header {
    flex-wrap: wrap;
    row-gap: 14px;
  }
  .site-header nav {
    width: 100%;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
  }
}
.wishlist-page {
  --paper: #f6f3ec;
  --ink: #293b34;
  --coral: #765ed8;
  --sage: #e1e8db;
  --muted: #667069;
  --line: #dcded3;
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.wishlist-page main {
  width: min(1180px, calc(100% - 96px));
  max-width: none;
  padding: 56px 0 80px;
}
.wishlist-page .items {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 12px;
}
.wishlist-page .image-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 100%;
  padding: 8px;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}
.wishlist-page .image-placeholder svg {
  width: 32px;
  height: 32px;
}
.wishlist-page .item-image [hidden] {
  display: none;
}
.wishlist-page .item p,
.wishlist-page .item .added-from {
  font-size: 13px;
}
.wishlist-page .item .added-from {
  padding: 10px;
}
.wishlist-page .item .gift-fields {
  grid-template-columns: minmax(0, 1fr);
}
.wishlist-page .item :is(input, select, button) {
  min-width: 0;
  max-width: 100%;
}
.wishlist-page .item button {
  white-space: normal;
  overflow-wrap: anywhere;
}
.wishlist-page .item .gift-tag h2 {
  margin: 0;
  color: #293b34;
  font: 600 16px/22px Arial, Helvetica, sans-serif;
}
.wishlist-page .item .gift-tag p {
  margin: 0;
  color: #657064;
  font: 12px/19px Arial, Helvetica, sans-serif;
}
.gift-tag .gift-undo {
  align-self: stretch;
  margin: 0;
}
.wishlist-page .item--wrapped .gift-undo button {
  width: 100%;
  min-height: 51px;
  padding: 13px 18px;
  border: 1px solid #d9ddcf;
  border-radius: 8px;
  background: transparent;
  color: #293b34;
  font: 600 15px/1.4 Arial, Helvetica, sans-serif;
  text-decoration: none;
}
@media (min-width: 700px) {
  .wishlist-page .items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }
}
@media (min-width: 960px) {
  .wishlist-page .items {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .wishlist-page .items {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media (max-width: 319px) {
  .wishlist-page .items {
    grid-template-columns: minmax(0, 1fr);
  }
}
.wishlist-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.wishlist-title {
  min-width: 0;
  overflow-wrap: anywhere;
}
.wishlist-page h1 {
  margin: 0;
  font: 400 clamp(32px, 5vw, 60px)/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -1.5px;
}
.wishlist-page .owner {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 14px;
}
.wishlist-actions {
  display: flex;
  flex-shrink: 0;
  gap: 10px;
  padding-top: 8px;
}
.wishlist-actions form {
  margin: 0;
}
.manage-wishlist-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font-size: 13px;
  text-decoration: none;
}
.manage-wishlist-link:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 3px;
}
.wishlist-page .wishlist-icon-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 10px;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fffdf7;
  color: var(--coral);
  text-decoration: none;
}
.wishlist-page .wishlist-icon-action:hover,
.wishlist-page .wishlist-icon-action[aria-pressed="true"] {
  border-color: var(--coral);
  background: #e9e3f5;
}
.wishlist-icon-action svg {
  width: 22px;
  height: 22px;
}
.wishlist-page .share-feedback {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.wishlist-page .share-feedback:empty {
  display: none;
}
.wishlist-page .description {
  max-width: 900px;
  margin-top: 24px;
}
.wishlist-page .item-controls {
  justify-content: space-between;
  gap: 20px;
  margin: 32px 0 20px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--sage);
}
.wishlist-page #filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffdf7;
  color: var(--ink);
  font: 400 14px Arial, Helvetica, sans-serif;
}
.wishlist-page #filter-toggle:hover {
  border-color: var(--coral);
  color: var(--coral);
}
#filter-toggle svg {
  width: 20px;
  height: 20px;
}
.wishlist-page .sort-control {
  min-width: 0;
  gap: 12px;
  font-size: 13px;
  font-weight: 400;
}
.sort-select {
  position: relative;
  min-width: 0;
}
.wishlist-page .sort-select select {
  width: 260px;
  max-width: 100%;
  min-height: 44px;
  padding: 10px 40px 10px 14px;
  border-color: var(--line);
  border-radius: 8px;
  appearance: none;
  background: #fffdf7;
  color: var(--ink);
  font: 400 14px Arial, Helvetica, sans-serif;
  text-overflow: ellipsis;
}
.sort-select svg {
  position: absolute;
  right: 12px;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  pointer-events: none;
}
.wishlist-page .filter-drawer {
  inset: 0 0 0 auto;
  width: min(420px, 100%);
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 28px;
  overflow-y: auto;
  gap: 28px;
  border: 0;
  border-left: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  box-shadow: -8px 0 32px #293b3426;
}
.wishlist-page .filter-drawer:not([open]) {
  display: none;
}
.filter-drawer::backdrop {
  background: #293b3466;
}
.filter-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.filter-heading h2 {
  margin: 0;
  font: 400 30px Georgia, "Times New Roman", serif;
}
.filter-fields {
  display: grid;
  gap: 22px;
}
.wishlist-page .filter-fields label {
  gap: 8px;
  font-size: 13px;
  font-weight: 400;
}
.filter-fields input,
.filter-fields select {
  min-width: 0;
  min-height: 48px;
  padding: 12px 14px;
  border-color: var(--line);
  border-radius: 8px;
  color: var(--ink);
  font: 16px Arial, Helvetica, sans-serif;
}
.wishlist-page .filter-fields .filter-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
}
.filter-fields input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  padding: 0;
  accent-color: var(--coral);
}
.filter-actions {
  display: flex;
  gap: 12px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.wishlist-page .filter-actions button {
  flex: 1;
  min-height: 48px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--coral);
  border-radius: 8px;
  background: var(--coral);
  font: 400 13px Arial, Helvetica, sans-serif;
}
.wishlist-page #clear-filters {
  background: transparent;
  color: var(--coral);
}
.wishlist-page :is(a, button, input, select):focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 4px;
}
@media (max-width: 760px) {
  .wishlist-page main {
    width: calc(100% - 40px);
    padding-block: 36px 60px;
  }
  .wishlist-heading {
    gap: 14px;
  }
  .wishlist-actions {
    gap: 8px;
    padding-top: 0;
  }
}
@media (max-width: 600px) {
  .wishlist-page .item-controls {
    display: grid;
    gap: 14px;
  }
  .wishlist-page .sort-control {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    width: 100%;
  }
  .wishlist-page .sort-select select {
    width: 100%;
    font-size: 13px;
  }
  .wishlist-page .filter-drawer {
    padding: 24px 20px;
  }
}
