/* Spa Saloon Gift Card — modern customer-facing UI. */
.spa-gift-card-buy,
.spa-gift-card-tracking,
.spa-gift-card-order-tracking {
  --spa-navy:#0f2142;
  --spa-blue:#2f66f6;
  --spa-cyan:#16b6d4;
  --spa-green:#16a673;
  --spa-bg:#f5f7fb;
  --spa-border:#e3e8f2;
  --spa-muted:#667085;
  --spa-text:#172033;
  max-width: 980px !important;
  margin: 32px auto !important;
  padding: 0 18px;
  color: var(--spa-text);
  font-family: inherit;
}

.spa-gift-card-buy h2,
.spa-gift-card-tracking h2,
.spa-gift-card-order-tracking h2 {
  margin: 0 0 22px !important;
  color: var(--spa-navy);
  font-size: clamp(28px, 4vw, 36px) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em;
}

.spa-gift-card-buy h2::after,
.spa-gift-card-tracking h2::after,
.spa-gift-card-order-tracking h2::after {
  content:"";
  display:block;
  width:54px;
  height:4px;
  margin-top:12px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--spa-blue),var(--spa-cyan));
}

.spa-gift-card-buy-card,
.spa-gct-card,
.spa-order-card {
  position:relative;
  box-sizing:border-box;
  background:#fff;
  border:1px solid var(--spa-border) !important;
  border-radius:20px !important;
  padding:28px !important;
  margin:18px 0 !important;
  box-shadow:0 10px 30px rgba(15,33,66,.07);
}

.spa-gift-card-buy-card h3,
.spa-gct-card h3,
.spa-order-card h3 {
  margin:0 0 20px !important;
  color:var(--spa-navy);
  font-size:19px;
  line-height:1.3;
  letter-spacing:-0.01em;
}

.spa-gift-card-buy-card h3::after,
.spa-gct-card h3::after,
.spa-order-card h3::after {
  content:"";
  display:block;
  width:40px;
  height:3px;
  margin-top:9px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--spa-blue),var(--spa-cyan));
}

.spa-gift-card-buy-row,
.spa-order-search,
.spa-gct-form {
  gap:16px !important;
}

.spa-gift-card-buy-field,
.spa-order-field,
.spa-gct-field { margin-bottom:20px !important; }

.spa-gift-card-buy-field label,
.spa-order-field label,
.spa-gct-field label,
.spa-order-card .form-table th,
.spa-order-card .form-table label {
  display:block;
  color:var(--spa-navy);
  font-size:14px;
  font-weight:700;
  line-height:1.4;
  margin-bottom:8px;
}

.spa-gift-card-buy-field input,
.spa-gift-card-buy-field select,
.spa-order-field input,
.spa-gct-field input,
.spa-order-card input,
.spa-order-card textarea,
.spa-order-card select {
  width:100% !important;
  min-height:48px;
  box-sizing:border-box;
  padding:12px 14px !important;
  border:1px solid #d5ddec !important;
  border-radius:12px !important;
  background:#fff !important;
  color:var(--spa-text) !important;
  box-shadow:0 1px 2px rgba(16,24,40,.03);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.spa-order-card textarea { min-height:120px; resize:vertical; }

.spa-gift-card-buy-field select,
.spa-order-card select {
  appearance:auto;
  -webkit-appearance:auto;
  cursor:pointer;
}

.spa-gift-card-buy-field input:focus,
.spa-gift-card-buy-field select:focus,
.spa-order-field input:focus,
.spa-gct-field input:focus,
.spa-order-card input:focus,
.spa-order-card textarea:focus,
.spa-order-card select:focus {
  outline:none;
  border-color:#7aa0ff !important;
  box-shadow:0 0 0 4px rgba(47,102,246,.11) !important;
}

.spa-gift-card-buy-field input[readonly],
.spa-order-card input[readonly] {
  background:#f4f7fc !important;
  color:#56627a !important;
}

.spa-gift-card-buy-note {
  margin:20px 0 !important;
  padding:16px 18px !important;
  border:1px solid #dce6fb !important;
  border-radius:14px !important;
  background:linear-gradient(180deg,#f7faff,#f1f6ff) !important;
  color:#344054;
}

.spa-gift-card-buy-success,
.spa-order-success {
  padding:20px 22px !important;
  margin:18px 0 !important;
  border:1px solid #b7ead3 !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,#f0fff8,#e9fbf4) !important;
  color:#12543e;
}

.spa-gct-error,
.spa-order-error {
  padding:18px 20px !important;
  border:1px solid #f2b8be !important;
  border-radius:16px !important;
  background:#fff5f6 !important;
  color:#8b1e2d !important;
}

.spa-gift-card-buy-table,
.spa-gct-table,
.spa-order-table {
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--spa-border);
  border-radius:14px;
  background:#fff;
}

.spa-gift-card-buy-table th,
.spa-gift-card-buy-table td,
.spa-gct-table th,
.spa-gct-table td,
.spa-order-table th,
.spa-order-table td {
  padding:14px 16px !important;
  border-bottom:1px solid #edf0f5 !important;
  text-align:left;
  vertical-align:middle;
}

.spa-gift-card-buy-table tr:last-child th,
.spa-gift-card-buy-table tr:last-child td,
.spa-gct-table tr:last-child th,
.spa-gct-table tr:last-child td,
.spa-order-table tr:last-child th,
.spa-order-table tr:last-child td { border-bottom:0 !important; }

.spa-gift-card-buy-table th,
.spa-gct-table th,
.spa-order-table th {
  color:#475467;
  font-size:13px;
  font-weight:700;
  background:#f8faff;
}

.spa-gct-status {
  display:inline-flex !important;
  align-items:center;
  gap:6px;
  margin-left:10px;
  padding:6px 10px !important;
  border:1px solid #bfe9d2 !important;
  border-radius:999px !important;
  background:#ecfbf3 !important;
  color:#13724f !important;
  font-size:12px;
  font-weight:800;
}

.spa-gct-summary {
  gap:14px !important;
  margin-top:20px !important;
}

.spa-gct-summary-item {
  border:1px solid var(--spa-border) !important;
  border-radius:16px !important;
  padding:20px !important;
  background:linear-gradient(180deg,#ffffff,#f8faff) !important;
}

.spa-gct-label {
  color:var(--spa-muted) !important;
  font-size:12px !important;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.spa-gct-value {
  margin-top:6px;
  color:var(--spa-navy) !important;
  font-size:28px !important;
  letter-spacing:-.03em;
}

.spa-order-progress {
  position:relative;
  gap:10px !important;
  margin-top:22px !important;
}

.spa-order-step {
  border:1px solid var(--spa-border) !important;
  border-radius:14px !important;
  padding:14px 10px !important;
  background:#fbfcfe !important;
  color:#667085;
  font-weight:600;
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
}

.spa-order-step.is-current {
  border-color:#b9cbff !important;
  background:linear-gradient(180deg,#f3f7ff,#edf3ff) !important;
  color:#214b9a !important;
  box-shadow:0 7px 18px rgba(47,102,246,.08);
}

.spa-order-step.is-rejected {
  border-color:#f0b7bd !important;
  background:#fff5f6 !important;
  color:#a51f2b !important;
}

.spa-order-rejected-notice {
  margin-top:16px !important;
  padding:16px 18px !important;
  border:1px solid #f0b7bd !important;
  border-radius:14px !important;
  background:#fff5f6 !important;
}

.spa-order-card .form-table {
  width:100%;
  border-collapse:separate;
  border-spacing:0 12px;
}

.spa-order-card .form-table th,
.spa-order-card .form-table td {
  padding:8px 0 !important;
  vertical-align:top;
  border:0 !important;
  background:transparent !important;
}

.spa-order-card .form-table th { width:32%; padding-right:24px !important; }

.spa-order-card .form-table .description {
  margin:8px 0 0 !important;
  color:#667085;
  font-size:12px;
  line-height:1.6;
}

.spa-gift-card-buy .button,
.spa-gift-card-buy button,
.spa-gct-card .button,
.spa-gct-card button,
.spa-order-card .button,
.spa-order-card button {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 20px !important;
  border:0 !important;
  border-radius:12px !important;
  background:linear-gradient(135deg,#4b5cf6,#1ea8d9) !important;
  color:#fff !important;
  font-weight:800 !important;
  text-decoration:none !important;
  box-shadow:0 10px 22px rgba(47,102,246,.18);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.spa-gift-card-buy .button:hover,
.spa-gift-card-buy button:hover,
.spa-gct-card .button:hover,
.spa-gct-card button:hover,
.spa-order-card .button:hover,
.spa-order-card button:hover {
  transform:translateY(-1px);
  filter:saturate(1.06);
  box-shadow:0 13px 26px rgba(47,102,246,.22);
}

.spa-gift-card-buy .description { color:var(--spa-muted); }

@media (max-width: 760px) {
  .spa-gift-card-buy,
  .spa-gift-card-tracking,
  .spa-gift-card-order-tracking { margin:22px auto !important; padding:0 12px; }
  .spa-gift-card-buy-card,
  .spa-gct-card,
  .spa-order-card { padding:20px !important; border-radius:16px !important; }
  .spa-gift-card-buy-row,
  .spa-order-search,
  .spa-gct-form,
  .spa-gct-summary { grid-template-columns:1fr !important; }
  .spa-order-card .form-table,
  .spa-order-card .form-table tbody,
  .spa-order-card .form-table tr,
  .spa-order-card .form-table th,
  .spa-order-card .form-table td { display:block; width:100% !important; }
  .spa-order-card .form-table th { padding-bottom:2px !important; padding-right:0 !important; }
  .spa-gift-card-buy-table,
  .spa-gct-table,
  .spa-order-table { display:block; overflow-x:auto; white-space:nowrap; }
}

/* Module 9B v1.1 — frontend refinement: payment form, order progress and lookup layout. */
.spa-gift-card-order-tracking .spa-order-search {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:end;
  gap:18px !important;
}

.spa-gift-card-order-tracking .spa-order-search > button,
.spa-gift-card-order-tracking .spa-order-search > .button {
  grid-column:1 / -1;
  justify-self:start;
}

/* Payment confirmation: clean two-column field cards instead of the old table-like layout. */
.spa-gift-card-order-tracking #spa-confirm-payment .form-table {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px !important;
  border:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table tbody {
  display:contents;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table tr {
  display:flex !important;
  flex-direction:column;
  gap:8px;
  min-width:0;
  padding:16px 16px 18px !important;
  margin:0 !important;
  border:1px solid #e4eaf4 !important;
  border-radius:15px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%) !important;
  box-shadow:0 5px 18px rgba(15,33,66,.045);
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table tr:first-child,
.spa-gift-card-order-tracking #spa-confirm-payment .form-table tr:last-child {
  grid-column:1 / -1;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table th,
.spa-gift-card-order-tracking #spa-confirm-payment .form-table td {
  display:block !important;
  width:auto !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table th {
  color:var(--spa-navy);
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table td input,
.spa-gift-card-order-tracking #spa-confirm-payment .form-table td textarea {
  width:100% !important;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table .description {
  margin:2px 0 0 !important;
  color:#667085;
  font-size:12px;
  line-height:1.55;
}

/* Progress: compact horizontal milestone tracker with explicit completion cues. */
.spa-gift-card-order-tracking .spa-order-progress {
  display:grid !important;
  grid-template-columns:repeat(6,minmax(110px,1fr));
  gap:0 !important;
  margin-top:24px !important;
  padding:10px 0 4px;
  overflow-x:auto;
}

.spa-gift-card-order-tracking .spa-order-step {
  position:relative;
  min-height:92px;
  padding:18px 10px 12px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#7a8498;
  font-size:12px;
  line-height:1.35;
  text-align:center;
  z-index:1;
}

.spa-gift-card-order-tracking .spa-order-step::before {
  content:"";
  width:30px;
  height:30px;
  margin:0 auto 11px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:2px solid #d9e1ef;
  background:#fff;
  color:#8a96aa;
  box-sizing:border-box;
  font-size:13px;
  font-weight:900;
  position:relative;
  z-index:2;
}

.spa-gift-card-order-tracking .spa-order-step:not(:last-child)::after {
  content:"";
  position:absolute;
  top:33px;
  left:calc(50% + 15px);
  width:calc(100% - 30px);
  height:3px;
  border-radius:999px;
  background:#e8edf5;
  z-index:0;
}

.spa-gift-card-order-tracking .spa-order-step.is-current {
  min-height:92px;
  color:#1c4290;
  background:transparent !important;
}

.spa-gift-card-order-tracking .spa-order-step.is-current::before {
  content:"✓";
  border-color:#28b98a;
  background:linear-gradient(135deg,#23b982,#19a56f);
  color:#fff;
  box-shadow:0 7px 16px rgba(25,165,111,.20);
}

.spa-gift-card-order-tracking .spa-order-step.is-current:not(:last-child)::after {
  background:linear-gradient(90deg,#31bd90,#8edfc6);
}

.spa-gift-card-order-tracking .spa-order-step.is-rejected {
  color:#a51f2b;
  background:transparent !important;
}

.spa-gift-card-order-tracking .spa-order-step.is-rejected::before {
  content:"!";
  border-color:#e65b68;
  background:#fff0f2;
  color:#bf2737;
}

.spa-gift-card-order-tracking .spa-order-rejected-label {
  margin-top:4px;
  font-size:11px;
  font-weight:800;
}

@media (max-width: 760px) {
  .spa-gift-card-order-tracking .spa-order-search {
    grid-template-columns:1fr !important;
  }

  .spa-gift-card-order-tracking .spa-order-search > button,
  .spa-gift-card-order-tracking .spa-order-search > .button {
    grid-column:auto;
    width:100%;
  }

  .spa-gift-card-order-tracking #spa-confirm-payment .form-table {
    grid-template-columns:1fr;
  }

  .spa-gift-card-order-tracking #spa-confirm-payment .form-table tr:first-child,
  .spa-gift-card-order-tracking #spa-confirm-payment .form-table tr:last-child {
    grid-column:auto;
  }

  .spa-gift-card-order-tracking .spa-order-progress {
    grid-template-columns:repeat(6,minmax(112px,1fr));
    padding-bottom:10px;
  }
}

/* Module 9B v1.2 — complete frontend visual refinement. Presentation only. */
.spa-gift-card-buy,
.spa-gift-card-tracking,
.spa-gift-card-order-tracking {
  --spa-navy:#0d2144;
  --spa-blue:#3c5ff5;
  --spa-cyan:#11b7d7;
  --spa-green:#15a974;
  --spa-purple:#7257f5;
  --spa-bg:#f6f8fc;
  --spa-border:#dfe6f2;
  --spa-muted:#66748c;
  --spa-text:#18243a;
}

.spa-gift-card-buy,
.spa-gift-card-tracking,
.spa-gift-card-order-tracking {
  max-width:1040px !important;
  margin:40px auto !important;
  padding:0 20px !important;
}

.spa-gift-card-buy > h2,
.spa-gift-card-tracking > h2,
.spa-gift-card-order-tracking > h2 {
  margin:0 0 28px !important;
  font-size:clamp(30px,4.2vw,44px) !important;
  font-weight:800 !important;
  letter-spacing:-.035em !important;
  color:var(--spa-navy) !important;
}

.spa-gift-card-buy > h2::after,
.spa-gift-card-tracking > h2::after,
.spa-gift-card-order-tracking > h2::after {
  width:66px;
  height:4px;
  margin-top:14px;
  background:linear-gradient(90deg,var(--spa-blue),var(--spa-cyan));
  box-shadow:0 5px 14px rgba(60,95,245,.16);
}

.spa-gift-card-buy-card,
.spa-gct-card,
.spa-order-card {
  border:1px solid rgba(214,223,238,.95) !important;
  border-radius:22px !important;
  padding:30px !important;
  margin:20px 0 !important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%) !important;
  box-shadow:0 18px 50px rgba(18,35,68,.075),0 2px 5px rgba(18,35,68,.025) !important;
}

.spa-gift-card-buy-card h3,
.spa-gct-card h3,
.spa-order-card h3 {
  margin:0 0 22px !important;
  font-size:20px !important;
  font-weight:800 !important;
  color:var(--spa-navy) !important;
}

.spa-gift-card-buy-card h3::after,
.spa-gct-card h3::after,
.spa-order-card h3::after {
  width:52px;
  height:3px;
  margin-top:10px;
  background:linear-gradient(90deg,var(--spa-purple),var(--spa-cyan));
}

/* Buy Gift Card */
.spa-gift-card-buy .spa-gift-card-buy-card form {
  display:block;
}

.spa-gift-card-buy-row {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px !important;
}

.spa-gift-card-buy-field,
.spa-order-field,
.spa-gct-field { margin-bottom:18px !important; }

.spa-gift-card-buy-field label,
.spa-order-field label,
.spa-gct-field label,
.spa-order-card .form-table th,
.spa-order-card .form-table label {
  margin-bottom:9px;
  color:var(--spa-navy);
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}

.spa-gift-card-buy-field input,
.spa-gift-card-buy-field select,
.spa-order-field input,
.spa-gct-field input,
.spa-order-card input,
.spa-order-card textarea,
.spa-order-card select {
  min-height:52px;
  border:1px solid #cfd9e9 !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 3px 10px rgba(20,35,64,.035) !important;
  font-size:15px !important;
}

.spa-gift-card-buy-field select,
.spa-gift-card-buy select,
.spa-gct-card select,
.spa-order-card select {
  padding-right:44px !important;
  appearance:auto;
  -webkit-appearance:auto;
  cursor:pointer;
}

.spa-gift-card-buy-field input:focus,
.spa-gift-card-buy-field select:focus,
.spa-order-field input:focus,
.spa-gct-field input:focus,
.spa-order-card input:focus,
.spa-order-card textarea:focus,
.spa-order-card select:focus {
  border-color:#89a5ff !important;
  box-shadow:0 0 0 4px rgba(60,95,245,.10),0 4px 14px rgba(20,35,64,.05) !important;
}

.spa-gift-card-buy-note {
  margin:20px 0 22px !important;
  padding:16px 18px !important;
  border-radius:15px !important;
  border:1px solid #d8dfff !important;
  background:linear-gradient(135deg,#f6f7ff,#effbff) !important;
  color:#344054 !important;
}

/* View Gift Card lookup */
.spa-gift-card-tracking .spa-gct-form {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:end;
  gap:18px !important;
}

.spa-gift-card-tracking .spa-gct-form > button,
.spa-gift-card-tracking .spa-gct-form > .button {
  grid-column:1 / -1;
  justify-self:start;
}

.spa-gct-card:first-of-type {
  position:relative;
  overflow:hidden;
}

.spa-gct-card:first-of-type::before {
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,var(--spa-purple),var(--spa-blue),var(--spa-cyan));
}

.spa-gct-card > div:first-child {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.spa-gct-card > div:first-child > strong {
  font-size:20px !important;
  letter-spacing:.01em;
  color:var(--spa-navy) !important;
}

.spa-gct-status {
  margin-left:auto;
  padding:7px 12px !important;
  border-radius:999px !important;
  border:1px solid #bce9d3 !important;
  background:linear-gradient(180deg,#f0fff7,#e6faef) !important;
  color:#0f7a51 !important;
  box-shadow:0 5px 12px rgba(20,160,110,.08);
}

.spa-gct-summary {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px !important;
  margin-top:18px !important;
}

.spa-gct-summary-item {
  position:relative;
  overflow:hidden;
  min-height:120px;
  padding:22px !important;
  border:1px solid #dee6f2 !important;
  border-radius:17px !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(18,35,68,.055) !important;
}

.spa-gct-summary-item::after {
  content:"";
  position:absolute;
  right:-10px;
  bottom:-12px;
  width:62px;
  height:62px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(60,95,245,.09),rgba(17,183,215,.05));
}

.spa-gct-summary-item:nth-child(2)::after {
  background:linear-gradient(135deg,rgba(21,169,116,.10),rgba(60,95,245,.04));
}

.spa-gct-summary-item:nth-child(3)::after {
  background:linear-gradient(135deg,rgba(114,87,245,.11),rgba(17,183,215,.05));
}

.spa-gct-label {
  position:relative;
  z-index:1;
  display:block;
  color:#71809a !important;
  font-size:11px !important;
  letter-spacing:.10em !important;
}

.spa-gct-value {
  position:relative;
  z-index:1;
  margin-top:11px;
  color:var(--spa-navy) !important;
  font-size:31px !important;
  font-weight:800 !important;
}

/* Gift Card details — polished key/value grid while preserving the table markup. */
.spa-gift-card-tracking .spa-gct-table tbody {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
}

.spa-gift-card-tracking .spa-gct-table tbody tr {
  display:grid;
  grid-template-columns:minmax(130px,38%) minmax(0,1fr);
  align-items:center;
  min-height:62px;
  border-bottom:1px solid #edf1f6 !important;
}

.spa-gift-card-tracking .spa-gct-table tbody tr:nth-child(odd) {
  background:linear-gradient(90deg,#fafcff,#ffffff);
}

.spa-gift-card-tracking .spa-gct-table tbody tr:last-child,
.spa-gift-card-tracking .spa-gct-table tbody tr:nth-last-child(2) {
  border-bottom:0 !important;
}

.spa-gift-card-tracking .spa-gct-table th,
.spa-gift-card-tracking .spa-gct-table td {
  border:0 !important;
  padding:15px 16px !important;
}

.spa-gift-card-tracking .spa-gct-table th {
  color:#60708a;
  background:transparent !important;
  font-size:12px !important;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.spa-gift-card-tracking .spa-gct-table td {
  color:#1d2940;
  font-weight:650;
}

/* Redemption history — explicit table geometry so four financial columns stay aligned. */
.spa-gift-card-tracking .spa-gct-history-table-wrap {
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #e1e7f0;
  border-radius:16px;
  background:#fff;
}

.spa-gift-card-tracking .spa-gct-history-table {
  width:100% !important;
  min-width:720px;
  margin:0 !important;
  border:0 !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.spa-gift-card-tracking .spa-gct-history-table thead th {
  height:58px;
  padding:15px 18px !important;
  text-align:left !important;
  vertical-align:middle !important;
  background:linear-gradient(180deg,#f7f9fd,#eef3fa) !important;
  color:#60708a !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:normal !important;
  border:0 !important;
  border-bottom:1px solid #e1e7f0 !important;
}

.spa-gift-card-tracking .spa-gct-history-table thead th:first-child { width:34%; }
.spa-gift-card-tracking .spa-gct-history-table thead th:nth-child(2) { width:20%; }
.spa-gift-card-tracking .spa-gct-history-table thead th:nth-child(3),
.spa-gift-card-tracking .spa-gct-history-table thead th:nth-child(4) { width:23%; }

.spa-gift-card-tracking .spa-gct-history-table tbody td {
  padding:17px 18px !important;
  vertical-align:middle !important;
  color:#172844 !important;
  font-size:14px !important;
  font-weight:650 !important;
  line-height:1.5 !important;
  border:0 !important;
  border-bottom:1px solid #edf1f6 !important;
  background:#fff !important;
  white-space:nowrap !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody tr:last-child td {
  border-bottom:0 !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody tr:hover td {
  background:#f8fbff !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody td:first-child {
  color:#334a6b !important;
  font-weight:700 !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody td:nth-child(n+2) {
  font-variant-numeric:tabular-nums;
}

/* Redemption history legacy rule intentionally left inactive; the explicit history styles above control the table. */

/* Order tracking */
.spa-gift-card-order-tracking .spa-order-table tbody tr {
  min-height:58px;
}

.spa-gift-card-order-tracking .spa-order-table th {
  color:#60708a;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.spa-gift-card-order-tracking .spa-order-table td strong {
  color:var(--spa-navy);
}

.spa-gift-card-order-tracking .spa-order-progress {
  margin:24px 0 4px !important;
  padding:8px 0 14px !important;
  border-radius:18px;
}

.spa-gift-card-order-tracking .spa-order-step {
  min-height:105px !important;
  color:#8490a5;
  font-size:12px;
  font-weight:700;
}

.spa-gift-card-order-tracking .spa-order-step::before {
  width:34px;
  height:34px;
  margin-bottom:11px;
  border:2px solid #d8e0ed;
  box-shadow:0 4px 12px rgba(18,35,68,.06);
}

.spa-gift-card-order-tracking .spa-order-step.is-current {
  color:#2450aa;
}

.spa-gift-card-order-tracking .spa-order-step.is-current::before {
  border-color:#20ad7a;
  box-shadow:0 7px 18px rgba(25,165,111,.18);
}

.spa-gift-card-order-tracking .spa-order-step.is-current:not(:last-child)::after {
  background:linear-gradient(90deg,#27b88a,#9ee0c7);
}

/* Completed order / status notices. */
.spa-order-success,
.spa-gct-error,
.spa-order-error,
.spa-order-rejected-notice {
  position:relative;
  border-radius:17px !important;
  padding:18px 20px !important;
  box-shadow:0 8px 22px rgba(18,35,68,.045);
}

.spa-order-success {
  border-color:#afe5cc !important;
  background:linear-gradient(135deg,#f0fff8,#e8fbf3) !important;
}

.spa-order-error,
.spa-gct-error {
  border-color:#efbcc3 !important;
  background:linear-gradient(135deg,#fff7f8,#fff2f4) !important;
}

.spa-order-rejected-notice {
  border-color:#efc2c7 !important;
  background:linear-gradient(135deg,#fff8f8,#fff2f4) !important;
}

/* Payment confirmation */
.spa-gift-card-order-tracking #spa-confirm-payment {
  overflow:hidden;
  position:relative;
}

.spa-gift-card-order-tracking #spa-confirm-payment::before {
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,var(--spa-purple),var(--spa-blue),var(--spa-cyan));
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table tr {
  border:1px solid #dfe6f1 !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,#ffffff,#f9fbff) !important;
  box-shadow:0 7px 20px rgba(18,35,68,.045) !important;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table td input,
.spa-gift-card-order-tracking #spa-confirm-payment .form-table td textarea {
  min-height:50px;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table td textarea {
  min-height:125px;
}

.spa-gift-card-order-tracking #spa-confirm-payment .form-table input[readonly] {
  background:linear-gradient(180deg,#f2f6fd,#ecf2fa) !important;
  border-color:#cfd9e7 !important;
  color:#5a6a83 !important;
  font-weight:700 !important;
}

.spa-gift-card-order-tracking #spa-confirm-payment .description {
  color:#6d7a90 !important;
}

/* Buttons — consistent premium CTA language. */
.spa-gift-card-buy .button,
.spa-gift-card-buy button,
.spa-gct-card .button,
.spa-gct-card button,
.spa-order-card .button,
.spa-order-card button {
  min-height:50px;
  padding:0 22px !important;
  border-radius:14px !important;
  background:linear-gradient(135deg,#4e5cf6 0%,#3477ee 48%,#15b2cf 100%) !important;
  box-shadow:0 12px 24px rgba(60,95,245,.19),inset 0 1px 0 rgba(255,255,255,.16);
}

.spa-gift-card-buy .button:hover,
.spa-gift-card-buy button:hover,
.spa-gct-card .button:hover,
.spa-gct-card button:hover,
.spa-order-card .button:hover,
.spa-order-card button:hover {
  transform:translateY(-2px);
  box-shadow:0 15px 30px rgba(60,95,245,.24),inset 0 1px 0 rgba(255,255,255,.18);
}

/* Inline tables across customer pages. */
.spa-gift-card-buy-table,
.spa-gct-table,
.spa-order-table {
  border:1px solid #e0e6f0 !important;
  border-radius:16px !important;
  box-shadow:0 7px 22px rgba(18,35,68,.035);
}

.spa-gift-card-buy-table th,
.spa-gct-table th,
.spa-order-table th {
  color:#5f6e87;
  background:linear-gradient(180deg,#f8faff,#f3f6fb) !important;
}

/* Keep the old WordPress-generated alignment from forcing narrow customer layouts. */
.spa-gift-card-buy input,
.spa-gift-card-buy select,
.spa-gift-card-buy textarea,
.spa-gift-card-tracking input,
.spa-gift-card-tracking select,
.spa-gift-card-tracking textarea,
.spa-gift-card-order-tracking input,
.spa-gift-card-order-tracking select,
.spa-gift-card-order-tracking textarea {
  font-family:inherit !important;
}

@media (max-width: 760px) {
  .spa-gift-card-buy,
  .spa-gift-card-tracking,
  .spa-gift-card-order-tracking {
    margin:24px auto !important;
    padding:0 12px !important;
  }

  .spa-gift-card-buy > h2,
  .spa-gift-card-tracking > h2,
  .spa-gift-card-order-tracking > h2 {
    font-size:30px !important;
  }

  .spa-gift-card-buy-card,
  .spa-gct-card,
  .spa-order-card {
    padding:20px !important;
    border-radius:18px !important;
  }

  .spa-gift-card-buy-row,
  .spa-gift-card-tracking .spa-gct-form {
    grid-template-columns:1fr !important;
  }

  .spa-gift-card-tracking .spa-gct-form > button,
  .spa-gift-card-tracking .spa-gct-form > .button {
    grid-column:auto;
    width:100%;
  }

  .spa-gct-summary {
    grid-template-columns:1fr !important;
  }

  .spa-gift-card-tracking .spa-gct-table tbody {
    display:block;
  }

  .spa-gift-card-tracking .spa-gct-table tbody tr {
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    padding:8px 0;
  }

  .spa-gift-card-tracking .spa-gct-table th,
  .spa-gift-card-tracking .spa-gct-table td {
    padding:8px 14px !important;
  }

  .spa-gift-card-tracking .spa-gct-table th {
    padding-bottom:0 !important;
  }

  .spa-order-card .form-table,
  .spa-order-card .form-table tbody,
  .spa-order-card .form-table tr,
  .spa-order-card .form-table th,
  .spa-order-card .form-table td {
    width:100% !important;
  }
}


/* Redemption history mobile: keep it a real table inside a horizontal scroller. */
@media (max-width: 760px) {
  .spa-gift-card-tracking .spa-gct-history-table-wrap {
    overflow-x:auto;
  }

  .spa-gift-card-tracking .spa-gct-history-table {
    display:table !important;
    min-width:680px;
  }

  .spa-gift-card-tracking .spa-gct-history-table thead {
    display:table-header-group !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table tbody {
    display:table-row-group !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table tr {
    display:table-row !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table th,
  .spa-gift-card-tracking .spa-gct-history-table td {
    display:table-cell !important;
  }
}

/* FINAL REDEMPTION HISTORY TABLE FIX
 * Keep redemption history as a genuine HTML table. The Gift Card Details
 * key/value grid rules above target the shared table class and must not
 * affect this four-column history table.
 */
.spa-gift-card-tracking .spa-gct-history-table,
.spa-gift-card-tracking .spa-gct-history-table thead,
.spa-gift-card-tracking .spa-gct-history-table tbody {
  display: table !important;
  width: 100% !important;
}

.spa-gift-card-tracking .spa-gct-history-table thead {
  display: table-header-group !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody {
  display: table-row-group !important;
}

.spa-gift-card-tracking .spa-gct-history-table tr {
  display: table-row !important;
  width: 100% !important;
  min-height: 0 !important;
}

.spa-gift-card-tracking .spa-gct-history-table th,
.spa-gift-card-tracking .spa-gct-history-table td {
  display: table-cell !important;
  box-sizing: border-box !important;
}

.spa-gift-card-tracking .spa-gct-history-table th:first-child,
.spa-gift-card-tracking .spa-gct-history-table td:first-child {
  width: 34% !important;
}

.spa-gift-card-tracking .spa-gct-history-table th:nth-child(2),
.spa-gift-card-tracking .spa-gct-history-table td:nth-child(2) {
  width: 20% !important;
}

.spa-gift-card-tracking .spa-gct-history-table th:nth-child(3),
.spa-gift-card-tracking .spa-gct-history-table td:nth-child(3),
.spa-gift-card-tracking .spa-gct-history-table th:nth-child(4),
.spa-gift-card-tracking .spa-gct-history-table td:nth-child(4) {
  width: 23% !important;
}

.spa-gift-card-tracking .spa-gct-history-table th,
.spa-gift-card-tracking .spa-gct-history-table td {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody td:first-child {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

.spa-gift-card-tracking .spa-gct-history-table tbody td:not(:first-child) {
  white-space: nowrap !important;
}

@media (max-width: 760px) {
  .spa-gift-card-tracking .spa-gct-history-table {
    display: table !important;
    width: 720px !important;
    min-width: 720px !important;
    table-layout: fixed !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table thead {
    display: table-header-group !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table tbody {
    display: table-row-group !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table tr {
    display: table-row !important;
  }

  .spa-gift-card-tracking .spa-gct-history-table th,
  .spa-gift-card-tracking .spa-gct-history-table td {
    display: table-cell !important;
  }
}
