:root {
  --teal: #176376;
  --navy: #0d2731;
  --orange: #f0922a;
  --cream: #f3e8c9;

  --page-max: 720px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--teal);
  color: var(--cream);
  font-family: "Inter", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  font-weight: 600;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

/* ---------- Grain texture overlay ----------
   Fixed full-viewport noise layer that sits ABOVE the banner + badge images
   (default z-index) but BELOW the body copy (which is bumped to z-index: 2),
   so the text stays crisp while everything else gets the grain. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: url("slices/noise.svg");
  background-repeat: repeat;
  background-size: 240px 240px;
  /* hard-light with grayscale noise gives the strongest bidirectional grain:
     bright noise pixels noticeably lighten dark backdrops (the navy banner
     text), while dark noise pixels darken light backdrops (the cream badge). */
  mix-blend-mode: hard-light;
  opacity: 0.25;
  pointer-events: none;
  z-index: 1;
}

.copy { position: relative; z-index: 2; }

/* ---------- Top banner ---------- */
/* toplogo.png is pre-cropped with the edge bleed baked in, so we display it
   at viewport width and let the container clip the top of the letters. */
.top-banner {
  width: 100%;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

.top-banner__img {
  width: 100vw;
  max-width: none;
  display: block;
  /* shift up so the tops of the letters get clipped, like the comp */
  margin-top: clamp(-5vw, -4vw, -2vw);
}

/* On wide screens, ease off the negative margin so less of the letter tops
   are clipped — but keep the banner spanning the full viewport width. */
@media (min-width: 900px) {
  .top-banner__img {
    margin-top: clamp(-40px, -3vw, -16px);
  }
}

/* ---------- Page layout ---------- */
.page {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 var(--gutter) clamp(3rem, 8vw, 5rem);
}

/* ---------- Hero (badge + airstream art) ---------- */
.hero {
  display: flex;
  justify-content: center;
  margin-top: 0;
}

.hero__art {
  width: 100%;
  max-width: 560px;
}

/* ---------- Copy block ---------- */
.copy {
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.copy__heading {
  color: var(--orange);
  font-family: "Alfa Slab One", Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1.6rem, 4vw, 2.25rem);
  margin: 0 0 1.25rem;
  letter-spacing: 0.01em;
  text-align: center;
  line-height: 1.15;
}

.copy__body {
  color: var(--cream);
  font-family: "Inter", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
  line-height: 1.55;
  margin: 0 0 1.1rem;
  font-weight: 600;
}

.copy__body:last-child { margin-bottom: 0; }
