/* The property and selector share an unframed gray foundation; only the copy is raised. */
.hero {
  max-width: none;
  padding: clamp(50px, 4.2vw, 60px) clamp(28px, 5vw, 92px) clamp(52px, 4.5vw, 64px);
  background: var(--hero-foundation);
  --hero-foundation: #f4f5f7;
}
.hero .audience-experience {
  --support-font-size: 1rem;
  display: grid;
  grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
  gap: clamp(36px, 3vw, 44px);
  align-items: stretch;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
}
.hero .audience-experience::before { content: none; }
.hero .hero-gallery { display: flex; flex-direction: column; min-width: 0; padding: 0; }
.hero .property-carousel { --carousel-edge-space: 0px; display: flex; flex: 1; flex-direction: column; align-self: stretch; width: 100%; min-width: 0; margin-inline: 0; padding: 0; }
.hero .carousel-visual { display: flex; flex: 1; flex-direction: column; align-items: center; align-self: stretch; width: 100%; min-width: 0; margin-inline: 0; }
.hero .carousel-controls {
  position: relative;
  inset: auto;
  justify-content: center;
  gap: 14px;
  width: 100%;
  height: 44px;
  margin: 0 0 14px;
}
.hero #properties { flex: 1; width: 100%; min-height: clamp(350px, 29vw, 385px); }
.hero #properties::before {
  height: 20%;
  bottom: 2%;
  background: radial-gradient(ellipse, color-mix(in srgb, var(--navy) 13%, transparent), transparent 72%);
}
.hero #properties .property { width: clamp(320px, 27vw, 365px); }
.hero .carousel-segments {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-width: none;
  margin: 12px 0 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
  overflow: visible;
}
.hero .carousel-segments button {
  min-height: 54px;
  padding: 10px 6px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--line);
  font-size: 1rem;
}
.hero .carousel-segments button:hover {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--blue);
  color: var(--blue);
}
.hero .carousel-segments button[aria-pressed="true"],
.hero .carousel-segments button[aria-pressed="true"]:hover {
  border: 0;
  background: var(--blue);
  box-shadow: inset 0 -3px 0 var(--brand-sand);
  color: white;
}
.hero .carousel-segments button:focus-visible { z-index: 1; }
.hero .carousel-segments button[aria-pressed="true"]::after { content: none; }
.hero .audience-content-shell {
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  border-radius: 18px;
  background: white;
  box-shadow: 0 12px 35px color-mix(in srgb, var(--navy) 8%, transparent);
}
.hero #audience-hero-panel {
  display: grid;
  grid-template-rows: auto minmax(min-content, 1fr) auto;
  min-height: 100%;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(30px, 3vw, 42px) clamp(30px, 3.8vw, 56px) clamp(30px, 2.6vw, 38px);
  border-radius: inherit;
  background: transparent;
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.45;
}
.hero #audience-description {
  justify-items: start;
  min-height: 0;
  margin: 0;
  padding: 0;
  color: var(--navy);
  font-size: var(--support-font-size);
  text-align: left;
}
.hero .carousel-audience-copy { max-width: none; opacity: 1; transform: none; will-change: auto; font-size: var(--support-font-size); }
.hero #main-title {
  align-self: center;
  max-width: none;
  margin: 0;
  font-size: clamp(27px, 3.1vw, 44px);
  line-height: 1.08;
  text-align: left;
}
.hero .hero-comparison {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 14px;
}
.hero .hero-before {
  display: grid;
  grid-template-columns: minmax(92px, 23%) minmax(0, 1fr);
  align-items: start;
  gap: clamp(16px, 2vw, 32px);
  min-width: 0;
  padding: 20px clamp(17px, 2.4vw, 30px);
  border-radius: 14px;
}
.hero .hero-before { border: 1px solid var(--line); background: white; }
.hero .hero-after.hero-flow-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 14px clamp(17px, 2.4vw, 30px);
  border: 0;
  border-radius: 14px;
  background: var(--brand-sky-soft);
  color: var(--blue);
  text-decoration: none;
  cursor: pointer;
}
.hero .hero-after.hero-flow-link:hover { background: var(--brand-sky); }
.hero .hero-after.hero-flow-link:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.hero .hero-after .hero-flow-arrow { flex: 0 0 auto; font-size: 26px; line-height: 1; }
.hero #audience-hero-panel .hero-state {
  display: flex;
  align-items: flex-start;
  min-height: 100%;
  margin: 0;
  padding: 2px clamp(10px, 1.5vw, 22px) 0 0;
  border-right: 1px solid var(--line);
  font-size: var(--support-font-size);
  line-height: 1.35;
  letter-spacing: 0;
}
.hero .hero-before .hero-state { box-shadow: none; text-decoration: underline; text-decoration-color: var(--brand-sand); text-decoration-thickness: 4px; text-underline-offset: 6px; }
.hero #audience-hero-panel .hero-state-logo { display: block; width: calc(3.325 * var(--support-font-size)); height: auto; }
.hero #audience-pain { max-width: none; font-size: var(--support-font-size); line-height: 1.45; }
.site-header .small-cta.contact {
  background: var(--blue);
  color: white;
  border: 0;
  /* +1px each side keeps the previous size now that the 1px border is gone */
  padding: 13px 21px;
  box-shadow: inset 0 -3px 0 var(--brand-sand);
}
.site-header .small-cta.contact:hover {
  background: var(--navy);
}
.site-header .small-cta.contact:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
@media (min-width: 901px) {
  .site-header { padding-block: 16px; }
  .hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: clamp(620px, calc(100svh - 190px), 960px);
  }
  .hero .audience-experience {
    min-height: 0;
  }
  .hero #properties .property {
    width: clamp(320px, 27vw, 400px);
    max-width: calc(100% - 40px);
  }
}
@media (min-width: 901px) and (max-height: 800px) {
  .site-header { padding-block: 14px; }
  .hero { min-height: 0; padding-top: clamp(22px, 3.4vh, 28px); padding-bottom: clamp(22px, 3.7vh, 30px); }
  .hero .audience-experience { min-height: 0; }
  .hero .carousel-controls { margin-bottom: 8px; }
  .hero #properties { min-height: clamp(320px, 24vw, 350px); }
  .hero #properties .property { width: clamp(320px, 27vw, 365px); }
  .hero .carousel-segments { margin-top: 8px; gap: 8px 10px; }
  .hero .carousel-segments button { min-height: 52px; padding-block: 8px; }
  .hero #audience-hero-panel { padding-top: clamp(24px, 3.6vh, 28px); padding-bottom: clamp(24px, 3.6vh, 28px); }
}
@media (max-width: 900px) {
  .hero .audience-experience { --support-font-size: .9375rem; }
  .hero { padding: 28px 16px 34px; }
  .hero .audience-experience { grid-template-columns: minmax(0, 1fr); gap: 25px; align-items: start; }
  .hero .audience-experience { --carousel-edge-space: 0px; }
  .hero .hero-gallery { display: block; width: min(100%, 480px); margin: 0 auto; }
  .hero .property-carousel, .hero .carousel-visual { display: block; }
  .hero .carousel-controls { margin: 0 0 10px; }
  .hero #properties { height: clamp(240px, 72vw, 330px); min-height: 0; }
  .hero #properties .property { width: clamp(225px, 66vw, 300px); }
  .hero .carousel-segments { margin-top: 4px; gap: 10px; }
  .hero .carousel-segments button { min-height: 52px; font-size: .9375rem; }
  .hero .audience-content-shell { border-radius: 16px; }
  .hero #audience-hero-panel { display: block; min-height: 0; padding: 28px 22px 24px; font-size: 16px; }
  .hero #audience-description { margin-bottom: 22px; }
  .hero #main-title { font-size: clamp(26px, 6.4vw, 36px); margin-bottom: 22px; }
  .hero .hero-before { gap: 15px; padding: 18px; }
  .hero .hero-comparison { display: grid; grid-template-rows: auto; }
  .hero .hero-after.hero-flow-link { min-height: 56px; padding: 12px 18px; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .hero { padding-inline: clamp(28px, 4vw, 44px); }
  .hero .audience-experience { gap: clamp(28px, 3.5vw, 36px); }
  .hero #audience-hero-panel { padding: 26px; font-size: 16px; }
  .hero #main-title { font-size: clamp(27px, 3vw, 35px); }
  .hero .hero-before { padding: 17px; }
  .hero .hero-after.hero-flow-link { padding-inline: 17px; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .hero .audience-experience { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .hero .hero-gallery { width: min(100%, 480px); margin: 0 auto; }
  .hero #properties .property { width: 300px; }
  .hero .audience-content-shell { max-width: 700px; margin: 0 auto; }
}
@media (max-width: 760px) {
  .site-header.site-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content;
    grid-template-rows: auto auto;
    gap: 12px 12px !important;
    align-items: center !important;
    padding: 18px 18px 10px !important;
  }
  .site-header .header-brand { display: contents !important; }
  .site-header .header-brand > a { grid-column: 1; grid-row: 1; align-self: start; }
  .site-header.site-header .header-brand > a img { width: 80px !important; height: auto !important; }
  .site-header.site-header #service-title {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    margin: 0 !important;
    text-align: left;
  }
  .site-header .nav.nav {
    display: contents !important;
  }
  .site-header .nav .small-cta.contact {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    max-width: none;
    white-space: nowrap;
  }
  .site-header.site-header .nav .career-nav {
    display: block !important;
    grid-column: 2;
    grid-row: 2;
    justify-self: center;
    align-self: start;
    font-size: .8125rem;
    line-height: 1.45;
    padding: 0 2px;
    text-align: center;
  }
  .site-header.site-header .nav .small-cta.contact { font-size: .875rem; }
  .hero { padding-top: 12px; padding-bottom: 26px; }
  .hero .audience-experience { gap: 12px; }
  .hero .carousel-visual { position: relative; }
  .hero .carousel-controls {
    position: absolute;
    inset: 0;
    z-index: 110;
    justify-content: space-between;
    align-items: flex-start;
    padding-top: 10px;
    width: 100%;
    height: 100%;
    margin: 0;
    pointer-events: none;
  }
  .hero .carousel-segments {
    grid-template-columns: minmax(0, .68fr) minmax(0, 1.13fr) minmax(0, 1.22fr) minmax(0, 1.42fr);
    gap: 6px;
    margin-top: 0;
  }
  .hero .carousel-segments button {
    min-height: 44px;
    padding: 7px 3px;
    font-size: .875rem;
    white-space: nowrap;
  }
  .hero #audience-hero-panel { padding-top: 20px; }
  .hero #audience-description { margin-bottom: 12px; }
  .hero #main-title { margin-bottom: 18px; }
}
@media (max-width: 339px) {
  .hero .carousel-segments { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 8px; }
}
@media (max-width: 359px) {
  .hero { padding-inline: 12px; }
  .hero #audience-hero-panel { padding-inline: 16px; }
  .hero .hero-before { grid-template-columns: 70px minmax(0, 1fr); gap: 10px; padding: 13px; }
  .hero .hero-after.hero-flow-link { padding-inline: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .small-cta.contact { transition: none; }
  .hero .hero-after.hero-flow-link { transition: none; }
}