/* Geometry and typography from the supplied Spirit One export. */
.spirit-header-wordmark,
.spirit-footer-brand,
.spirit-site-footer,
.spirit-multicurrency-card {
  font-family: Onest, sans-serif;
  font-feature-settings: "blwf" on, "cv03" on, "cv04" on, "cv09" on, "cv11" on;
}
.spirit-header-wordmark,
.spirit-footer-brand {
  display: inline-block;
  color: #1d1d1b;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -.06em;
  line-height: 1.15;
  white-space: nowrap;
}
header .spirit-header-wordmark { text-decoration: none; }
header a:has(.spirit-header-wordmark),
.modal-header a:has(.spirit-header-wordmark) { text-decoration: none; }

.spirit-site-footer {
  width: 100%;
  padding: 64px 60px 48px;
  overflow: clip;
  background: linear-gradient(#e7f3ff, #f5f9fd);
  color: #1d1d1b;
}
.spirit-footer-content {
  width: 100%;
  max-width: 1296px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.spirit-footer-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(100px, 1fr));
  gap: 32px;
  width: 100%;
  align-items: start;
}
.spirit-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.spirit-footer-column h3 {
  margin: 0;
  font: 500 16px/1.25 Onest, sans-serif;
  letter-spacing: -.02em;
}
.spirit-footer-column a { color: #777672; font-size: 16px; line-height: 1.5; letter-spacing: -.02em; text-decoration: none; }
.spirit-footer-column a:hover { color: #0088ff; }
.spirit-social-row { display: flex; gap: 14px; align-items: flex-start; }
.spirit-social-row svg { display: block; width: 20px; height: 20px; }
.spirit-footer-socials p { margin: 0; color: #777672; font-size: 12px; line-height: 1.5; letter-spacing: -.02em; }
.spirit-footer-large-wordmark { display: block; width: 100%; height: auto; overflow: visible; }
.spirit-footer-fit-text {
  font: 700 514.9574299784263px/1 Onest, sans-serif;
  font-feature-settings: "blwf" on, "cv03" on, "cv04" on, "cv09" on, "cv11" on;
  letter-spacing: -.06em;
  text-align: center;
  white-space: pre;
}
.spirit-footer-fit-text span {
  background-image: linear-gradient(0deg, #e7f3ff 0%, #49aaff 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
.spirit-footer-notice {
  display: flex;
  flex-direction: column;
  gap: 16px;
  border-top: 1px solid #d6e5f2;
  padding-top: 32px;
  color: #777672;
  font: 400 12px/1.5 Onest, sans-serif;
  letter-spacing: .045em;
}
.spirit-footer-disclaimer, .spirit-footer-copyright { margin: 0; text-transform: uppercase; }
.spirit-footer-legal-grid { display: grid; grid-template-columns: repeat(2, minmax(160px, 1fr)); gap: 24px; letter-spacing: -.02em; }
.spirit-footer-legal-grid h4 { font: 500 14px/1.3 Onest, sans-serif; margin: 0 0 8px; }
.spirit-footer-legal-grid p { margin: 0; }

.spirit-multicurrency-card {
  min-height: 530px;
  border-radius: 32px;
  padding: 40px;
  gap: 28px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: clip;
  background: #fff;
}
.spirit-multicurrency-copy { display: flex; flex-direction: column; gap: 12px; max-width: 350px; }
.spirit-multicurrency-copy h3 { margin: 0; }
.spirit-multicurrency-copy p { margin: 0; font-size: 16px; line-height: 1.5; letter-spacing: -.02em; color: #777672; }
.spirit-multicurrency-art { display: flex; align-items: center; min-height: 240px; width: 100%; }
.spirit-balance-row { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; width: 100%; }
.spirit-balance-card { display: flex; flex: 1 0 calc(33.333% - 8px); min-width: 0; flex-direction: column; gap: 24px; padding: 16px; border-radius: 20px; background: #f9f4ef; }
.spirit-balance-top { display: flex; align-items: center; gap: 8px; font-size: 19px; font-weight: 500; line-height: 1.3; letter-spacing: -.02em; }
.spirit-balance-top img { width: 32px; height: 32px; flex-shrink: 0; object-fit: contain; border-radius: 50%; }
.spirit-balance-value { display: flex; flex-direction: column; gap: 1px; letter-spacing: -.02em; }
.spirit-balance-value span { color: #777672; font-size: 12px; line-height: 1.5; }
.spirit-balance-value strong { font-size: 22px; font-weight: 600; line-height: 1.3; white-space: nowrap; }

@media (min-width: 810px) and (max-width: 1199.98px) {
  .spirit-site-footer { padding: 56px 32px 40px; }
  .spirit-footer-grid { grid-template-columns: repeat(3, minmax(100px, 1fr)); }
  .spirit-multicurrency-card { min-height: 500px; padding: 28px; }
  .spirit-balance-row { gap: 6px; }
  .spirit-balance-card { gap: 18px; padding: 10px; }
  .spirit-balance-top { font-size: 12px; }
  .spirit-balance-top img { width: 22px; height: 22px; }
  .spirit-balance-value strong { font-size: 16px; }
}
@media (max-width: 809.98px) {
  .spirit-header-wordmark, .spirit-footer-brand { font-size: 25px; }
  .spirit-site-footer { padding: 48px 24px 32px; }
  .spirit-footer-content { gap: 40px; }
  .spirit-footer-grid { grid-template-columns: repeat(2, minmax(100px, 1fr)); gap: 32px 20px; }
  .spirit-footer-legal-grid { display: flex; flex-direction: column; }
  .spirit-multicurrency-card { min-height: 430px; padding: 28px; gap: 24px; }
  .spirit-multicurrency-art { min-height: 200px; }
  .spirit-balance-row { gap: 8px; }
  .spirit-balance-card { gap: 20px; padding: 10px; }
  .spirit-balance-top { font-size: 12px; }
  .spirit-balance-top img { width: 20px; height: 20px; }
  .spirit-balance-value strong { font-size: 16px; }
}
/* Fixed Altery mobile CTA must leave enough space below the last legal line. */
@media (max-width: 767.98px) { .spirit-site-footer { padding-bottom: 112px; } }

/* Supplied photographs keep the original Altery section geometry. */
.spirit-chapter-photo > .position-absolute::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(7, 35, 105, .7), transparent 65%);
}
.spirit-cta-photo > .position-absolute::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7, 35, 85, .75), rgba(7, 35, 85, .1) 50%, transparent 65%);
}
.one-hero-chip { backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.one-hero-chip-card { white-space: normal; }
.one-hero-chip-card-art { width: 4cqw; }
@media (max-width: 991.98px) {
  .spirit-chapter-photo > .position-absolute::after { background: rgba(5, 30, 90, .78); }
}
@media (max-width: 767.98px) {
  .one-hero-chip-card-art { width: 14cqw; }
  .spirit-cta-photo > .position-absolute { background-position: 62% center !important; }
}

/* Benefits cards: currency flags + card payments art (replaces Altery PNG illustrations). */
.spirit-card-art {
  display: flex; align-items: center; justify-content: center;
  margin-top: auto; width: 100%; padding: 24px 32px 40px; gap: 32px;
}
.spirit-flags-art { flex-direction: column; gap: 0; }
.spirit-flags-grid { display: grid; grid-template-columns: repeat(3, 64px); gap: 14px; }
.spirit-flags-grid img { display: block; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.spirit-flags-caption {
  margin-top: 22px; font-family: "Geist Mono", ui-monospace, monospace;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #777672; text-align: center;
}
.spirit-cardpay-art { flex-wrap: wrap; }
.spirit-card-image { width: min(100%, 320px); height: auto; flex: 0 0 auto; border-radius: 18px; box-shadow: 0 18px 40px rgba(0, 60, 140, .18); }
.spirit-pay-grid { display: grid; grid-template-columns: repeat(2, minmax(0, auto)); gap: 12px; }
.spirit-pay-badge {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  height: 44px; padding: 0 18px; border-radius: 12px;
  font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: -.01em; white-space: nowrap;
}
.spirit-pay-badge svg { display: block; height: 20px; width: 20px; flex-shrink: 0; }
.spirit-pay-apple { background: #000; color: #fff; }
.spirit-pay-google { background: #fff; color: #3c4043; border: 1px solid #dadce0; }
.spirit-pay-alipay { background: #1677ff; color: #fff; }
.spirit-pay-wechat { background: #07c160; color: #fff; }
@media (max-width: 991.98px) {
  .spirit-card-art { padding: 16px 20px 28px; gap: 20px; }
  .spirit-flags-grid { grid-template-columns: repeat(3, 52px); gap: 10px; }
  .spirit-flags-grid img { width: 52px; height: 52px; }
  .spirit-card-image { width: min(100%, 240px); }
  .spirit-pay-grid { gap: 8px; }
  .spirit-pay-badge { height: 38px; padding: 0 12px; font-size: 13px; }
  .spirit-pay-badge svg { height: 16px; width: 16px; }
}
@media (max-width: 767.98px) {
  .spirit-cardpay-art { flex-direction: column; }
  .spirit-pay-grid { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Internal & bank transfers art: Spirit One node between two people (replaces Altery PNG). */
.spirit-transfer-art {
  position: relative; display: block; container-type: inline-size;
  width: 100%; max-width: 420px; margin: 0 auto 28px; aspect-ratio: 400 / 260; padding: 0;
}
.spirit-transfer-path { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.spirit-transfer-node {
  position: absolute; left: 50%; top: 26.9%; width: 18%; aspect-ratio: 1; transform: translate(-50%, -50%);
  border-radius: 50%; background-image: var(--spirit-accent-gradient); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: Onest, sans-serif; font-weight: 700; font-size: 10cqw; line-height: 1; letter-spacing: -.06em;
  box-shadow: 0 8px 20px rgba(0, 136, 255, .25);
}
.spirit-transfer-node span { transform: translateY(-4%); }
.spirit-transfer-person {
  position: absolute; top: 58%; width: 32%; display: flex; flex-direction: column; align-items: center; gap: 3.5cqw;
}
.spirit-transfer-left { left: 7%; }
.spirit-transfer-right { right: 7%; }
.spirit-transfer-person img { width: 64%; height: auto; border-radius: 50%; display: block; }
.spirit-transfer-person span {
  font-family: "Geist Mono", ui-monospace, monospace; font-size: clamp(9px, 3.2cqw, 13px);
  letter-spacing: .14em; text-transform: uppercase; color: #777672; white-space: nowrap;
}
