/**
 * BeaconOS v3.59.3 isolated authoritative Hero render contract.
 * Shared by the Campaign Content Manager preview and public campaign renderer.
 */
.beacon-hero-contract {
  --teal: #006c71;
  --coral: #f26a5d;
  --cream: #faeedc;
  --slate: #71797f;
  --charcoal: #2c2c2c;
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 100%;
  min-height: clamp(620px, 68vw, 860px);
  padding: clamp(64px, 7vw, 104px) 0 0;
  overflow: hidden;
  color: var(--charcoal);
  background-color: transparent;
  background-image: none;
  background-repeat: no-repeat;
  background-size: cover;
}
.beacon-hero-contract *,
.beacon-hero-contract *::before,
.beacon-hero-contract *::after { box-sizing: border-box; }
.beacon-hero-contract__overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.beacon-hero-contract__grid {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 40px));
  min-width: 0;
  min-height: inherit;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(380px, 1.02fr);
  gap: clamp(30px, 4.5vw, 70px);
  align-items: stretch;
}
.beacon-hero-contract--no-media .beacon-hero-contract__grid {
  grid-template-columns: minmax(0, 1fr);
  padding-bottom: clamp(56px, 7vw, 96px);
}
.beacon-hero-contract__copy {
  position: relative;
  z-index: 2;
  min-width: 0;
  max-width: 650px;
  align-self: center;
  padding: 0 0 clamp(48px, 6vw, 76px);
}
.beacon-hero-contract--no-media .beacon-hero-contract__copy { max-width: 820px; padding-bottom: 0; }
.beacon-hero-contract__eyebrow {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 0 22px !important;
  padding: 9px 15px !important;
  border-radius: 999px !important;
  background: var(--badge-color, var(--coral)) !important;
  color: #fff !important;
  font-size: .72rem !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(44,44,44,.08);
}
.beacon-hero-contract__match {
  margin: 0 0 8px !important;
  color: var(--teal) !important;
  font-size: .75rem !important;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
}
.beacon-hero-contract__name {
  margin: 0 0 5px !important;
  color: var(--slate) !important;
  font-size: clamp(1.1rem, 1.55vw, 1.45rem) !important;
}
.beacon-hero-contract h1 {
  max-width: 10.8ch !important;
  margin: 0 0 25px !important;
  color: var(--teal);
  font-size: clamp(3.2rem, 4.65vw, 5.35rem) !important;
  line-height: .93 !important;
  letter-spacing: -.048em !important;
  overflow-wrap: anywhere;
}
.beacon-hero-contract--no-media h1 { max-width: 13ch !important; }
.beacon-hero-contract__lead {
  max-width: 58ch !important;
  color: var(--slate);
  font-size: clamp(.98rem, 1.1vw, 1.12rem) !important;
  line-height: 1.65 !important;
}
.beacon-hero-contract__lead p:first-child { margin-top: 0; }
.beacon-hero-contract__lead p:last-child { margin-bottom: 0; }
.beacon-hero-contract__statement {
  margin-top: 18px !important;
  color: var(--teal);
  font-size: 1.02rem !important;
  line-height: 1.6;
  font-weight: 800;
}
.beacon-hero-contract__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px !important;
  margin-top: 24px !important;
}
.beacon-hero-contract__actions:empty { display: none; }
.beacon-hero-contract__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 13px 22px !important;
  border: 1px solid var(--teal);
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  color: var(--teal);
  font: inherit;
  font-size: .95rem !important;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.beacon-hero-contract__button--primary { background: var(--teal); color: #fff; }
.beacon-hero-contract__button.is-disabled { cursor: not-allowed; opacity: .64; }
.beacon-hero-contract__media {
  position: relative !important;
  min-width: 0;
  min-height: 520px !important;
  height: auto !important;
  margin: 0 !important;
  align-self: stretch !important;
}
.beacon-hero-contract__media img {
  display: block;
  max-height: none !important;
  --beacon-hero-x: 0px;
  --beacon-hero-y: 0px;
  --beacon-hero-scale: 1;
  transform: translate3d(
    clamp(-160px, var(--beacon-hero-x), 160px),
    clamp(-160px, var(--beacon-hero-y), 160px),
    0
  ) scale(clamp(.5, var(--beacon-hero-scale), 1.8)) !important;
  will-change: transform;
}
.beacon-hero-contract__media--cutout {
  overflow: visible !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.beacon-hero-contract__media--cutout img {
  position: absolute !important;
  right: 0 !important;
  bottom: 0 !important;
  width: auto !important;
  height: 100% !important;
  max-width: 112% !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform-origin: right bottom !important;
}
.beacon-hero-contract__media--card {
  min-height: 0 !important;
  height: clamp(440px, 42vw, 600px) !important;
  margin-bottom: clamp(48px, 6vw, 78px) !important;
  align-self: center !important;
  overflow: hidden !important;
  border: 1px solid rgba(44,44,44,.10);
  border-radius: 32px !important;
  background: rgba(255,255,255,.52);
  box-shadow: 0 24px 70px rgba(44,44,44,.17) !important;
}
.beacon-hero-contract__media--card img,
.beacon-hero-contract__media--full img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  border-radius: inherit !important;
  box-shadow: none !important;
  transform-origin: center center !important;
}
.beacon-hero-contract__media--full {
  min-height: 0 !important;
  height: clamp(480px, 48vw, 680px) !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
}
.beacon-hero-live-preview-host {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  background: #f7fbfb;
}
.beacon-hero-live-preview-host.is-rendering::after {
  content: "Updating canonical preview…";
  position: absolute;
  right: 14px;
  top: 14px;
  z-index: 10;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #31545a;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(31,57,65,.12);
}
@media (max-width: 1050px) {
  .beacon-hero-contract { min-height: 0; padding-top: 56px; }
  .beacon-hero-contract__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .beacon-hero-contract__copy { max-width: 760px; padding-bottom: 14px; }
  .beacon-hero-contract__media { min-height: min(68vw, 560px) !important; height: min(68vw, 560px) !important; }
  .beacon-hero-contract__media--card { margin-bottom: 54px !important; }
  .beacon-hero-contract__media img {
    transform: translate3d(clamp(-100px, var(--beacon-hero-x), 100px), clamp(-100px, var(--beacon-hero-y), 100px), 0) scale(clamp(.65, var(--beacon-hero-scale), 1.45)) !important;
  }
  .beacon-hero-contract__media--cutout img { right: 0 !important; max-width: 100% !important; }
}
@media (max-width: 700px) {
  .beacon-hero-contract { padding-top: 42px; }
  .beacon-hero-contract__grid { width: min(100% - 28px, 1180px); }
  .beacon-hero-contract h1 { max-width: none !important; font-size: clamp(2.65rem, 13vw, 4rem) !important; }
  .beacon-hero-contract__actions { align-items: stretch; flex-direction: column; }
  .beacon-hero-contract__button { width: 100%; }
  .beacon-hero-contract__media { min-height: min(105vw, 520px) !important; height: min(105vw, 520px) !important; }
  .beacon-hero-contract__media--card { height: min(118vw, 560px) !important; margin-bottom: 38px !important; }
  .beacon-hero-contract__media img {
    transform: translate3d(clamp(-60px, var(--beacon-hero-x), 60px), clamp(-60px, var(--beacon-hero-y), 60px), 0) scale(clamp(.7, var(--beacon-hero-scale), 1.3)) !important;
  }
  .beacon-hero-contract__media--cutout img { max-width: 118% !important; }
}


/* v3.59.3 accessibility and media-delivery hardening. */
.beacon-hero-contract__button:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(0,108,113,.72);
}
.beacon-hero-contract__media img {
  content-visibility: auto;
}
@media (prefers-reduced-motion: reduce) {
  .beacon-hero-contract__media img {
    will-change: auto;
    transition: none !important;
  }
  .beacon-hero-contract__button {
    transition: none !important;
  }
}
@media (forced-colors: active) {
  .beacon-hero-contract__button,
  .beacon-hero-contract__eyebrow {
    border: 2px solid ButtonText;
  }
}

/* v3.59.4 media failure-state hardening. */
.beacon-hero-contract__media[hidden]{display:none!important}
.beacon-hero-contract--media-load-error .beacon-hero-contract__grid,.beacon-hero-contract--no-media .beacon-hero-contract__grid{grid-template-columns:minmax(0,1fr)!important}
.beacon-hero-contract--media-load-error .beacon-hero-contract__copy{max-width:760px}


/* v3.59.6 aspect-ratio and transparency presentation matrix. */
.beacon-hero-contract__media--transparent.beacon-hero-contract__media--portrait img,
.beacon-hero-contract__media--transparent.beacon-hero-contract__media--square img {
  right: 0 !important;
  bottom: 0 !important;
  width: auto !important;
  height: 100% !important;
  object-fit: contain !important;
  transform-origin: right bottom !important;
}
.beacon-hero-contract__media--transparent.beacon-hero-contract__media--landscape img {
  right: 0 !important;
  bottom: 0 !important;
  width: min(112%, 760px) !important;
  height: auto !important;
  max-height: 100% !important;
  object-fit: contain !important;
  transform-origin: right bottom !important;
}
.beacon-hero-contract__media--photographic.beacon-hero-contract__media--portrait {
  aspect-ratio: 4 / 5;
  height: auto !important;
  max-height: 640px;
}
.beacon-hero-contract__media--photographic.beacon-hero-contract__media--landscape {
  aspect-ratio: 16 / 10;
  height: auto !important;
  max-height: 560px;
}
.beacon-hero-contract__media--photographic.beacon-hero-contract__media--square {
  aspect-ratio: 1 / 1;
  height: auto !important;
  max-height: 600px;
}
.beacon-hero-contract__media--photographic img {
  width: 100% !important;
  height: 100% !important;
}
@media (max-width: 1050px) {
  .beacon-hero-contract__media--transparent.beacon-hero-contract__media--landscape {
    min-height: min(58vw, 460px) !important;
    height: min(58vw, 460px) !important;
  }
}
@media (max-width: 700px) {
  .beacon-hero-contract__media--transparent.beacon-hero-contract__media--landscape {
    min-height: min(72vw, 390px) !important;
    height: min(72vw, 390px) !important;
  }
  .beacon-hero-contract__media--photographic {
    width: 100%;
    max-height: none;
  }
}
