/* GymDayPasses brand tokens + logo classes
   Mark: "The day pass" — a punched entry ticket, tilted like it was just torn
   off at the front desk. Iron ticket, punch-orange stub, punched lanyard hole,
   perforation line. Drop this in once and use the custom properties everywhere. */

:root {
  --gdp-iron: #232833;
  --gdp-punch: #f97316;
  --gdp-pine: #0e7a5f;
  --gdp-go: #1d9d6e;
  --gdp-chalk: #edeae3;
  --gdp-ground: #f7f5f1;
  --gdp-white: #ffffff;

  --gdp-text: #232833;
  --gdp-text-muted: #5c6370;
  --gdp-text-on-ink: #f7f5f1;
  --gdp-muted-on-ink: #aab1bd;
  --gdp-accent-deep: #0e7a5f;

  --gdp-font: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gdp-wordmark-tracking: -0.03em;

  --gdp-radius: 10px;       /* inputs */
  --gdp-radius-card: 12px;  /* result cards */
  --gdp-radius-pill: 999px; /* buttons, chips, chain filters */
  --gdp-rule: 1px;
}

/* Wordmark — "GymDay" heavy, "Passes" regular. Never re-weight, never letterspace. */
.gdp-wordmark {
  font-family: var(--gdp-font);
  font-weight: 800;
  letter-spacing: var(--gdp-wordmark-tracking);
  line-height: 1;
  color: var(--gdp-text);
  white-space: nowrap;
}
.gdp-wordmark span { font-weight: 400; }
.gdp-wordmark--on-ink { color: var(--gdp-text-on-ink); }

.gdp-tagline {
  font-family: var(--gdp-font);
  font-weight: 700;
  font-size: 0.26em;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gdp-accent-deep);
}

/* The mark — "The day pass".
   Every part is a percentage of one square, so 16px and 512px are ONE drawing.
   font-size tracks the size so em-based strokes scale with it. The ticket is a
   single rotated child; the stub, perforation and punched hole live inside it
   so the whole ticket tilts as one piece. */
.gdp-mark {
  --gdp-mark: 64px;
  position: relative;
  flex: none;
  width: var(--gdp-mark);
  height: var(--gdp-mark);
  font-size: var(--gdp-mark);
  border-radius: 50%;
  overflow: hidden;
  background: var(--gdp-chalk);
}
.gdp-mark > *, .gdp-mark__ticket > * { position: absolute; box-sizing: border-box; }

.gdp-mark__ticket {
  left: 12%; top: 30%; width: 76%; height: 40%;
  border-radius: 0.09em;
  background: var(--gdp-iron);
  transform: rotate(-9deg);
  overflow: hidden;
}
/* Punch-orange stub — the torn-off end you keep. */
.gdp-mark__band { left: 0; top: 0; width: 27%; height: 100%; background: var(--gdp-punch); }
/* Punched lanyard hole in the stub — shows the chip ground through the ticket. */
.gdp-mark__hole { left: 9.5%; top: 37%; width: 8.5%; height: 26%; border-radius: 50%; background: var(--gdp-chalk); }
/* Perforation between stub and body. */
.gdp-mark__perf { left: 27%; top: 10%; width: 0; height: 80%; border-left: 0.028em dashed var(--gdp-chalk); }

/* On the dark ground the ticket inverts; the stub holds its orange. */
.gdp-mark--on-ink { background: var(--gdp-iron); }
.gdp-mark--on-ink .gdp-mark__ticket { background: var(--gdp-ground); }
.gdp-mark--on-ink .gdp-mark__band { background: var(--gdp-punch); }
.gdp-mark--on-ink .gdp-mark__hole { background: var(--gdp-iron); }
.gdp-mark--on-ink .gdp-mark__perf { border-left-color: var(--gdp-iron); }

/* One color, for embroidery, foil and single-plate print. */
.gdp-mark--mono { background: var(--gdp-text); }
.gdp-mark--mono .gdp-mark__ticket { background: var(--gdp-text-on-ink); }
.gdp-mark--mono .gdp-mark__band { background: var(--gdp-text-on-ink); }
.gdp-mark--mono .gdp-mark__hole { background: var(--gdp-text); }
.gdp-mark--mono .gdp-mark__perf { border-left-color: var(--gdp-text); }

/* Below 32px: drop the perforation and hole, keep the stub. */
.gdp-mark--simple .gdp-mark__perf { display: none; }
.gdp-mark--simple .gdp-mark__hole { display: none; }
.gdp-mark--simple .gdp-mark__ticket { left: 10%; top: 28%; width: 80%; height: 44%; }

/* Lockups. Clear space on every side = 25% of the mark. */
.gdp-lockup {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-size: 32px;
  text-decoration: none;
}
.gdp-lockup .gdp-mark { --gdp-mark: 1.15em; }
.gdp-lockup__text { display: flex; flex-direction: column; gap: 0.16em; }
.gdp-lockup .gdp-wordmark { font-size: 1em; }
.gdp-lockup--stacked { flex-direction: column; align-items: flex-start; gap: 0.5em; }

/* Site chrome */
.gdp-header {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 64px;
  padding: 0 24px;
  background: var(--gdp-white);
  border-bottom: var(--gdp-rule) solid color-mix(in srgb, var(--gdp-text) 16%, transparent);
}
.gdp-band { background: var(--gdp-ground); }
.gdp-footer { background: var(--gdp-iron); color: var(--gdp-muted-on-ink); }
.gdp-rule { height: var(--gdp-rule); border: 0; margin: 0; background: color-mix(in srgb, var(--gdp-text) 18%, transparent); }

/* Links + selection */
::selection { background: var(--gdp-chalk); color: var(--gdp-text); }
