/* Scoped vouchers and reveal: does not touch existing product cards or page typography. */
.fd-voucher-grid {display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,255px),1fr)); gap:22px; padding:18px 0 26px;}
.fd-voucher-card {background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(255,255,255,.52)),var(--voucher-colour,#f4dce9);border:1px solid rgba(74,37,49,.17);border-radius:19px;color:#372a34;min-height:356px;text-align:center;padding:17px 23px 21px;box-shadow:0 11px 26px rgba(56,28,43,.09);position:relative;overflow:hidden;display:flex;align-items:center;flex-direction:column;}
.fd-voucher-card::after {content:'✧';position:absolute;top:50px;right:22px;font-size:29px;opacity:.42;pointer-events:none;}
.fd-voucher-topline {display:flex;align-items:center;justify-content:space-between;width:100%;letter-spacing:.16em;font-size:9px;font-weight:700;opacity:.74;}
.fd-voucher-topline span:last-child {font-size:15px;}
.fd-voucher-logo {width:70px;height:70px;display:grid;place-items:center;overflow:hidden;flex:none;border-radius:50%;background:#fff;box-shadow:0 3px 14px #00000014;border:2px solid #fff;margin:8px auto 9px;font-size:27px;font-family:Georgia,serif;}
.fd-voucher-logo img {width:100%;height:100%;object-fit:contain;}
.fd-voucher-card h4 {font-size:20px;font-family:Georgia,'Times New Roman',serif;font-weight:500;margin:0 0 6px;}
.fd-voucher-value {font-size:22px;font-weight:700;margin:0 0 10px;line-height:1.3;}
.fd-voucher-perforation {width:calc(100% + 46px);border-top:1.5px dashed rgba(75,37,52,.4);height:1px;position:relative;margin:0 0 12px;}
.fd-voucher-perforation::before,.fd-voucher-perforation::after {content:'';position:absolute;width:17px;height:17px;border-radius:50%;background:#fff;top:-9px;}
.fd-voucher-perforation::before {left:-10px;}.fd-voucher-perforation::after {right:-10px;}
.fd-voucher-code-label {letter-spacing:.19em;font-size:10px;font-weight:700;opacity:.7;}
.fd-voucher-code {font-weight:800;font-size:21px;overflow-wrap:anywhere;letter-spacing:.045em;margin:3px 0;}
.fd-voucher-expiry {font-size:11px;margin:4px 0 13px;opacity:.8;}
.fd-voucher-copy,.fd-discount-copy,.fd-discount-accept {border:none;border-radius:999px;cursor:pointer;font:inherit;font-weight:700;transition:transform .15s ease,opacity .15s ease;}
.fd-voucher-copy:hover,.fd-discount-copy:hover,.fd-discount-accept:hover {transform:translateY(-2px);}
.fd-voucher-copy {width:100%;padding:11px 15px;background:#fff;color:#342633;margin-top:auto;box-shadow:0 2px 6px #0000000b;}
/* Used, expired and unavailable vouchers keep their original brand colour,
   but sit beneath a soft translucent veil and full-width status overlay. */
.fd-voucher-muted {isolation:isolate;}
.fd-voucher-muted::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(255,255,255,.43);
  pointer-events:none;
}
.fd-voucher-status {
  position:absolute;
  z-index:2;
  top:48%;
  left:0;
  right:0;
  transform:translateY(-50%);
  padding:16px 8px;
  border-top:1px solid rgba(55,42,52,.38);
  border-bottom:1px solid rgba(55,42,52,.38);
  border-radius:0;
  background:rgba(255,255,255,.74);
  color:#372a34;
  font:750 24px/1.15 var(--font-body,'Figtree',sans-serif);
  letter-spacing:.24em;
  text-align:center;
  pointer-events:none;
}
/* These links remain clear and clickable above the visual overlay. */
.fd-voucher-muted .fd-voucher-manage {position:relative;z-index:3;}
.fd-voucher-space {width:100%;min-height:38px;margin-top:auto;}
.fd-code-empty {padding:48px 18px;text-align:center;background:#fcf8fb;border:1px dashed #ddc3d3;border-radius:17px;line-height:1.7;}
.profile-tab-list {max-width:100%;overflow-x:auto;}
/* Closet: simple, neutral, and visible on every profile. */
.fd-closet-teaser {
  min-height: 202px;
  margin: 20px 0 30px;
  padding: 42px 18px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid #e9e6e0;
  border-radius: 16px;
  background: #faf9f6;
}
.fd-closet-teaser h3 {
  margin: 0 0 9px;
  font: 650 29px/1.2 var(--font-display, 'Figtree', sans-serif);
  letter-spacing: -.035em;
  color: #2e2c29;
}
.fd-closet-teaser p {
  margin: 0;
  font: 500 13px/1.5 var(--font-body, 'Figtree', sans-serif);
  color: #77746e;
}

/* Unlock popup is coloured dynamically from brands.profile_color.
   There is no fixed pink accent: each brand gets its OWN saved colour. */
.fd-discount-modal[hidden] { display: none !important; }
.fd-discount-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.fd-discount-backdrop { position: absolute; inset: 0; background: rgba(24,24,24,.56); }
.fd-discount-popup {
  --fd-brand-color: #ECEAE6;
  --fd-brand-ink: #201E1B;
  position: relative;
  width: 100%;
  max-width: 415px;
  box-sizing: border-box;
  overflow: hidden;
  border-radius: 19px;
  border: 1px solid rgba(0,0,0,.06);
  background: white;
  color: #252525;
  box-shadow: 0 23px 65px rgba(0,0,0,.21);
  outline: none;
  animation: fdVoucherAppear .24s ease both;
}
@keyframes fdVoucherAppear {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.fd-discount-close {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 13px;
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  color: var(--fd-brand-ink);
  opacity: .82;
  font: 400 23px/1 var(--font-body, 'Figtree', sans-serif);
  cursor: pointer;
}
.fd-discount-celebration {
  padding: 25px 24px 27px;
  background: var(--fd-brand-color);
  color: var(--fd-brand-ink);
  text-align: center;
}
.fd-discount-topline {
  margin: 0 0 18px;
  color: inherit;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .18em;
  opacity: .82;
}
.fd-discount-popup-logo {
  width: 76px;
  height: 76px;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #fff;
  color: #242424;
  margin: 0 auto 18px;
  box-shadow: 0 4px 13px rgba(0,0,0,.12);
  font: 500 30px/1 var(--font-display, 'Figtree', sans-serif);
}
.fd-discount-popup-logo img { width: 100%; height: 100%; object-fit: contain; }
.fd-discount-kicker {
  margin-bottom: 7px;
  color: inherit;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .09em;
  opacity: .84;
}
.fd-discount-popup h2 {
  margin: 0;
  color: inherit;
  font: 750 clamp(29px, 8vw, 39px)/1.17 var(--font-display, 'Figtree', sans-serif);
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
}
.fd-discount-popup #fdDiscountMessage {
  margin: 8px 0 0;
  color: inherit;
  font: 650 16px/1.35 var(--font-body, 'Figtree', sans-serif);
}
.fd-discount-details { padding: 24px 25px 23px; text-align: center; background: #fff; }
.fd-discount-code-label {
  display: block;
  margin-bottom: 10px;
  color: #6d6a65;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
}
.fd-discount-code-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin: 0 0 15px;
  padding: 8px 8px 8px 15px;
  border: 1px dashed var(--fd-brand-color);
  border-radius: 11px;
  background: color-mix(in srgb, var(--fd-brand-color) 10%, white);
}
.fd-discount-reveal {
  flex: 1;
  min-width: 0;
  text-align: left;
  color: #272727;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: .035em;
  overflow-wrap: anywhere;
}
.fd-discount-copy, .fd-discount-accept {
  box-sizing: border-box;
  cursor: pointer;
  font-family: var(--font-body, 'Figtree', sans-serif);
  transition: filter .15s ease, transform .15s ease;
}
.fd-discount-copy {
  flex: 0 0 auto;
  border: 0;
  border-radius: 8px;
  padding: 10px 13px;
  background: #252525;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.fd-discount-accept {
  width: 100%;
  padding: 13px;
  border: 0;
  border-radius: 10px;
  background: var(--fd-brand-color);
  color: var(--fd-brand-ink);
  font-size: 12px;
  font-weight: 750;
}
.fd-discount-copy:hover, .fd-discount-accept:hover { filter: brightness(.93); transform: none; }
.fd-discount-copy:focus-visible, .fd-discount-accept:focus-visible, .fd-discount-close:focus-visible { outline: 2px solid #252525; outline-offset: 3px; }
.fd-discount-popup .fd-discount-small { margin: 13px 0 0; color: #77746e; font-size: 11px; }
.fd-discount-open { overflow: hidden; }
.fd-discount-admin-layout {display:grid;grid-template-columns:minmax(250px,370px) minmax(0,1fr);gap:18px;align-items:start;}.fd-discount-admin-panel {padding:22px;}.fd-discount-admin-panel h2 {font-size:19px;margin:0 0 19px;}.fd-discount-form {display:grid;gap:9px;}.fd-discount-form label {font-weight:650;font-size:13px;}.fd-discount-form label span {font-weight:normal;opacity:.65;}.fd-discount-form input,.fd-discount-form select {width:100%;border:1px solid #ddd1d8;border-radius:9px;background:#fff;padding:11px 12px;font:inherit;box-sizing:border-box;}.fd-discount-admin-hint {font-size:12px;line-height:1.6;color:#60525b;}.fd-discount-admin-list {display:grid;gap:12px;}.fd-discount-admin-offer {border:1px solid #e7dfe3;border-radius:12px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;}.fd-discount-admin-offer strong {font-weight:650;}.fd-discount-admin-offer code {font-size:12px;}.fd-discount-admin-brand {font-size:13px;margin:0 0 4px;font-weight:700;}.fd-discount-admin-small {font-size:11px;margin-top:7px;color:#71616c;}.fd-discount-admin-toggle {border:1px solid #c4a6b8;border-radius:100px;background:#fff;padding:9px 13px;cursor:pointer;}.fd-discount-count {font-size:12px;opacity:.6;}.fd-discount-admin-panel .admin-button {margin-top:10px;}
@media(max-width:700px) {.fd-discount-admin-layout {grid-template-columns:1fr;}.fd-discount-details {padding:21px 18px 19px;}.fd-closet-teaser {padding:38px 18px;}.profile-tab-list {display:flex;}}
@media(prefers-reduced-motion:reduce) {.fd-discount-popup {animation:none;}}


/* My Codes: unobtrusive personal status controls; original voucher design is unchanged. */
.fd-voucher-manage {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 16px;
  width: 100%;
  margin-top: 11px;
}
.fd-voucher-manage form { margin: 0; }
.fd-voucher-manage button {
  padding: 3px 0;
  border: 0;
  background: transparent;
  color: #40363e;
  font: 600 11px/1.4 var(--font-body, 'Figtree', sans-serif);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.fd-voucher-manage button:hover { opacity: .68; }
.fd-voucher-manage button:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Closet is visible on everybody's profile but cannot be opened. */
.profile-tab-button.fd-closet-locked {
  position: relative;
  cursor: not-allowed;
  opacity: .58;
  white-space: nowrap;
}
.profile-tab-button.fd-closet-locked:is(:hover, :focus-visible)::after {
  content: 'Coming soon';
  position: absolute;
  z-index: 20;
  left: 50%;
  top: calc(100% + 8px);
  transform: translateX(-50%);
  padding: 7px 10px;
  border-radius: 7px;
  background: #292629;
  color: #fff;
  font: 600 11px/1.2 var(--font-body, 'Figtree', sans-serif);
  white-space: nowrap;
  box-shadow: 0 3px 12px #00000016;
  pointer-events: none;
}
.profile-tab-button.fd-closet-locked:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@media (min-width: 701px) {
  /* Allow the desktop Coming soon tooltip to extend below the tab strip. */
  .profile-page .profile-tab-list { overflow: visible; }
}
