.app-home-hero {
  position: relative;
  min-height: 36rem;
  display: flex;
  align-items: center;
  padding: clamp(4.5rem, 8vw, 7rem) 0;
  color: var(--app-color-text);
}

.app-home-hero h1,
.app-home-hero h2,
.app-home-hero h3,
.app-home-hero p {
  color: inherit;
}

.app-home-hero h1,
.app-home-hero h2 {
  max-width: 13ch;
  margin-bottom: 1.25rem;
  font-size: clamp(2.35rem, 5vw, 4.75rem);
  line-height: 0.98;
  letter-spacing: -0.04em;
}

.app-home-hero__copy {
  position: relative;
  z-index: 2;
  max-width: 45rem;
}

.app-home-hero__eyebrow {
  margin-bottom: 0.8rem;
  color: var(--primary);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.app-home-hero__lead {
  max-width: 42rem;
  margin: 0;
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
  line-height: 1.65;
  opacity: 0.88;
}

.app-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.app-home-hero__feature-rail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  margin-top: clamp(2.25rem, 4vw, 3.5rem);
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(12, 20, 30, 0.68);
  box-shadow: inset 0.2rem 0 0 var(--primary);
  backdrop-filter: blur(4px);
}

.app-home-hero__feature-item {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.35rem;
}

.app-home-hero__feature-item + .app-home-hero__feature-item {
  border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.app-home-hero__feature-icon {
  flex: 0 0 auto;
  color: var(--action-on-dark, var(--primary));
  font-size: 1.65rem;
}

.app-home-hero__feature-content {
  display: grid;
  min-width: 0;
  gap: 0.2rem;
}

.app-home-hero__feature-label {
  color: var(--action-on-dark, var(--primary));
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.app-home-hero__feature-text {
  color: #fff;
  font-size: clamp(0.98rem, 1.4vw, 1.12rem);
  font-weight: 600;
  line-height: 1.4;
}

.app-home-hero__backdrop,
.app-home-hero__video,
.app-home-hero__video-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.app-home-hero__backdrop {
  z-index: 0;
  background-image: var(--app-home-hero-image);
  background-position: center;
  background-size: cover;
}

.app-home-hero__backdrop::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(12, 20, 30, 0.92) 0%, rgba(12, 20, 30, 0.72) 46%, rgba(12, 20, 30, 0.18) 100%);
  content: "";
}

.app-home-hero--static-overlay {
  min-height: 38rem;
  color: #fff;
}

/* Static-overlay presets retain the omitted 38rem geometry. */
.app-home-hero--static-overlay.app-home-hero--height-compact { min-height:32rem; }
.app-home-hero--static-overlay.app-home-hero--height-standard { min-height:38rem; }
.app-home-hero--static-overlay.app-home-hero--height-tall { min-height:46rem; }
.app-shell-page-header-overlap .app-home-hero--static-overlay[class*="app-home-hero--height-"] { padding-top:calc(clamp(4.5rem, 8vw, 7rem) + var(--app-page-header-shell-offset, 0px)); }
@media(max-width:991.98px) { .app-home-hero--static-overlay.app-home-hero--height-tall { min-height:42rem; } }
@media(max-width:575.98px) { .app-home-hero--static-overlay.app-home-hero--height-tall { min-height:39rem; } }

.app-home-hero--static-overlay-centered .app-home-hero__backdrop::after {
  background: rgba(12, 20, 30, 0.7);
}

.app-home-hero--static-overlay-centered h2 {
  max-width: 15ch;
}

.app-home-hero--split {
  background: var(--app-color-surface);
}

.app-home-hero__media-frame {
  overflow: hidden;
  min-height: 29rem;
  display: grid;
  place-items: end center;
  border-radius: 1.25rem;
  background: linear-gradient(145deg, var(--primary-rgba-10), var(--secondary-rgba-20));
  box-shadow: var(--app-shadow-soft);
}

.app-home-hero__media-frame img {
  width: 100%;
  max-height: 34rem;
  object-fit: contain;
}

.app-home-hero--cutout {
  box-sizing: border-box;
  display: block;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: transparent;
  color: #fff;
}

.app-home-hero__cutout-panel {
  position: absolute;
  inset: 0 50px;
  z-index: 0;
  overflow: hidden;
  border-radius: calc(var(--border-radius2x) * 2);
  background: var(--primary);
}

.app-home-hero__cutout-panel--decorated::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 110%;
  background-color: var(--secondary);
  content: "";
  opacity: .6;
  pointer-events: none;
  -webkit-mask: var(--app-home-hero-cutout-decoration) no-repeat center center;
  mask: var(--app-home-hero-cutout-decoration) no-repeat center center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.app-home-hero__cutout-media {
  position: absolute;
  inset: 0;
  z-index: 2;
  min-height: 0;
  margin-top: 0;
  overflow: hidden;
}

.app-home-hero__cutout-image {
  position: absolute;
  bottom: 0;
  left: 67%;
  display: block;
  width: clamp(760px, 65vw, 1100px);
  max-width: none;
  height: auto;
  object-fit: contain;
  object-position: center bottom;
  transform: translateX(-50%);
}

.app-home-hero__cutout-row {
  position: relative;
  z-index: 3;
}

.app-home-hero__cutout-copy {
  position: relative;
  z-index: 3;
  margin-left: 0;
}

.app-home-hero__cutout-eyebrow {
  letter-spacing: -.02em;
  line-height: 1.2;
  text-transform: none;
}

.app-home-hero .app-home-hero__cutout-title {
  max-width: 8.5ch;
  letter-spacing: clamp(-1px, -.08vw, -3px);
  line-height: .94;
  text-transform: none;
  white-space: normal;
}

.app-home-hero__cutout-lead {
  letter-spacing: -.01em;
}

.app-home-hero--editorial-collage {
  min-height: 40rem;
  background: var(--app-color-surface);
}

.app-home-hero__editorial-wash {
  position: absolute;
  inset: 0 0 0 42%;
  background-image: linear-gradient(90deg, var(--app-color-surface), transparent 42%), url("/img/base/demos/industry-factory/backgrounds/background-1.jpg?v=95642b5ed55a9d08");
  background-position: center;
  background-size: cover;
  opacity: 0.18;
}

.app-home-hero__editorial-media {
  position: relative;
  min-height: 34rem;
}

.app-home-hero__editorial-block {
  position: absolute;
  top: 7%;
  right: 2%;
  width: 64%;
  height: 74%;
  background: var(--primary);
  opacity: 0.16;
}

.app-home-hero__editorial-image {
  position: absolute;
  display: block;
  border: 0.5rem solid var(--app-color-surface);
  object-fit: cover;
  box-shadow: var(--app-shadow-soft);
}

.app-home-hero__editorial-image--primary {
  top: 0;
  right: 0;
  width: 72%;
  height: 72%;
}

.app-home-hero__editorial-image--secondary {
  bottom: 0;
  left: 0;
  width: 52%;
  height: 48%;
}

.app-home-hero--product-offer {
  min-height: 40rem;
  background: var(--app-color-surface-alt);
}

.app-home-hero__offer {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.75rem;
  color: var(--app-color-muted);
  font-size: 1rem;
}

.app-home-hero__offer strong {
  color: var(--primary);
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1;
}

.app-home-hero__product-stage {
  position: relative;
  min-height: 34rem;
  display: grid;
  place-items: center;
}

.app-home-hero__product-orbit {
  position: absolute;
  width: min(78%, 30rem);
  aspect-ratio: 1;
  border: clamp(1.75rem, 4vw, 3.5rem) solid var(--primary-rgba-10);
  border-radius: 50%;
  background: var(--secondary-rgba-10);
}

.app-home-hero__product-image {
  position: relative;
  z-index: 1;
  width: min(100%, 36rem);
  max-height: 34rem;
  object-fit: contain;
  filter: drop-shadow(0 1.5rem 2.5rem var(--dark-rgba-20));
}

.app-home-hero--ken-burns-geometric {
  min-height: 40rem;
  background: var(--app-color-surface);
}

.app-home-hero__ken-burns-backdrop {
  animation: app-home-hero-ken-burns 24s ease-in-out infinite alternate;
  transform: scale(1.04);
  transform-origin: 72% 50%;
}

.app-home-hero__ken-burns-backdrop::after {
  background: linear-gradient(90deg, transparent 35%, rgba(12, 20, 30, 0.08) 62%, rgba(12, 20, 30, 0.28));
}

.app-home-hero__geometric-panel {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 0;
  width: auto;
  height: calc(100% + 10rem);
  max-width: none;
  transform: translateY(-50%);
}

.app-home-hero__geometric-fill {
  fill: var(--app-color-surface);
}

.app-home-hero__geometric-stroke {
  fill: none;
  stroke: var(--primary);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  opacity: 0.58;
}

@keyframes app-home-hero-ken-burns {
  from {
    transform: scale(1.04) translate3d(0, 0, 0);
  }

  to {
    transform: scale(1.13) translate3d(-1.5%, 0, 0);
  }
}

.app-home-hero--video {
  contain: paint;
  min-height: 40rem;
  color: #fff;
  background: var(--dark, #212529);
}

.app-home-hero__video {
  z-index: 0;
  object-fit: cover;
}

.app-home-hero__video-overlay {
  z-index: 1;
  background: linear-gradient(90deg, rgba(8, 16, 24, 0.92), rgba(8, 16, 24, 0.58) 58%, rgba(8, 16, 24, 0.22));
}

.app-home-hero__shape {
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 0;
  width: min(68%, 58rem);
  height: 100%;
  fill: var(--primary);
  opacity: 0.78;
}

.app-home-hero__shape-line {
  fill: none;
  stroke: var(--secondary, #6c757d);
  stroke-width: 10;
}

.app-home-hero--carousel {
  min-height: 0;
  display: block;
  padding: 0;
  background: var(--dark, #212529);
  color: #fff;
}

.app-home-hero__carousel-viewport {
  position: relative;
  min-height: 39rem;
  overflow: hidden;
}

.app-home-hero__carousel-slide {
  position: absolute;
  inset: 0;
  min-height: 39rem;
  background-image: var(--app-home-hero-image);
  background-position: center;
  background-size: cover;
}

.app-home-hero__carousel-slide[hidden] {
  display: none;
}

.app-home-hero__carousel-overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 16, 24, 0.72);
}

.app-home-hero__carousel-slide h2 {
  max-width: 16ch;
  margin-right: auto;
  margin-left: auto;
}

.app-home-hero__carousel-control {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0.25rem;
  padding: 0;
  background: var(--primary);
  color: var(--primary-inverse, #fff);
  box-shadow: none;
  font-size: 0.9rem;
  line-height: 1;
  transform: translateY(-50%);
}

.app-home-hero__carousel-control i {
  display: block;
  line-height: 1;
}

.app-home-hero__carousel-control--previous {
  left: 1rem;
}

.app-home-hero__carousel-control--next {
  right: 1rem;
}

.app-home-hero__carousel-dots {
  position: absolute;
  z-index: 3;
  bottom: 1.25rem;
  left: 50%;
  display: flex;
  gap: 0.5rem;
  transform: translateX(-50%);
}

.app-home-hero__carousel-dots button {
  width: 0.75rem;
  height: 0.75rem;
  border: 2px solid #fff;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.app-home-hero__carousel-dots button[aria-pressed="true"] {
  background: #fff;
}

.app-home-hero--spotlight-card {
  min-height: 40rem;
  background-color: var(--dark, #212529);
  background-image: var(--app-home-hero-image);
  background-position: center;
  background-size: cover;
  color: var(--app-color-text);
}

.app-home-hero__spotlight-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8, 16, 24, 0.18), rgba(8, 16, 24, 0.58));
}

.app-home-hero__spotlight {
  position: relative;
  overflow: hidden;
  border-radius: 0.75rem;
  padding: clamp(1.75rem, 4vw, 3rem);
  background: var(--app-color-surface);
  color: var(--app-color-text);
  box-shadow: 0 1.5rem 3.5rem rgba(0, 0, 0, 0.28);
}

.app-home-hero__spotlight h3 {
  margin-bottom: 1rem;
  color: inherit;
  font-size: clamp(2rem, 4vw, 3rem);
  letter-spacing: -0.035em;
}

.app-home-hero__spotlight-tag {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.55rem 1rem;
  background: var(--tertiary);
  color: var(--tertiary-inverse, #fff);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.app-home-hero__spotlight-value {
  margin-bottom: 0.5rem;
  color: var(--primary) !important;
  font-size: 1.25rem;
  font-weight: 800;
}

.app-home-hero__spotlight-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin: 1.5rem 0;
  padding: 0;
  list-style: none;
}

.app-home-hero__spotlight-meta li {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  border-top: 1px solid var(--app-color-border);
  padding-top: 0.75rem;
}

.app-home-hero__spotlight-meta strong {
  color: var(--app-color-muted);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.app-home-hero--service-funnel {
  min-height: 0;
  display: block;
  padding: 0 0 5rem;
  background: var(--app-color-surface-alt);
  color: var(--app-color-text);
}

.app-home-hero__funnel-surface {
  position: relative;
  min-height: 38rem;
  background-color: #edf3f6;
  background-image: var(--app-home-hero-image);
  background-position: center;
  background-size: cover;
  color: var(--dark, #212529);
}

.app-home-hero__funnel-surface > .container {
  min-height: inherit;
  display: flex;
  align-items: center;
}

.app-home-hero__funnel-surface > .container > .row {
  width: 100%;
}

.app-home-hero__funnel-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.82) 46%, rgba(255, 255, 255, 0.12) 78%);
}

.app-home-hero__route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: -5rem;
}

.app-home-hero__route-card {
  position: relative;
  min-height: 19rem;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  border-top: 0.3rem solid var(--primary);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--app-color-surface);
  color: var(--app-color-text);
  box-shadow: var(--app-shadow-card);
}

.app-home-hero__route-card img {
  width: 3.75rem;
  height: 3.75rem;
  margin-bottom: 1.25rem;
  object-fit: contain;
}

.app-home-hero__route-card h3 {
  margin-bottom: 0.75rem;
  color: inherit;
  font-size: 1.45rem;
}

.app-home-hero__route-card > p:not(.app-home-hero__route-number) {
  flex: 1;
  color: inherit;
  opacity: 0.78;
}

.app-home-hero__route-number {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  color: var(--primary) !important;
  font-weight: 800;
  opacity: 0.45;
}

.app-home-hero--form-aside {
  min-height: 42rem;
  color: #fff;
}

.app-home-hero__form {
  border-radius: 1rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background: var(--primary);
  color: var(--primary-inverse, #fff);
  box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.24);
}

.app-home-hero__form h3,
.app-home-hero__form p,
.app-home-hero__form label {
  color: inherit;
}

.app-home-hero__form .form-control {
  min-height: 3.15rem;
  border: 0;
}

html section.section.app-home-hero--typographic-identity {
  min-height: 46rem;
  display: block;
  padding: 2rem 0 4rem;
  background: var(--secondary);
  color: var(--secondary-inverse, #fff);
}

.app-home-hero__identity-row {
  min-height: 9.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--secondary-inverse, #fff);
  padding: 0.75rem clamp(1.25rem, 5vw, 5rem);
}

.app-home-hero__identity-row--middle {
  gap: clamp(1.5rem, 4vw, 4rem);
}

.app-home-hero__identity-row--last {
  border-bottom: 0;
}

.app-home-hero__identity-word {
  display: block;
  color: inherit;
  font-size: clamp(4.5rem, 12vw, 10.5rem);
  font-weight: 800;
  letter-spacing: -0.07em;
  line-height: 0.82;
  white-space: nowrap;
}

.app-home-hero__identity-word--stroke {
  opacity: 0.32;
}

@supports (-webkit-text-stroke: 1px black) {
  .app-home-hero__identity-word--stroke {
    color: transparent;
    opacity: 1;
    -webkit-text-stroke: 2px var(--secondary-inverse, #fff);
  }
}

.app-home-hero__identity-lead {
  max-width: 24rem;
  margin: 0;
  color: inherit;
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.55;
}

.app-home-hero__identity-portrait {
  width: clamp(5.5rem, 10vw, 9rem);
  aspect-ratio: 1;
  margin-right: clamp(1rem, 3vw, 2.5rem);
  border: 0.35rem solid currentColor;
  border-radius: 50%;
  object-fit: cover;
}

.app-home-hero__identity-action {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.app-home-hero__identity-action .btn-link {
  color: inherit;
}

.app-home-hero--revolution {
  min-height: 620px;
  display: block;
  padding: 0;
  background: var(--dark, #212529);
}

.app-home-hero--revolution .slider-container,
.app-home-hero--revolution .rev_slider {
  min-height: 620px;
}

.app-home-hero__revolution-title {
  letter-spacing: -0.04em !important;
}

.app-home-hero__revolution-kicker {
  letter-spacing: 0.16em !important;
}

@media (max-width: 991.98px) {
  .app-home-hero {
    min-height: 34rem;
  }

  .app-home-hero__backdrop::after {
    background: rgba(12, 20, 30, 0.76);
  }

  .app-home-hero__cutout-panel {
    inset: 0;
    clip-path: none;
  }

  .app-home-hero__cutout-media {
    min-height: 20rem;
    margin-top: 2rem;
  }

  .app-home-hero__shape {
    width: 100%;
    opacity: 0.62;
  }

  .app-home-hero__geometric-panel {
    display: none;
  }

  .app-home-hero__ken-burns-backdrop::after {
    background: var(--app-color-surface);
    opacity: 0.9;
  }

  .app-home-hero__editorial-media,
  .app-home-hero__product-stage {
    min-height: 29rem;
  }

  .app-home-hero__route-grid {
    margin-top: -3rem;
  }

  .app-home-hero__identity-row--middle {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 575.98px) {
  .app-home-hero .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }

  .app-home-hero {
    min-height: 31rem;
    padding: 4rem 0;
  }

  .app-home-hero h1,
  .app-home-hero h2 {
    --app-home-hero-responsive-title-size: clamp(2.2rem, 12vw, 3.25rem);
    font-size: var(--app-home-hero-responsive-title-size);
  }

  .app-home-hero__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .app-home-hero__actions .btn {
    width: 100%;
  }

  .app-home-hero__feature-rail {
    grid-template-columns: 1fr;
    margin-top: 2rem;
  }

  .app-home-hero__feature-item {
    padding: 1rem 1.1rem;
  }

  .app-home-hero__feature-item + .app-home-hero__feature-item {
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    border-left: 0;
  }

  .app-home-hero__media-frame {
    min-height: 22rem;
  }

  .app-home-hero__carousel-viewport,
  .app-home-hero__carousel-slide {
    min-height: 34rem;
  }

  .app-home-hero__editorial-media,
  .app-home-hero__product-stage {
    min-height: 22rem;
  }

  .app-home-hero__offer {
    align-items: flex-start;
    flex-direction: column;
  }

  .app-home-hero__spotlight-meta,
  .app-home-hero__route-grid {
    grid-template-columns: 1fr;
  }

  .app-home-hero__route-grid {
    margin-top: -2rem;
  }

  .app-home-hero__route-card {
    min-height: 0;
  }

  .app-home-hero__identity-row {
    min-height: 7rem;
    justify-content: flex-start;
  }

  .app-home-hero__identity-word {
    font-size: clamp(3.4rem, 19vw, 5.5rem);
  }

  .app-home-hero__identity-row--last {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-home-hero__ken-burns-backdrop {
    animation: none;
    transform: none;
  }
}

/* Cutout media preserves the proven inset-panel composition while allowing
 * project-owned foreground media and a project-owned decorative mask. */
.app-home-hero--cutout .app-home-hero__cutout-media {
  min-height: 0;
  margin-top: 0;
}

@media (min-width: 1092px) {
  .app-home-hero--cutout {
    height: auto;
    min-height: clamp(620px, 50vw, 760px);
  }

  .app-home-hero--cutout .app-home-hero__cutout-panel {
    right: clamp(18px, 2.2vw, 50px);
    left: clamp(18px, 2.2vw, 50px);
    border-radius: clamp(18px, 1.3vw, 28px);
  }

  .app-home-hero--cutout .app-home-hero__cutout-row {
    min-height: clamp(620px, 50vw, 760px);
    padding: clamp(3.5rem, 8vw, 10rem) 0 clamp(2rem, 2.5vw, 3rem) clamp(1.5rem, 4vw, 4.5rem);
  }

  .app-home-hero--cutout .app-home-hero__cutout-copy {
    max-width: clamp(28rem, 31vw, 36rem);
    padding: 0;
  }

  .app-home-hero--cutout .app-home-hero__cutout-eyebrow {
    font-size: clamp(1rem, .8rem + .35vw, 1.35rem);
    line-height: 1.15;
  }

  .app-home-hero--cutout .app-home-hero__cutout-title {
    font-size: clamp(3.4rem, 2.3rem + 3vw, 6rem);
  }

  .app-home-hero--cutout .app-home-hero__cutout-lead {
    max-width: clamp(22rem, 26vw, 31rem);
    font-size: clamp(1.2rem, .95rem + .7vw, 1.85rem);
    line-height: 1.35;
  }
}

@media (min-width: 1092px) and (max-width: 1249px) {
  .app-home-hero--cutout .app-home-hero__cutout-copy { max-width: 26rem; }
  .app-home-hero--cutout .app-home-hero__cutout-image { left: 60%; bottom: -25px; max-width: 80vw; }
}

@media (min-width: 1250px) and (max-width: 1399px) {
  .app-home-hero--cutout .app-home-hero__cutout-image { left: 62%; bottom: -35px; }
}

@media (min-width: 1400px) {
  .app-home-hero--cutout .app-home-hero__cutout-image { left: 64%; bottom: -50px; }
}

@media (min-width: 768px) and (max-width: 1091px) {
  .app-home-hero--cutout { min-height: 760px; }
  .app-home-hero--cutout .app-home-hero__cutout-panel { right: 8px; left: 8px; border-radius: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-panel::before { opacity: .2; -webkit-mask-size: cover; mask-size: cover; }
  .app-home-hero--cutout .app-home-hero__cutout-row { min-height: 760px; padding: 2.75rem 1.5rem 10rem; }
  .app-home-hero--cutout .app-home-hero__cutout-copy { max-width: 40rem; padding: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-eyebrow { margin-bottom: 1rem !important; font-size: 1rem; }
  .app-home-hero--cutout .app-home-hero__cutout-title { max-width: 10ch; margin-bottom: 1.25rem !important; font-size: clamp(3rem, 5vw, 4.1rem); line-height: .96; }
  .app-home-hero--cutout .app-home-hero__cutout-lead { max-width: 34rem; font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.4; }
  .app-home-hero--cutout .app-home-hero__cutout-image { bottom: 0; left: 50%; width: min(88vw, 860px); max-width: none; }
}

@media (min-width: 576px) and (max-width: 767px) {
  .app-home-hero--cutout { height: clamp(650px, 50vh, 800px); min-height: 0; }
  .app-home-hero--cutout .container { margin: 0 2vw !important; }
  .app-home-hero--cutout .app-home-hero__cutout-panel { right: 0; left: 0; border-radius: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-panel::before { opacity: .18; -webkit-mask-size: cover; mask-size: cover; }
  .app-home-hero--cutout .app-home-hero__cutout-row { min-height: inherit; padding: 1.5rem 1.25rem 8.5rem; }
  .app-home-hero--cutout .app-home-hero__cutout-copy { max-width: 100%; padding: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-eyebrow { margin-bottom: .9rem !important; font-size: 1rem; }
  .app-home-hero--cutout .app-home-hero__cutout-title { max-width: 9ch; margin-bottom: 1rem !important; font-size: clamp(2.7rem, 6vh, 4rem); line-height: .98; }
  .app-home-hero--cutout .app-home-hero__cutout-lead { max-width: 30rem; font-size: clamp(1.08rem, 2.6vw, 1.32rem); line-height: 1.42; }
  .app-home-hero--cutout .app-home-hero__cutout-image { bottom: 0; left: 50%; width: min(90vw, 700px); max-width: none; }
}

@media (max-width: 575px) {
  .app-home-hero--cutout { min-height: 620px; padding: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-panel { right: 0; left: 0; border-radius: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-panel::before { opacity: .14; -webkit-mask-position: center top; mask-position: center top; -webkit-mask-size: cover; mask-size: cover; }
  .app-home-hero--cutout .app-home-hero__cutout-row { min-height: 620px; padding: 2rem 1rem 7rem; }
  .app-home-hero--cutout .app-home-hero__cutout-copy { max-width: 100%; padding: 0; }
  .app-home-hero--cutout .app-home-hero__cutout-eyebrow { margin-bottom: .75rem !important; font-size: .95rem; }
  .app-home-hero--cutout .app-home-hero__cutout-title { max-width: 12ch; margin-bottom: .9rem !important; font-size: clamp(2.25rem, 9vw, 3.1rem); line-height: .98; }
  .app-home-hero--cutout .app-home-hero__cutout-lead { max-width: 100%; font-size: clamp(1rem, 4.1vw, 1.2rem); line-height: 1.45; }
  .app-home-hero--cutout .app-home-hero__cutout-image { bottom: 0; left: 50%; width: min(102vw, 560px); max-width: none; }
}

/* Geometric split hero adapted from the Renewable Energy demo. Each panel is
 * a registered General Section column with independent surface or image data. */
.app-home-hero--geometric-column-split {
  display: block;
  min-height: 0;
  overflow: hidden;
  background: var(--app-color-surface);
}
.app-home-hero__column-grid {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: clamp(40rem, 52vw, 48rem);
}
.app-home-hero--height-compact .app-home-hero__column-grid { min-height: clamp(36rem, 46.8vw, 43.2rem); }
.app-home-hero__column-panel {
  position: relative;
  isolation: isolate;
  min-width: 0;
  overflow: hidden;
}
.app-home-hero__column-panel::before,
.app-home-hero__column-panel::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  content: "";
}
.app-home-hero__column-panel::before {
  background-image: var(--app-home-hero-panel-image);
  background-position: center;
  background-size: cover;
  transform: scale(1.035);
}
.app-home-hero__column-panel::after { z-index: 1; }
.app-home-hero__column-panel--position-left::before { background-position: left center; }
.app-home-hero__column-panel--position-right::before { background-position: right center; }
.app-home-hero__column-panel--position-top::before { background-position: center top; }
.app-home-hero__column-panel--position-bottom::before { background-position: center bottom; }
.app-home-hero__column-panel--overlay-soft::after { background: rgba(12, 20, 30, .22); }
.app-home-hero__column-panel--overlay-medium::after { background: rgba(12, 20, 30, .46); }
.app-home-hero__column-panel--overlay-strong::after { background: rgba(12, 20, 30, .7); }
.app-home-hero__column-panel--motion-drift-left::before { animation: app-hero-panel-drift-left 18s ease-out both; }
.app-home-hero__column-panel--motion-drift-right::before { animation: app-hero-panel-drift-right 18s ease-out both; }
.app-home-hero__column-content { position: relative; z-index: 2; width: min(100%, 42rem); margin: auto; }
.app-home-hero__column-panel--background-video .app-home-hero__column-content {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  margin: 0;
}
.app-home-hero__column-panel--background-video .app-general-video--background-cover { min-height: 100%; }
.app-home-hero__column-panel--has-background { color: var(--light); }
.app-home-hero__column-panel--has-background .app-general-column__title,
.app-home-hero__column-panel--has-background .app-general-content-flow .lead,
.app-home-hero__column-panel--has-background .app-general-content-flow p { color: inherit; }
.app-home-hero--split-direction-left .app-home-hero__column-panel--1 {
  z-index: 2;
  padding-right: clamp(4rem, 8vw, 9rem);
  clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%);
}
.app-home-hero--split-direction-left .app-home-hero__column-panel--2 { margin-left: clamp(-6rem, -5vw, -3rem); padding-left: clamp(6rem, 9vw, 11rem); }
.app-home-hero--split-direction-right .app-home-hero__column-panel--2 {
  z-index: 2;
  padding-left: clamp(4rem, 8vw, 9rem);
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
}
.app-home-hero--split-direction-right .app-home-hero__column-panel--1 { margin-right: clamp(-6rem, -5vw, -3rem); padding-right: clamp(6rem, 9vw, 11rem); }

.app-home-hero--divider-renewable-curve .app-home-hero__column-panel { z-index: 3; }
/* Place the video's focal area in the exposed half of the full-width curve layer. */
.app-home-hero--divider-renewable-curve .app-general-video--position-right-quarter video { transform: translateX(25%); }
.app-home-hero--divider-renewable-curve.app-home-hero--split-direction-left .app-home-hero__column-panel--2,
.app-home-hero--divider-renewable-curve.app-home-hero--split-direction-right .app-home-hero__column-panel--1 {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.app-home-hero--divider-renewable-curve.app-home-hero--split-direction-left .app-home-hero__column-panel--1,
.app-home-hero--divider-renewable-curve.app-home-hero--split-direction-right .app-home-hero__column-panel--2 {
  z-index: 3;
  padding-inline: clamp(3rem, 6vw, 5rem);
  overflow: visible;
  clip-path: none;
  background: transparent;
}
.app-home-hero__renewable-circle {
  position: absolute;
  width: 1400px;
  height: 1400px;
  border-radius: 100%;
  pointer-events: none;
  transform: scale(var(--app-home-hero-divider-scale, 1));
  transform-origin: right center;
}
.app-home-hero--divider-scale-large { --app-home-hero-divider-scale: 1.5; }
.app-home-hero--split-direction-right .app-home-hero__renewable-circle { transform-origin: left center; }
.app-home-hero__renewable-circle--front {
  z-index: 2;
  top: -62%;
  left: -21%;
  background: var(--app-home-hero-curve-front, var(--primary));
}
.app-home-hero__renewable-circle--rim {
  z-index: 1;
  top: -65%;
  left: -20.3%;
  background: var(--primary-100, var(--primary));
}
.app-home-hero--divider-position-compact.app-home-hero--split-direction-left .app-home-hero__renewable-circle--front { left: calc(-21% - 10vw); }
.app-home-hero--divider-position-compact.app-home-hero--split-direction-left .app-home-hero__renewable-circle--rim { left: calc(-20.3% - 10vw); }
.app-home-hero--split-direction-right .app-home-hero__renewable-circle--front {
  right: -21%;
  left: auto;
}
.app-home-hero--split-direction-right .app-home-hero__renewable-circle--rim {
  right: -20.3%;
  left: auto;
}
.app-home-hero--divider-position-compact.app-home-hero--split-direction-right .app-home-hero__renewable-circle--front { right: calc(-21% - 10vw); }
.app-home-hero--divider-position-compact.app-home-hero--split-direction-right .app-home-hero__renewable-circle--rim { right: calc(-20.3% - 10vw); }

@keyframes app-hero-panel-drift-left { from { transform: scale(1.08) translateX(1.5%); } to { transform: scale(1.035) translateX(0); } }
@keyframes app-hero-panel-drift-right { from { transform: scale(1.08) translateX(-1.5%); } to { transform: scale(1.035) translateX(0); } }

@media (max-width: 991px) {
  .app-home-hero__column-grid { grid-template-columns: 1fr; min-height: 0; }
  .app-home-hero--height-compact .app-home-hero__column-grid { min-height: 0; }
  .app-home-hero__column-panel { min-height: 32rem; margin: 0 !important; clip-path: none !important; }
  .app-home-hero--geometric-column-split .app-home-hero__column-panel { padding: clamp(2.75rem, 7vw, 4.5rem) clamp(1.25rem, 6vw, 3rem); }
  .app-home-hero--divider-renewable-curve.app-home-hero--split-direction-left .app-home-hero__column-panel--2,
  .app-home-hero--divider-renewable-curve.app-home-hero--split-direction-right .app-home-hero__column-panel--1 { position: relative; width: auto; height: auto; }
  .app-home-hero--divider-renewable-curve .app-home-hero__column-panel { background: var(--app-general-column-background) !important; }
  .app-home-hero--divider-renewable-curve .app-general-video--position-right-quarter video { transform: none; }
  .app-home-hero__renewable-circle { display: none; }
  .app-home-hero--geometric-column-split .app-general-media-collage { min-height: 26rem; }
}

@media (max-width: 575px) {
  .app-home-hero__column-panel { min-height: 0; }
  .app-home-hero__column-panel--background-video { min-height: 24rem; }
  .app-home-hero--geometric-column-split .app-general-media-collage { min-height: 22rem; }
}

@media (prefers-reduced-motion: reduce) {
  .app-home-hero__column-panel::before { animation: none; transform: none; }
}

@media (min-width: 992px) {
 .app-home-hero--curve-balance-even.app-home-hero--divider-renewable-curve.app-home-hero--split-direction-left .app-home-hero__renewable-circle--front { left: calc(52vw - 1400px); }
 .app-home-hero--curve-balance-even.app-home-hero--divider-renewable-curve.app-home-hero--split-direction-left .app-home-hero__renewable-circle--rim { left: calc(52vw - 1392px); }
}

/* Layered display is an optional treatment of the existing centered photo hero. */
.app-home-hero--layered-display { overflow:hidden; isolation:isolate; align-items:flex-end; padding:3rem 0 2rem; }
.app-home-hero--layered-display.app-home-hero--height-tall { min-height:clamp(38rem,40.3vw,48.3125rem); }
.app-home-hero--layered-display .app-home-hero__backdrop::after { background:transparent; }
.app-home-hero--layered-display .app-home-hero__occasion-title { margin:0 0 1rem; color:#fff; font-weight:400; font-size:var(--app-home-hero-responsive-title-size,clamp(4.5rem,10.7vw,12.5rem)); line-height:1; letter-spacing:0; text-align:center; }
.app-home-hero__occasion-meta { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:1rem; text-align:center; }
.app-home-hero__occasion-meta .app-home-hero__eyebrow { margin:0; font-size:1rem; letter-spacing:.15em; }
.app-home-hero--layered-display .app-home-hero__occasion-location { margin:0 0 .6rem; font-size:.875rem; color:#fff; text-align:center; }
.app-home-hero__occasion-meta .app-home-hero__badge { margin:0; padding:1rem 4rem; background:#fff; color:#333; font-weight:700; font-size:1rem; }
.app-home-hero__occasion-meta .app-home-hero__badge:has(img) { background:transparent; }
.app-home-hero--layered-display .app-home-hero__copy { max-width:100%; }
.app-home-hero--layered-display :is(h1,h2) { font-family:var(--mp-heading-font,var(--app-font-display,inherit)); max-width:100%; }
.app-home-hero__watermark { position:absolute; left:2%; bottom:0; color:transparent; -webkit-text-stroke:1px currentColor; -webkit-text-stroke-color:rgba(255,255,255,.3); font-family:var(--mp-heading-font,var(--app-font-display,inherit)); font-weight:400; font-size:clamp(8rem,23vw,30rem); line-height:1; white-space:nowrap; pointer-events:none; }
.app-home-hero__badge { position:relative; isolation:isolate; display:table; margin:1.5rem auto 0; padding:1rem 3rem; color:var(--secondary-inverse,#222); background:var(--secondary,#eee); text-align:center; text-transform:uppercase; letter-spacing:.15em; }
.app-home-hero__badge:has(img) { background:transparent; }
.app-home-hero__badge > img { position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:fill; }
.app-home-hero--badge-text .app-home-hero__occasion-meta .app-home-hero__badge { padding:0; background:transparent; color:#fff; }
.app-home-hero--layered-display.app-home-hero--tinted .app-home-hero__backdrop::after { background:var(--primary,#333); opacity:var(--app-home-hero-overlay-opacity,.2); }
.app-home-hero--layered-display.app-home-hero--badge-text .app-home-hero__occasion-location { font-size:1rem; font-weight:700; text-transform:uppercase; letter-spacing:.15em; }
.app-home-hero__floating { position:absolute; pointer-events:none; width:clamp(2rem,10vw,12rem); height:auto; animation:app-display-float 20s ease-in-out infinite alternate; }
.app-home-hero__floating--1 { left:12%; top:30%; }
.app-home-hero__floating--2 { left:38%; top:55%; width:3rem; animation-delay:-5s; }
.app-home-hero__floating--3 { right:16%; top:18%; animation-delay:-9s; }
.app-home-hero__floating--4 { right:35%; bottom:12%; animation-delay:-14s; }
.app-home-hero--layered-display.app-home-hero--ken-burns .app-home-hero__backdrop { animation:app-display-zoom 30s linear infinite alternate; }
@keyframes app-display-float { from { transform:translateY(-1rem) rotate(-20deg); } to { transform:translateY(2rem) rotate(80deg); } }
@keyframes app-display-zoom { from { transform:scale(1.15); } to { transform:scale(1); } }
@media(max-width:575.98px) {
 .app-home-hero--layered-display.app-home-hero--height-tall { min-height:34rem; }
 .app-home-hero--layered-display .app-home-hero__occasion-title { overflow-wrap:anywhere; }
 .app-home-hero__occasion-meta { gap:.35rem; }
 .app-home-hero__occasion-meta .app-home-hero__eyebrow { font-size:.75rem; }
 .app-home-hero__occasion-meta .app-home-hero__badge { font-size:.75rem; padding:.8rem 2.5rem; }
 .app-home-hero--badge-text .app-home-hero__occasion-meta .app-home-hero__badge { padding:0; }
 .app-home-hero--layered-display.app-home-hero--badge-text .app-home-hero__occasion-location { font-size:.75rem; }
}
@media(prefers-reduced-motion:reduce) { .app-home-hero--layered-display .app-home-hero__floating, .app-home-hero--layered-display.app-home-hero--ken-burns .app-home-hero__backdrop { animation:none; } }
