/* Patriot Rewards: customer account, cart, and checkout presentation. */
.pph-loyalty-panel,
.pph-loyalty-account-summary,
.pph-loyalty-account-page {
  --pph-navy: #10243d;
  --pph-red: #b12732;
  --pph-paper: #f7f4ee;
  --pph-line: #d8d5cd;
  border: 1px solid var(--pph-line);
  border-radius: 14px;
  background: linear-gradient(125deg, #fff 0%, var(--pph-paper) 100%);
  box-shadow: 0 12px 30px rgba(16, 36, 61, 0.06);
}

.pph-loyalty-panel {
  margin: 0 0 2rem;
  padding: clamp(1rem, 3vw, 1.5rem);
}

.pph-loyalty-panel-heading,
.pph-loyalty-account-summary,
.pph-loyalty-active,
.pph-loyalty-reward-form {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
}

.pph-loyalty-panel-heading h2,
.pph-loyalty-account-summary h2,
.pph-loyalty-account-page h2 {
  margin: 0;
  color: var(--pph-navy);
}

.pph-loyalty-panel-heading > p,
.pph-loyalty-account-summary p,
.pph-loyalty-fine-print,
.pph-loyalty-note,
.pph-loyalty-empty,
.pph-loyalty-balance-value {
  margin: 0;
  color: #586373;
}

.pph-loyalty-eyebrow {
  margin: 0 0 0.25rem;
  color: var(--pph-red);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.pph-loyalty-reward-form {
  margin-top: 1.25rem;
  align-items: flex-end;
  padding-top: 1.1rem;
  border-top: 1px solid var(--pph-line);
}

.pph-loyalty-reward-form label {
  display: grid;
  flex: 1 1 12rem;
  gap: 0.35rem;
  color: var(--pph-navy);
  font-size: 0.8rem;
  font-weight: 700;
}

.pph-loyalty-reward-form select,
.pph-loyalty-reward-form input {
  width: 100%;
  min-height: 2.8rem;
  border: 1px solid #b9c0c9;
  border-radius: 7px;
  background: #fff;
  color: var(--pph-navy);
  padding: 0.55rem 0.7rem;
}

.pph-loyalty-reward-form .button {
  min-height: 2.8rem;
  margin: 0;
  white-space: nowrap;
}

.pph-loyalty-fine-print {
  margin-top: 1rem;
  font-size: 0.8rem;
  line-height: 1.5;
}

.pph-loyalty-active {
  margin-top: 1rem;
  border-radius: 8px;
  background: rgba(16, 36, 61, 0.07);
  padding: 0.75rem;
}

.pph-loyalty-active form {
  margin: 0;
}

.pph-loyalty-active .button {
  margin: 0;
}

.pph-loyalty-account-summary {
  margin: 1.5rem 0;
  padding: 1.25rem;
}

.pph-loyalty-account-summary .button {
  margin: 0;
  white-space: nowrap;
}

.pph-loyalty-account-page {
  margin: 0 0 2rem;
  overflow: hidden;
}

.pph-loyalty-account-page > header {
  padding: clamp(1.3rem, 4vw, 2.25rem);
  background: var(--pph-navy);
  color: #fff;
}

.pph-loyalty-account-page > header h2,
.pph-loyalty-account-page > header .pph-loyalty-balance-value {
  color: #fff;
}

.pph-loyalty-account-page > header .pph-loyalty-eyebrow {
  color: #f6c4c9;
}

.pph-loyalty-rules-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--pph-line);
  border-bottom: 1px solid var(--pph-line);
}

.pph-loyalty-rules-grid > div {
  display: grid;
  gap: 0.4rem;
  padding: 1rem;
  background: #fff;
}

.pph-loyalty-rules-grid strong {
  color: var(--pph-navy);
}

.pph-loyalty-rules-grid span {
  color: #596573;
  font-size: 0.86rem;
  line-height: 1.45;
}

.pph-loyalty-account-page > h3,
.pph-loyalty-account-page > .pph-loyalty-ledger,
.pph-loyalty-account-page > .pph-loyalty-empty {
  margin-right: clamp(1rem, 4vw, 2.25rem);
  margin-left: clamp(1rem, 4vw, 2.25rem);
}

.pph-loyalty-account-page > h3 {
  margin-top: 1.7rem;
  margin-bottom: 0.75rem;
  color: var(--pph-navy);
}

.pph-loyalty-ledger {
  margin-bottom: 1.75rem;
  border-top: 1px solid var(--pph-line);
}

.pph-loyalty-ledger-row {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--pph-line);
}

.pph-loyalty-ledger-row strong,
.pph-loyalty-ledger-row small {
  display: block;
}

.pph-loyalty-ledger-row small {
  margin-top: 0.18rem;
  color: #657181;
  font-size: 0.78rem;
}

.pph-loyalty-ledger-row > span {
  font-weight: 800;
  white-space: nowrap;
}

.pph-loyalty-ledger-row .is-positive {
  color: #157347;
}

.pph-loyalty-ledger-row .is-negative {
  color: var(--pph-red);
}

.pph-loyalty-empty {
  padding-bottom: 1.75rem;
}

.pph-loyalty-consent-field label {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  line-height: 1.5;
}

.pph-loyalty-consent-field input {
  margin-top: 0.25rem;
}

.pph-loyalty-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

@media (max-width: 760px) {
  .pph-loyalty-panel-heading,
  .pph-loyalty-account-summary,
  .pph-loyalty-active,
  .pph-loyalty-reward-form,
  .pph-loyalty-ledger-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .pph-loyalty-reward-form .button,
  .pph-loyalty-account-summary .button {
    width: 100%;
    text-align: center;
  }

  .pph-loyalty-rules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .pph-loyalty-rules-grid {
    grid-template-columns: 1fr;
  }
}
