

.horizon-hero img,
.horizon-about img,
.horizon-gallery img,
.horizon-bands img,
.horizon-contact img { display: block; width: 100%; height: 100%; object-fit: cover; }

.horizon-hero h1,
.horizon-about h2,
.horizon-bands h3,
.horizon-voices blockquote,
.horizon-contact h2 {
  font-family: var(--display);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: 0.02em;
}

.horizon-bleed { position: relative; width: 100vw; left: 50%; margin-left: -50vw; }
.horizon-scrim-bottom {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(13,12,10,.92) 0%, rgba(13,12,10,.25) 45%, transparent 75%);
}
.horizon-scrim-full {
  position: absolute; inset: 0;
  background: linear-gradient(120deg, rgba(13,12,10,.7) 0%, rgba(13,12,10,.15) 60%, transparent 100%);
}
.horizon-scrim-full.horizon-scrim-right {
  background: linear-gradient(240deg, rgba(13,12,10,.7), transparent 60%);
}
.horizon-scrim-full.horizon-scrim-flat {
  background: rgba(13,12,10,.55);
}

.horizon-hero h1, .horizon-hero .horizon-lead, .horizon-hero .horizon-kicker,
.horizon-bands h3, .horizon-bands .horizon-box, .horizon-bands .horizon-box p, .horizon-bands .horizon-kicker,
.horizon-contact h2, .horizon-contact .horizon-lead {
  text-shadow: 0 1px 2px rgba(0,0,0,.4), 0 2px 18px rgba(0,0,0,.5);
}
.horizon-kicker {
  font-size: .74rem; letter-spacing: .42em;
  color: var(--navy);
  text-transform: uppercase;
}
.horizon-wrap { max-width: 1280px; margin-inline: auto; padding-inline: clamp(20px, 5vw, 64px); }

.horizon-hero {
  position: relative; height: 100svh; min-height: 560px;
  background: var(--paper); color: var(--ink);
  font-family: var(--sans);
  overflow: hidden;
}
.horizon-hero .horizon-bg { position: absolute; inset: 0; }
.horizon-hero .horizon-inner {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: clamp(20px, 5vw, 64px); padding-bottom: clamp(40px, 9vh, 100px);
  max-width: 1280px; margin-inline: auto; left: 0; right: 0;
}
.horizon-hero h1 {
  font-size: clamp(2.7rem, 9.5vw, 7rem); font-weight: 700;
  color: var(--ink);
}
.horizon-hero .horizon-lead {
  max-width: 34ch; margin-top: 1.4rem;
  color: var(--silver);
  font-size: clamp(.95rem, 1.6vw, 1.15rem);
  line-height: 1.85; letter-spacing: .04em;
}
.horizon-hero .horizon-kicker { margin-bottom: 1.4rem; }
.horizon-scrolldown {
  position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
  writing-mode: vertical-rl; font-size: .66rem; letter-spacing: .4em;
  color: var(--ink-soft); display: flex; align-items: center; gap: 14px;
}
.horizon-scrolldown::after {
  content: ""; width: 1px; height: 46px;
  background: linear-gradient(var(--navy), transparent);
}

.horizon-about {
  padding-block: clamp(80px, 14vh, 160px);
  background: var(--paper); color: var(--ink);
  font-family: var(--sans);
}
.horizon-about .horizon-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 80px); align-items: center;
}
.horizon-about h2 { font-size: clamp(1.8rem, 4vw, 3rem); margin: 1.2rem 0 1.6rem; color: var(--ink); }
.horizon-about p { color: var(--silver); max-width: 46ch; line-height: 1.85; letter-spacing: .04em; }
.horizon-about .horizon-imgwrap { aspect-ratio: 4/5; }
.horizon-about.horizon-img-right .horizon-imgwrap { order: 1; }
.horizon-about.horizon-img-right .horizon-text { order: 2; }
@media (max-width: 760px) {
  .horizon-about .horizon-grid { grid-template-columns: 1fr; }
  .horizon-about .horizon-imgwrap { aspect-ratio: 16/11; order: -1; }
  .horizon-about.horizon-img-right .horizon-imgwrap,
  .horizon-about.horizon-img-right .horizon-text { order: initial; }

  .horizon-scrolldown { display: none; }
  .horizon-hero .horizon-lead { font-size: 1rem; }

  .horizon-bands .horizon-scrim-full,
  .horizon-bands .horizon-scrim-full.horizon-scrim-right { background: rgba(13,12,10,.62); }
}

.horizon-gallery {
  padding-block: clamp(40px, 8vh, 90px);
  background: var(--paper); color: var(--ink);
  font-family: var(--sans);
}
.horizon-gallery .horizon-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; margin-bottom: clamp(24px, 4vw, 48px);
}
.horizon-gallery h2 { font-size: clamp(1.6rem, 3.5vw, 2.6rem); color: var(--ink); }
.horizon-filmstrip {
  display: flex; gap: 14px; overflow-x: auto;
  scroll-snap-type: x mandatory; padding-block: 6px;
  padding-inline: clamp(20px, 5vw, 64px);
}
.horizon-filmstrip::-webkit-scrollbar { height: 0; }
.horizon-filmstrip .horizon-frame {
  flex: 0 0 min(78vw, 560px); aspect-ratio: 3/2;
  scroll-snap-align: center; position: relative;
}
.horizon-filmstrip .horizon-frame .horizon-cap {
  position: absolute; left: 16px; bottom: 14px;
  font-size: .72rem; letter-spacing: .22em; color: var(--silver);
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
}

.horizon-bands {
  background: var(--paper); color: var(--ink);
  font-family: var(--sans);
}
.horizon-bands .horizon-band {
  position: relative; height: clamp(360px, 62vh, 640px);
  display: flex; align-items: center;
}
.horizon-bands .horizon-band .horizon-bg { position: absolute; inset: 0; }
.horizon-bands .horizon-band .horizon-copy {
  position: relative; max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 64px); width: 100%;
}
.horizon-bands .horizon-band .horizon-box { max-width: 42ch; }
.horizon-bands .horizon-band h3 { font-size: clamp(1.7rem, 4.5vw, 3.2rem); margin: .6rem 0 1rem; color: var(--ink); }
.horizon-bands .horizon-band p { color: var(--silver); line-height: 1.85; letter-spacing: .04em; }
.horizon-bands .horizon-band.horizon-right { justify-content: flex-end; text-align: right; }
.horizon-bands .horizon-band.horizon-right .horizon-copy { display: flex; justify-content: flex-end; }
.horizon-bands .horizon-band .horizon-no {
  font-family: var(--display);
  font-size: clamp(3rem, 9vw, 7rem);
  color: var(--navy); opacity: .5; line-height: 1;
}

.horizon-voices {
  padding-block: clamp(80px, 14vh, 150px); text-align: center;
  background: var(--paper); color: var(--ink);
  font-family: var(--sans);
}
.horizon-voices .horizon-kicker { margin-bottom: 2.4rem; }
.horizon-voices blockquote {
  font-family: var(--display);
  font-size: clamp(1.4rem, 3.6vw, 2.6rem); line-height: 1.6;
  max-width: 24ch; margin-inline: auto; color: var(--ink);
}
.horizon-voices cite {
  display: block; margin-top: 2rem; font-style: normal;
  font-size: .78rem; letter-spacing: .24em; color: var(--ink-soft);
}

.horizon-contact {
  position: relative; height: clamp(440px, 72vh, 720px);
  display: flex; align-items: center; justify-content: center; text-align: center;
  background: var(--paper); color: var(--ink);
  font-family: var(--sans);
  overflow: hidden;
}
.horizon-contact .horizon-bg { position: absolute; inset: 0; }
.horizon-contact .horizon-inner { position: relative; padding-inline: clamp(20px, 5vw, 64px); }
.horizon-contact h2 { font-size: clamp(2rem, 6vw, 4.2rem); margin-bottom: 1.6rem; color: var(--ink); }
.horizon-contact .horizon-btn {
  display: inline-block; margin-top: 1.4rem;
  padding: 1.05em 2.8em; border: 1px solid var(--navy);
  color: var(--navy); font-size: .8rem; letter-spacing: .3em;
  text-decoration: none; transition: .4s;
}
.horizon-contact .horizon-btn:hover { background: var(--navy); color: var(--paper); }

.horizon-hero .horizon-bg,
.horizon-bands .horizon-band .horizon-bg,
.horizon-contact .horizon-bg,
.horizon-scrim-bottom,
.horizon-scrim-full { left: 0; right: 0; width: auto; margin-left: 0; }
.horizon-bands .horizon-band h3,
.horizon-bands .horizon-band p,
.horizon-bands .horizon-band .horizon-no { text-shadow: 0 2px 16px rgba(0,0,0,.55); }

.horizon-hero h1,
.horizon-about h2,
.horizon-bands h3,
.horizon-voices blockquote,
.horizon-contact h2 {
  line-break: strict;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-wrap: balance;
  font-feature-settings: "palt";
  hanging-punctuation: allow-end;
}
