/* Capability labels use a stable text column so wrapped lines stay aligned. */
.cap-copy li {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  align-items: baseline;
}

.cap-copy li span {
  display: block;
  width: auto;
}

.brand-logo {
  line-height: normal;
  letter-spacing: normal;
}

.brand-logo img {
  width: auto;
  height: 108px;
  object-fit: contain;
}

/* Carry the main Ritual website's narrow, architectural typography into the
   campaign details while preserving Italiana for the expressive headlines. */
.nav-cta,
.eyebrow,
.section-index,
.side-note,
.round-link,
.audiences span,
.cap-copy li span,
.button,
.places,
.contact-links a,
footer p {
  font-family: "Alumni Sans", sans-serif;
  font-weight: 400;
  letter-spacing: 0.16em;
}

.nav-cta,
.button,
.contact-links a {
  font-size: 1rem;
}

.eyebrow,
.section-index,
.side-note,
.audiences span,
.places {
  font-size: 0.9rem;
}

.round-link {
  font-size: 0.84rem;
}

.cap-copy li span,
footer p {
  font-size: 0.78rem;
}

:root {
  --gold: #aa966d;
}

@media (min-width: 801px) {
  .reel .section-head {
    display: block;
    max-width: 1400px;
    margin: 0 auto 55px;
  }

  .reel .section-head h2 {
    margin-top: 24px;
  }
}

.footer-logo img {
  height: 132px;
}

@media (max-width: 800px) {
  .nav {
    padding-top: 12px;
  }

  .brand-logo img {
    height: 82px;
  }

  .nav-cta {
    font-size: 0.82rem;
  }

  .eyebrow,
  .section-index,
  .audiences span,
  .places {
    font-size: 0.82rem;
  }

  .contact-links a,
  .button {
    font-size: 0.95rem;
  }

  .footer-logo img {
    height: 112px;
  }

  .cap-copy li {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .presentation {
    min-height: 68svh;
  }

  .international {
    padding-top: 55px;
  }

  .gallery .tall img {
    object-position: center bottom;
  }
}

/* Ibiza partner edition. */
.hero-copy { max-width: 1000px; }
h1 { font-size: clamp(3.5rem, 8vw, 8rem); }
.hero-line { font-size: 1rem; }
.round-link { position: relative; left: auto; bottom: auto; width: auto; height: auto; border: 0; border-bottom: 1px solid var(--gold); border-radius: 0; display: inline-flex; gap: 18px; margin-top: 25px; padding-bottom: 9px; font-size: 1rem; }
.round-link br { display: none; }
.round-link b { position: static; }
.round-link:hover { background: transparent; color: var(--gold); }
.weddings { background: #141414; }
.wedding-intro { max-width: 760px; line-height: 1.9; font-size: 1.1rem; }
.wedding-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 55px; }
.wedding-grid article { border-top: 1px solid var(--gold); padding-top: 22px; }
.wedding-grid h3 { font-family: Italiana, Georgia, serif; font-size: 2rem; font-weight: 400; margin: 0 0 20px; }
.wedding-grid p, .contact-intro { font-size: 1rem; line-height: 1.8; }
.contact-intro { max-width: 600px; margin-top: 32px; }
.contact-links { margin-top: 35px; }
a:focus-visible { outline: 2px solid var(--gold); outline-offset: 6px; }
.reveal { opacity: 1; transform: none; }
@media (max-width: 800px) {
  .hero { min-height: 760px; }
  .hero-copy { bottom: 6vh; }
  h1 { font-size: clamp(3rem, 10vw, 5.5rem); }
  .wedding-grid { grid-template-columns: repeat(2, 1fr); }
  .nav-cta, .eyebrow, .section-index, .audiences span, .places { font-size: .9rem; }
  .hero-line { max-width: 100%; }
}
@media (max-width: 480px) {
  .wedding-grid { grid-template-columns: 1fr; gap: 24px; }
  .contact-links a { letter-spacing: .06em; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@font-face { font-family: 'Ritual Alumni'; src: url('assets/ritual-alumni.woff2') format('woff2'); font-weight: 200; font-style: normal; font-display: swap; }
.nav-cta, .eyebrow, .section-index, .side-note, .round-link, .audiences span, .cap-copy li span, .button, .places, .contact-links a, footer p { font-family: 'Ritual Alumni', 'Alumni Sans', sans-serif; font-weight: 200; }

/* Place the film and presentation immediately after the opening image. */
.reel.section-pad { padding-top: 48px; padding-bottom: 64px; scroll-margin-top: 120px; }
.reel .section-head { max-width: 1400px; margin: 0 auto 32px; }
.reel .section-head h2 { margin-top: 16px; }
.reel .section-head .button { margin-top: 24px; }
.statement.section-pad { padding-top: 72px; }
@media (max-width: 800px) {
  .reel.section-pad { padding: 32px 24px 40px; }
  .reel .section-head { margin-bottom: 24px; }
  .reel .section-head h2 { font-size: clamp(2.8rem, 11vw, 4.5rem); }
  .reel .button { gap: 18px; font-size: 1rem; }
  .statement.section-pad { padding-top: 48px; gap: 24px; }
}

/* Wedding photography and the supplied woodland scene. */
.wedding-photo { margin: 0 auto; max-width: 1000px; }
.wedding-photo img { width: 100%; height: auto; }
.woodland-image { height: auto; min-height: 0; background: #090909; }
.woodland-frame { position: relative; width: 100%; max-width: 900px; aspect-ratio: 706 / 950; overflow: hidden; margin: auto; }
/* Frame only the photograph within the supplied phone screenshot. */
.woodland-frame img { position: absolute; top: 0; left: 0; width: 100%; height: auto; max-width: none; transform: translateY(-19.53125%); }
@media (max-width: 800px) {
  .weddings.section-pad { padding-bottom: 24px; }
  .weddings .section-head { margin-bottom: 32px; }
}

/* Centre the presentation link on the same axis as the showreel. */
.reel .section-head .button { display: flex; width: fit-content; max-width: 100%; margin: 24px auto 0; align-items: center; text-align: center; }
/* Move the parachute photograph behind the partner audience list. */
.partners.section-pad { padding-bottom: 0; }
.partners .audiences {
  margin: 64px -8vw 0; padding: 64px 8vw; min-height: 660px;
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  border: 0; color: #fff;
  background: linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.12)), url('assets/aerial-performance.jpg') center 62% / cover no-repeat;
}
.partners .audiences span { flex: none; min-width: 0; padding: 14px 0; font-size: 1.35rem; letter-spacing: .15em; text-shadow: 0 2px 10px #000; }
.capabilities { display: block; }
.cap-copy { max-width: 960px; margin: auto; }
.international.section-pad { padding-bottom: 64px; }
.contact.section-pad { padding-top: 32px; }
.contact > .section-index { margin-top: 0; }
@media (max-width: 800px) {
  .partners .audiences { margin: 40px -24px 0; padding: 32px 24px; min-height: 560px; background-position: center 62%; }
  .partners .audiences span { font-size: 1.15rem; padding: 13px 0; }
  .capabilities.section-pad { padding-top: 56px; }
  .international.section-pad { padding-bottom: 32px; }
  .contact.section-pad { padding-top: 24px; gap: 24px; }
  .contact > .section-index { margin-bottom: 0; }
}

/* Remove the redundant hero link and its reserved space. */
.hero { height: calc(100svh - 80px); min-height: 620px; }
.hero-copy { bottom: 40px; }
@media (max-width: 800px) {
  .hero { min-height: 660px; }
  .hero-copy { bottom: 28px; }
}

.weddings .section-head { margin-bottom: 24px; }
.wedding-description { max-width: 760px; margin: 0 0 36px; font-size: 1.1rem; line-height: 1.85; }
@media (max-width: 800px) {
  .weddings .section-head { margin-bottom: 20px; }
  .wedding-description { font-size: 1rem; margin-bottom: 28px; }
}
