.eventsPage {
  overflow: hidden;
  color: var(--yofo-navy);
  background: #fff;
}

.eventsPage img {
  display: block;
}

.eventsHero {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding-top: 1.54rem;
  background: var(--yofo-navy);
}

.eventsHeroIndex {
  height: 11.26rem;
}

.eventsHeroDetail {
  height: 7rem;
}

.eventsHero > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.eventsHeroInner {
  position: absolute;
  inset: 0;
  padding-top: 2.54rem;
}

.eventsHeroLabel {
  width: fit-content;
  min-width: 1.2rem;
  padding-bottom: 0.08rem;
  font-size: clamp(24px, 0.38rem, 38px);
  font-weight: 600;
  line-height: 1.29;
  position: relative;
}
.eventsHeroLabel::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1.2rem;
  height: 2px;
  background: var(--yofo-orange);
}

.eventsHero h1 {
  width: 7rem;
  max-width: 55%;
  margin-top: 1.12rem;
  color: #2c3247;
  font-size: clamp(44px, 0.65rem, 65px);
  font-style: normal;
  font-weight: 600;
  line-height: 1.08;
}

.eventsButton {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 1.97rem;
  min-height: 0.51rem;
  padding: 0.09rem 0.32rem;
  border: 1px solid var(--yofo-blue);
  border-radius: 0.27rem;
  color: #fff;
  background: var(--yofo-blue);
  font-family: 'Inter';
  font-size: clamp(14px, 0.22rem, 22px);
  line-height: 1.23;
  text-align: center;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease;
}

.eventsButton:hover:not(:disabled),
.eventsPastItem:hover .eventsButton:not(:disabled) {
  color: #fff;
  background: var(--yofo-orange);
  border-color: var(--yofo-orange);
  transform: translateY(-0.02rem);
}

.eventsHero .eventsButton {
  min-width: 3.3rem;
  margin-top: 0.45rem;
}

.eventsUpcoming {
  padding-top: 0.94rem;
}

.eventsUpcoming > h2,
.eventsPast > h2 {
  font-size: clamp(26px, 0.38rem, 38px);
  font-weight: 700;
  line-height: 1.29;
  text-align: center;
}

.eventsUpcomingList {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.55rem;
}

.eventsUpcomingItem {
  display: grid;
  grid-template-columns: 8.67rem minmax(0, 1fr);
  height: 5.85rem;
  overflow: hidden;
  color: var(--yofo-navy);
  background: var(--yofo-pale);
}

.eventsImage {
  display: block;
  min-width: 0;
  overflow: hidden;
}

.eventsImage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.eventsUpcomingItem:hover .eventsImage img,
.eventsPastItem:hover .eventsImage img {
  transform: scale(1.04);
}

.eventsUpcomingCopy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 0.63rem 0.5rem;
}

.eventsUpcomingCopy strong,
.eventsPastCopy > strong {
  font-size: clamp(24px, 0.38rem, 38px);
  font-weight: 400;
  line-height: 1.29;
}

.eventsUpcomingCopy > span {
  margin-top: 0.45rem;
  font-family: 'Inter';
  font-size: clamp(15px, 0.22rem, 22px);
  line-height: 1.18;
}

.eventsUpcomingCopy > span + span {
  margin-top: 0;
}

.eventsPastAnchor {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 0.8rem;
  height: 0.75rem;
  margin: 0.4rem auto 0;
}

.eventsPastAnchor i {
  width: 0.22rem;
  height: 0.22rem;
  border-right: 3px solid #6d778a;
  border-bottom: 3px solid #6d778a;
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}

.eventsPastAnchor:hover i {
  transform: translateY(0.05rem) rotate(45deg);
}

.eventsPast {
  width: 94%;
  max-width: 14.4rem;
  padding: 0.22rem 0 0;
}

.eventsPastList {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.eventsPastItem {
  display: grid;
  grid-template-columns: 6.77rem minmax(0, 1fr);
  height: 5.15rem;
  overflow: hidden;
  color: var(--yofo-navy);
  background: var(--yofo-pale);
}

.eventsPastCopy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.61rem 0.68rem;
}

.eventsMeta {
  display: block;
  margin-top: 0.2rem;
  color: #6d778a;
  font-family: 'Inter';
  font-size: clamp(16px, 0.28rem, 28px);
  line-height: 1.21;
}

.eventsPastExcerpt {
  display: block;
  margin-top: 0.3rem;
  font-family: 'Inter';
  font-size: clamp(15px, 0.22rem, 22px);
  line-height: 1.18;
}

.eventsPastCopy .eventsButton {
  margin-top: auto;
  margin-left: auto;
}

.eventsPlaceholder {
  background: #8d8d8d;
}

.eventsLoad {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 2.64rem;
  margin: 1rem auto 0;
}

.eventsLoad .eventsButton {
  width: 2.37rem;
  color: var(--yofo-navy);
  border-color: var(--yofo-pale);
  background: var(--yofo-pale);
}

.eventsLoad .eventsButton:hover:not(:disabled) {
  color: var(--yofo-blue);
  background: var(--yofo-light);
}

.eventsLoad > span {
  margin-top: 0.15rem;
  text-transform: uppercase;
  font-family: 'Inter';
  font-size: 12px;
  line-height: 1.2;
}

.eventsLoad > i {
  position: relative;
  width: 100%;
  height: 1px;
  margin-top: 0.14rem;
  background: #b6bdcc;
}

.eventsLoad > i b {
  position: absolute;
  inset: auto auto 0 0;
  height: 2px;
  background-color: #08319b;
  transition: width .3s ease;
}

.eventsLoad button:disabled {
  cursor: default;
  pointer-events: none;
  color: var(--yofo-navy);
  background: var(--yofo-pale);
  border-color: var(--yofo-pale);
  transform: none;
  transition: none;
}

/* Event article */
.eventArticle {
  padding: 0.52rem 0 0;
}

.eventBackWrap {
  width: 94%;
  max-width: 15.9rem;
  margin: 0 auto;
}

.eventBack {
  display: inline-block;
  padding-bottom: 0.04rem;
  border-bottom: 1px solid currentColor;
  color: var(--yofo-navy);
  font-size: clamp(14px, 0.22rem, 22px);
  line-height: 1.23;
}

.eventBack:hover {
  color: var(--yofo-blue);
}

.eventArticleInner,
.eventArticleNav {
  width: 94%;
  max-width: 14.4rem;
  margin-right: auto;
  margin-left: auto;
}

.eventArticleHeader {
  margin-top: 0.49rem;
}

.eventArticleHeader h1,
.eventSection h2,
.eventClosing h2 {
  font-size: clamp(26px, 0.38rem, 38px);
  font-weight: 400;
  line-height: 1.29;
}
.eventCopy p,
.eventFeatures p,
.eventPatient p,
.eventClosing p,
.eventCopy,
.eventFeatures,
.eventPatient,
.eventClosing {
  font-family: 'Inter';
  font-size: clamp(17px, 0.28rem, 28px);
  line-height: 1.21;
}

.eventIntro {
  margin-top: 0.5rem;
}

.eventCopy p + p,
.eventPatient p + p,
.eventClosing p + p {
  margin-top: 0.25rem;
}

.eventVideo {
  position: relative;
  height: 8.1rem;
  margin-top: 0.5rem;
  overflow: hidden;
  background: #101728;
}

.eventVideo video,
.eventVideoPoster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.eventVideo video {
  z-index: 0;
}

.eventVideoPoster {
  z-index: 1;
}

.eventVideo button {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  width: 1.3rem;
  height: 1.3rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}

.eventVideo button:hover {
  transform: translate(-50%, -50%) scale(1.06);
}

.eventVideo button img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.eventVideoTitle {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0.32rem;
  left: 0;
  padding: 0.22rem 2rem;
  color: #fff;
  background: rgba(8, 49, 155, 0.8);
  font-size: clamp(28px, 0.48rem, 48px);
  font-weight: 500;
  line-height: 1.29;
  text-align: center;
}

.eventVideo.is-playing .eventVideoPoster,
.eventVideo.is-playing button,
.eventVideo.is-playing .eventVideoTitle {
  display: none;
}

.eventVideo.is-playing video {
  z-index: 4;
}

.eventSection {
  margin-top: 0.5rem;
}

.eventSection .eventCopy {
  margin-top: 0.35rem;
}

.eventWideImage {
  height: 10.36rem;
  margin-top: 0.5rem;
  overflow: hidden;
}

.eventWideImage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.eventFeatures {
  display: grid;
  grid-template-columns: 8.09rem 6rem;
  gap: 0.3rem;
  margin-top: 0.5rem;
}

.eventFeatureCopy dl {
  margin-top: 0.25rem;
}

.eventFeatureCopy dt {
  margin-top: 0.25rem;
  font-weight: 700;
}

.eventFeatureCopy dd {
  margin-top: 0.1rem;
}

.eventFeatureImages {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.eventFeatureImages img {
  width: 6rem;
  height: auto;
}

.eventPatient {
  margin-top: 0.3rem;
}

.eventPatient h3 {
  margin-bottom: 0.25rem;
  font-weight: 700;
}

.eventSecondWide {
  height: 10.8rem;
}

.eventClosing {
  margin-top: 0.36rem;
}

.eventClosing h2 + p {
  margin-top: 0.3rem;
}

.eventClosing p + h2 {
  margin-top: 0.3rem;
}

.eventMoments {
  width: 94%;
  max-width: 14.4rem;
  margin: 0.5rem auto 0;
  padding: 0.49rem 0.43rem 0.35rem;
  background: var(--yofo-pale);
}

.eventMoments h2 {
  margin-bottom: 0.3rem;
  font-size: clamp(26px, 0.38rem, 38px);
  font-weight: 400;
  line-height: 1.21;
  text-align: center;
}

.eventMomentsGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.3rem;
}

.eventMomentsGrid span {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3.27rem;
  background: #d4d4d4;
}

.eventMomentsGrid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.eventMoments .eventsButton {
  margin: 0.3rem auto 0;
}

.eventArticleNav {
  display: flex;
  justify-content: space-between;
  max-width: 14.09rem;
  margin-top: 0.7rem;
}

.eventArticleNav a {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--yofo-navy);
  font-size: clamp(14px, 0.22rem, 22px);
}

.eventArticleNav a svg {
  width: 0.24rem;
  height: 0.47rem;
  transition: transform 0.3s ease;
}

.eventArticleNav a:first-child:hover svg {
  transform: translateX(-0.06rem);
}

.eventArticleNav a:last-child:hover svg {
  transform: translateX(0.06rem);
}

@media (max-width: 1024px) {
  .eventsHeroIndex {
    height: 7.5rem;
  }

  .eventsHero h1 {
    max-width: 60%;
    margin-top: 0.7rem;
  }

  .eventsUpcomingItem {
    grid-template-columns: 55% 45%;
  }

  .eventsPastItem {
    grid-template-columns: 48% 52%;
  }
}

@media (max-width: 750px) {
  .eventsPage {
    padding-top: 105px;
  }

  .eventsHeroIndex,
  .eventsHeroDetail {
    height: 430px;
  }

  .eventsHero > img {
    object-position: 62% center;
  }

  .eventsHeroInner {
    padding-top: 30px;
  }

  .eventsHero h1 {
    width: 100%;
    max-width: 90%;
    margin-top: 50px;
    font-size: 34px;
  }

  .eventsHero .eventsButton {
    margin-top: 28px;
  }

  .eventsUpcoming {
    padding-top: 60px;
  }

  .eventsUpcomingList,
  .eventsPastList {
    gap: 25px;
    margin-top: 30px;
  }

  .eventsUpcomingItem,
  .eventsPastItem {
    display: flex;
    flex-direction: column;
    height: auto;
  }

  .eventsUpcomingItem .eventsImage,
  .eventsPastItem .eventsImage {
    height: 260px;
  }

  .eventsUpcomingCopy,
  .eventsPastCopy {
    min-height: 330px;
    padding: 28px 24px;
  }

  .eventsUpcomingCopy > span {
    margin-top: 25px;
  }

  .eventsPastAnchor {
    margin-top: 25px;
  }

  .eventsPast {
    padding-top: 20px;
    padding-bottom: 80px;
  }

  .eventsPastCopy .eventsButton {
    margin-top: 28px;
  }

  .eventsLoad {
    width: 260px;
    margin-top: 60px;
  }

  .eventArticle {
    padding-top: 35px;
    padding-bottom: 80px;
  }

  .eventArticleHeader {
    margin-top: 40px;
  }

  .eventIntro,
  .eventVideo,
  .eventSection,
  .eventWideImage,
  .eventFeatures,
  .eventMoments {
    margin-top: 40px;
  }

  .eventVideo {
    height: 300px;
  }

  .eventVideo button {
    width: 70px;
    height: 70px;
  }

  .eventVideoTitle {
    bottom: 15px;
    padding: 14px 20px;
    font-size: 24px;
  }

  .eventWideImage,
  .eventSecondWide {
    height: 320px;
  }

  .eventFeatures {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .eventFeatureImages {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .eventFeatureImages img {
    width: 100%;
    height: 220px;
    object-fit: cover;
  }

  .eventPatient,
  .eventClosing {
    margin-top: 35px;
  }

  .eventMoments {
    padding: 25px 20px;
  }

  .eventMomentsGrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .eventMomentsGrid span {
    height: 160px;
  }


  .eventArticleNav {
    margin-top: 60px;
  }
}

@media (max-width: 480px) {
  .eventsHero h1 {
    max-width: 100%;
    font-size: 30px;
  }

  .eventsUpcomingItem .eventsImage,
  .eventsPastItem .eventsImage {
    height: 220px;
  }

  .eventsUpcomingCopy,
  .eventsPastCopy {
    min-height: 370px;
  }

  .eventFeatureImages {
    grid-template-columns: 1fr;
  }

  .eventFeatureImages img {
    height: 240px;
  }

  .eventMomentsGrid span {
    height: 130px;
  }
}

/* Mobile layout refinements */
@media (max-width: 750px) {
  .eventsPage {
    padding-top: 64px;
  }

  .eventsHeroIndex,
  .eventsHeroDetail {
    height: 520px;
  }

  .eventsHeroInner {
    width: 100%;
    max-width: none;
    padding: 30px 20px 0;
  }

  .eventsHeroLabel {
    font-size: 25px;
  }

  .eventsHero h1 {
    width: 100%;
    max-width: 100%;
    margin-top: 48px;
    font-size: clamp(30px, 8vw, 38px);
    line-height: 1.14;
  }

  .eventsHero .eventsButton {
    min-height: 48px;
    margin-top: 26px;
  }

  .eventsUpcoming,
  .eventsPast,
  .eventArticleInner,
  .eventArticleNav,
  .eventBackWrap {
    width: calc(100% - 40px);
    max-width: none;
  }

  .eventsUpcoming,
  .eventsPast,
  .eventArticle {
    padding-top: 44px;
  }

  .eventsUpcomingList,
  .eventsPastList {
    gap: 24px;
    margin-top: 28px;
  }

  .eventsUpcomingItem,
  .eventsPastItem {
    display: flex;
    flex-direction: column;
    height: auto;
  }

  .eventsUpcomingItem .eventsImage,
  .eventsPastItem .eventsImage {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .eventsUpcomingCopy,
  .eventsPastCopy {
    min-height: 0;
    padding: 26px 20px 28px;
  }

  .eventsUpcomingCopy strong,
  .eventsPastCopy > strong {
    font-size: 24px;
    line-height: 1.25;
  }

  .eventsUpcomingCopy .eventsButton,
  .eventsPastCopy .eventsButton {
    min-height: 44px;
    margin-top: 24px;
  }

  .eventArticleHeader {
    margin-top: 28px;
  }

  .eventArticleNav {
    gap: 20px;
  }

  .eventArticleNav a {
    min-width: 0;
    gap: 10px;
    font-size: 14px;
    line-height: 1.35;
  }

  .eventArticleNav a:last-child {
    text-align: right;
  }

  .eventArticleNav a svg {
    flex: 0 0 auto;
    width: 18px;
    height: 34px;
  }

  .eventArticleHeader h1,
  .eventArticle h2 {
    font-size: 28px;
    line-height: 1.25;
    overflow-wrap: anywhere;
  }

  .eventCopy {
    font-size: 16px;
    line-height: 1.55;
  }

  .eventVideo,
  .eventWideImage,
  .eventSecondWide {
    height: auto;
    aspect-ratio: 16 / 9;
    margin-top: 34px;
  }

  .eventVideo button {
    width: 64px;
    height: 64px;
  }

  .eventVideoTitle {
    right: 14px;
    bottom: 14px;
    left: 14px;
    padding: 12px 14px;
    font-size: 20px;
  }

  .eventFeatures {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .eventFeatureImages {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .eventFeatureImages img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }

  .eventMoments {
    padding: 22px 16px;
  }

  .eventMomentsGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .eventMomentsGrid span {
    height: 140px;
  }
}

/* Final Events mobile pass. */
@media (max-width: 750px) {
  .eventsPage {
    max-width: 100%;
    overflow-x: clip;
  }

  .eventsHeroIndex::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(44, 50, 71, .45) 0%, rgba(44, 50, 71, .1) 48%, rgba(44, 50, 71, .5) 100%);
  }

  .eventsHeroIndex .eventsHeroInner {
    z-index: 1;
  }

  .eventsHeroLabel,
  .eventsHeroIndex h1 {
    color: #fff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .45);
  }

  .eventsHeroDetail {
    height: 380px;
  }

  .eventArticle,
  .eventArticle * {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .eventArticle table {
    display: block;
    overflow-x: auto;
  }
}
