/* Hmonster Deals — base
   Halcyon v1.0 reset + type defaults. Component visuals live in components.css. */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  tab-size: 4;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--hmd-font-sans);
  font-size: var(--hmd-text-base);
  font-weight: var(--hmd-weight-regular);
  line-height: var(--hmd-leading-normal);
  color: var(--hmd-text);
  background: var(--hmd-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "cv11";
}

/* Halcyon display treatment — Impact, uppercase, tight tracking, short leading. */
.hmd-display,
h1.hmd-display,
h2.hmd-display,
h3.hmd-display {
  font-family: var(--hmd-font-display);
  font-weight: var(--hmd-weight-regular); /* Impact is already bold */
  text-transform: uppercase;
  letter-spacing: var(--hmd-track-display);
  line-height: 0.9;
  color: var(--hmd-text-strong);
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--hmd-space-4) 0;
  font-weight: var(--hmd-weight-bold);
  line-height: var(--hmd-leading-snug);
  letter-spacing: var(--hmd-track-tight);
  color: var(--hmd-text-strong);
}

h1 { font-size: clamp(var(--hmd-text-2xl), 4vw + 1rem, var(--hmd-text-4xl)); }
h2 { font-size: clamp(var(--hmd-text-xl), 3vw + 0.5rem, var(--hmd-text-3xl)); }
h3 { font-size: var(--hmd-text-xl); }
h4 { font-size: var(--hmd-text-lg); }
h5 { font-size: var(--hmd-text-base); }
h6 {
  font-family: var(--hmd-font-mono);
  font-size: var(--hmd-text-xs);
  text-transform: uppercase;
  letter-spacing: var(--hmd-track-mono);
  color: var(--hmd-text-muted);
  font-weight: var(--hmd-weight-medium);
}

p { margin: 0 0 var(--hmd-space-4) 0; }

a {
  color: var(--hmd-link);
  text-decoration-color: color-mix(in srgb, var(--hmd-link) 30%, transparent);
  text-underline-offset: 0.2em;
  transition: color var(--hmd-duration-fast) var(--hmd-ease);
}
a:hover { color: var(--hmd-link-hover); text-decoration-color: currentColor; }

img, svg, video { max-width: 100%; height: auto; display: block; }

button, input, select, textarea { font: inherit; color: inherit; }

ul, ol { margin: 0 0 var(--hmd-space-4) 0; padding-left: var(--hmd-space-6); }

hr { border: 0; border-top: 1px solid var(--hmd-border); margin: var(--hmd-space-8) 0; }

:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--hmd-ring);
  border-radius: var(--hmd-radius);
}

/* Skip link — keyboard-only until focused. */
.hmd-skip-link {
  position: absolute;
  left: var(--hmd-space-2);
  top: -9999px;
  z-index: 1000;
  padding: var(--hmd-space-2) var(--hmd-space-4);
  background: var(--hmd-ink);
  color: #fff;
  border-radius: var(--hmd-radius);
  font-weight: var(--hmd-weight-semibold);
}
.hmd-skip-link:focus { top: var(--hmd-space-2); }

.hmd-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Container — Halcyon is 1400px max with 32px gutter (20px mobile). */
.hmd-container {
  width: 100%;
  max-width: var(--hmd-container-max);
  margin-inline: auto;
  padding-inline: var(--hmd-container-pad);
}

/* Mono text helpers. */
.hmd-mono {
  font-family: var(--hmd-font-mono);
  font-size: var(--hmd-text-xs);
  font-weight: var(--hmd-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--hmd-track-mono);
  color: var(--hmd-text-muted);
}

/* Small utilities used directly in templates. */
.hmd-stack > * + * { margin-top: var(--hmd-space-4); }
.hmd-stack-lg > * + * { margin-top: var(--hmd-space-6); }
.hmd-muted { color: var(--hmd-text-muted); }
.hmd-small { font-size: var(--hmd-text-sm); }
