/* Homepage only. Deliberately separate from legacy Gutenberg/product selectors. */
body.home.page-id-91 .entry-content > .wp-block-group:first-child:has(.joy-static-hero) {
  background: #fff !important;
  padding: 0 !important;
  margin-block: 0 !important;
  max-width: none !important;
}
body.home.page-id-91 .entry-content > .wp-block-group:first-child > .wp-block-group:has(> .joy-static-hero) {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}
body.home.page-id-91 .joy-static-hero {
  --hero-navy: #093570;
  --hero-blue: #007dad;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto !important;
  overflow: hidden;
  isolation: isolate;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: var(--hero-navy);
  text-align: left;
  box-shadow: none;
  font-family: Arial, Helvetica, sans-serif;
}
.joy-static-hero *, .joy-static-hero *::before, .joy-static-hero *::after { box-sizing: border-box; }
.joy-static-hero .joy-static-hero__scene { position: relative; }
.joy-static-hero .joy-static-hero__image {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  object-fit: contain !important;
  border: 0;
  border-radius: 0;
  margin: 0;
}
.joy-static-hero .joy-static-hero__copy {
  position: absolute;
  inset: 0 auto 0 0;
  width: 44%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(24px, 3.1vw, 48px);
  background: linear-gradient(90deg, rgb(255 255 255 / 97%) 0%, rgb(255 255 255 / 92%) 66%, rgb(255 255 255 / 0%) 100%);
}
.joy-static-hero .joy-static-hero__eyebrow {
  margin: 0 0 20px;
  max-width: 300px;
  color: #32617f;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.joy-static-hero #joy-static-hero-heading {
  margin: 0;
  color: var(--hero-navy);
  font-size: clamp(38px, 4.2vw, 64px);
  font-weight: 750;
  line-height: 1.05;
  letter-spacing: -2.5px;
  text-wrap: nowrap;
}
.joy-static-hero #joy-static-hero-heading span { color: var(--hero-blue); }
.joy-static-hero .joy-static-hero__intro {
  max-width: 355px;
  margin: 24px 0 28px;
  color: #344d63;
  font-size: clamp(14px, 1.2vw, 17px);
  line-height: 1.65;
}
.joy-static-hero .joy-static-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; }
.joy-static-hero .joy-static-hero__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 48px;
  margin: 0;
  padding: 13px 18px;
  border: 1px solid var(--hero-navy);
  border-radius: 9px;
  background: var(--hero-navy);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none;
}
.joy-static-hero .joy-static-hero__button--outline { color: var(--hero-navy); background: rgb(255 255 255 / 94%); }
.joy-static-hero .joy-static-hero__button:hover { background: #075b95; color: #fff; border-color: #075b95; }
.joy-static-hero .joy-static-hero__button:focus-visible { outline: 3px solid #007dad; outline-offset: 4px; }
.joy-static-hero .joy-static-hero__services {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr;
  padding: 22px 32px;
  border-top: 1px solid #e1ebf5;
  background: #fff;
  gap: 24px;
}
.joy-static-hero .joy-static-hero__services p { display: flex; align-items: baseline; gap: 12px; margin: 0; color: #254768; font-size: 13px; font-weight: 600; line-height: 1.5; }
.joy-static-hero .joy-static-hero__services p + p { border-left: 1px solid #dfe9f2; padding-left: 24px; }
.joy-static-hero .joy-static-hero__services span { color: #1683ac; font-size: 11px; font-weight: 700; }
@media (max-width: 1100px) and (min-width: 901px) {
  .joy-static-hero .joy-static-hero__copy { padding: 25px; width: 46%; }
  .joy-static-hero .joy-static-hero__eyebrow { margin-bottom: 14px; font-size: 11px; }
  .joy-static-hero .joy-static-hero__intro { margin: 18px 0; max-width: 310px; }
  .joy-static-hero .joy-static-hero__button { min-height: 44px; padding: 10px 14px; font-size: 12px; }
}
/* Lightweight gallery: one stable image region; the copy never rotates. */
.joy-static-hero .joy-hero-gallery { position: relative; isolation: isolate; }
.joy-static-hero .joy-hero-gallery__slides { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #f2f8fd; }
.joy-static-hero .joy-hero-slide { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(115deg, #fff 25%, #f0f8fe 100%); }
.joy-static-hero .joy-hero-slide[hidden] { display: none !important; }
.joy-static-hero .joy-hero-slide.is-active { animation: joy-hero-reveal 360ms ease-out; }

@keyframes joy-hero-reveal { from { opacity: .35; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .joy-static-hero .joy-hero-slide.is-active { animation: none; }
}

/* All five visuals use the original full-bleed poster composition. */
.joy-static-hero .joy-hero-slide .joy-static-hero__image { width: 100% !important; height: 100% !important; padding: 0 !important; object-fit: cover !important; object-position: center; }

/* Mobile/tablet: keep the approved desktop-style left copy + right product.
   Only the viewport framing changes; all five original assets stay untouched. */
@media (max-width: 900px) {
  .joy-static-hero .joy-static-hero__scene { display: block; }
  .joy-static-hero .joy-hero-gallery__slides {
    height: max(460px, 56.25vw);
    aspect-ratio: auto;
  }
  .joy-static-hero .joy-static-hero__copy {
    position: absolute;
    inset: 0 auto 0 0;
    width: 52%;
    padding: 24px 22px;
    background: linear-gradient(90deg, rgb(255 255 255 / 98%) 0%, rgb(255 255 255 / 94%) 76%, rgb(255 255 255 / 0%) 100%);
  }
  .joy-static-hero .joy-static-hero__eyebrow {
    max-width: 260px;
    margin-bottom: 14px;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 1px;
  }
  .joy-static-hero #joy-static-hero-heading {
    font-size: clamp(28px, 4.5vw, 40px);
    line-height: 1.08;
    letter-spacing: -1.2px;
  }
  .joy-static-hero .joy-static-hero__intro {
    max-width: 310px;
    margin: 18px 0 20px;
    font-size: 14px;
    line-height: 1.5;
  }
  .joy-static-hero .joy-static-hero__actions { gap: 10px; }
  .joy-static-hero .joy-static-hero__button {
    min-height: 44px;
    padding: 10px 13px;
    gap: 8px;
    font-size: 12px;
  }
  .joy-static-hero .joy-hero-slide .joy-static-hero__image { object-position: 65% center; }
  .joy-static-hero .joy-static-hero__services { grid-template-columns: 1fr; gap: 12px; padding: 20px 26px; }
  .joy-static-hero .joy-static-hero__services p + p { border-left: 0; padding-left: 0; }
}
@media (max-width: 600px) {
  .joy-static-hero .joy-hero-gallery__slides { height: 480px; }
  .joy-static-hero .joy-static-hero__copy {
    width: 58%;
    padding: 24px 12px 24px 16px;
    background: linear-gradient(90deg, rgb(255 255 255 / 98%) 0%, rgb(255 255 255 / 95%) 82%, rgb(255 255 255 / 0%) 100%);
  }
  .joy-static-hero .joy-static-hero__eyebrow {
    margin-bottom: 12px;
    font-size: 9px;
    letter-spacing: .65px;
  }
  .joy-static-hero #joy-static-hero-heading {
    font-size: clamp(22px, 6.2vw, 30px);
    letter-spacing: -.75px;
  }
  .joy-static-hero .joy-static-hero__intro {
    margin: 16px 0 18px;
    font-size: 13px;
    line-height: 1.45;
  }
  .joy-static-hero .joy-static-hero__actions { width: 100%; flex-direction: column; gap: 8px; }
  .joy-static-hero .joy-static-hero__button { width: 100%; min-height: 44px; padding: 10px 8px; font-size: 11.5px; }
  .joy-static-hero .joy-hero-slide .joy-static-hero__image { object-position: 76% center; }
  .joy-static-hero .joy-static-hero__services { padding: 18px 20px; }
}
@media (max-width: 360px) {
  .joy-static-hero .joy-static-hero__copy { width: 60%; padding-left: 12px; padding-right: 10px; }
}
