/* CRT — Site Hero — title rich text + responsive break classes */

.crt-site-hero {
  position: relative;
  display: flex;
  align-items: stretch;
  overflow-x: clip;
  margin-top: var(--crt-sh-section-mt-desktop);
  isolation: isolate;
  box-sizing: border-box;

  /* Full-bleed inside HubSpot / Atlas wrappers — scrollbar-safe (no width:100vw) */
  --crt-sh-bleed: max(0px, calc((100vw - 100%) / 2));
  width: auto;
  max-width: none;
  margin-left: calc(-1 * var(--crt-sh-bleed));
  margin-right: calc(-1 * var(--crt-sh-bleed));
  padding-left: var(--crt-sh-bleed);
  padding-right: var(--crt-sh-bleed);
}

@supports (width: 100dvw) {
  .crt-site-hero {
    --crt-sh-bleed: max(0px, calc((100dvw - 100%) / 2));
  }
}

.crt-site-hero,
.crt-site-hero * {
  box-sizing: border-box;
}

.crt-site-hero__background,
.crt-site-hero__picture,
.crt-site-hero__image,
.crt-site-hero__image-placeholder,
.crt-site-hero__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.crt-site-hero__background {
  z-index: 0;
}

.crt-site-hero__picture {
  display: block;
}

.crt-site-hero__image {
  display: block;
  object-fit: cover;
  object-position: var(--crt-sh-image-position-desktop);
}

.crt-site-hero__image-placeholder {
  background: linear-gradient(135deg, #dde3ea 0%, #f7f4ef 100%);
}

.crt-site-hero__overlay {
  z-index: 1;
  pointer-events: none;
}

.crt-site-hero--overlay-none .crt-site-hero__overlay {
  display: none;
}

.crt-site-hero--overlay-left_light .crt-site-hero__overlay {
  background: linear-gradient(
    90deg,
    var(--crt-sh-overlay-solid-desktop) 0%,
    var(--crt-sh-overlay-mid-desktop) calc(var(--crt-sh-overlay-width-desktop) * 0.55),
    transparent var(--crt-sh-overlay-width-desktop)
  );
}

.crt-site-hero--overlay-left_strong .crt-site-hero__overlay {
  background: linear-gradient(
    90deg,
    var(--crt-sh-overlay-solid-desktop) 0%,
    var(--crt-sh-overlay-soft-desktop) calc(var(--crt-sh-overlay-width-desktop) * 0.72),
    transparent calc(var(--crt-sh-overlay-width-desktop) + 8%)
  );
}

.crt-site-hero--overlay-full_light .crt-site-hero__overlay {
  background: var(--crt-sh-overlay-solid-desktop);
}

.crt-site-hero--overlay-copy_panel .crt-site-hero__overlay {
  background: transparent;
}

.crt-site-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  width: 100%;
  max-width: var(--crt-sh-inner-max);
  margin: 0 auto;
  padding: var(--crt-sh-padding-desktop-y) var(--crt-sh-padding-desktop-x);
  padding-bottom: var(--crt-sh-padding-desktop-bottom, var(--crt-sh-padding-desktop-y));
}

.crt-site-hero__copy {
  max-width: var(--crt-sh-copy-max);
  width: 100%;
  font-family: var(--crt-sh-body-font);
  margin-top: var(--crt-sh-copy-offset-desktop-y, 0px);
}

.crt-site-hero--overlay-copy_panel .crt-site-hero__copy {
  padding: 28px 32px 32px 28px;
  border-radius: 2px;
  background: var(--crt-sh-overlay-solid-desktop);
  box-shadow: 0 12px 40px rgba(17, 17, 17, 0.06);
}

.crt-site-hero__eyebrow {
  margin: 0 0 24px;
  color: var(--crt-sh-eyebrow-color);
  font-family: var(--crt-sh-eyebrow-font);
  font-size: var(--crt-sh-eyebrow-size-desktop);
  font-weight: var(--crt-sh-eyebrow-weight);
  font-style: normal;
  line-height: var(--crt-sh-eyebrow-line-height);
  letter-spacing: var(--crt-sh-eyebrow-letter-spacing);
}

/* Richtext eyebrow — casing/colour come from editor inline styles, not container transform */
.crt-site-hero__eyebrow.crt-sh-richtext {
  text-transform: none;
  color: var(--crt-sh-eyebrow-color);
  font-family: var(--crt-sh-eyebrow-font);
  font-size: var(--crt-sh-eyebrow-size-desktop);
  font-weight: var(--crt-sh-eyebrow-weight);
  line-height: var(--crt-sh-eyebrow-line-height);
  letter-spacing: var(--crt-sh-eyebrow-letter-spacing);
}

.crt-site-hero__eyebrow sup,
.crt-site-hero__eyebrow.crt-sh-richtext sup {
  position: relative;
  top: -0.45em;
  font-size: 0.65em !important;
  line-height: 0;
  vertical-align: baseline;
  text-transform: none;
  letter-spacing: 0;
}

/* Rich text — eyebrow (see .cursor/rules/crt-module-rich-text.mdc) */
.crt-sh-richtext :is(p, ul, ol) {
  margin: 0;
}

.crt-site-hero__eyebrow.crt-sh-richtext :is(p, ul, ol) {
  margin: 0;
  display: inline;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
  text-decoration: inherit;
}

.crt-site-hero__eyebrow.crt-sh-richtext :is(p, ul, ol) + :is(p, ul, ol) {
  margin-top: 0;
}

.crt-site-hero__eyebrow.crt-sh-richtext :is(p, ul, ol) span {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
  text-decoration: inherit;
}

/* Legacy homepage parity — spacing only; richtext owns casing via editor */
.crt-site-hero__eyebrow.crt-home-hero-eyebrow {
  margin: 0 0 24px;
}

.crt-site-hero__eyebrow.crt-home-hero-eyebrow.crt-sh-richtext {
  text-transform: none;
}

.crt-site-hero__title.crt-home-hero-title {
  margin: 0 0 28px;
  color: #111111;
  font-family: Montserrat, sans-serif;
  font-size: 56px;
  font-weight: 400 !important;
  line-height: 1.12;
  letter-spacing: 0.01em;
}

.crt-site-hero__title.crt-home-hero-title *,
.crt-site-hero__title.crt-home-hero-title span,
.crt-site-hero__title.crt-home-hero-title strong {
  font-weight: 400 !important;
}

.crt-site-hero__title {
  margin: 0 0 28px;
  color: var(--crt-sh-title-color);
  font-family: var(--crt-sh-title-font);
  font-size: var(--crt-sh-title-size-desktop);
  font-weight: var(--crt-sh-title-weight);
  font-style: normal;
  line-height: var(--crt-sh-title-line-height);
  letter-spacing: var(--crt-sh-title-letter-spacing);
}

.crt-site-hero__title > p,
.crt-site-hero__title > div {
  margin: 0;
  padding: 0;
  line-height: inherit;
}

/* Legacy h1 + <br> — one block, tight lines (no HubSpot paragraph gaps) */
.crt-site-hero__title.crt-home-hero-title > p {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}

.crt-site-hero__title.crt-home-hero-title {
  max-width: min(880px, 100%);
  min-width: 0;
  box-sizing: border-box;
}

.crt-site-hero__title *,
.crt-site-hero__title-line {
  font-weight: inherit;
}

/* Title: responsive break classes in rich text (≤1280px vs ≥1281px) */
.crt-site-hero__title-line--wide-desktop,
.crt-site-hero__title-break--wide-desktop {
  display: none !important;
}

.crt-site-hero__text {
  margin: 0;
  max-width: var(--crt-sh-body-max);
  color: var(--crt-sh-body-color);
  font-family: var(--crt-sh-body-font);
  font-size: var(--crt-sh-body-size-desktop);
  font-weight: var(--crt-sh-body-weight);
  font-style: normal;
  line-height: var(--crt-sh-body-line-height);
  text-align: left;
}

.crt-site-hero__text p {
  margin: 0;
}

.crt-site-hero__text p + p {
  margin-top: 1em;
}

.crt-site-hero--text-shadow-subtle .crt-site-hero__eyebrow,
.crt-site-hero--text-shadow-subtle .crt-site-hero__title,
.crt-site-hero--text-shadow-subtle .crt-site-hero__text {
  text-shadow:
    0 1px 1px rgba(247, 244, 239, 0.85),
    0 0 18px rgba(247, 244, 239, 0.55);
}

.crt-site-hero--text-shadow-medium .crt-site-hero__eyebrow,
.crt-site-hero--text-shadow-medium .crt-site-hero__title,
.crt-site-hero--text-shadow-medium .crt-site-hero__text {
  text-shadow:
    0 1px 2px rgba(247, 244, 239, 0.95),
    0 0 28px rgba(247, 244, 239, 0.72);
}

.crt-site-hero--text-shadow-strong .crt-site-hero__eyebrow,
.crt-site-hero--text-shadow-strong .crt-site-hero__title,
.crt-site-hero--text-shadow-strong .crt-site-hero__text {
  text-shadow:
    0 2px 4px rgba(247, 244, 239, 1),
    0 0 36px rgba(247, 244, 239, 0.88);
}

/* Desktop */
@media (min-width: 1025px) {
  .crt-site-hero {
    min-height: var(--crt-sh-min-height-desktop);
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--desktop-abstract),
  .crt-site-hero--image-dual:not(.crt-site-hero--desktop-abstract) {
    min-height: clamp(540px, min(36vw, 44vh), 680px);
  }

  .crt-site-hero__image {
    object-position: var(--crt-sh-image-position-desktop);
  }

  .crt-site-hero--align-asymmetric_left .crt-site-hero__copy {
    margin-left: var(--crt-sh-hero-left-desktop);
    transform: none;
  }

  .crt-site-hero--align-match_content .crt-site-hero__copy {
    margin-left: var(--crt-sh-content-left-desktop);
    transform: none;
  }

  .crt-site-hero--align-shift .crt-site-hero__copy {
    transform: translateX(var(--crt-sh-copy-shift-x));
  }
}

@media (min-width: 1600px) {
  .crt-site-hero--has-mobile-image:not(.crt-site-hero--desktop-abstract) .crt-site-hero__image,
  .crt-site-hero--image-dual:not(.crt-site-hero--desktop-abstract) .crt-site-hero__image {
    object-position: 58% 36%;
  }
}

@media (min-width: 1920px) {
  .crt-site-hero--has-mobile-image:not(.crt-site-hero--desktop-abstract) .crt-site-hero__image,
  .crt-site-hero--image-dual:not(.crt-site-hero--desktop-abstract) .crt-site-hero__image {
    object-position: 54% 34%;
  }
}

@media (min-width: 2560px) {
  .crt-site-hero--has-mobile-image:not(.crt-site-hero--desktop-abstract) .crt-site-hero__image,
  .crt-site-hero--image-dual:not(.crt-site-hero--desktop-abstract) .crt-site-hero__image {
    object-position: 50% 32%;
  }
}

@media (min-width: 1281px) {
  .crt-site-hero__title-line--narrow,
  .crt-site-hero__title-break--narrow {
    display: none !important;
  }

  .crt-site-hero__title-break--wide-desktop {
    display: block;
  }

  .crt-site-hero__title-line--wide-desktop {
    display: block !important;
  }

  .crt-site-hero__copy {
    max-width: min(var(--crt-sh-copy-max), 52vw);
  }

  .crt-site-hero__title.crt-home-hero-title {
    max-width: min(880px, 52vw);
  }

  .crt-site-hero__title {
    line-height: 1.12;
  }
}

/* Tablet + narrow desktop stacked hero (dual crop) */
@media (min-width: 768px) and (max-width: 1024px) {
  .crt-site-hero {
    min-height: 540px;
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--has-tablet-image) {
    display: block;
    min-height: clamp(620px, 78vh, 860px);
    padding-top: 56px;
    padding-bottom: 52px;
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--has-tablet-image) .crt-site-hero__inner {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 clamp(28px, 4vw, 40px);
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--has-tablet-image) .crt-site-hero__copy {
    width: 100%;
    max-width: min(560px, 72vw);
    margin: 0;
    margin-top: var(--crt-sh-copy-offset-mobile-y, 0px);
    transform: none !important;
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--has-tablet-image) .crt-site-hero__image {
    object-fit: cover;
    object-position: center center;
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--has-tablet-image) .crt-site-hero__title {
    font-size: var(--crt-sh-title-size-tablet);
    line-height: 1.14;
    margin-bottom: 22px;
  }

  .crt-site-hero--has-mobile-image:not(.crt-site-hero--has-tablet-image) .crt-site-hero__text {
    max-width: none;
    font-size: var(--crt-sh-body-size-tablet);
    line-height: 1.65;
  }

  .crt-site-hero--has-tablet-image .crt-site-hero__inner,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image) .crt-site-hero__inner {
    padding-top: 56px;
    padding-bottom: 44px;
  }

  .crt-site-hero--has-tablet-image .crt-site-hero__image,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image) .crt-site-hero__image {
    object-position: var(--crt-sh-image-position-tablet);
  }

  .crt-site-hero--has-tablet-image .crt-site-hero__copy,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image) .crt-site-hero__copy {
    transform: none;
    max-width: min(var(--crt-sh-copy-max-tablet), 46vw);
    margin-top: var(--crt-sh-copy-offset-mobile-y, 0px);
  }

  .crt-site-hero--has-tablet-image.crt-site-hero--align-asymmetric_left .crt-site-hero__copy,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image).crt-site-hero--align-asymmetric_left .crt-site-hero__copy {
    margin-left: var(--crt-sh-hero-left-tablet);
  }

  .crt-site-hero--has-tablet-image.crt-site-hero--align-match_content .crt-site-hero__copy,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image).crt-site-hero--align-match_content .crt-site-hero__copy {
    margin-left: var(--crt-sh-content-left-tablet);
  }

  .crt-site-hero--has-tablet-image .crt-site-hero__title,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image) .crt-site-hero__title {
    margin-bottom: 22px;
    font-size: var(--crt-sh-title-size-tablet);
    line-height: 1.12;
  }

  .crt-site-hero__title.crt-home-hero-title {
    font-size: 42px;
    line-height: 1.14;
  }

  .crt-site-hero--has-tablet-image .crt-site-hero__text,
  .crt-site-hero:not(.crt-site-hero--has-mobile-image) .crt-site-hero__text {
    max-width: min(var(--crt-sh-body-max-tablet), 54vw);
    font-size: var(--crt-sh-body-size-tablet);
    line-height: 1.65;
  }
}

@media (min-width: 1024px) and (max-width: 1280px) {
  .crt-site-hero__copy {
    max-width: min(calc(var(--crt-sh-copy-max) + 32px), 54vw);
  }

  .crt-site-hero__title {
    font-size: calc(var(--crt-sh-title-size-desktop) - 5px);
    line-height: 1.14;
  }

  .crt-site-hero__title.crt-home-hero-title {
    font-size: 42px;
    line-height: 1.14;
  }

  .crt-site-hero--image-single .crt-site-hero__copy {
    max-width: min(var(--crt-sh-copy-max), 52vw);
  }

  .crt-site-hero--image-single .crt-site-hero__text {
    max-width: min(var(--crt-sh-body-max), 48vw);
  }
}

/* Mobile — A2 composed (dual crop) */
@media (max-width: 767px) {
  .crt-site-hero {
    --crt-sh-bleed: 0px;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    display: block;
    min-height: var(--crt-sh-min-height-mobile);
    margin-top: var(--crt-sh-section-mt-mobile);
    padding-top: var(--crt-sh-padding-top-mobile);
    padding-bottom: var(--crt-sh-padding-bottom-mobile);
  }

  .crt-site-hero--has-mobile-image.crt-site-hero--mobile-bg-cover {
    min-height: min(var(--crt-sh-min-height-mobile), 92svh);
  }

  .crt-site-hero__background {
    position: absolute;
    inset: 0;
  }

  .crt-site-hero__image {
    object-fit: cover;
    object-position: var(--crt-sh-image-position-mobile);
    width: 100%;
    height: 100%;
    max-width: none;
  }

  .crt-site-hero--has-mobile-image.crt-site-hero--mobile-bg-cover .crt-site-hero__image {
    object-fit: cover;
    object-position: var(--crt-sh-image-position-mobile, center top);
  }

  .crt-site-hero--mobile-bg-auto-height:not(.crt-site-hero--has-mobile-image) .crt-site-hero__image {
    object-fit: none;
    width: auto;
    min-width: 100%;
    height: 100%;
  }

  .crt-site-hero--overlay-left_light .crt-site-hero__overlay,
  .crt-site-hero--overlay-left_strong .crt-site-hero__overlay,
  .crt-site-hero--overlay-copy_panel .crt-site-hero__overlay {
    background: linear-gradient(
      180deg,
      var(--crt-sh-overlay-strong-mobile) 0%,
      var(--crt-sh-overlay-mid-mobile) 40%,
      var(--crt-sh-overlay-soft-mobile) 58%,
      transparent 88%
    );
  }

  .crt-site-hero--overlay-left_strong .crt-site-hero__overlay {
    background: linear-gradient(
      180deg,
      var(--crt-sh-overlay-strong-mobile) 0%,
      var(--crt-sh-overlay-mid-mobile) 48%,
      var(--crt-sh-overlay-soft-mobile) 68%,
      transparent 92%
    );
  }

  .crt-site-hero--overlay-full_light .crt-site-hero__overlay {
    background: linear-gradient(
      180deg,
      var(--crt-sh-overlay-strong-mobile) 0%,
      var(--crt-sh-overlay-soft-mobile) 55%,
      transparent 90%
    );
  }

  .crt-site-hero--overlay-copy_panel .crt-site-hero__copy,
  .crt-site-hero--mobile-readability-panel .crt-site-hero__copy {
    padding: 22px 20px 24px;
    background: var(--crt-sh-overlay-strong-mobile);
    box-shadow: 0 8px 28px rgba(17, 17, 17, 0.08);
    border-radius: 2px;
  }

  .crt-site-hero--mobile-readability-panel:not(.crt-site-hero--overlay-copy_panel) .crt-site-hero__overlay {
    background: linear-gradient(
      180deg,
      var(--crt-sh-overlay-strong-mobile) 0%,
      var(--crt-sh-overlay-mid-mobile) 52%,
      var(--crt-sh-overlay-soft-mobile) 72%,
      transparent 94%
    );
  }

  .crt-site-hero__inner {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 var(--crt-sh-mobile-side);
  }

  .crt-site-hero__copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    margin-top: var(--crt-sh-copy-offset-mobile-y, 0px);
    padding: 0;
    transform: none !important;
  }

  .crt-site-hero__copy *,
  .crt-site-hero__copy p,
  .crt-site-hero__copy h1,
  .crt-site-hero__copy span {
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
  }

  .crt-site-hero__eyebrow {
    margin-bottom: 18px;
    font-size: var(--crt-sh-eyebrow-size-mobile);
    line-height: 1.5;
    letter-spacing: 0.11em;
  }

  .crt-site-hero__eyebrow.crt-home-hero-eyebrow {
    margin-bottom: 18px;
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 0.11em;
  }

  .crt-site-hero__title {
    margin-bottom: 22px;
    font-size: var(--crt-sh-title-size-mobile);
    line-height: 1.16;
    letter-spacing: 0;
  }

  .crt-site-hero__title.crt-home-hero-title {
    margin-bottom: 14px;
    font-size: 32px;
    line-height: 1.16;
    letter-spacing: 0;
    max-width: 100%;
    min-width: 0;
  }

  .crt-site-hero__title.crt-home-hero-title > p {
    max-width: 100%;
    min-width: 0;
  }

  .crt-site-hero__text {
    max-width: none;
    font-size: var(--crt-sh-body-size-mobile);
    line-height: var(--crt-sh-body-line-height-mobile);
    font-weight: var(--crt-sh-body-weight-mobile);
  }

  .crt-site-hero--mobile-title-flow .crt-site-hero__title-break {
    display: none;
  }

  .crt-site-hero--has-mobile-image .crt-site-hero__title-line--narrow {
    display: block;
  }

  .crt-site-hero--has-mobile-image .crt-site-hero__title-break--narrow {
    display: none;
  }

  .crt-site-hero--has-mobile-image .crt-site-hero__title-line--wide-desktop,
  .crt-site-hero--has-mobile-image .crt-site-hero__title-break--wide-desktop {
    display: none !important;
  }
}

@media (min-width: 390px) and (max-width: 767px) {
  .crt-site-hero--has-mobile-image .crt-site-hero__title-line--nowrap-mobile {
    white-space: nowrap;
  }
}

/* Homepage mobile photo crop: controlled by page header v2026-05-27d ladder on [data-crt-site-hero] */

@media (max-width: 425px) {
  .crt-site-hero {
    padding-top: min(var(--crt-sh-padding-top-mobile), 56px);
  }

  .crt-site-hero__title.crt-home-hero-title {
    margin-bottom: 10px;
  }
}

@media (max-width: 375px) {
  .crt-site-hero__title.crt-home-hero-title {
    font-size: 31px;
    line-height: 1.18;
  }
}

@media (max-width: 320px) {
  .crt-site-hero {
    padding-top: min(var(--crt-sh-padding-top-mobile), 48px);
  }

  .crt-site-hero__title.crt-home-hero-title {
    font-size: 29px;
    line-height: 1.2;
  }
}
