/* ================================
   Homepage Heading Scale
================================ */

:root {
  --home-section-title-xl: clamp(3rem, 5vw, 5.75rem);
  --home-section-title-lg: clamp(2.75rem, 4.6vw, 5.25rem);
  --home-section-title-md: clamp(2.5rem, 4vw, 4.8rem);
  --home-section-title-tablet: clamp(2.85rem, 5.8vw, 4.75rem);
  --home-section-title-mobile: clamp(2.25rem, 10vw, 3.5rem);
}



/* ================================
   Hero
================================ */

.hero {
  --hero-content-width: 53rem;
  --hero-media-position: 50% 35%;
  --color-focus: var(--color-white);
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  padding-block: calc(var(--header-offset) + clamp(2rem, 5vh, 4rem)) clamp(3rem, 8vh, 6rem);
  padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
  background-color: var(--color-black);
  color: var(--color-white);
}

.hero__media,
.hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero__media { overflow: hidden; }

.hero__media > img,
.hero__media > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--hero-media-position);
}

.hero__video { opacity: 0; }
.hero.has-video-frame .hero__video { opacity: 1; }

.hero__overlay {
  background:
    linear-gradient(180deg, rgba(0, 1, 1, 0.4), rgba(0, 1, 1, 0.35) var(--header-offset), transparent 42%),
    linear-gradient(0deg, rgba(0, 1, 1, 0.65), transparent 65%),
    linear-gradient(90deg, rgba(0, 1, 1, 0.7) 0%, rgba(0, 1, 1, 0.42) 40%, rgba(0, 1, 1, 0.08) 80%, rgba(0, 1, 1, 0.1));
}

.hero__content {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-2xl);
}

.hero__copy {
  width: 100%;
  max-width: var(--hero-content-width);
  min-width: 0;
}

.hero__eyebrow {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero__eyebrow::before {
  content: "";
  flex: 0 0 clamp(2rem, 5vw, 4.5rem);
  height: 2px;
  background: linear-gradient(90deg, var(--color-orange), rgba(252, 149, 1, 0.18));
}

.hero__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 7.5rem);
  font-weight: var(--font-weight-bold);
  line-height: 1.03;
  letter-spacing: -0.045em;
}

.hero__title-finale {
  display: block;
  font-weight: var(--font-weight-normal);
}

.hero__description {
  max-width: 36rem;
  margin-top: var(--space-lg);
  color: rgba(255, 255, 255, 0.92);
  font-size: var(--text-base);
  line-height: 1.6;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md) var(--space-2xl);
  margin-top: var(--space-xl);
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-xl);
  min-height: 3.25rem;
  font-size: var(--text-base);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  text-decoration: none;
}

.hero-cta--primary {
  padding: var(--space-sm) var(--space-lg);
  border-radius: 0.75rem;
  background: var(--color-orange);
  color: var(--color-black);
  font-weight: var(--font-weight-bold);
}

.hero-cta--secondary {
  gap: var(--space-md);
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}

.hero-cta__arrow { font-size: 1.25em; }

.hero__index {
  display: grid;
  flex: 0 0 auto;
  gap: var(--space-xs);
  padding-top: var(--space-md);
  border-top: 1px solid rgba(255, 255, 255, 0.5);
  font-size: var(--text-xs);
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.hero__index > span {
  font-size: var(--text-lg);
  letter-spacing: 0;
}

.hero__motion {
  position: absolute;
  right: max(var(--page-gutter), calc((100% - var(--container-wide)) / 2));
  bottom: calc(clamp(3rem, 8vh, 6rem) + 6rem);
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  min-height: var(--target-size);
  padding: var(--space-xs) var(--space-sm);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 2rem;
  background: rgba(0, 1, 1, 0.65);
  color: var(--color-white);
  font-size: var(--text-xs);
  line-height: 1.4;
  cursor: pointer;
}

.hero__motion:hover { background: rgba(0, 1, 1, 0.85); }
.hero__motion-glyph { display: block; }
.hero__motion-glyph--play,
.hero__motion[data-state="paused"] .hero__motion-glyph--pause { display: none; }
.hero__motion[data-state="paused"] .hero__motion-glyph--play { display: block; }

/* Keep the static layer visible before the preference-change event arrives. */
@media (prefers-reduced-motion: reduce) {
  .hero.has-video-frame .hero__video { opacity: 0; }
  .hero__motion { display: none; }
}

@media (max-width: 47.999rem) {
  .hero {
    --hero-media-position: 53% 50%;
    padding-block: calc(var(--header-offset) + var(--space-xl)) max(var(--space-xl), env(safe-area-inset-bottom, 0px));
  }

  .hero__overlay {
    background:
      linear-gradient(180deg, rgba(0, 1, 1, 0.4), rgba(0, 1, 1, 0.35) var(--header-offset), transparent 35%, rgba(0, 1, 1, 0.8) 100%),
      linear-gradient(90deg, rgba(0, 1, 1, 0.55), rgba(0, 1, 1, 0.2));
  }

  .hero__eyebrow { margin-bottom: var(--space-md); }
  .hero__description { margin-top: var(--space-md); line-height: 1.5; }
  .hero__actions { flex-direction: column; align-items: flex-start; gap: var(--space-xs); margin-top: var(--space-lg); }
  .hero-cta--primary { width: 100%; max-width: 20rem; }
  .hero-cta--secondary { min-height: var(--target-size); }
  .hero__index { display: none; }

  /* Clear of the full-width CTA, including its preserved entrance travel. */
  .hero__motion {
    bottom: calc(var(--header-offset) + var(--space-md));
    bottom: 20px !important;
    width: var(--target-size);
    padding: 0;
    justify-content: center;
  }
  .hero__motion-label { display: none; }
}

@media (min-width: 48rem) and (max-height: 45rem) {
  .hero { padding-block: calc(var(--header-offset) + var(--space-xl)) var(--space-xl); }
  .hero__title { font-size: clamp(3rem, 5.5vw, 5rem); }
  .hero__eyebrow { margin-bottom: var(--space-md); }
  .hero__actions { margin-top: var(--space-lg); }
  .hero__index { display: none; }
  .hero__motion { bottom: var(--space-xl); }
}



/* ================================
   About Intro
================================ */

/* Clip only the temporary translated overflow, not the natural section height. */
.intro-flow.is-transitioning { overflow: clip; }

.about-preview {
  --z-about-panel: 1;
  position: relative;
  z-index: var(--z-about-panel);
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  padding-block: max(var(--space-section), calc(var(--header-offset) + var(--space-xl))) var(--space-section);
  padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
  background: var(--color-white);
  color: var(--color-black);
  --color-focus: var(--color-black);
  scroll-margin-top: var(--header-offset);
}

/* JS adds this only once the complete enhancement can be initialized.
   The negative margin overlaps the Hero's own box, not its pin distance. */
.about-preview.is-overlapping {
  margin-top: calc(-1 * var(--intro-hero-height));
}

.about-preview__inner { position: relative; }

.about-preview__label {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xl);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.about-preview__label > span {
  padding-left: var(--space-xl);
  border-left: 2px solid var(--color-orange);
}

.about-preview__title {
  margin-bottom: var(--space-lg);
  font-size: var(--text-xl);
  font-weight: var(--font-weight-medium);
  line-height: 1.3;
  letter-spacing: -0.015em;
}

.about-preview__statement {
  font-family: var(--font-display);
  font-size: var(--home-section-title-lg);
  font-weight: var(--font-weight-normal);
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.about-preview__statement > span { display: block; }

.about-preview__visual {
  position: relative;
  width: min(100%, 38rem);
  margin-top: clamp(2rem, 4vw, 4rem);
  margin-left: auto;
  isolation: isolate;
}

.about-preview__visual::before {
  content: "";
  position: absolute;
  inset: -0.625rem;
  z-index: -1;
  border: 1px solid rgba(252, 149, 1, 0.5);
  border-radius: 2.5rem 1.25rem 3.75rem 1.5rem;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0.35rem, -0.35rem, 0);
  transition: opacity 300ms ease, visibility 300ms ease;
}

.about-preview__visual::after {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: 2rem 1rem 3.25rem 1.25rem;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  box-shadow: 0 0 2rem rgba(252, 149, 1, 0.16);
  transition: opacity 300ms ease, visibility 300ms ease;
}

.about-preview__visual.is-revealed::before,
.about-preview__visual.is-revealed::after {
  opacity: 1;
  visibility: visible;
}

.about-preview__visual.is-revealed::before {
  animation: about-preview-frame 8s ease-in-out infinite alternate;
}

.about-preview__image-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  isolation: isolate;
  background: var(--color-black);
  border-radius: 2rem 1rem 3.25rem 1.25rem;
  clip-path: inset(0 round 2rem 1rem 3.25rem 1.25rem);
}

.about-preview__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 24% 50%;
}

@keyframes about-preview-frame {
  from { transform: translate3d(0.35rem, -0.35rem, 0); }
  to { transform: translate3d(-0.25rem, 0.25rem, 0); }
}

/* Invisible without the optional timeline; blend only with this photograph. */
.about-preview__light-sweep {
  position: absolute;
  inset: -25%;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: screen;
  background: linear-gradient(115deg,
    rgba(252, 149, 1, 0) 30%,
    rgba(252, 149, 1, 0.05) 40%,
    rgba(255, 210, 120, var(--about-light-peak, 0.22)) 47%,
    rgba(255, 210, 120, var(--about-light-peak, 0.22)) 53%,
    rgba(252, 149, 1, 0.07) 60%,
    rgba(252, 149, 1, 0) 70%);
}

.about-preview__details {
  max-width: 38rem;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  margin-left: 0;
  font-size: var(--text-lg);
  line-height: 1.6;
}

.about-preview__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-xl);
  min-height: var(--target-size);
  margin-top: var(--space-lg);
  border-bottom: 1px solid var(--color-black);
  font-size: var(--text-base);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
}

.about-preview__cta > .icon { color: var(--color-orange); }

@media (min-width: 80rem) {
  .about-preview__inner {
    padding-right: clamp(26rem, 32vw, 34rem);
  }

  .about-preview__visual {
    position: absolute;
    top: calc(-1 * var(--space-lg));
    right: 0;
    width: clamp(23.75rem, 26vw, 28.75rem);
    margin-top: 0;
  }

  .about-preview__image-wrap { aspect-ratio: 4 / 5; }
}

@media (max-width: 47.999rem) {
  .about-preview__label { margin-bottom: var(--space-lg); }
  .about-preview__title { margin-bottom: var(--space-lg); }
  .about-preview__details { margin-left: 0; font-size: var(--text-base); }
  .about-preview__visual::before { inset: -0.375rem; border-radius: 1.75rem 0.875rem 2.5rem 1rem; }
  .about-preview__image-wrap {
    border-radius: 1.5rem 0.75rem 2.25rem 0.875rem;
    clip-path: inset(0 round 1.5rem 0.75rem 2.25rem 0.875rem);
  }
  .about-preview__light-sweep { --about-light-peak: 0.16; }
}

@media (prefers-reduced-motion: reduce) {
  .about-preview__visual.is-revealed::before {
    animation: none;
  }
}



/* ================================
   Featured Experience
================================ */

.featured-experience {
  --color-focus: var(--color-white);
  padding-block: clamp(3rem, 6vw, 7rem);
  padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
  background: var(--color-black);
  color: var(--color-white);
  color-scheme: dark;
}

.featured-experience__label {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.featured-experience__accent {
  flex: 0 0 2rem;
  height: 2px;
  background: var(--color-orange);
  transform-origin: left center;
}

.featured-experience__title {
  max-width: 23ch;
  font-family: var(--font-display);
  font-size: var(--home-section-title-lg);
  font-weight: var(--font-weight-normal);
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.featured-experience__title > span { display: block; }

.featured-experience__support {
  max-width: 31rem;
  margin-top: var(--space-xl);
  margin-left: auto;
  font-size: var(--text-lg);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
}

.featured-experience__figure {
  width: min(92%, 62.5rem);
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  margin-left: auto;
}

.featured-experience__image-wrap {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.featured-experience__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 38%;
}

.featured-experience__caption {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-xl);
  padding-top: var(--space-lg);
}

.featured-experience__category {
  margin-bottom: var(--space-xs);
  font-size: var(--text-xs);
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.66);
}

.featured-experience__name { font-size: var(--text-lg); line-height: 1.4; }
.featured-experience__disciplines { font-size: var(--text-sm); line-height: 1.7; }
.featured-experience__disciplines > span { color: var(--color-orange); padding-inline: 0.2em; }

@media (max-width: 47.999rem) {
  .featured-experience__support { margin-left: 0; font-size: var(--text-base); }
  .featured-experience__figure { width: 100%; }
  /* Preserve the stands and visitors; a portrait crop would lose the context. */
  .featured-experience__image-wrap { aspect-ratio: 4 / 3; }
  .featured-experience__image { object-position: center; }
  .featured-experience__caption { flex-direction: column; align-items: flex-start; gap: var(--space-md); }
}

@media (orientation: landscape) and (max-height: 40.625rem) {
  .featured-experience { padding-block: var(--space-2xl); }
  .featured-experience__title { font-size: clamp(2.125rem, 4.5vw, 3rem); }
  .featured-experience__figure { margin-top: var(--space-xl); }
}



/* ================================
   Services
================================ */

.services {
  --color-focus: var(--color-orange);
  --services-card-width: min(86vw, 25.625rem);
  --services-card-height: 29.5rem;
  --services-gap: clamp(1.25rem, 2vw, 1.75rem);
  position: relative;
  isolation: isolate;
  background: var(--color-black);
  color: var(--color-white);
  color-scheme: dark;
}

/* One reused, deliberately softened photograph follows the whole environment. */
.services__atmosphere { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.services__atmosphere-frame { position: sticky; top: 0; height: 100vh; height: 100dvh; overflow: hidden; }
.services__background { width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; filter: blur(2px); }
.services__shade { position: absolute; inset: 0; background: var(--color-black); opacity: 0.76; }

.services__intro { padding-block: clamp(5rem, 12vh, 9rem) clamp(3rem, 8vh, 6rem); }
.services__label {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xl);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.services__label > span { color: var(--color-orange); }
.services__title {
  max-width: 78rem;
  font-size: var(--home-section-title-lg);
  font-weight: var(--font-weight-normal);
  line-height: 1.08;
  letter-spacing: -0.045em;
}
.services__title > span { display: block; }
.services__support { max-width: 30rem; margin-top: var(--space-xl); margin-left: auto; color: rgba(255, 255, 255, 0.8); font-size: var(--text-lg); line-height: 1.6; }

.services__stage { padding-block: var(--space-lg) var(--space-2xl); }
.services__rail-meta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); margin-bottom: var(--space-md); font-size: var(--text-xs); line-height: 1.5; }
.services__rail-meta > :first-child { color: rgba(255, 255, 255, 0.68); }
.services__cue { font-size: 0.6875rem; letter-spacing: 0.13em; text-transform: uppercase; }
.services__cue--pinned { display: none; }

/* The unenhanced experience is a real scroll container, including without JS. */
.services__viewport {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--page-gutter);
  scroll-margin-block-start: calc(var(--header-offset) + 1rem);
  scrollbar-width: thin;
  scrollbar-color: rgba(252, 149, 1, 0.6) transparent;
  -webkit-overflow-scrolling: touch;
  outline-offset: -3px;
}
.services__viewport .services__track {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: var(--services-gap);
  width: max-content;
  padding: var(--space-xs) var(--page-gutter) var(--space-md);
  margin: 0;
}
.services__item { flex: 0 0 var(--services-card-width); width: var(--services-card-width); scroll-snap-align: start; }
.service-card {
  --service-focus: 1;
  --interactive-card-lift: 0px;
  --interactive-card-scale: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: var(--services-card-height);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 1.375rem;
  background: rgba(24, 25, 26, 0.96);
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.24);
  transform: translateY(var(--interactive-card-lift)) scale(var(--interactive-card-scale));
  transform-origin: center;
  transition: border-color 220ms ease, background-color 250ms ease, box-shadow 220ms ease, transform 220ms ease;
}
@supports ((backdrop-filter: blur(16px)) or (-webkit-backdrop-filter: blur(16px))) {
  .service-card { background: rgba(255, 255, 255, 0.075); -webkit-backdrop-filter: blur(16px) saturate(115%); backdrop-filter: blur(16px) saturate(115%); }
}
.service-card__media { position: relative; flex: 0 0 auto; height: 11.25rem; overflow: hidden; }
.service-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 1, 1, 0.05) 30%, rgba(0, 1, 1, 0.15) 60%, rgba(0, 1, 1, 0.68)); }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.service-card__number { position: absolute; z-index: 1; right: 1.25rem; bottom: 0; font-size: 3.5rem; font-weight: var(--font-weight-normal); line-height: 1.1; letter-spacing: -0.06em; color: rgba(255, 255, 255, 0.78); }
.service-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.375rem; background: linear-gradient(180deg, rgba(0, 1, 1, 0.28), rgba(0, 1, 1, 0.64)); }
.service-card__icon { color: var(--color-orange); font-size: 1.25rem; margin-bottom: 1rem; }
.service-card h3 { font-size: clamp(1.375rem, 1.8vw, 1.75rem); font-weight: var(--font-weight-medium); line-height: 1.15; letter-spacing: -0.025em; }
.service-card__body p { margin-top: var(--space-md); font-size: var(--text-sm); line-height: 1.6; color: rgba(255, 255, 255, 0.88); }

.services__progress-row { display: none; align-items: center; gap: var(--space-lg); margin-top: var(--space-md); font-size: 0.6875rem; letter-spacing: 0.06em; line-height: 1.5; text-transform: uppercase; }
.services.has-rail-progress .services__progress-row { display: flex; }
.services__current { flex: 0 0 5.75rem; font-variant-numeric: tabular-nums; }
.services__progress { flex: 1; height: 2px; overflow: hidden; background: rgba(255, 255, 255, 0.2); }
.services__progress-fill { display: block; width: 100%; height: 100%; background: var(--color-orange); transform: scaleX(0); transform-origin: left; }
.services__end-label { color: rgba(255, 255, 255, 0.68); }

.service-card.services-cta {
  justify-content: flex-start;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: 7rem;
  border-color: rgba(252, 149, 1, 0.5);
  background: radial-gradient(ellipse at 100% 100%, rgba(252, 149, 1, 0.19), transparent 70%), rgba(14, 15, 15, 0.92);
  text-decoration: none;
}
.services-cta__eyebrow { margin-bottom: auto; padding-bottom: var(--space-xl); font-size: 0.6875rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-orange); }
.services-cta h3 { font-size: clamp(2.25rem, 3.25vw, 3.25rem); font-weight: var(--font-weight-normal); line-height: 1.04; letter-spacing: -0.045em; }
.services-cta__description { max-width: 24ch; margin-block: var(--space-lg) var(--space-xl); font-size: var(--text-sm); line-height: 1.6; color: rgba(255, 255, 255, 0.8); }
.services-cta__destination { position: absolute; bottom: 2.75rem; left: clamp(1.5rem, 3vw, 2.25rem); font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; }
.services-cta__circle { position: absolute; right: 1.5rem; bottom: 1.5rem; width: 4rem; height: 4rem; border: 1px solid var(--color-orange); border-radius: 50%; transition: transform 250ms ease, background-color 250ms ease; }
.services-cta__arrow { position: absolute; right: 2.75rem; bottom: 2.75rem; font-size: 1.5rem; rotate: -45deg; }

@media (hover: hover) and (pointer: fine) {
  .service-card:hover { background-color: rgba(255, 255, 255, 0.13); box-shadow: 0 1.45rem 3.3rem rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(252, 149, 1, 0.12); }
  .service-card:hover .service-card__media img { transform: scale(1.025); }
  /* Ready for the real destination; disabled pending content is not a control. */
  a.services-cta[href]:is(:hover, :focus-visible) .services-cta__circle { transform: scale(1.08); background: var(--color-orange); }
  a.services-cta[href]:is(:hover, :focus-visible) > .icon { color: var(--color-black); }
}

@media (min-width: 48rem) {
  .services { --services-card-width: clamp(18.75rem, 44vw, 25.625rem); }
}
@media (min-width: 64rem) {
  .services { --services-card-width: clamp(18.75rem, 27vw, 25.625rem); --services-card-height: clamp(27rem, 62vh, 32.5rem); }
  .service-card__media { height: clamp(11rem, 24vh, 13rem); }
}

/* Added only after the optional, measured enhancement is ready. */
.services.is-pinned .services__stage { display: flex; flex-direction: column; justify-content: center; height: calc(100vh - var(--header-offset)); height: calc(100dvh - var(--header-offset)); padding-block: var(--space-lg); }
/* Clip also prevents focus/keyboard from adding a native scrollLeft offset. */
.services.is-pinned .services__viewport { overflow: hidden; overflow: clip; scroll-snap-type: none; touch-action: pan-y pinch-zoom; }
.services.is-pinned .services__track { padding-inline: var(--services-edge-inset, var(--page-gutter)) var(--services-end-inset, var(--services-edge-inset, var(--page-gutter))); }
.services.is-pinned .services__cue--native { display: none; }
.services.is-pinned .services__cue--pinned { display: inline; }
.services.is-pinned .service-card { opacity: calc(0.62 + 0.38 * var(--service-focus)); transform: translateY(var(--interactive-card-lift)) scale(calc((0.96 + 0.04 * var(--service-focus)) * var(--interactive-card-scale))); border-color: rgba(255, 255, 255, calc(0.14 + 0.18 * var(--service-focus))); }
.services.is-pinned .service-card__media img { filter: brightness(calc(0.84 + 0.16 * var(--service-focus))); }
.services.is-pinned .services-cta { border-color: rgba(252, 149, 1, calc(0.3 + 0.45 * var(--service-focus))); }

/* Portrait enhancement keeps the existing cards and intro, with gentler focus.
   Stable small-viewport height avoids following address-bar motion mid-journey. */
.services.is-pinned-compact { --services-card-width: min(82vw, 25.625rem); }
.services.is-pinned-compact .services__atmosphere-frame { height: 100vh; height: 100svh; }
.services.is-pinned-compact .services__stage { height: calc(100vh - var(--header-offset)); height: calc(100svh - var(--header-offset)); padding-block: 0.5rem; }
.services.is-pinned-compact .services__viewport { flex: 0 0 auto; }
.services.is-pinned-compact .service-card { transform: translateY(var(--interactive-card-lift)) scale(calc((0.975 + 0.025 * var(--service-focus)) * var(--interactive-card-scale))); }
.services.is-pinned-compact .services__current { transition: opacity 180ms ease; }
.services.is-pinned-compact.is-cta-focused .services__current { opacity: 0; }
@supports ((backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px))) {
  .services.is-pinned-compact .service-card { -webkit-backdrop-filter: blur(8px) saturate(115%); backdrop-filter: blur(8px) saturate(115%); }
}
@media (max-height: 43.75rem) {
  .services.is-pinned-compact { --services-card-height: 24rem; }
  .services.is-pinned-compact .services__rail-meta { margin-bottom: 0.5rem; }
  .services.is-pinned-compact .services__progress-row { margin-top: 0.5rem; }
  .services.is-pinned-compact .service-card__media { height: clamp(5.5rem, 16svh, 7rem); }
  .services.is-pinned-compact .service-card__body { padding: 0.875rem; }
  .services.is-pinned-compact .service-card__icon { font-size: 1rem; margin-bottom: 0.5rem; }
  .services.is-pinned-compact .service-card__body h3 { font-size: 1.25rem; }
  .services.is-pinned-compact .service-card__body p { margin-top: 0.5rem; font-size: 0.8125rem; line-height: 1.5; }
}

@media (max-width: 47.999rem) {
  .services__intro { padding-block: 4.5rem 2rem; }
  .services__support { margin-left: 0; font-size: var(--text-base); }
  .services__rail-meta { gap: var(--space-xs); }
  .services__rail-meta > :first-child { max-width: 13ch; }
  .services__progress-row { gap: var(--space-sm); }
  .services__end-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .service-card, .service-card__media img, .services-cta__circle { transition: none !important; }
  .service-card:hover .service-card__media img, a.services-cta[href]:is(:hover, :focus-visible) .services-cta__circle { transform: none; }
}
.reduced-motion .service-card, .reduced-motion .service-card__media img, .reduced-motion .services-cta__circle { transition: none !important; }
.reduced-motion .service-card:hover .service-card__media img, .reduced-motion a.services-cta[href]:is(:hover, :focus-visible) .services-cta__circle { transform: none; }



/* ================================
   Our Work
================================ */

.our-work {
  --color-focus: var(--color-orange);
  background: #080a0a;
  color: var(--color-white);
  color-scheme: dark;
  scroll-margin-top: var(--header-offset);
}
.our-work__intro { display: grid; grid-template-columns: 1fr 0.6fr; gap: 2rem 5%; align-items: end; padding-block: clamp(5rem, 10vw, 9rem); }
.our-work__eyebrow { grid-column: 1 / -1; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; }
.our-work__eyebrow > span { margin-right: 0.75rem; color: var(--color-orange); }
.our-work__title { font-size: var(--home-section-title-xl); line-height: 0.98; font-weight: 400; letter-spacing: -0.06em; }
.our-work__intro-aside { max-width: 28rem; padding-bottom: 0.3rem; font-size: var(--text-lg); color: rgba(255, 255, 255, 0.8); }
.our-work__skip { display: inline-flex; align-items: center; gap: 0.8rem; min-height: 44px; margin-top: 1.5rem; color: var(--color-white); font-size: var(--text-sm); text-decoration-color: rgba(255, 255, 255, 0.4); }
.our-work__skip .icon { rotate: 90deg; font-size: 0.9rem; }

/* The real final-frame image is the baseline, including without JS or Canvas. */
.our-work__stage { position: relative; overflow: hidden; background: #080a0a; }
.our-work__visual { position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 60rem; min-height: 30rem; overflow: hidden; }
.our-work__poster, .our-work__canvas, .our-work__image-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.our-work__poster { object-fit: cover; object-position: 60% 50%; }
.our-work__canvas { opacity: 0; }
/* Story imagery and overlays are decorative, not sequence controls. */
.our-work__canvas, .our-work__poster, .our-work__hud, .our-work__milestones, .our-work__progress { pointer-events: none; }
.our-work.has-canvas .our-work__canvas { opacity: 1; }
.our-work.has-canvas .our-work__poster { opacity: 0; }
.our-work__image-shade { pointer-events: none; background: linear-gradient(0deg, rgba(0, 1, 1, 0.76), transparent 52%), linear-gradient(90deg, rgba(0, 1, 1, 0.35), transparent 55%), linear-gradient(180deg, rgba(0, 1, 1, 0.5), transparent 24%); }
.our-work__hud { position: absolute; top: 2rem; left: var(--page-gutter); right: var(--page-gutter); display: flex; justify-content: space-between; gap: 1rem; font-size: 0.6875rem; letter-spacing: 0.14em; line-height: 1.5; text-transform: uppercase; }
.our-work__frame-count { font-variant-numeric: tabular-nums; white-space: nowrap; }
.our-work__milestones { position: absolute; left: var(--page-gutter); bottom: 3.5rem; display: grid; width: min(25rem, 42%); }
.our-work__milestone { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity 220ms ease, transform 220ms ease, visibility 220ms; }
.our-work__milestone.is-active { opacity: 1; visibility: visible; transform: none; }
.our-work__step { display: block; margin-bottom: 0.75rem; color: var(--color-orange); font-size: 0.6875rem; letter-spacing: 0.14em; }
.our-work__milestone-title { font-size: clamp(2.25rem, 4vw, 4.25rem); line-height: 1.05; letter-spacing: -0.04em; text-transform: uppercase; }
.our-work__milestone-copy { max-width: 30ch; margin-top: 1rem; color: rgba(255, 255, 255, 0.88); font-size: var(--text-sm); line-height: 1.6; }
.our-work__progress { position: absolute; height: 2px; left: var(--page-gutter); right: var(--page-gutter); bottom: 1.5rem; overflow: hidden; background: rgba(255, 255, 255, 0.2); }
.our-work__progress > span { display: block; height: 100%; width: 100%; background: var(--color-orange); transform-origin: left; }
.our-work.is-sequence .our-work__stage { height: calc(100svh - var(--header-offset)); }
.our-work.is-sequence .our-work__visual { height: 100%; min-height: 0; max-height: none; aspect-ratio: auto; }

.our-work__areas { padding-block: clamp(4rem, 9vw, 9rem) clamp(4rem, 7vw, 7rem); scroll-margin-top: calc(var(--header-offset) + 1rem); }
.our-work__areas-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding-bottom: 2.5rem; }
.our-work__areas-heading h3 { font-size: clamp(1.75rem, 2vw, 3rem); line-height: 1.13; font-weight: 400; letter-spacing: -0.035em; }
.our-work__areas-heading > p { max-width: 25ch; font-size: var(--text-sm); color: rgba(255, 255, 255, 0.68); }
.experience-areas { padding: 0; margin: 0; }
.experience-area { display: grid; grid-template-columns: 2rem 1fr auto; align-items: center; gap: 1.25rem; min-height: 7.25rem; padding-block: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.experience-area:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
.experience-area__number { color: rgba(255, 255, 255, 0.62); font-size: var(--text-xs); font-variant-numeric: tabular-nums; transition: color 250ms ease; }
.experience-area__name { font-size: clamp(1.25rem, 2.7vw, 2.75rem); line-height: 1.13; font-weight: 400; letter-spacing: -0.035em; transition: transform 250ms ease; }
.experience-area__thumbnail { width: clamp(4rem, 20vw, 7rem); aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.experience-area__image-button { position: relative; display: block; padding: 0; border: 0; background: transparent; color: var(--color-white); cursor: zoom-in; }
.experience-area__image-button .experience-area__thumbnail { transition: transform 220ms ease; }
.experience-area__expand { position: absolute; right: 0.25rem; bottom: 0.25rem; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; background: rgba(0, 1, 1, 0.65); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 50%; pointer-events: none; }
.experience-area__expand .icon { font-size: 0.65rem; }
.experience-area > .icon { display: none; font-size: 1.3rem; rotate: -45deg; transition: transform 250ms ease; }
.our-work__preview { display: none; margin: 0; }
.our-work__preview-media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #141717; }
.our-work__preview-media::after { content: ""; position: absolute; inset: 0; z-index: 3; background: linear-gradient(0deg, rgba(0, 1, 1, 0.2), transparent 50%); pointer-events: none; }
.our-work__preview-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.our-work__preview-image + .our-work__preview-image { opacity: 0; }
.our-work__preview figcaption { display: flex; gap: 1rem; padding-top: 1rem; font-size: var(--text-xs); letter-spacing: 0.06em; }
.our-work__preview-number { color: var(--color-orange); }
.our-work__closing { display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding-top: clamp(3rem, 5vw, 5rem); }
.our-work__closing > p { max-width: 23ch; font-size: var(--text-sm); color: rgba(255, 255, 255, 0.68); }
.our-work__cta { display: inline-flex; align-items: center; gap: 2rem; min-height: 64px; padding-block: 0.75rem; color: var(--color-white); font-size: clamp(1.5rem, 2.5vw, 2.5rem); line-height: 1.15; letter-spacing: -0.035em; text-decoration: none; border-bottom: 1px solid rgba(252, 149, 1, 0.7); }
.our-work__cta > .icon { color: var(--color-orange); rotate: -45deg; font-size: 1.75rem; }
.our-work__cta > span { transition: transform 250ms ease; }
a.our-work__cta[href]:is(:hover, :focus-visible) > span { transform: translateX(4px); }

@media (min-width: 64rem) and (hover: hover) and (pointer: fine) {
  .our-work.has-preview .our-work__areas-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
  .our-work.has-preview .our-work__preview { display: block; }
  .our-work.has-preview .experience-area__image-button { display: none; }
  .our-work.has-preview .experience-area { padding-inline-end: 1rem; }
  .our-work.has-preview .experience-area > .icon { display: block; }
  .our-work.has-preview .experience-area:is(:hover, :focus-within) { border-top-color: rgba(255, 255, 255, 0.45); }
  .our-work.has-preview .experience-area:is(:hover, :focus-within, .is-current) .experience-area__number { color: var(--color-orange); }
  .our-work.has-preview .experience-area:is(:hover, :focus-within) .experience-area__name { transform: translateX(5px); }
  .our-work.has-preview .experience-area:is(:hover, :focus-within) > .icon { transform: translateX(5px); }
}
.experience-area__image-button:focus-visible .experience-area__expand { color: var(--color-orange); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html:not(.reduced-motion) .experience-area__image-button:hover .experience-area__thumbnail { transform: scale(1.025); }
  .experience-area__image-button:hover .experience-area__expand { color: var(--color-orange); background: rgba(0, 1, 1, 0.85); }
}
@media (prefers-reduced-motion: reduce) {
  .experience-area__image-button .experience-area__thumbnail { transition: none; }
}
.reduced-motion .experience-area__image-button .experience-area__thumbnail { transition: none; }
@media (max-width: 63.999rem) {
  .our-work__intro { grid-template-columns: 1fr; gap: 2rem; padding-block: 4.5rem; }
  .our-work__intro-aside { margin-left: auto; font-size: var(--text-base); }
  .our-work__stage { display: flex; flex-direction: column; justify-content: center; }
  .our-work__visual, .our-work.is-sequence .our-work__visual { flex: 0 0 auto; height: auto; min-height: 0; max-height: none; aspect-ratio: 4 / 3; }
  .our-work__poster { object-position: 70% 50%; }
  .our-work__image-shade { background: linear-gradient(0deg, rgba(0, 1, 1, 0.15), transparent 50%); }
  .our-work__hud { position: static; order: -1; padding: 1rem var(--page-gutter); }
  .our-work__milestones { position: relative; left: auto; bottom: auto; width: 100%; padding: 1.5rem var(--page-gutter); }
  .our-work__milestone-title { font-size: clamp(1.75rem, 5vw, 3rem); }
  .our-work__milestone-copy { margin-top: 0.65rem; max-width: 36ch; }
  .our-work__step { margin-bottom: 0.65rem; }
  .our-work__progress { position: relative; flex: 0 0 2px; left: auto; right: auto; bottom: auto; margin: 0 var(--page-gutter) 1rem; }
  .our-work__areas-heading { align-items: flex-start; }
  .our-work__closing { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 47.999rem) {
  .our-work__intro-aside { margin-left: 0; }
  .our-work__areas-heading { flex-direction: column; gap: 1rem; }
  .experience-area { grid-template-columns: 1.25rem 1fr auto; gap: 0.65rem; min-height: 6.5rem; }
  .experience-area__name { font-size: clamp(1.125rem, 4.8vw, 1.5rem); }
  .our-work__cta { gap: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .our-work__milestone, .experience-area__number, .experience-area__name, .experience-area > .icon, .our-work__cta > span { transition: none !important; transform: none !important; }
}
.reduced-motion .our-work__milestone, .reduced-motion .experience-area__number, .reduced-motion .experience-area__name, .reduced-motion .experience-area > .icon, .reduced-motion .our-work__cta > span { transition: none !important; transform: none !important; }



/* ================================
   Weddings
================================ */

.weddings {
  --color-focus: var(--color-black);
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding-block: clamp(5rem, 10vw, 9rem) clamp(5rem, 8vw, 8rem);
  background:
    radial-gradient(circle at 76% 28%, rgba(252, 149, 1, 0.14), transparent 28rem),
    linear-gradient(180deg, #fffaf3 0%, #fffdf9 48%, #ffffff 100%);
  color: var(--color-black);
  color-scheme: light;
  scroll-margin-top: var(--header-offset);
}

.weddings::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(252, 149, 1, 0.42), transparent);
  pointer-events: none;
}

.weddings__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  gap: clamp(2.75rem, 5vw, 6rem);
  align-items: center;
}

.weddings__copy {
  position: relative;
  z-index: 2;
  max-width: 45rem;
}

.weddings__label {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xl);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.weddings__label > span { color: var(--color-orange); }

.weddings__title {
  font-size: var(--home-section-title-lg);
  font-weight: var(--font-weight-normal);
  line-height: 0.98;
  letter-spacing: -0.065em;
}

.weddings__title-mask {
  display: block;
  overflow: hidden;
}

.weddings__title-mask > span {
  display: block;
}

.weddings__accent {
  display: block;
  width: min(13rem, 52vw);
  height: 2px;
  margin-block: clamp(1.4rem, 2.2vw, 2rem);
  transform-origin: left;
  background: linear-gradient(90deg, var(--color-red), var(--color-orange));
}

.weddings__support {
  max-width: 34rem;
  color: rgba(0, 1, 1, 0.66);
  font-size: var(--text-lg);
  line-height: 1.6;
}

.weddings__services {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  max-width: 39rem;
  padding: 0;
  margin: clamp(1.75rem, 3vw, 2.5rem) 0 0;
}

.weddings__services > li {
  display: inline-flex;
  align-items: center;
  min-height: 2.65rem;
  padding: 0.55rem 0.95rem;
  border: 1px solid rgba(0, 1, 1, 0.18);
  border-radius: 1.15rem;
  background: rgba(255, 255, 255, 0.44);
  color: rgba(0, 1, 1, 0.82);
  font-size: var(--text-sm);
  line-height: 1.25;
  transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}

.weddings__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  min-height: 3.5rem;
  margin-top: clamp(1.75rem, 3vw, 2.75rem);
  padding: 0.9rem 1.25rem;
  overflow: hidden;
  border-radius: 1rem;
  background: linear-gradient(135deg, var(--color-orange), #ffc061);
  color: var(--color-black);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  box-shadow: 0 1rem 2.5rem rgba(252, 149, 1, 0.22);
}

.weddings__cta-icon {
  rotate: -45deg;
}

.weddings__visual {
  position: relative;
  min-height: clamp(32rem, 46vw, 45rem);
  align-self: stretch;
}

.weddings__ghost-number {
  position: absolute;
  top: -0.11em;
  right: -0.04em;
  z-index: -1;
  color: rgba(252, 149, 1, 0.055);
  font-size: clamp(12rem, 20vw, 22rem);
  font-weight: var(--font-weight-bold);
  line-height: 0.8;
  letter-spacing: -0.08em;
}

.weddings__image-button {
  position: absolute;
  display: block;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 1.5rem;
  background: #f4eadf;
  color: var(--color-white);
  box-shadow: 0 1.5rem 4rem rgba(52, 28, 9, 0.18);
  cursor: zoom-in;
}

.weddings__image-button--primary {
  top: 0;
  right: 0;
  width: min(100%, 43rem);
  aspect-ratio: 1.35 / 1;
}

.weddings__image-button--secondary {
  left: 0;
  bottom: 0;
  width: min(54%, 24rem);
  aspect-ratio: 1.18 / 1;
  border: 0.45rem solid #fffdf9;
  border-radius: 1.35rem;
}

.weddings__image-depth,
.weddings__image {
  display: block;
  width: 100%;
  height: 100%;
}

.weddings__image {
  object-fit: cover;
}

.weddings__image-button--primary .weddings__image {
  object-position: 50% 10%;
}

.weddings__image-button--secondary .weddings__image {
  object-position: 45% 48%;
}

.weddings__expand {
  position: absolute;
  right: 0.85rem;
  bottom: 0.85rem;
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 50%;
  background: rgba(0, 1, 1, 0.58);
  color: var(--color-white);
  opacity: 0;
  transform: translateY(5px);
  transition: opacity 180ms ease, transform 180ms ease, color 180ms ease;
  pointer-events: none;
}

.weddings__expand .icon {
  font-size: 0.78rem;
}

.weddings__image-button:focus-visible {
  outline: 2px solid var(--color-orange);
  outline-offset: 4px;
}

.weddings__image-button:focus-visible .weddings__expand {
  opacity: 1;
  transform: none;
  color: var(--color-orange);
}

@media (hover: hover) and (pointer: fine) {
  .weddings__services > li:hover {
    border-color: rgba(252, 149, 1, 0.68);
    background: rgba(252, 149, 1, 0.08);
    color: var(--color-black);
  }

  .weddings__image-button:hover .weddings__expand {
    opacity: 1;
    transform: none;
    color: var(--color-orange);
  }

  :is(a[href], button).weddings__cta:not([aria-disabled="true"]):not(.is-pending):is(:hover, :focus-visible) {
    background: linear-gradient(135deg, #ffab24, #ffd58c);
  }

}

@media (min-width: 64rem) {
  .weddings__image-button--primary {
    right: clamp(0rem, 2vw, 2rem);
  }

  .weddings__image-button--secondary {
    left: clamp(0rem, 2vw, 2.25rem);
    bottom: clamp(5rem, 9vw, 7rem);
  }
}

@media (min-width: 64rem) and (max-width: 74rem) {
  .weddings__image-button--primary {
    top: 5rem;
  }
}

@media (max-width: 63.999rem) {
  .weddings__inner {
    grid-template-columns: 1fr;
    gap: clamp(2.5rem, 6vw, 4rem);
  }

  .weddings__copy {
    max-width: 48rem;
  }

  .weddings__title {
    max-width: 11ch;
  }

  .weddings__visual {
    min-height: clamp(30rem, 74vw, 40rem);
  }

  .weddings__image-button--primary {
    left: 0;
    right: auto;
    width: 86%;
  }

  .weddings__image-button--secondary {
    left: auto;
    right: 0;
    bottom: 0;
    width: min(62%, 25rem);
  }
}

@media (max-width: 47.999rem) {
  .weddings {
    padding-block: 4.75rem 5rem;
  }

  .weddings__inner {
    gap: 2.25rem;
  }

  .weddings__copy {
    display: contents;
  }

  .weddings__label,
  .weddings__title,
  .weddings__accent,
  .weddings__support,
  .weddings__services,
  .weddings__cta,
  .weddings__visual {
    grid-column: 1;
  }

  .weddings__label { order: 1; }
  .weddings__title { order: 2; }
  .weddings__accent { order: 3; }
  .weddings__support { order: 4; }
  .weddings__visual { order: 5; }
  .weddings__services { order: 6; }
  .weddings__cta { order: 7; }

  .weddings__label {
    margin-bottom: 1.25rem;
  }

  .weddings__title {
    max-width: 11ch;
    font-size: clamp(2.85rem, 14vw, 4.2rem);
  }

  .weddings__support {
    font-size: var(--text-base);
  }

  .weddings__visual {
    min-height: clamp(22rem, 100vw, 31rem);
  }

  .weddings__image-button {
    border-radius: 1.15rem;
  }

  .weddings__image-button--primary {
    width: 100%;
    aspect-ratio: 4 / 3;
  }

  .weddings__image-button--secondary {
    width: min(68%, 18rem);
    border-width: 0.35rem;
    border-radius: 1rem;
  }

  .weddings__services {
    gap: 0.5rem;
    margin-top: 0;
  }

  .weddings__services > li {
    min-height: 2.45rem;
    padding: 0.5rem 0.75rem;
  }

  .weddings__cta {
    width: 100%;
  }
}

@media (max-width: 22.5rem) {
  .weddings__title {
    font-size: 2.65rem;
  }

  .weddings__visual {
    min-height: 20rem;
  }

  .weddings__services > li {
    font-size: 0.8125rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .weddings__services > li,
  .weddings__expand,
  .weddings__cta > .icon {
    transition: none !important;
  }

  .weddings [data-weddings-reveal],
  .weddings [data-weddings-title-line],
  .weddings__services > li,
  .weddings__cta {
    opacity: 1 !important;
    transform: none !important;
  }

  .weddings__accent,
  .weddings__image,
  .weddings__image-depth,
  .weddings__image-button {
    transform: none !important;
  }

  .weddings__image-button--primary {
    clip-path: inset(0%) !important;
  }
}

.reduced-motion .weddings__services > li,
.reduced-motion .weddings__expand,
.reduced-motion .weddings__cta > .icon {
  transition: none !important;
}

.reduced-motion .weddings [data-weddings-reveal],
.reduced-motion .weddings [data-weddings-title-line],
.reduced-motion .weddings__services > li,
.reduced-motion .weddings__cta {
  opacity: 1 !important;
  transform: none !important;
}

.reduced-motion .weddings__accent,
.reduced-motion .weddings__image,
.reduced-motion .weddings__image-depth,
.reduced-motion .weddings__image-button {
  transform: none !important;
}

.reduced-motion .weddings__image-button--primary {
  clip-path: inset(0%) !important;
}



/* ================================
   Partners
================================ */

.partners {
  --color-focus: var(--color-black);
  --partners-surface: #fffdf8;
  --partners-rule: rgba(0, 1, 1, 0.1);
  --partners-muted: rgba(0, 1, 1, 0.62);
  --partners-gap: clamp(0.9rem, 1.5vw, 1.55rem);
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding-block: clamp(5.5rem, 11vw, 10rem) clamp(5.25rem, 9vw, 8.75rem);
  background: var(--partners-surface);
  color: var(--color-black);
  color-scheme: light;
  scroll-margin-top: var(--header-offset);
}

.partners::before {
  content: "";
  position: absolute;
  inset-inline: var(--page-gutter);
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 1, 1, 0.12), transparent);
  pointer-events: none;
}

.partners__inner {
  position: relative;
}

.partners__intro {
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(18rem, 0.58fr);
  gap: clamp(2rem, 3vw, 7rem);
  align-items: end;
}

.partners__label {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin: 0 0 clamp(1.3rem, 2vw, 1.8rem);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.14em;
  line-height: 1.4;
}

.partners__label > span {
  color: var(--color-orange);
}

.partners__title {
  max-width: 14ch;
  margin: 0;
  font-size: var(--home-section-title-md);
  font-weight: var(--font-weight-normal);
  line-height: 0.98;
  letter-spacing: -0.065em;
}

.partners__title > span {
  display: block;
}

.partners__copy {
  max-width: 31rem;
  padding-bottom: clamp(0.35rem, 1vw, 0.9rem);
  color: var(--partners-muted);
  font-size: var(--text-lg);
  line-height: 1.55;
}

.partners__copy p {
  margin: 0;
}

.partners__approval {
  margin-top: 1.1rem !important;
  color: rgba(0, 1, 1, 0.42);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.12em;
  line-height: 1.45;
}

.partners__field {
  position: relative;
  margin-top: clamp(3.6rem, 8vw, 7rem);
}

.partners__ghost {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -1;
  transform: translate(-50%, -47%);
  color: transparent;
  -webkit-text-stroke: 1px rgba(0, 1, 1, 0.035);
  text-stroke: 1px rgba(0, 1, 1, 0.035);
  font-size: clamp(6rem, 17vw, 20rem);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0;
  line-height: 0.8;
  white-space: nowrap;
  pointer-events: none;
}

.partners__rail {
  position: relative;
}

.partners__rail + .partners__rail {
  margin-top: clamp(0.85rem, 1.7vw, 1.45rem);
}

.partners__track,
.partners__set {
  display: flex;
  flex-wrap: wrap;
  gap: var(--partners-gap);
  align-items: center;
}

.partners__track {
  justify-content: center;
}

.partners__logo {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(8.75rem, 18vw, 14rem);
  aspect-ratio: 1.68 / 1;
  padding: clamp(0.8rem, 1.5vw, 1.15rem);
  margin: 0;
  border: 1px solid var(--partners-rule);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.42);
}

.partners__logo-button {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
}

.partners__logo-button::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  box-shadow: 0 0 0 1px rgba(252, 149, 1, 0), 0 1.1rem 2.8rem rgba(252, 149, 1, 0);
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease, box-shadow 220ms ease;
}

.partners__logo img,
.partners__logo-button img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0.82;
  transition: opacity 220ms ease, transform 220ms ease;
}

.partners__set--duplicate {
  display: none;
}

.partners--enhanced .partners__rail {
  overflow: hidden;
  padding-block: 0.2rem;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
}

.partners--enhanced .partners__rail::before,
.partners--enhanced .partners__rail::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  width: min(8vw, 6rem);
  pointer-events: none;
}

.partners--enhanced .partners__rail::before {
  left: 0;
  background: linear-gradient(90deg, var(--partners-surface), rgba(255, 253, 248, 0));
}

.partners--enhanced .partners__rail::after {
  right: 0;
  background: linear-gradient(270deg, var(--partners-surface), rgba(255, 253, 248, 0));
}

@supports ((-webkit-mask-image: linear-gradient(#000, #000)) or (mask-image: linear-gradient(#000, #000))) {
  .partners--enhanced .partners__rail::before,
  .partners--enhanced .partners__rail::after {
    display: none;
  }
}

.partners--enhanced .partners__track {
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: max-content;
  will-change: transform;
}

.partners--enhanced .partners__set {
  flex-wrap: nowrap;
  flex: 0 0 auto;
}

.partners--enhanced .partners__set--duplicate {
  display: flex;
}

.partners--enhanced .partners__logo {
  flex: 0 0 auto;
}

@media (hover: hover) and (pointer: fine) {
  .partners__logo {
    transition: border-color 220ms ease, background-color 220ms ease, transform 220ms ease;
  }

  .partners__logo:hover,
  .partners__logo:focus-within {
    border-color: rgba(252, 149, 1, 0.34);
    background: rgba(255, 255, 255, 0.74);
    transform: scale(1.03);
  }

  .partners__logo:hover img,
  .partners__logo:focus-within img {
    opacity: 1;
  }

  .partners__logo-button:is(:hover, :focus-visible)::after {
    opacity: 1;
    box-shadow: 0 0 0 1px rgba(252, 149, 1, 0.38), 0 1.1rem 2.8rem rgba(252, 149, 1, 0.14);
  }
}

.partners__logo-button:focus-visible {
  outline: 2px solid var(--color-orange);
  outline-offset: 4px;
}

@media (max-width: 63.999rem) {
  .partners {
    padding-block: 5rem 5.5rem;
  }

  .partners__intro {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .partners__label {
    margin-bottom: 0.9rem;
  }

  .partners__title {
    max-width: 12ch;
    font-size: clamp(3rem, 10vw, 5rem);
  }

  .partners__copy {
    max-width: 38rem;
    padding-bottom: 0;
    font-size: var(--text-base);
  }
}

@media (max-width: 47.999rem) {
  .partners {
    padding-block: 4.8rem 5.1rem;
  }

  .partners__title {
    font-size: clamp(2.65rem, 13vw, 4.1rem);
  }

  .partners__field {
    margin-top: 2.9rem;
  }

  .partners__logo {
    width: clamp(8.75rem, 45vw, 11.875rem);
    padding: 0.7rem;
  }

  .partners--enhanced .partners__rail {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  }
}

@media (max-width: 22.5rem) {
  .partners__title {
    font-size: 2.45rem;
  }

  .partners__logo {
    width: 8.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .partners__logo,
  .partners__logo img,
  .partners__logo-button::after {
    transition: none !important;
  }

  .partners [data-partners-reveal],
  .partners__track,
  .partners__logo {
    opacity: 1 !important;
    transform: none !important;
  }

  .partners__set--duplicate {
    display: none !important;
  }

  .partners__track,
  .partners__set {
    flex-wrap: wrap !important;
    justify-content: center;
    width: auto !important;
  }
}

.reduced-motion .partners__logo,
.reduced-motion .partners__logo img,
.reduced-motion .partners__logo-button::after {
  transition: none !important;
}

.reduced-motion .partners [data-partners-reveal],
.reduced-motion .partners__track,
.reduced-motion .partners__logo {
  opacity: 1 !important;
  transform: none !important;
}

.reduced-motion .partners__set--duplicate {
  display: none !important;
}

.reduced-motion .partners__track,
.reduced-motion .partners__set {
  flex-wrap: wrap !important;
  justify-content: center;
  width: auto !important;
}



/* ================================
   Participants Customers
================================ */

.participants-customers {
  --color-focus: var(--color-orange);
  --pc-bg: var(--color-black);
  --pc-card-width: clamp(17.5rem, 24vw, 24.375rem);
  --pc-card-gap: clamp(1rem, 1.7vw, 1.75rem);
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding-block: clamp(5.5rem, 10vw, 9.5rem) clamp(5.25rem, 9vw, 8.5rem);
  background:
    radial-gradient(circle at 68% 64%, rgba(252, 149, 1, 0.095), transparent 24rem),
    linear-gradient(180deg, #000101 0%, #090807 52%, #000101 100%);
  color: var(--color-white);
  color-scheme: dark;
  scroll-margin-top: var(--header-offset);
}

.participants-customers::before {
  content: "";
  position: absolute;
  inset-inline: var(--page-gutter);
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(252, 149, 1, 0.62), transparent);
  pointer-events: none;
}

.participants-customers__inner {
  position: relative;
}

.participants-customers__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.46fr);
  gap: clamp(2rem, 3vw, 7rem);
  align-items: end;
}

.participants-customers__label {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin: 0 0 clamp(1.25rem, 2vw, 1.9rem);
  color: rgba(255, 255, 255, 0.74);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.14em;
  line-height: 1.4;
}

.participants-customers__label > span {
  color: var(--color-orange);
}

.participants-customers__title {
  margin: 0;
  font-size: var(--home-section-title-md);
  font-weight: var(--font-weight-normal);
  line-height: 0.95;
  letter-spacing: 0;
  text-transform: uppercase;
}

.participants-customers__title-mask {
  display: block;
  overflow: hidden;
  padding-bottom: 0.08em;
}

.participants-customers__title-line {
  display: block;
}

.participants-customers__title-line--second {
  color: rgba(255, 255, 255, 0.84);
}

.participants-customers__copy {
  max-width: 30rem;
  padding-bottom: clamp(0.25rem, 1vw, 1rem);
  color: rgba(255, 255, 255, 0.66);
  font-size: var(--text-lg);
  line-height: 1.55;
}

.participants-customers__copy p {
  margin: 0;
}

.participants-customers__approval {
  margin-top: 1.1rem !important;
  color: rgba(255, 255, 255, 0.42);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.12em;
  line-height: 1.45;
}

.participants-customers__field {
  position: relative;
  margin-top: clamp(4rem, 8vw, 7rem);
}

.participants-customers__controls {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-bottom: clamp(0.8rem, 1.4vw, 1.15rem);
}

.participants-customers__control {
  display: grid;
  place-items: center;
  width: clamp(2.75rem, 3.8vw, 3.5rem);
  height: clamp(2.75rem, 3.8vw, 3.5rem);
  min-width: 2.75rem;
  min-height: 2.75rem;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.045)),
    rgba(6, 6, 6, 0.58);
  box-shadow: 0 1rem 2.2rem rgba(0, 0, 0, 0.28);
  color: var(--color-white);
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.participants-customers__control .icon {
  font-size: 0.92rem;
  transition: transform 180ms ease;
}

.participants-customers__control:is(:hover, :focus-visible) {
  border-color: rgba(252, 149, 1, 0.78);
  background:
    linear-gradient(145deg, rgba(252, 149, 1, 0.18), rgba(255, 255, 255, 0.055)),
    rgba(12, 10, 8, 0.72);
  color: var(--color-orange);
  transform: translateY(-0.08rem);
}

.participants-customers__control--previous:is(:hover, :focus-visible) .icon {
  transform: translateX(-0.12rem);
}

.participants-customers__control--next:is(:hover, :focus-visible) .icon {
  transform: translateX(0.12rem);
}

.participants-customers__control:disabled {
  opacity: 0.42;
  cursor: default;
  transform: none;
}

.participants-customers:not(.participants-customers--enhanced) .participants-customers__controls {
  display: none;
}

.participants-customers__viewport {
  position: relative;
}

.participants-customers__track,
.participants-customers__set {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pc-card-gap);
  align-items: center;
  justify-content: center;
}

.participants-customers__track {
  align-items: stretch;
}

.participants-customers__set--duplicate {
  display: none;
}

.pc-card {
  --pc-focus: 0;
  --interactive-card-lift: 0px;
  --interactive-card-scale: 1;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: var(--pc-card-width);
  min-height: clamp(22.5rem, 29vw, 28.75rem);
  padding: clamp(1rem, 1.8vw, 1.4rem);
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, calc(0.11 + var(--pc-focus) * 0.16));
  border-radius: 0.75rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025)),
    rgba(255, 255, 255, 0.04);
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, calc(0.16 + var(--pc-focus) * 0.1));
  color: var(--color-white);
  opacity: calc(0.58 + var(--pc-focus) * 0.42);
  transform: translateY(calc(var(--pc-card-y, 0px) + var(--interactive-card-lift))) scale(calc((0.955 + var(--pc-focus) * 0.045) * var(--interactive-card-scale)));
  transition: border-color 220ms ease, background-color 220ms ease, box-shadow 220ms ease, opacity 180ms ease, transform 180ms ease;
}

.pc-card--rise {
  --pc-card-y: -1.4rem;
}

.pc-card--sink {
  --pc-card-y: 1.25rem;
}

.pc-card__index {
  margin: 0;
  color: rgba(255, 255, 255, 0.48);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.12em;
  line-height: 1.4;
}

.pc-card__media {
  display: grid;
  place-items: center;
  min-height: 13rem;
  padding: clamp(1rem, 2.1vw, 1.85rem);
}

.pc-card__media img {
  display: block;
  width: 100%;
  max-height: 12.5rem;
  object-fit: contain;
  opacity: calc(0.78 + var(--pc-focus) * 0.22);
  transform: scale(calc(0.975 + var(--pc-focus) * 0.025));
  transition: opacity 180ms ease, transform 180ms ease;
}

.pc-card__name {
  align-self: end;
  max-width: calc(100% - 3rem);
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(1.05rem, 1.2vw, 1.28rem);
  font-weight: var(--font-weight-medium);
  line-height: 1.18;
  letter-spacing: 0;
  text-transform: none;
}

.pc-card__name--pending {
  color: rgba(255, 255, 255, 0.56);
}

.pc-card__arrow {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  color: rgba(252, 149, 1, 0.72);
  font-size: 1rem;
  rotate: -45deg;
  transform: translate(calc(var(--pc-focus) * 0.18rem), calc(var(--pc-focus) * -0.18rem));
  transition: color 180ms ease, transform 180ms ease;
}

.participants-customers__rail-note {
  margin: clamp(1.75rem, 3vw, 2.4rem) 0 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.16em;
  text-align: center;
}

.participants-customers--enhanced .participants-customers__viewport {
  overflow: hidden;
  margin-inline: calc(var(--page-gutter) * -1);
  padding: 2.4rem var(--page-gutter);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}

.participants-customers--enhanced .participants-customers__viewport::before,
.participants-customers--enhanced .participants-customers__viewport::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  width: min(9vw, 7rem);
  pointer-events: none;
}

.participants-customers--enhanced .participants-customers__viewport::before {
  left: 0;
  background: linear-gradient(90deg, var(--pc-bg), rgba(0, 1, 1, 0));
}

.participants-customers--enhanced .participants-customers__viewport::after {
  right: 0;
  background: linear-gradient(270deg, var(--pc-bg), rgba(0, 1, 1, 0));
}

@supports ((-webkit-mask-image: linear-gradient(#000, #000)) or (mask-image: linear-gradient(#000, #000))) {
  .participants-customers--enhanced .participants-customers__viewport::before,
  .participants-customers--enhanced .participants-customers__viewport::after {
    display: none;
  }
}

.participants-customers--enhanced .participants-customers__track,
.participants-customers--enhanced .participants-customers__set {
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.participants-customers--enhanced .participants-customers__track {
  width: max-content;
  will-change: transform;
}

.participants-customers--enhanced .participants-customers__set {
  flex: 0 0 auto;
}

.participants-customers--enhanced .participants-customers__set--duplicate {
  display: flex;
}

.participants-customers--enhanced .pc-card {
  flex: 0 0 auto;
}

@media (hover: hover) and (pointer: fine) {
  .pc-card:hover {
    --pc-focus: 1 !important;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.085), rgba(252, 149, 1, 0.035)),
      rgba(255, 255, 255, 0.045);
    box-shadow: 0 1.7rem 4.4rem rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(252, 149, 1, 0.16);
  }

  .pc-card:hover .pc-card__media img {
    transform: scale(1.035);
  }

  .pc-card:hover .pc-card__arrow {
    color: var(--color-orange);
    transform: translate(0.24rem, -0.24rem);
  }
}

@media (max-width: 63.999rem) {
  .participants-customers__intro {
    grid-template-columns: 1fr;
    gap: 1.45rem;
  }

  .participants-customers__title {
    font-size: clamp(2.85rem, 8.5vw, 5.6rem);
  }

  .participants-customers__copy {
    max-width: 40rem;
    padding-bottom: 0;
    font-size: var(--text-base);
  }
}

@media (max-width: 47.999rem) {
  .participants-customers {
    --pc-card-width: clamp(15.25rem, 80vw, 20rem);
    --pc-card-gap: 0.9rem;
    padding-block: 4.8rem 5rem;
  }

  .participants-customers__label {
    margin-bottom: 0.9rem;
  }

  .participants-customers__title {
    font-size: clamp(2.35rem, 10.5vw, 3.45rem);
    line-height: 0.98;
  }

  .participants-customers__field {
    margin-top: 2.75rem;
  }

  .participants-customers__controls {
    gap: 0.6rem;
    margin-bottom: 0.45rem;
    padding-inline: 0.15rem;
  }

  .participants-customers--enhanced .participants-customers__viewport {
    padding-block: 1.7rem;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  }

  .pc-card {
    min-height: clamp(20.5rem, 112vw, 25rem);
    padding: 1rem;
  }

  .pc-card--rise {
    --pc-card-y: -0.7rem;
  }

  .pc-card--sink {
    --pc-card-y: 0.7rem;
  }

  .pc-card__media {
    min-height: 12rem;
    padding: 0.8rem;
  }
}

@media (max-width: 22.5rem) {
  .participants-customers__title {
    font-size: 2.2rem;
  }

  .pc-card__name {
    font-size: 0.98rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .participants-customers__title-line,
  .participants-customers [data-pc-reveal],
  .participants-customers__track,
  .pc-card,
  .pc-card__media img,
  .pc-card__arrow {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .participants-customers__set--duplicate {
    display: none !important;
  }

  .participants-customers__controls {
    display: none !important;
  }

  .participants-customers__track,
  .participants-customers__set {
    flex-wrap: wrap !important;
    justify-content: center;
    width: auto !important;
  }
}

.reduced-motion .participants-customers__title-line,
.reduced-motion .participants-customers [data-pc-reveal],
.reduced-motion .participants-customers__track,
.reduced-motion .pc-card,
.reduced-motion .pc-card__media img,
.reduced-motion .pc-card__arrow {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.reduced-motion .participants-customers__set--duplicate {
  display: none !important;
}

.reduced-motion .participants-customers__controls {
  display: none !important;
}

.reduced-motion .participants-customers__track,
.reduced-motion .participants-customers__set {
  flex-wrap: wrap !important;
  justify-content: center;
  width: auto !important;
}



/* ================================
   Advertising
================================ */

.advertising {
  --color-focus: var(--color-white);
  --advertising-overlay-alpha: 0.72;
  --advertising-media-position: 58% 50%;
  --advertising-gutter: clamp(1.125rem, 5.5vw, 3rem);
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: min(82vh, 50rem);
  overflow: clip;
  padding-block: calc(var(--header-offset) + clamp(2.5rem, 4vw, 4.25rem)) clamp(3rem, 5vw, 4.75rem);
  background: #030201;
  color: var(--color-white);
  color-scheme: dark;
  scroll-margin-top: var(--header-offset);
}

.advertising::before {
  content: "";
  position: absolute;
  inset-inline: var(--page-gutter);
  top: 0;
  z-index: 4;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(252, 149, 1, 0.42), transparent);
  pointer-events: none;
}

.advertising__media,
.advertising__shade,
.advertising__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.advertising__media {
  z-index: 0;
  overflow: hidden;
}

.advertising__image {
  display: block;
  width: 100%;
  height: 108%;
  object-fit: cover;
  object-position: var(--advertising-media-position);
}

.advertising__shade {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 1, 1, 0.92) 0%, rgba(0, 1, 1, 0.78) 32%, rgba(0, 1, 1, 0.42) 66%, rgba(0, 1, 1, 0.2) 100%),
    linear-gradient(0deg, rgba(0, 1, 1, 0.82) 0%, rgba(0, 1, 1, 0.28) 45%, rgba(0, 1, 1, 0.3) 100%),
    rgba(0, 1, 1, var(--advertising-overlay-alpha));
}

.advertising__glow {
  z-index: 2;
  background:
    radial-gradient(ellipse at 72% 18%, rgba(252, 149, 1, 0.22), transparent 26rem),
    linear-gradient(180deg, rgba(252, 36, 1, 0.08), transparent 38%);
  mix-blend-mode: screen;
  opacity: 0.52;
}

.advertising__inner {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(11rem, 0.28fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: end;
  width: calc(100% - var(--advertising-gutter) * 2);
  max-width: var(--container-wide);
  margin-inline: auto;
}

.advertising__content {
  max-width: 46rem;
}

.advertising__marker,
.advertising__eyebrow {
  margin: 0;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.advertising__marker {
  color: rgba(255, 255, 255, 0.72);
}

.advertising__marker > span {
  color: var(--color-orange);
}

.advertising__eyebrow-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-top: clamp(1rem, 2vw, 1.5rem);
}

.advertising__accent {
  display: block;
  flex: 0 0 min(4.5rem, 16vw);
  height: 2px;
  transform-origin: left;
  background: linear-gradient(90deg, var(--color-red), var(--color-orange));
}

.advertising__eyebrow {
  color: rgba(255, 255, 255, 0.9);
}

.advertising__title {
  margin: clamp(1.25rem, 2.8vw, 2rem) 0 0;
  font-size: var(--home-section-title-lg);
  font-weight: var(--font-weight-normal);
  line-height: 0.98;
  letter-spacing: 0;
  text-transform: none;
}

.advertising__title-mask {
  display: block;
  overflow: hidden;
  padding-bottom: 0.05em;
}

.advertising__title-line {
  display: block;
}

.advertising__copy {
  max-width: 36rem;
  margin: clamp(1.35rem, 2.4vw, 2.1rem) 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: var(--text-lg);
  line-height: 1.58;
}

.advertising__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  min-height: 3.55rem;
  margin-top: clamp(1.65rem, 3vw, 2.5rem);
  padding: 0.92rem 1.25rem;
  overflow: hidden;
  border-radius: 0.85rem;
  background: linear-gradient(135deg, #fc9501, #ffbd58);
  color: var(--color-black);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 1.2rem 3rem rgba(252, 149, 1, 0.2);
  transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.advertising__cta-icon {
  rotate: -45deg;
  transition: transform 200ms ease;
}

.advertising__side-label {
  justify-self: end;
  max-width: 11rem;
  margin: 0 0 0 auto;
  color: rgba(255, 255, 255, 0.48);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.18em;
  line-height: 1.5;
  text-align: right;
  text-transform: uppercase;
}

@media (hover: hover) and (pointer: fine) {
  .advertising__cta:hover,
  .advertising__cta:focus-visible {
    background: linear-gradient(135deg, #ffac26, #ffd28b);
    box-shadow: 0 1.35rem 3.1rem rgba(252, 149, 1, 0.26);
    transform: translateY(-0.08rem);
  }

  .advertising__cta:is(:hover, :focus-visible) .advertising__cta-icon {
    transform: translate(0.26rem, -0.26rem);
  }

}

@media (max-width: 63.999rem) {
  .advertising {
    min-height: auto;
    padding-block: calc(var(--header-offset) + 4.5rem) 5rem;
  }

  .advertising__inner {
    grid-template-columns: 1fr;
  }

  .advertising__content {
    max-width: 42rem;
  }

  .advertising__title {
    max-width: 12ch;
    font-size: clamp(2.85rem, 9vw, 5.25rem);
  }

  .advertising__copy {
    max-width: 34rem;
    font-size: var(--text-base);
  }

  .advertising__side-label {
    display: none;
  }
}

@media (max-width: 47.999rem) {
  .advertising {
    --advertising-overlay-alpha: 0.82;
    --advertising-media-position: 64% 50%;
    padding-block: calc(var(--header-offset) + 3.65rem) 4.4rem;
  }

  .advertising__image {
    height: 106%;
  }

  .advertising__shade {
    background:
      linear-gradient(180deg, rgba(0, 1, 1, 0.74), rgba(0, 1, 1, 0.5) 30%, rgba(0, 1, 1, 0.86) 100%),
      linear-gradient(90deg, rgba(0, 1, 1, 0.9) 0%, rgba(0, 1, 1, 0.68) 58%, rgba(0, 1, 1, 0.38) 100%),
      rgba(0, 1, 1, var(--advertising-overlay-alpha));
  }

  .advertising__title {
    max-width: 11ch;
    font-size: clamp(2.55rem, 11.5vw, 4rem);
    line-height: 1;
  }

  .advertising__eyebrow-row {
    align-items: flex-start;
    gap: 0.7rem;
  }

  .advertising__accent {
    flex-basis: 2.6rem;
    margin-top: 0.5rem;
  }

  .advertising__cta {
    width: 100%;
    max-width: 21rem;
  }
}

@media (max-width: 22.5rem) {
  .advertising__title {
    font-size: 2.32rem;
  }

  .advertising__marker,
  .advertising__eyebrow,
  .advertising__side-label {
    letter-spacing: 0.11em;
  }
}

@media (min-width: 48rem) and (max-height: 40rem) {
  .advertising {
    min-height: auto;
    padding-block: calc(var(--header-offset) + 2.5rem) 3rem;
  }

  .advertising__title {
    font-size: clamp(2.85rem, 5.4vw, 4.6rem);
  }

  .advertising__copy {
    margin-top: 1rem;
  }

  .advertising__cta {
    margin-top: 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .advertising__image,
  .advertising__glow,
  .advertising__accent,
  .advertising [data-advertising-reveal],
  .advertising [data-advertising-title-line],
  .advertising__cta,
  .advertising__cta-icon {
    transition: none !important;
    transform: none !important;
  }

  .advertising__cta-icon {
    rotate: -45deg;
  }

}

.reduced-motion .advertising__image,
.reduced-motion .advertising__glow,
.reduced-motion .advertising__accent,
.reduced-motion .advertising [data-advertising-reveal],
.reduced-motion .advertising [data-advertising-title-line],
.reduced-motion .advertising__cta,
.reduced-motion .advertising__cta-icon {
  transition: none !important;
  transform: none !important;
}

.reduced-motion .advertising__cta-icon {
  rotate: -45deg;
}



/* ================================
   Final Cta
================================ */

.final-cta {
  --color-focus: var(--color-white);
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(34rem, 82vh, 58rem);
  overflow: clip;
  padding-block: calc(var(--header-offset) + clamp(3rem, 5vw, 5.5rem)) clamp(3.5rem, 6vw, 6rem);
  background:
    radial-gradient(circle at 52% 42%, rgba(252, 149, 1, 0.1), transparent 29rem),
    linear-gradient(180deg, #050301 0%, #000101 48%, #030201 100%);
  color: var(--color-white);
  color-scheme: dark;
  scroll-margin-top: var(--header-offset);
}

.final-cta::before {
  content: "";
  position: absolute;
  inset-inline: var(--page-gutter);
  top: 0;
  z-index: 4;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(252, 149, 1, 0.38), transparent);
  pointer-events: none;
}

.final-cta__decor,
.final-cta__lines,
.final-cta__glow,
.final-cta__vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.final-cta__decor {
  z-index: 0;
  overflow: hidden;
}

.final-cta__lines {
  z-index: 1;
  inset: -6% -8%;
  opacity: 0.62;
  mix-blend-mode: screen;
}

.final-cta__line-art {
  display: block;
  width: 100%;
  height: 100%;
  animation: final-cta-line-drift 18s ease-in-out infinite alternate;
}

.final-cta__line {
  fill: none;
  stroke-linecap: round;
  stroke-width: 1.35;
  stroke-dasharray: 9 26;
  animation: final-cta-line-flow 16s linear infinite;
}

.final-cta__line--one,
.final-cta__line--three {
  stroke: rgba(252, 149, 1, 0.42);
}

.final-cta__line--two {
  stroke: rgba(255, 198, 111, 0.28);
  stroke-dasharray: 5 22;
  animation-duration: 21s;
}

.final-cta__line--four,
.final-cta__line--five {
  stroke: rgba(252, 36, 1, 0.16);
  stroke-width: 1;
  stroke-dasharray: 12 34;
  animation-duration: 24s;
  animation-direction: reverse;
}

.final-cta__glow {
  z-index: 2;
  top: 46%;
  left: 51%;
  width: clamp(19rem, 42vw, 48rem);
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  opacity: 0.7;
  transform: translate3d(-50%, -50%, 0);
  background:
    radial-gradient(circle, rgba(255, 190, 90, 0.24) 0%, rgba(252, 149, 1, 0.17) 22%, rgba(252, 36, 1, 0.08) 42%, transparent 68%);
  filter: blur(30px);
  animation: final-cta-glow-breathe 12s ease-in-out infinite;
}

.final-cta__vignette {
  z-index: 3;
  background:
    linear-gradient(180deg, rgba(0, 1, 1, 0.96) 0%, rgba(0, 1, 1, 0.34) 36%, rgba(0, 1, 1, 0.78) 100%),
    radial-gradient(ellipse at 70% 48%, transparent 0%, rgba(0, 1, 1, 0.42) 52%, rgba(0, 1, 1, 0.84) 100%);
}

.final-cta__content {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.final-cta__marker {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.final-cta__marker > span {
  color: var(--color-orange);
}

.final-cta__title {
  max-width: min(100%, 68rem);
  margin: clamp(1.35rem, 2.8vw, 2.35rem) 0 0;
  font-size: var(--home-section-title-xl);
  font-weight: var(--font-weight-bold);
  line-height: 0.94;
  letter-spacing: 0;
}

.final-cta__title-mask {
  display: block;
  overflow: hidden;
  padding-bottom: 0.07em;
}

.final-cta__title-line {
  display: block;
  white-space: nowrap;
}

.final-cta__copy {
  max-width: 42rem;
  margin: clamp(1.4rem, 2.6vw, 2.35rem) 0 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: var(--text-lg);
  line-height: 1.58;
}

.final-cta__button {
  --final-cta-magnetic-x: 0px;
  --final-cta-magnetic-y: 0px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  min-height: 3.65rem;
  margin-top: clamp(1.75rem, 3vw, 2.7rem);
  padding: 0.96rem 1.35rem;
  overflow: hidden;
  border-radius: 0.85rem;
  background: linear-gradient(135deg, #fc9501, #ffbd58);
  color: var(--color-black);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 1.25rem 3.4rem rgba(252, 149, 1, 0.24);
  transform: translate3d(var(--final-cta-magnetic-x), var(--final-cta-magnetic-y), 0);
  transition: background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.final-cta__button-icon {
  rotate: -45deg;
  transition: transform 200ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .final-cta__button:hover,
  .final-cta__button:focus-visible {
    background: linear-gradient(135deg, #ffac26, #ffd28b);
    box-shadow: 0 1.45rem 3.7rem rgba(252, 149, 1, 0.3);
  }

  .final-cta__button:is(:hover, :focus-visible) .final-cta__button-icon {
    transform: translate(0.26rem, -0.26rem);
  }
}

@keyframes final-cta-line-flow {
  from {
    stroke-dashoffset: 0;
  }

  to {
    stroke-dashoffset: -140;
  }
}

@keyframes final-cta-line-drift {
  from {
    transform: translate3d(-0.6%, 0.8%, 0) scale(1.01);
  }

  to {
    transform: translate3d(0.7%, -0.6%, 0) scale(1.015);
  }
}

@keyframes final-cta-glow-breathe {
  0%,
  100% {
    opacity: 0.58;
    transform: translate3d(-50%, -50%, 0) scale(0.96);
  }

  50% {
    opacity: 0.78;
    transform: translate3d(-50%, -51.5%, 0) scale(1.04);
  }
}

@media (max-width: 63.999rem) {
  .final-cta {
    min-height: clamp(32rem, 78svh, 48rem);
    padding-block: calc(var(--header-offset) + 4.4rem) 4.75rem;
  }

  .final-cta__title {
    font-size: clamp(2.4rem, 7.4vw, 5.1rem);
  }

  .final-cta__copy {
    max-width: 36rem;
    font-size: var(--text-base);
  }
}

@media (max-width: 47.999rem) {
  .final-cta {
    min-height: clamp(31rem, 78svh, 44rem);
    padding-block: calc(var(--header-offset) + 3.55rem) 4.2rem;
  }

  .final-cta__lines {
    inset: -8% -22%;
    opacity: 0.45;
  }

  .final-cta__glow {
    top: 43%;
    left: 56%;
    width: min(25rem, 86vw);
    filter: blur(24px);
  }

  .final-cta__title {
    font-size: clamp(1.9rem, 8.2vw, 3.5rem);
    line-height: 1;
  }

  .final-cta__copy {
    max-width: 31rem;
    margin-top: 1.25rem;
  }

  .final-cta__button {
    width: 100%;
    max-width: 21rem;
  }
}

@media (max-width: 22.5rem) {
  .final-cta__title {
    font-size: 1.78rem;
  }

  .final-cta__marker {
    letter-spacing: 0.11em;
  }
}

@media (min-width: 48rem) and (max-height: 40rem) {
  .final-cta {
    min-height: auto;
    padding-block: calc(var(--header-offset) + 2.35rem) 2.8rem;
  }

  .final-cta__title {
    font-size: clamp(2.5rem, 5.2vw, 4.5rem);
  }

  .final-cta__copy {
    max-width: 39rem;
    margin-top: 1rem;
  }

  .final-cta__button {
    margin-top: 1.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .final-cta__glow {
    animation: none !important;
    transition: none !important;
  }

  .final-cta__line-art,
  .final-cta__line,
  .final-cta [data-final-cta-reveal],
  .final-cta [data-final-cta-title-line],
  .final-cta__button,
  .final-cta__button-icon {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }

  .final-cta__button {
    --final-cta-magnetic-x: 0px;
    --final-cta-magnetic-y: 0px;
  }

  .final-cta__button-icon {
    rotate: -45deg;
  }
}

.reduced-motion .final-cta__glow {
  animation: none !important;
  transition: none !important;
}

.reduced-motion .final-cta__line-art,
.reduced-motion .final-cta__line,
.reduced-motion .final-cta [data-final-cta-reveal],
.reduced-motion .final-cta [data-final-cta-title-line],
.reduced-motion .final-cta__button,
.reduced-motion .final-cta__button-icon {
  animation: none !important;
  transition: none !important;
  transform: none !important;
}

.reduced-motion .final-cta__button {
  --final-cta-magnetic-x: 0px;
  --final-cta-magnetic-y: 0px;
}

.reduced-motion .final-cta__button-icon {
  rotate: -45deg;
}

@media (min-width: 48rem) and (max-width: 64rem) {
  .about-preview__statement,
  .featured-experience__title,
  .services__title,
  .our-work__title,
  .weddings__title,
  .partners__title,
  .participants-customers__title,
  .advertising__title,
  .final-cta__title {
    font-size: var(--home-section-title-tablet);
  }
}

@media (max-width: 47.999rem) {
  .about-preview__statement,
  .featured-experience__title,
  .services__title,
  .our-work__title,
  .weddings__title,
  .partners__title,
  .participants-customers__title,
  .advertising__title,
  .final-cta__title {
    font-size: var(--home-section-title-mobile);
    line-height: 1.05;
  }
}

@media (orientation: landscape) and (max-height: 40.625rem) {
  .featured-experience__title {
    font-size: clamp(2.125rem, 4.5vw, 3rem);
  }
}

@media (min-width: 48rem) and (max-height: 40rem) {
  .advertising__title {
    font-size: clamp(2.85rem, 5.4vw, 4.6rem);
  }

  .final-cta__title {
    font-size: clamp(2.5rem, 5.2vw, 4.5rem);
  }
}
