.app-general-section {
  --app-general-section-background: var(--app-color-surface);
  --app-general-section-foreground: var(--app-color-text);
  --app-general-section-muted: var(--app-color-muted);
  background: var(--app-general-section-background);
  color: var(--app-general-section-foreground);
}

.app-general-section--surface-muted {
  --app-general-section-background: var(--app-color-surface-alt);
}

.app-general-section--surface-accent {
  --app-general-section-background: var(--app-color-surface-accent);
}

.app-general-section--surface-primary,
.app-general-section--surface-contrast {
  --app-general-section-background: var(--primary);
  --app-general-section-foreground: var(--primary-inverse, var(--light));
  --app-general-section-muted: rgba(255, 255, 255, 0.78);
}

.app-general-section--surface-dark {
  --app-general-section-background: var(--dark);
  --app-general-section-foreground: var(--light);
  --app-general-section-muted: var(--light-rgba-80);
}

.app-general-section h2,
.app-general-section h3,
.app-general-section h4,
.app-general-section p,
.app-general-section dt,
.app-general-section dd,
.app-general-section label {
  color: inherit;
}

.app-general-section__container {
  --app-general-container-padding-inline: clamp(1.25rem, 4vw, 3rem);
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--app-general-container-padding-inline);
}

.app-general-section__container--content { max-width: 62rem; }
.app-general-section__container--default { max-width: 75rem; }
.app-general-section__container--wide { max-width: 90rem; }
.app-general-section__container--full { max-width: none; }
.app-general-section--full-bleed .app-general-section__container--full { padding-inline: 0; }

.app-general-section--spacing-none .app-general-section__container { padding-block: 0; }
.app-general-section--spacing-sm .app-general-section__container { padding-block: clamp(1.5rem, 3vw, 2.5rem); }
.app-general-section--spacing-md .app-general-section__container { padding-block: clamp(2.5rem, 5vw, 4rem); }
.app-general-section--spacing-lg .app-general-section__container { padding-block: clamp(3.5rem, 7vw, 6rem); }
.app-general-section--spacing-xl .app-general-section__container { padding-block: clamp(5rem, 9vw, 8rem); }

.app-general-section--divider-top,
.app-general-section--divider-both {
  border-top: 1px solid var(--app-color-border);
}

.app-general-section--divider-bottom,
.app-general-section--divider-both {
  border-bottom: 1px solid var(--app-color-border);
}

.app-general-section--height-auto { --app-general-section-min-height: 0; }
.app-general-section--height-compact { --app-general-section-min-height: 26rem; }
.app-general-section--height-standard { --app-general-section-min-height: 32.5rem; }
.app-general-section--height-tall { --app-general-section-min-height: 38rem; }

.app-general-section__heading {
  max-width: 50rem;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.app-general-section__heading--center { margin-inline: auto; text-align: center; }
.app-general-section__heading--end { margin-left: auto; text-align: end; }
.app-general-section__heading--with-actions {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(12rem, 1fr);
  align-items: end;
  gap: 2rem;
  max-width: none;
}
.app-general-section__heading-actions { display: flex; justify-content: flex-end; padding-bottom: .25rem; }

.app-general-section__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  min-height: var(--app-general-section-min-height, 0);
}

.app-general-section__grid--gap-none { gap: 0; }
.app-general-section__grid--gap-sm { gap: clamp(0.75rem, 2vw, 1.25rem); }
.app-general-section__grid--gap-md { gap: clamp(1rem, 3vw, 2rem); }
.app-general-section__grid--gap-lg { gap: clamp(1.5rem, 4vw, 3rem); }
.app-general-section__grid--gap-xl { gap: clamp(2rem, 5vw, 4.5rem); }
.app-general-section__grid--align-center { align-items: center; }
.app-general-section__grid--align-end { align-items: end; }
.app-general-section__grid--align-stretch { align-items: stretch; }

.app-general-column {
  --app-general-column-background: transparent;
  --app-general-column-foreground: var(--app-general-section-foreground);
  --app-general-column-muted: var(--app-general-section-muted);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
  grid-column: var(--app-general-start, auto) / span var(--app-general-span, 12);
  background: var(--app-general-column-background);
  color: var(--app-general-column-foreground);
}

.app-general-column--surface-base {
  --app-general-column-background: var(--app-color-surface);
  --app-general-column-foreground: var(--app-color-text);
  --app-general-column-muted: var(--app-color-muted);
}

.app-general-column--surface-muted {
  --app-general-column-background: var(--app-color-surface-alt);
  --app-general-column-foreground: var(--app-color-text);
  --app-general-column-muted: var(--app-color-muted);
}

.app-general-column--surface-accent {
  --app-general-column-background: var(--app-color-surface-accent);
  --app-general-column-foreground: var(--app-color-text);
  --app-general-column-muted: var(--app-color-muted);
}

.app-general-column--surface-contrast,
.app-general-column--surface-primary {
  --app-general-column-background: var(--primary);
  --app-general-column-foreground: var(--primary-inverse, var(--light));
  --app-general-column-muted: color-mix(in srgb, var(--primary-inverse, var(--light)) 78%, transparent);
}

.app-general-column--surface-secondary {
  --app-general-column-background: var(--secondary);
  --app-general-column-foreground: var(--secondary-inverse, var(--light));
  --app-general-column-muted: color-mix(in srgb, var(--secondary-inverse, var(--light)) 78%, transparent);
}

.app-general-column--surface-tertiary {
  --app-general-column-background: var(--tertiary);
  --app-general-column-foreground: var(--tertiary-inverse, var(--light));
  --app-general-column-muted: color-mix(in srgb, var(--tertiary-inverse, var(--light)) 78%, transparent);
}

.app-general-column--surface-quaternary {
  --app-general-column-background: var(--quaternary);
  --app-general-column-foreground: var(--quaternary-inverse, var(--light));
  --app-general-column-muted: color-mix(in srgb, var(--quaternary-inverse, var(--light)) 78%, transparent);
}

.app-general-column--padding-sm { padding: clamp(1rem, 2vw, 1.5rem); }
.app-general-column--padding-md { padding: clamp(1.5rem, 3vw, 2.5rem); }
.app-general-column--padding-lg { padding: clamp(2rem, 4vw, 3.75rem); }
.app-general-column--padding-xl { padding: clamp(3rem, 6vw, 5rem); }
.app-general-column--vertical-center { justify-content: center; }
.app-general-column--vertical-end { justify-content: flex-end; }
.app-general-column--fill-height { height: 100%; }
.app-general-column--fill-height > * { width: 100%; }
/* A single standard card in a fill-height column stretches to the row height; its actions settle at the bottom. */
.app-general-column--fill-height > .app-card-list:has(> .card:only-child) { height: 100%; display: flex; flex-direction: column; }
.app-general-column--fill-height > .app-card-list > .card:only-child { flex: 1 1 auto; }
.app-general-column--fill-height > .app-card-list > .card:only-child > .card-body { display: flex; flex-direction: column; flex: 1 1 auto; }
.app-general-column--fill-height > .app-card-list > .card:only-child > .card-body > .d-flex:last-child { margin-top: auto !important; padding-top: 1.5rem; }

.app-general-column__title {
  margin-bottom: 1rem;
  color: var(--app-general-column-foreground, var(--app-general-section-foreground));
  font-size: clamp(2.25rem, 4vw, 3.0625rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.03em;
  text-transform: none;
}

.app-general-content-flow > :last-child,
.app-general-column > :last-child {
  margin-bottom: 0;
}

.app-general-content-flow .lead {
  color: var(--app-general-column-muted, var(--app-general-section-muted));
}

.app-general-content-flow--panel {
  height: 100%;
  background: var(--app-general-column-background);
  color: var(--app-general-column-foreground);
}

.app-general-content-flow--panel .app-general-column__title {
  font-size: clamp(2rem, 3.2vw, 2.75rem);
}

.app-content-icon-info {
  align-items: center;
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
}

.app-content-icon-info .feature-box-icon {
  flex: 0 0 auto;
}

.app-content-icon-info--large .feature-box-icon {
  width: 3.25rem;
  height: 3.25rem;
  font-size: 1.35rem;
}

.app-content-icon-info__body {
  min-width: 0;
  padding-left: clamp(0.75rem, 2vw, 1.1rem);
}

.app-content-icon-info__title {
  font-family: var(--app-font-ui, inherit);
  font-weight: 600;
  text-transform: uppercase;
  margin: 0 0 0.3rem;
  color: inherit;
  font-size: 1rem;
  line-height: 1.35;
}

.app-content-icon-info__body > :last-child,
.app-content-icon-info__body > :last-child > :last-child {
  margin-bottom: 0;
}

.app-general-content-flow__disclosure-toggle {
  color: var(--app-general-column-foreground);
  font-weight: 600;
  text-decoration: none;
}

.app-general-content-flow__disclosure-toggle:hover,
.app-general-content-flow__disclosure-toggle:focus-visible {
  color: inherit;
  text-decoration: underline;
}

.app-general-content-flow__actions { margin-top: clamp(1.5rem, 4vw, 3rem); }

/* Section continuation links share emphasis without changing filled actions. */
:is(.app-general-content-flow__actions, .app-general-section__heading-actions) a.btn.btn-link {
  font-size: 1rem;
  transition: transform 160ms ease, color 160ms ease;
}

/* Opt-in service copy and resource treatments; ordinary columns are unchanged. */
.app-general-content-flow--service-document,
.app-general-content-flow--resource-card,
.app-general-content-flow--resource-banner { min-width: 0; overflow-wrap: anywhere; }
.mp-site .app-general-content-flow--service-document > h2.app-general-column__title {
  --mp-h2: 1.875rem;
  margin-bottom: 1.5rem;
}
.mp-site .app-general-content-flow--service-document > :is(h3.app-general-column__title, .app-content-subheading) {
  --mp-h3: 1.125rem;
  color: var(--primary);
  text-transform: uppercase;
  margin-block: 2rem 1.25rem;
}
.mp-site .app-general-content-flow--service-document > h3.app-general-column__title { margin-top: 0; }
.app-general-content-flow--service-document > p { margin-bottom: 2rem; }
.app-general-content-flow--service-document > .app-content-list { margin-bottom: 2rem; padding-inline-start: 1.5rem; }
.app-general-content-flow--resource-card {
  height: 100%;
  padding: 1.5rem;
  background: var(--light, #fff);
  color: var(--dark, #29282b);
  box-shadow: 0 5px 30px rgba(0, 0, 0, .08);
}
.mp-site :is(.app-general-content-flow--resource-card, .app-general-content-flow--resource-banner) > .app-general-column__title {
  --mp-h3: 1.125rem;
  --mp-h4: 1.125rem;
  margin-bottom: 1rem;
}
.app-general-content-flow--resource-card > p { margin-bottom: 1rem; }
.app-general-content-flow--resource-card > .app-general-content-flow__actions { margin-top: 1.25rem; }
.app-general-content-flow--resource-card .btn-link { padding: 0; font-weight: 700; text-align: start; }
.app-general-content-flow--resource-banner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .5rem 2rem;
  padding: 2rem;
  background: var(--primary);
  color: var(--light, #fff);
}
.app-general-content-flow--resource-banner > :not(.app-general-content-flow__actions) { grid-column: 1; }
.app-general-content-flow--resource-banner > p { margin: 0; }
.app-general-content-flow--resource-banner > .app-general-content-flow__actions { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
@media (max-width: 767.98px) {
  .app-general-content-flow--resource-banner { grid-template-columns: minmax(0, 1fr); padding: 1.5rem; }
  .app-general-content-flow--resource-banner > .app-general-content-flow__actions { grid-column: 1; grid-row: auto; margin-top: 1rem; }
}

/* Opt-in professional documents; default editorial columns retain their styling. */
.app-general-content-flow--document {
  max-width: 75ch;
  min-width: 0;
  overflow-wrap: anywhere;
}
.app-general-content-flow--document > .app-general-column__title,
.app-general-content-flow--document > .app-content-subheading {
  color: var(--primary);
  text-transform: none;
}
.app-general-content-flow--document > .app-general-column__title { margin-bottom: .75rem; }
.app-general-content-flow--document > .lead { font-weight: 600; margin-bottom: .5rem; }
.app-general-content-flow--document > .app-content-metadata {
  color: var(--app-color-muted, var(--app-color-text));
  color: color-mix(in srgb, var(--app-color-text) 75%, var(--app-color-background));
  font-size: .9375em;
  margin-bottom: 1.5rem;
}
.app-general-content-flow--document > .app-content-subheading { margin-top: 2.5rem; margin-bottom: 1rem; }
.app-general-content-flow--document .app-content-list { padding-inline-start: 1.5rem; margin-block: 1rem 1.75rem; }
.app-general-content-flow--document .app-content-list > li { padding-inline-start: .25rem; margin-bottom: .85rem; }
.app-general-content-flow--document .app-content-quote {
  margin: 1.25rem 0;
  padding: .25rem 0 .25rem 1.25rem;
  border-inline-start: 3px solid var(--primary);
  font-size: inherit;
  font-style: normal;
}
.app-general-content-flow--document .app-content-quote p { font-size: inherit; font-style: normal; line-height: inherit; }
.app-general-content-flow--document .app-content-quote__attribution { margin-top: .75rem; font-size: .9375em; font-style: normal; }

.app-content-subheading[data-document-heading] { scroll-margin-top: var(--app-document-offset, 12rem); }
.app-content-subheading[data-document-heading]:focus-visible { outline: 2px solid currentColor; outline-offset: .35rem; }

:is(.app-general-content-flow__actions, .app-general-section__heading-actions) a.btn.btn-link:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  :is(.app-general-content-flow__actions, .app-general-section__heading-actions) a.btn.btn-link:hover {
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.app-general-content-flow__actions, .app-general-section__heading-actions) a.btn.btn-link {
    transition: none;
  }
}

.app-general-content-flow__list-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); margin-block: 1.75rem; }
.app-general-content-flow__list-groups--single { grid-template-columns: minmax(0, 1fr); }
.app-general-content-flow__list-groups .app-content-subheading { color: var(--app-general-column-foreground); font-size: 1rem; font-weight: 700; }
.app-general-content-flow__list-groups .app-check-list li { display: flex; align-items: center; min-height: 2.5rem; padding-left: 0; color: var(--app-general-column-foreground); font-size: 1.05rem; font-weight: 600; }
.app-general-content-flow__list-groups .app-check-list-icon { position: static; flex: 0 0 auto; margin-right: .8rem; }
@media (max-width: 575px) { .app-general-content-flow__list-groups { grid-template-columns: 1fr; } }

.app-general-media,
.app-general-media-collage figure,
.app-general-video {
  margin: 0;
}

.app-general-media img,
.app-general-media-collage img,
.app-general-media-cascade img,
.app-general-video video {
  display: block;
  width: 100%;
  object-fit: cover;
}

.app-general-video--background-cover {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100%;
  min-height: 24rem;
  overflow: hidden;
  background: var(--dark, #212529);
}

.app-general-video--background-cover video {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  object-fit: cover;
  box-shadow: none;
}

.app-general-video__overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
}

.app-general-video--overlay-primary-soft .app-general-video__overlay { background: var(--primary-rgba-20, color-mix(in srgb, var(--primary) 20%, transparent)); }
.app-general-video--overlay-primary-medium .app-general-video__overlay { background: var(--primary-rgba-40, color-mix(in srgb, var(--primary) 40%, transparent)); }
.app-general-video--overlay-primary-strong .app-general-video__overlay { background: var(--primary-rgba-80, color-mix(in srgb, var(--primary) 80%, transparent)); }
.app-general-video--overlay-dark-soft .app-general-video__overlay { background: color-mix(in srgb, var(--dark, #212529) 24%, transparent); }
.app-general-video--position-left video { object-position: left center; }
.app-general-video--position-right-quarter video { object-position: 75% center; }
.app-general-video--position-right video { object-position: right center; }
.app-general-video--position-top video { object-position: center top; }
.app-general-video--position-bottom video { object-position: center bottom; }

.app-general-video__overlay-heading {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: clamp(2rem, 4vw, 4rem);
  pointer-events: none;
  color: var(--light, #fff);
}

.app-general-video__overlay-heading--position-top { justify-content: flex-start; }
.app-general-video__overlay-heading--position-center { justify-content: center; }
.app-general-video__overlay-heading--position-bottom { justify-content: flex-end; }
.app-general-video__overlay-heading--align-start { align-items: flex-start; text-align: left; }
.app-general-video__overlay-heading--align-center { align-items: center; text-align: center; }
.app-general-video__overlay-heading--align-end { align-items: flex-end; text-align: right; }

.app-general-video .app-general-video__overlay-heading h2,
.app-general-video .app-general-video__overlay-heading h3,
.app-general-video .app-general-video__overlay-heading h4,
.app-general-video .app-general-video__overlay-heading h5,
.app-general-video .app-general-video__overlay-heading h6 {
  /* Media captions own their measure, including inside heroes with narrow copy titles. */
  min-width: 0;
  max-width: 100%;
  margin: 0;
  color: inherit;
  font-size: clamp(1.75rem, 2.6vw, 2.75rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-shadow: 0 0.12em 0.6em rgba(0, 0, 0, 0.28);
}

.app-general-video__overlay-heading span {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
}

.app-general-media--has-overlay-caption {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 0.35rem;
}

.app-general-media--has-overlay-caption > img {
  height: 100%;
}

.app-general-media .app-general-media__overlay-caption {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: clamp(1.5rem, 5vw, 3rem);
  color: var(--light);
  font-size: inherit;
  pointer-events: none;
}

.app-general-media__overlay-caption.app-image-frame-caption--position-top {
  justify-content: flex-start;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.84) 0, rgba(0, 0, 0, 0.38) 58%, transparent 100%);
}

.app-general-media__overlay-caption.app-image-frame-caption--position-center {
  justify-content: center;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.24) 0, rgba(0, 0, 0, 0.72) 30%, rgba(0, 0, 0, 0.72) 70%, rgba(0, 0, 0, 0.24) 100%);
}

.app-general-media__overlay-caption.app-image-frame-caption--position-bottom {
  justify-content: flex-end;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0, rgba(0, 0, 0, 0.48) 58%, transparent 100%);
}

.app-general-lightbox-media {
  position: relative;
  display: block;
  min-height: 20rem;
  height: 100%;
  overflow: hidden;
  color: var(--light);
}

.app-general-lightbox-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 450ms ease;
}

.app-general-lightbox-media--focal-left img { object-position: left center; }
.app-general-lightbox-media--focal-right img { object-position: right center; }
.app-general-lightbox-media--focal-top img { object-position: center top; }
.app-general-lightbox-media--focal-bottom img { object-position: center bottom; }

.app-general-lightbox-media__overlay,
.app-general-image-carousel__overlay {
  position: absolute;
  inset: 0;
  background: var(--dark);
  pointer-events: none;
}

.app-general-lightbox-media--overlay-none .app-general-lightbox-media__overlay,
.app-general-image-carousel--overlay-none .app-general-image-carousel__overlay { opacity: 0; }
.app-general-lightbox-media--overlay-soft .app-general-lightbox-media__overlay,
.app-general-image-carousel--overlay-soft .app-general-image-carousel__overlay { opacity: 0.25; }
.app-general-lightbox-media--overlay-medium .app-general-lightbox-media__overlay,
.app-general-image-carousel--overlay-medium .app-general-image-carousel__overlay { opacity: 0.45; }
.app-general-lightbox-media--overlay-strong .app-general-lightbox-media__overlay,
.app-general-image-carousel--overlay-strong .app-general-image-carousel__overlay { opacity: 0.65; }

.app-general-lightbox-media__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: inline-flex;
  width: 4.25rem;
  height: 4.25rem;
  align-items: center;
  justify-content: center;
  border: 2px solid currentColor;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: transform 250ms ease, background-color 250ms ease;
}

.app-general-lightbox-media:hover img { transform: scale(1.035); }
.app-general-lightbox-media:hover .app-general-lightbox-media__play,
.app-general-lightbox-media:focus-visible .app-general-lightbox-media__play {
  background: color-mix(in srgb, var(--dark) 45%, transparent);
  transform: translate(-50%, -50%) scale(1.08);
}

.app-general-lightbox-media:focus-visible {
  outline: 3px solid var(--primary-inverse, var(--light));
  outline-offset: -3px;
}

.app-general-image-carousel,
.app-general-image-carousel .owl-stage-outer,
.app-general-image-carousel .owl-stage,
.app-general-image-carousel .owl-item,
.app-general-image-carousel__slide {
  height: 100%;
}

.app-general-image-carousel__slide {
  position: relative;
  min-height: 20rem;
  margin: 0;
  overflow: hidden;
}

.app-general-image-carousel__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.app-general-image-carousel--aspect-square {
  position: relative;
  height: auto;
  min-height: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.app-general-image-carousel--aspect-square .owl-stage-outer {
  position: absolute;
  inset: 0;
}

.app-general-image-carousel--aspect-square.app-general-image-carousel--single .app-general-image-carousel__slide {
  position: absolute;
  inset: 0;
}

.app-general-image-carousel--aspect-square .app-general-image-carousel__slide {
  min-height: 0;
}

.app-general-image-carousel--presentation-title-type .thumb-info,
.app-general-image-carousel--presentation-title-type .thumb-info-wrapper {
  display: block;
  width: 100%;
  height: 100%;
}

.app-general-image-carousel--presentation-title-type .thumb-info {
  pointer-events: none;
}

.app-general-image-carousel--presentation-title-type .thumb-info-wrapper::after {
  opacity: 0;
}

.app-general-image-carousel--presentation-title-type .thumb-info:hover .thumb-info-title {
  background: var(--dark-rgba-80);
}

.app-general-image-carousel--presentation-title-type .thumb-info img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.app-general-image-carousel--presentation-title-type .thumb-info-title {
  z-index: 2;
}

.app-general-image-carousel__slide figcaption {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
  z-index: 2;
  color: var(--light);
}

.app-general-image-carousel .owl-dots {
  text-align: center;
  position: absolute;
  right: 0;
  bottom: 1.25rem;
  left: 0;
  z-index: 3;
}

.app-general-image-carousel--single .owl-dots {
  display: none;
}

.app-general-image-frame-gallery__grid {
  display: grid;
  grid-template-columns: repeat(var(--app-image-frame-columns, 3), minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 2rem);
}

.app-general-image-frame-gallery__item,
.app-general-image-frame-gallery__item > .thumb-info {
  min-width: 0;
  height: 100%;
}

.app-general-image-frame-gallery__item .thumb-info-wrapper,
.app-general-image-frame-gallery__item .thumb-info-wrapper img {
  width: 100%;
}

.app-general-image-frame-gallery--full-zoom .owl-carousel {
  position: relative;
  z-index: 1;
}

.app-image-frame-full-zoom {
  position: relative;
  overflow: hidden;
  --app-image-frame-full-zoom-height: clamp(24rem, 34vw, 30rem);
  height: var(--app-image-frame-full-zoom-height);
  min-height: var(--app-image-frame-full-zoom-height);
}

.app-image-frame-full-zoom--height-compact {
  --app-image-frame-full-zoom-height: clamp(18rem, 28vw, 24rem);
}

.app-image-frame-full-zoom--height-standard {
  --app-image-frame-full-zoom-height: clamp(24rem, 34vw, 30rem);
}

.app-image-frame-full-zoom--height-tall {
  --app-image-frame-full-zoom-height: clamp(30rem, 42vw, 38rem);
}

.app-image-frame-full-zoom > .owl-carousel {
  height: 100% !important;
}

.app-image-frame-full-zoom > .owl-carousel .owl-stage-outer,
.app-image-frame-full-zoom > .owl-carousel .owl-stage,
.app-image-frame-full-zoom > .owl-carousel .owl-item,
.app-image-frame-full-zoom .app-general-image-frame-gallery__item,
.app-image-frame-full-zoom .thumb-info,
.app-image-frame-full-zoom .thumb-info > a,
.app-image-frame-full-zoom .thumb-info-wrapper {
  height: 100%;
}

.app-image-frame-full-zoom .thumb-info,
.app-image-frame-full-zoom .thumb-info > a,
.app-image-frame-full-zoom .thumb-info-wrapper {
  display: block;
}

.app-image-frame-full-zoom .thumb-info-wrapper img {
  height: 100%;
  object-fit: cover;
}

.app-image-frame-full-zoom.app-image-frame-full-zoom--captions-visible-until-active .thumb-info.thumb-info-bottom-info .thumb-info-title {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.app-image-frame-full-zoom.app-image-frame-full-zoom--captions-visible-until-active.is-full-zoom-active .thumb-info.thumb-info-bottom-info .thumb-info-title {
  opacity: 0;
  transform: translate3d(0, 100%, 0);
}

.app-image-frame-full-zoom .thumb-info.thumb-info-bottom-info .thumb-info-title.app-image-frame-caption {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  inset: 0;
  max-width: none;
  padding: clamp(1rem, 2.75vw, 2.25rem);
  pointer-events: none;
  transform: none;
  width: 100%;
  letter-spacing: 0;
  opacity: 0;
}

.app-image-frame-full-zoom .thumb-info.thumb-info-bottom-info:hover .app-image-frame-caption,
.app-image-frame-full-zoom .thumb-info.thumb-info-bottom-info:focus-within .app-image-frame-caption,
.app-image-frame-full-zoom.app-image-frame-full-zoom--captions-visible-until-active .thumb-info.thumb-info-bottom-info .app-image-frame-caption {
  opacity: 1;
  transform: none;
}

.app-image-frame-full-zoom.app-image-frame-full-zoom--captions-visible-until-active.is-full-zoom-active .thumb-info.thumb-info-bottom-info .app-image-frame-caption {
  opacity: 0;
  transform: none;
}

.app-image-frame-full-zoom .thumb-info.thumb-info-bottom-info .app-image-frame-caption--position-top {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.82) 0, rgba(0, 0, 0, 0.32) 54%, transparent 100%);
  justify-content: flex-start;
}

.app-image-frame-full-zoom .thumb-info.thumb-info-bottom-info .app-image-frame-caption--position-center {
  background: linear-gradient(to bottom, transparent 0, rgba(0, 0, 0, 0.68) 28%, rgba(0, 0, 0, 0.68) 72%, transparent 100%);
  justify-content: center;
}

.app-image-frame-full-zoom .thumb-info.thumb-info-bottom-info .app-image-frame-caption--position-bottom {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.82) 0, rgba(0, 0, 0, 0.32) 54%, transparent 100%);
  justify-content: flex-end;
}

.app-image-frame-caption--align-start {
  align-items: flex-start;
  text-align: left;
}

.app-image-frame-caption--align-center {
  align-items: center;
  text-align: center;
}

.app-image-frame-caption--align-end {
  align-items: flex-end;
  text-align: right;
}

.app-image-frame-caption {
  --app-image-frame-caption-gap: 0.45rem;
}

.app-image-frame-caption--gap-compact { --app-image-frame-caption-gap: 0.2rem; }
.app-image-frame-caption--gap-relaxed { --app-image-frame-caption-gap: 0.8rem; }

.app-image-frame-caption__inner {
  display: flex;
  flex-direction: column;
  gap: var(--app-image-frame-caption-gap);
  max-width: 100%;
}

.app-image-frame-caption__inner--width-sm { width: min(100%, 12rem); }
.app-image-frame-caption__inner--width-md { width: min(100%, 18rem); }
.app-image-frame-caption__inner--width-lg { width: min(100%, 26rem); }
.app-image-frame-caption__inner--width-full { width: 100%; }

.app-image-frame-caption__eyebrow,
.app-image-frame-caption__title,
.app-image-frame-caption__text {
  color: inherit;
  display: block;
  margin: 0;
  max-width: 100%;
}

.app-image-frame-caption__eyebrow {
  line-height: 1.2;
}

.app-image-frame-caption__eyebrow--size-sm { font-size: 0.65rem; }
.app-image-frame-caption__eyebrow--size-md { font-size: 0.75rem; }
.app-image-frame-caption__eyebrow--size-lg,
.app-image-frame-caption__eyebrow--size-xl { font-size: 0.9rem; }

.app-image-frame-caption__title {
  font-weight: 700;
  line-height: 1.08;
}

.app-image-frame-caption__title--size-sm { font-size: clamp(1rem, 1.25vw, 1.2rem); }
.app-image-frame-caption__title--size-md { font-size: clamp(1.2rem, 1.75vw, 1.55rem); }
.app-image-frame-caption__title--size-lg { font-size: clamp(1.45rem, 2.25vw, 2rem); }
.app-image-frame-caption__title--size-xl { font-size: clamp(1.75rem, 3vw, 2.65rem); }

.app-image-frame-caption__text {
  font-weight: 400;
  line-height: 1.45;
}

.app-image-frame-caption__text--size-sm { font-size: 0.78rem; }
.app-image-frame-caption__text--size-md { font-size: 0.9rem; }
.app-image-frame-caption__text--size-lg { font-size: 1.05rem; }
.app-image-frame-caption__text--size-xl { font-size: 1.2rem; }

.app-image-frame-full-zoom.is-full-zoom-active .thumb-info-wrapper img {
  opacity: 0;
}

.app-image-frame-full-zoom__expanded-content {
  align-items: flex-end;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0, rgba(0, 0, 0, 0.18) 46%, transparent 72%);
  color: var(--light);
  display: flex;
  inset: 0;
  opacity: 0;
  padding: clamp(1.5rem, 5vw, 4.5rem);
  pointer-events: none;
  position: absolute;
  transform: translate3d(0, 1rem, 0);
  transition: opacity 0.3s ease, transform 0.3s ease;
  visibility: hidden;
  z-index: 2;
}

.app-image-frame-full-zoom__expanded-content.is-active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  visibility: visible;
}

.app-image-frame-full-zoom__expanded-content-inner {
  max-width: 42rem;
}

.app-image-frame-full-zoom__expanded-content .app-section-eyebrow {
  margin-bottom: 0.65rem;
}

.app-image-frame-full-zoom__expanded-title {
  color: inherit;
  font-size: clamp(1.75rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.05;
  margin: 0;
}

.app-image-frame-full-zoom__expanded-body {
  color: inherit;
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.6;
  margin: 0.75rem 0 0;
  max-width: 36rem;
}

.app-image-frame-full-zoom__expanded-action {
  color: var(--primary);
  display: inline-flex;
  font-size: 0.95rem;
  font-weight: 600;
  gap: 0.35rem;
  margin-top: 1rem;
  pointer-events: auto;
  position: relative;
  text-decoration: none;
  z-index: 1;
}

.app-image-frame-full-zoom__expanded-action:hover,
.app-image-frame-full-zoom__expanded-action:focus-visible {
  color: var(--light);
  text-decoration: none;
}

.app-image-frame-full-zoom__expanded-action:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 0.3rem;
}

.app-general-section__container--full .app-general-image-frame-gallery--full-zoom {
  margin-inline: calc(var(--app-general-container-padding-inline) * -1);
}

.app-general-media img,
.app-general-video:not(.app-general-video--background-cover) video {
  aspect-ratio: 4 / 3;
  border-radius: 0.35rem;
  box-shadow: 0 1rem 2.5rem rgba(20, 30, 45, 0.14);
}

.app-general-media figcaption,
.app-general-video figcaption {
  margin-top: 0.65rem;
  color: var(--app-general-section-muted);
  font-size: 0.875rem;
}

.app-general-media-collage {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(0.75rem, 2vw, 1.25rem);
  min-height: clamp(22rem, 42vw, 35rem);
}

.app-general-media-collage__item--1 { grid-row: 1 / 3; }
.app-general-media-collage img { height: 100%; border-radius: 0.25rem; box-shadow: 0 0.75rem 2rem rgba(20, 30, 45, 0.14); }

.app-general-media-cascade {
  position: relative;
  width: min(100%, 34rem);
  aspect-ratio: 1.08;
  margin-inline: auto;
  isolation: isolate;
}

.app-general-media-cascade__plane {
  position: absolute;
  inset: 10% 8% 5% 6%;
  z-index: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--primary) 42%, transparent);
  background: var(--app-color-surface-tint);
}

.app-general-media-cascade__plane-image {
  width: 100%;
  height: 100%;
  opacity: 0.14;
  object-fit: cover;
}

.app-general-media-cascade > .app-general-media-cascade__image {
  position: absolute;
  z-index: 1;
  width: 76%;
  aspect-ratio: 4 / 3;
  border: 0.5rem solid var(--app-general-section-background);
  box-shadow: 0 1rem 2.5rem rgba(20, 30, 45, 0.18);
}

.app-general-media-cascade > .app-general-media-cascade__image--1 { inset: 0 auto auto 0; }
.app-general-media-cascade > .app-general-media-cascade__image--2 {
  inset: auto 0 0 auto;
  z-index: 2;
  width: 54%;
}
.app-general-media-cascade > .app-general-media-cascade__image--3 {
  inset: 36% auto auto 20%;
  z-index: 3;
  width: 42%;
}

.app-general-media-cascade--mask > .app-general-media-cascade__image--1 {
  clip-path: polygon(0 0, 92% 0, 100% 88%, 8% 100%);
}

.app-general-media-cascade--mask > .app-general-media-cascade__image--2 {
  border-radius: 48% 52% 42% 58% / 55% 38% 62% 45%;
  clip-path: ellipse(49% 46% at 50% 50%);
}

.app-general-media-cascade--shadow > .app-general-media-cascade__image {
  box-shadow: 0 1.75rem 4rem color-mix(in srgb, var(--app-general-section-foreground) 30%, transparent);
}

.app-general-media-cascade--floating > .app-general-media-cascade__image--1 {
  animation: app-general-cascade-float 4.5s ease-in-out infinite;
}

.app-general-media-cascade--floating > .app-general-media-cascade__image--2 {
  animation: app-general-cascade-float 4.5s ease-in-out -2.25s infinite reverse;
}

.app-general-media-cascade__decoration {
  position: absolute;
  pointer-events: none;
}

.app-general-media-cascade__decoration--circle {
  background: color-mix(in srgb, var(--secondary) 26%, transparent);
  border-radius: 50%;
  height: 28%;
  right: -4%;
  top: -5%;
  width: 28%;
}

.app-general-media-cascade__decoration--bar {
  background: var(--primary);
  bottom: 5%;
  height: 42%;
  left: 8%;
  opacity: 0.72;
  transform: rotate(-7deg);
  width: 0.75rem;
  z-index: 3;
}

@keyframes app-general-cascade-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -0.85rem, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .app-general-media-cascade--floating > .app-general-media-cascade__image {
    animation: none;
  }
}

.app-general-progress + .app-general-progress { margin-top: 1.5rem; }
.app-general-progress__label { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 0.45rem; }
.app-general-progress .progress { background: color-mix(in srgb, var(--app-general-section-foreground) 13%, transparent); }

.app-general-faq .accordion-item {
  border-color: var(--app-color-border);
  background: var(--app-color-surface);
  color: var(--app-color-text);
}

.app-general-faq .accordion-button,
.app-general-faq .accordion-body {
  background: var(--app-color-surface);
  color: var(--app-color-text);
}

.app-general-faq .accordion-button:not(.collapsed) {
  background: var(--app-color-surface-tint);
  color: var(--app-color-text);
}

.app-general-faq--editorial-inverse,
.app-general-faq--editorial-numbered {
  --app-general-faq-rule: color-mix(in srgb, var(--tertiary) 38%, transparent);
  --app-general-faq-title: var(--secondary-inverse, var(--light));
  --app-general-faq-answer: color-mix(in srgb, var(--secondary-inverse, var(--light)) 82%, var(--tertiary));
  --app-general-faq-accent: var(--quaternary);
  border-top: 1px solid var(--app-general-faq-rule);
}

.app-general-faq--editorial-numbered {
  --app-general-faq-rule: color-mix(in srgb, var(--tertiary) 72%, var(--app-color-border));
  --app-general-faq-title: var(--app-color-text);
  --app-general-faq-answer: var(--app-color-muted);
  --app-general-faq-accent: var(--primary);
}

.app-general-faq--editorial-inverse .app-general-faq__item,
.app-general-faq--editorial-numbered .app-general-faq__item {
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--app-general-faq-rule);
  border-radius: 0;
  background: transparent;
  color: var(--app-general-faq-title);
}

.app-general-faq--editorial-inverse .accordion-header,
.app-general-faq--editorial-numbered .accordion-header {
  margin: 0;
}

.app-general-faq--editorial-inverse .app-general-faq__toggle,
.app-general-faq--editorial-inverse .app-general-faq__toggle:not(.collapsed),
.app-general-faq--editorial-numbered .app-general-faq__toggle,
.app-general-faq--editorial-numbered .app-general-faq__toggle:not(.collapsed) {
  display: grid;
  grid-template-columns: clamp(2.6rem, 4vw, 3.5rem) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(.7rem, 1.5vw, 1.15rem);
  padding: clamp(1.05rem, 1.8vw, 1.4rem) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--app-general-faq-title);
  box-shadow: none;
  font-size: clamp(.98rem, 1.25vw, 1.12rem);
  font-weight: 750;
  line-height: 1.28;
  text-align: left;
  text-transform: uppercase;
}

.app-general-faq--editorial-inverse .app-general-faq__toggle::after,
.app-general-faq--editorial-numbered .app-general-faq__toggle::after {
  width: .7rem;
  height: .7rem;
  margin: 0 .25rem 0 .75rem;
  border: 0;
  border-right: 2px solid var(--app-general-faq-accent);
  border-bottom: 2px solid var(--app-general-faq-accent);
  background: none;
  transform: rotate(45deg);
  transition: transform .2s ease;
}

.app-general-faq--editorial-inverse .app-general-faq__toggle:not(.collapsed)::after,
.app-general-faq--editorial-numbered .app-general-faq__toggle:not(.collapsed)::after {
  transform: rotate(-135deg);
}

.app-general-faq--editorial-inverse .app-general-faq__toggle:focus-visible,
.app-general-faq--editorial-numbered .app-general-faq__toggle:focus-visible {
  outline: 2px solid var(--app-general-faq-accent);
  outline-offset: 4px;
  box-shadow: none;
}

.app-general-faq--editorial-inverse .app-general-faq__number,
.app-general-faq--editorial-numbered .app-general-faq__number {
  color: var(--app-general-faq-accent);
  font-size: clamp(1.15rem, 1.65vw, 1.4rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1;
}

.app-general-faq--editorial-inverse .app-general-faq__question,
.app-general-faq--editorial-numbered .app-general-faq__question {
  min-width: 0;
}

.app-general-faq--editorial-inverse .app-general-faq__answer,
.app-general-faq--editorial-numbered .app-general-faq__answer {
  padding: 0 clamp(1.85rem, 3.2vw, 2.75rem) clamp(1.15rem, 2vw, 1.5rem) clamp(3.3rem, 5.5vw, 4.65rem);
  background: transparent;
  color: var(--app-general-faq-answer);
  font-size: .98rem;
  line-height: 1.65;
}

@media (max-width: 35.99rem) {
  .app-general-faq--editorial-inverse .app-general-faq__toggle,
  .app-general-faq--editorial-inverse .app-general-faq__toggle:not(.collapsed),
  .app-general-faq--editorial-numbered .app-general-faq__toggle,
  .app-general-faq--editorial-numbered .app-general-faq__toggle:not(.collapsed) {
    grid-template-columns: 2.35rem minmax(0, 1fr) auto;
    gap: .65rem;
  }

  .app-general-faq--editorial-inverse .app-general-faq__answer,
  .app-general-faq--editorial-numbered .app-general-faq__answer {
    padding-right: 1.45rem;
    padding-left: 3rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-general-faq--editorial-inverse .app-general-faq__toggle::after,
  .app-general-faq--editorial-numbered .app-general-faq__toggle::after {
    transition: none;
  }
}

.app-general-card-carousel__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.app-general-card-carousel__controls { display: flex; gap: 0.5rem; }

.app-general-card {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--app-color-border);
  border-radius: 0.35rem;
  background: var(--app-color-surface);
  color: var(--app-color-text);
}

.app-general-card h3 { color: var(--app-color-text); }

.app-general-stat-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: 1rem;
  margin: 0;
}

.app-general-stat {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid color-mix(in srgb, var(--app-general-section-foreground) 24%, transparent);
  border-radius: 0.35rem;
  text-align: center;
}

.app-general-stat-listing { --app-eyebrow-color: currentColor; display: grid; gap: 2rem; margin: 0; padding: 0; list-style: none; }
.app-general-stat-listing__item > span { display: block; }
@media (min-width: 768px) { .app-general-stat-listing--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .app-general-stat-listing--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .app-general-stat-listing--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.app-general-stat-listing--align-center { text-align: center; }
.app-general-stat-listing--align-end { text-align: end; }
.app-general-stat-listing__item > .app-section-eyebrow { margin: 0 0 .35rem; }
.app-general-stat-listing__value { font-family: var(--mp-body-font, inherit); font-size: 2.25rem; font-weight: 700; line-height: 1.1; }
.app-general-stat-listing__label { margin-top: .35rem; font-size: 1.125rem; }
.app-general-stat dd { margin: 0 0 0.45rem; font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 800; line-height: 1; }
.app-general-stat dt { color: var(--app-general-section-muted); font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; }

.app-general-form {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid var(--app-color-border);
  border-radius: 0.35rem;
  background: var(--app-color-surface);
  color: var(--app-color-text);
}

.app-general-section--summary-row .app-general-section__grid {
  align-items: start;
}

.app-general-section--summary-row .app-general-content-flow {
  text-align: center;
}

.app-general-section--summary-row .app-general-column__title {
  font-size: clamp(1.75rem, 3vw, 2.2rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.04em;
}

@media (min-width: 36rem) {
  .app-general-column { grid-column: var(--app-general-start-sm, var(--app-general-start, auto)) / span var(--app-general-span-sm, var(--app-general-span)); }
}

@media (min-width: 48rem) {
  .app-general-column { grid-column: var(--app-general-start-md, var(--app-general-start-sm, var(--app-general-start, auto))) / span var(--app-general-span-md, var(--app-general-span-sm)); }
}

@media (min-width: 62rem) {
  .app-general-column { grid-column: var(--app-general-start-lg, var(--app-general-start-md, var(--app-general-start-sm, var(--app-general-start, auto)))) / span var(--app-general-span-lg, var(--app-general-span-md)); }
}

@media (min-width: 75rem) {
  .app-general-column { grid-column: var(--app-general-start-xl, var(--app-general-start-lg, var(--app-general-start-md, var(--app-general-start-sm, var(--app-general-start, auto))))) / span var(--app-general-span-xl, var(--app-general-span-lg)); }
}

@media (min-width: 87.5rem) {
  .app-general-column { grid-column: var(--app-general-start-xxl, var(--app-general-start-xl, var(--app-general-start-lg, var(--app-general-start-md, var(--app-general-start-sm, var(--app-general-start, auto)))))) / span var(--app-general-span-xxl, var(--app-general-span-xl)); }
}

@media (max-width: 47.99rem) {
  .app-general-media-collage { min-height: 24rem; }
}

@media (max-width: 61.99rem) {
  .app-general-section__grid { min-height: 0; }
  .app-general-lightbox-media,
  .app-general-image-carousel__slide { min-height: 24rem; }

  .app-general-image-frame-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 35.99rem) {
  .app-general-image-frame-gallery__grid { grid-template-columns: 1fr; }
}

/* Exact Base spotlight and arrow-button composition used by the shared Hub. */
.app-general-section--spotlight-links { background: var(--app-color-surface, #fff); }

.app-media-spotlight {
  position: relative;
  isolation: auto;
  width: auto;
  max-width: none;
  aspect-ratio: auto;
  margin: 0;
}

.app-media-spotlight__outer {
  position: relative;
  z-index: 2;
  width: auto;
  height: 100%;
  aspect-ratio: 1 / 1;
  margin: 10%;
  border-radius: 100%;
  background-color: #fff;
  background-position: center;
  background-size: cover;
}

.app-media-spotlight__outer::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: -6%;
  display: block;
  width: 110%;
  height: 110%;
  border: 1px solid var(--shared-spotlight-outline, #e7e7e7);
  border-radius: 50%;
  z-index: 1;
}

.app-media-spotlight__primary-layer {
  position: relative;
  z-index: 3;
  width: auto;
  height: 100%;
  aspect-ratio: 1 / 1;
  border: 70px solid var(--primary);
  border-radius: 100%;
  background-color: #fff;
  opacity: .8;
}

.app-media-spotlight__frame {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: auto;
  max-width: none;
  overflow: hidden;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;
}

.app-media-spotlight__frame img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  object-fit: initial;
}

.app-media-spotlight__callout {
  position: absolute;
  right: auto;
  bottom: 12%;
  left: -5%;
  width: clamp(250px, 40vw, 360px);
  max-width: 40vw;
  border: 0;
  background: var(--light, #fff);
  color: var(--app-color-text);
  box-shadow: var(--box-shadow-7, var(--app-shadow-card));
}

.app-media-spotlight__icon {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  background: var(--tertiary);
}

.app-media-spotlight__icon img { display: block; width: 60px; height: 60px; max-width: none; }

.app-general-section__summary-row > div > p:first-child { letter-spacing: -.04em; }

@media (prefers-reduced-motion: reduce) {
  .app-media-spotlight { transition: none; }
}

@media (max-width: 767px) {
  .app-media-spotlight__primary-layer { border-width: 40px !important; }
  .app-media-spotlight__frame { width: 70%; }
  .app-media-spotlight__callout {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    max-width: 18rem;
    margin: -1.5rem auto 0;
  }
  .app-media-spotlight__icon { width: 4rem; height: 4rem; }
}

@media (max-width: 450px) {
  .app-media-spotlight__callout {
    width: auto;
    min-width: 0;
    max-width: calc(100vw - 2rem);
    padding-inline: 1rem !important;
    transform: translateY(10vh);
  }
  .app-media-spotlight__callout .app-media-spotlight__icon { display: none; }
  .app-media-spotlight__callout-copy { margin-left: 0 !important; padding-inline: 0 !important; text-align: center !important; }
  .app-media-spotlight__callout .d-flex.align-items-center { justify-content: center; }
}

/* Reusable below-hero quick-action band. Base Medical supplies the feature-box
 * skeleton; the first-item connector follows the Accounting 1 services band. */
.app-general-column--quick-action-band { position: relative; z-index: 4; overflow: visible; }
.app-quick-action-band {
  --app-quick-action-height: 150px;
  --app-quick-action-overlap: 78px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: min(calc(100vw - 2rem), calc(100% + 17.6rem));
  max-width: 86.6rem;
  margin: calc(var(--app-quick-action-overlap) * -1) auto calc(var(--app-quick-action-overlap) * .35);
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  overflow: visible;
}
.app-quick-action {
  position: relative;
  z-index: 1;
  display: block;
  min-width: 0;
  min-height: var(--app-quick-action-height);
}
.app-quick-action:nth-child(1) { z-index: 4; }
.app-quick-action:nth-child(2) { z-index: 3; }
.app-quick-action:nth-child(3) { z-index: 2; }
.app-quick-action--primary { background: var(--app-quick-action-primary, var(--primary)); }
.app-quick-action--secondary { background: var(--app-quick-action-secondary, var(--secondary)); }
.app-quick-action--tertiary { background: var(--app-quick-action-tertiary, var(--tertiary)); }
.app-quick-action--quaternary { background: var(--app-quick-action-quaternary, var(--quaternary)); }
.app-quick-action__link {
  position: relative;
  z-index: 1;
  display: block;
  height: 100%;
  color: var(--light, #fff) !important;
  text-decoration: none !important;
  transition: transform .2s ease;
  transform-origin: center;
}
.app-quick-action__link:hover,
.app-quick-action__link:focus-visible { z-index: 10; color: var(--light, #fff) !important; text-decoration: none !important; transform: scale(1.1); }
.app-quick-action--connector::after {
  content: "";
  position: absolute;
  top: 0;
  right: -40px;
  z-index: 5;
  width: 40px;
  height: 100%;
  background: inherit;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@media (min-width: 768px) { .app-quick-action--connector::after { right: -39px; } }
.app-quick-action__box { min-height: var(--app-quick-action-height); height: 100%; padding: 1rem !important; gap: .25rem; }
.app-quick-action:nth-child(2) .app-quick-action__box { padding-left: 3.5rem !important; }
.app-quick-action:nth-child(3) .app-quick-action__box { padding-left: 1.5rem !important; }
.app-quick-action__box .app-quick-action__icon { flex: 0 0 auto; width: auto; height: auto; margin-right: 0; }
.app-quick-action__icon img { display: block; width: 6.9rem; height: 6.9rem; object-fit: contain; filter: brightness(0) invert(1); }
.app-quick-action__box .app-quick-action__content { flex: 1 1 auto; padding-left: 0; min-width: 0; text-align: left; }
.app-quick-action__content strong { display: block; color: inherit; font-size: 1.875rem; font-weight: 700; line-height: 1.2; }
.app-quick-action__content small { display: block; color: color-mix(in srgb, var(--light, #fff) 88%, transparent); font-size: 1rem; font-weight: 500; line-height: 1.2; }

@media (min-width: 768px) {
  .app-quick-action:not(:first-child) { margin-left: -1px; }
  .app-quick-action--connector::after { right: -39px; }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .app-quick-action-band {
    --app-quick-action-height: 128px;
    --app-quick-action-overlap: 64px;
    width: min(calc(100vw - 1.5rem), calc(100% + 5rem));
  }
  .app-quick-action__box { padding: 1.5rem !important; gap: .85rem; }
  .app-quick-action:nth-child(2) .app-quick-action__box { padding-left: 3.5rem !important; }
  .app-quick-action:nth-child(3) .app-quick-action__box { padding-left: 2.35rem !important; }
  .app-quick-action__icon img { width: 5rem; height: 5rem; }
  .app-quick-action__content strong { font-size: 1.55rem; }
  .app-quick-action__content small { font-size: .9rem; }
}

/* Full-width 50/50 image column with the geometric edge treatment used by
 * Base Auto Services. The adjacent content column remains independently configurable. */
.app-general-section--geometric-split {
  --app-geometric-split-surface: var(--app-color-surface-accent);
  --app-geometric-split-shape: var(--app-color-geometric-split-surface, var(--tertiary));
  margin-bottom: 70px;
  background-color: var(--app-geometric-split-shape);
  background-image: var(--app-geometric-media-image);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: auto 100%;
  overflow: hidden;
}
.app-general-section--geometric-split .app-general-section__grid { min-height: var(--app-general-section-min-height, 0); }
.app-general-section--geometric-split .app-general-column--geometric-media { background: transparent; }
.app-geometric-media { position: relative; width: 100%; height: 100%; min-height: 0; overflow: hidden; background-position: var(--app-geometric-media-position, center); background-repeat: no-repeat; background-size: cover; }
.app-geometric-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--app-geometric-media-position, center); opacity: 0; }
.app-geometric-media::before,
.app-geometric-media::after { content: ""; position: absolute; right: -90%; z-index: 2; width: 100%; height: 100%; background: var(--app-geometric-split-shape); }
.app-geometric-media::before { top: -35%; transform: rotate(75deg); }
.app-geometric-media::after { top: 35%; transform: rotate(-75deg); }
.app-general-section--geometric-split .app-general-column--content-flow { padding: 3rem .75rem 3rem 3rem; background: var(--app-geometric-split-shape); color: var(--app-color-text); }
.app-general-section--geometric-split .app-general-content-flow,
.app-general-section--geometric-split .app-general-content-flow p,
.app-general-section--geometric-split .app-check-list li { color: var(--app-color-text); }
.app-general-section--geometric-split .app-section-eyebrow { color: var(--primary); }
.app-general-section--geometric-split .app-general-content-flow__actions { margin-top: 1.5rem; }

@media (min-width: 1250px) {
  .app-general-section--geometric-split .app-general-section__container { max-width: 1190px; padding-inline: 0; }
}
@media (min-width: 1400px) {
  .app-general-section--geometric-split .app-general-section__container { max-width: 1320px; }
}
@media (min-width: 1092px) and (max-width: 1249px) {
  .app-general-section--geometric-split .app-general-section__container { width: 100vw; max-width: 100vw; padding-inline: 0; }
  .app-general-section--geometric-split .app-geometric-media::before { top: -38%; right: -100%; }
  .app-general-section--geometric-split .app-geometric-media::after { top: 38%; right: -100%; }
}
@media (max-width: 1091px) {
  .app-general-section--geometric-split { margin-bottom: 0; background-image: none; }
  .app-general-section--geometric-split .app-general-section__container { width: 100%; max-width: none; padding-inline: 0; }
  .app-general-section--geometric-split .app-general-section__grid { min-height: 0; }
  .app-general-section--geometric-split .app-general-column { grid-column: 1 / -1; }
  .app-geometric-media { min-height: clamp(300px, 58vw, 600px); background-image: var(--app-geometric-media-image); }
  .app-geometric-media::before,
  .app-geometric-media::after { content: none; }
  .app-general-section--geometric-split .app-general-column--content-flow { padding: 3rem 1rem; }
}

@media (max-width: 1399.98px) {
  .app-general-section--geometric-split.app-general-section--stack-at-xxl { margin-bottom: 0; background-image: none; }
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-general-section__container { width: 100%; max-width: none; padding-inline: 0; }
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-general-section__grid { min-height: 0; }
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-general-column { grid-column: 1 / -1; }
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-geometric-media { min-height: clamp(300px, 58vw, 600px); background-image: var(--app-geometric-media-image); }
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-geometric-media::before,
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-geometric-media::after { content: none; }
  .app-general-section--geometric-split.app-general-section--stack-at-xxl .app-general-column--content-flow { padding: 3rem 1rem; }
}

/* Project-neutral Base media-card carousel and logo carousel columns. The
 * nested thumb-info structure intentionally mirrors Base's proven swap
 * composition; flattening these layers breaks its sizing and hover states. */
.app-media-card-carousel-shell { left: auto; width: auto; margin-right: calc(var(--app-general-container-padding-inline, 0px) * -1); margin-left: calc(var(--app-general-container-padding-inline, 0px) * -1); padding-inline: 2.5rem; }
.app-media-card-carousel { padding: 0; }
.app-media-card-carousel .owl-stage { display: flex; }
.app-media-card-carousel .owl-item,
.app-media-card-carousel .owl-item > div { height: 100%; }
.app-media-card { display: block; height: 100%; border-radius: calc(var(--border-radius2x, 4px) * 2); }
.app-media-card__wrapper { position: relative; min-height: 31rem; border-radius: inherit; }
.app-media-card__media { position: absolute; inset: 0; background-color: #8fb1cc; background-image: linear-gradient(145deg, rgba(255,255,255,.18), rgba(0,0,0,.08)); }
.app-media-card__media::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,29,46,.08), rgba(9,29,46,.38)); content: ""; }
.app-media-card__media--1 { background-color: #8fb1cc; }
.app-media-card__media--2 { background-color: #91bfc0; }
.app-media-card__media--3 { background-color: #7ea2bf; }
.app-media-card__media--4 { background-color: #86a8bf; }
.app-media-card__media--5 { background-color: #7299ba; }
.app-media-card__image { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; object-position: center; transition-duration: .8s !important; }
.app-media-card__icon { width: 60px !important; height: 60px !important; max-width: 60px; object-fit: contain !important; filter: brightness(0) invert(1); }
.app-media-card .thumb-info-inner.text-start.ps-5 { padding-left: 1.5rem !important; transform: translateY(.875rem); }
.app-media-card.thumb-info-slow-image-zoom-hover:hover img { transform: scale(1.25); }
.app-media-card .overlay::before,
.app-media-card .thumb-info-wrapper::after { background-color: var(--secondary); }
.app-media-card:hover .thumb-info-wrapper::after { opacity: .5; }
.app-media-card .thumb-info-title.top-0 { z-index: 3; padding: 3rem 1.5rem 1.5rem !important; }
.app-media-card__bottom { z-index: 3; bottom: .875rem; }
.app-media-card__title { display: block; margin-bottom: 1rem; color: var(--light, #fff); font-size: 1.6rem; font-weight: 700; line-height: 1.2; text-transform: none; }
.app-media-card__summary { display: block; color: var(--light, #fff); }
.app-media-card .thumb-info-swap-content-wrapper > .app-media-card__details { display: block; width: 100%; box-sizing: border-box; color: var(--light, #fff); }
.app-media-card__copy { display: block; max-width: 18rem; margin: 0 1.5rem; color: inherit; font-size: 1.37rem; font-weight: 500; line-height: 1.5; text-transform: none; }
.app-media-card__cta { display: inline-flex; align-items: center; justify-content: flex-start; gap: .55rem; width: auto; max-width: none; min-width: 0; margin: 1.25rem 0 0 1.25rem; padding: .65rem 1.5rem; border: 1px solid rgba(255,255,255,.95); background: transparent; color: var(--light, #fff); font-weight: 700; line-height: 1.2; text-decoration: none; text-transform: none; white-space: nowrap; }
.app-media-card__cta:hover,
.app-media-card__cta:focus-visible { border-color: var(--light, #fff); background: rgba(255,255,255,.14); color: var(--light, #fff); text-decoration: none; }
.app-media-card-carousel__nav { position: absolute; inset: 50% 0 auto; z-index: 5; pointer-events: none; transform: translateY(-50%); }
.app-media-card-carousel__nav-button { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 46px; border: 0; border-radius: var(--border-radius2x); background: var(--primary); color: var(--light, #fff); box-shadow: 0 10px 30px rgba(15,38,59,.12); pointer-events: auto; }
.app-media-card-carousel__nav-button--previous { left: .75rem; }
.app-media-card-carousel__nav-button--next { right: .75rem; }
.app-media-card-carousel__nav-button:disabled { cursor: not-allowed; opacity: .38; }

/* Evidence-led editorial cards pair Base's proven horizontal carousel behavior
 * with an always-visible matter summary and optional supporting evidence. Image
 * and metric panels share one stable contract so existing compositions remain valid. */
.app-media-card-carousel-shell--editorial-evidence { margin-top: 2rem; padding-inline: 0; overflow: hidden; }
.app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav { position: static; display: flex; justify-content: flex-start; gap: .65rem; margin-bottom: 1.25rem; transform: none; }
.app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav-button { position: static; width: 44px; height: 44px; border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent); border-radius: 50%; background: transparent; color: var(--primary); box-shadow: none; transition: border-color .2s ease, background-color .2s ease, color .2s ease, opacity .2s ease; }
.app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav-button:not(:disabled):hover,
.app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav-button:not(:disabled):focus-visible { border-color: var(--primary); background: var(--primary); color: var(--light, #fff); }
.app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent); outline-offset: 3px; }
.app-media-card-carousel--editorial-evidence .owl-stage { display: flex; align-items: stretch; }
.app-media-card-carousel--editorial-evidence .owl-item { display: flex; height: auto; align-items: stretch; }
.app-media-card-carousel--editorial-evidence .owl-item > .app-editorial-evidence-card-wrap { display: flex; width: 100%; height: auto; }
.app-editorial-evidence-card-wrap { min-height: 0; }
.app-editorial-evidence-card { display: flex; height: auto; min-height: 0; flex: 1 1 auto; flex-direction: column; overflow: hidden; border: 1px solid color-mix(in srgb, var(--secondary) 14%, transparent); border-radius: 0; background: var(--app-color-surface, #fff); color: var(--app-color-text); box-shadow: 0 18px 48px -38px color-mix(in srgb, var(--secondary) 68%, transparent); text-decoration: none; transition: border-color .25s ease, box-shadow .25s ease; }
.app-editorial-evidence-card:hover,
.app-editorial-evidence-card:focus-visible { border-color: color-mix(in srgb, var(--primary) 52%, transparent); color: var(--app-color-text); box-shadow: 0 24px 55px -34px color-mix(in srgb, var(--secondary) 62%, transparent); text-decoration: none; }
.app-editorial-evidence-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 32%, transparent); outline-offset: -3px; }
.app-editorial-evidence-card__visual { position: relative; display: flex; min-height: 16.5rem; flex: 0 0 16.5rem; overflow: hidden; }
.app-editorial-evidence-card__visual--image { align-items: flex-end; background: var(--secondary); }
.app-editorial-evidence-card__visual--image::after { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 24%, transparent), color-mix(in srgb, var(--primary) 40%, transparent) 48%, color-mix(in srgb, var(--secondary) 78%, transparent)); content: ""; }
.app-editorial-evidence-card__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.app-editorial-evidence-card:hover .app-editorial-evidence-card__image,
.app-editorial-evidence-card:focus-visible .app-editorial-evidence-card__image { transform: scale(1.035); }
.app-editorial-evidence-card__image-label { position: relative; z-index: 2; display: block; max-width: 14rem; padding: 1.5rem; color: var(--light, #fff); font-size: clamp(1.45rem, 2.4vw, 2.1rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.02; text-transform: uppercase; }
.app-editorial-evidence-card__overlay-metric { position: absolute; right: clamp(1.35rem, 2.5vw, 2rem); bottom: clamp(1.35rem, 2.5vw, 1.85rem); left: clamp(1.35rem, 2.5vw, 2rem); z-index: 2; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; color: var(--light, #fff); text-shadow: 0 2px 20px color-mix(in srgb, var(--secondary) 72%, transparent); }
.app-editorial-evidence-card__overlay-metric strong { display: block; color: inherit; font-size: clamp(2.75rem, 4.4vw, 4.15rem); font-weight: 800; letter-spacing: -.055em; line-height: .9; overflow-wrap: anywhere; }
.app-editorial-evidence-card__overlay-metric span { display: block; margin-top: .65rem; color: inherit; font-size: .78rem; font-weight: 800; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; }
.app-editorial-evidence-card__visual--metric { display: grid; grid-template-rows: minmax(0, 3fr) minmax(0, 2fr); background: var(--secondary); color: var(--light, #fff); }
.app-editorial-evidence-card__metric { display: flex; min-width: 0; flex-direction: column; justify-content: flex-end; padding: clamp(1.35rem, 2.6vw, 2rem); }
.app-editorial-evidence-card__metric--primary { background: linear-gradient(145deg, color-mix(in srgb, var(--secondary) 86%, var(--primary)), var(--secondary)); }
.app-editorial-evidence-card__metric--secondary { border-top: 1px solid color-mix(in srgb, var(--light, #fff) 24%, transparent); background: color-mix(in srgb, var(--primary) 78%, var(--secondary)); }
.app-editorial-evidence-card__metric strong { display: block; color: inherit; font-size: clamp(2rem, 3.8vw, 3.25rem); font-weight: 800; letter-spacing: -.045em; line-height: .96; overflow-wrap: anywhere; }
.app-editorial-evidence-card__metric--secondary strong { font-size: clamp(1.65rem, 2.9vw, 2.45rem); }
.app-editorial-evidence-card__metric span { display: block; margin-top: .55rem; color: inherit; font-size: .76rem; font-weight: 700; letter-spacing: .1em; line-height: 1.25; text-transform: uppercase; }
.app-editorial-evidence-card__content { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem, 2.5vw, 2rem); }
.app-editorial-evidence-card__category { display: block; margin-bottom: .9rem; color: var(--quaternary, var(--primary)); font-size: .78rem; font-weight: 800; letter-spacing: .11em; line-height: 1.25; text-transform: uppercase; }
.app-editorial-evidence-card__title { display: block; margin-bottom: .85rem; color: var(--secondary, var(--app-color-heading)); font-size: clamp(1.45rem, 2.2vw, 1.85rem); font-weight: 750; letter-spacing: -.025em; line-height: 1.08; }
.app-editorial-evidence-card__body { display: block; margin-bottom: 1.15rem; color: var(--app-color-text); font-size: 1rem; line-height: 1.65; }
.app-editorial-evidence-card__footer { display: flex; width: 100%; align-items: center; gap: 1rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid color-mix(in srgb, var(--primary) 20%, transparent); }
.app-editorial-evidence-card__evidence { display: grid; min-width: 0; flex: 1 1 auto; gap: .35rem; color: var(--primary); font-size: .93rem; font-weight: 750; line-height: 1.35; }
.app-editorial-evidence-card__evidence > span { display: block; }
.app-editorial-evidence-card__arrow { display: inline-flex; width: 2.65rem; height: 2.65rem; flex: 0 0 2.65rem; align-items: center; justify-content: center; margin-left: auto; border: 1px solid color-mix(in srgb, var(--primary) 52%, transparent); border-radius: 50%; color: var(--primary); transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.app-editorial-evidence-card:hover .app-editorial-evidence-card__arrow,
.app-editorial-evidence-card:focus-visible .app-editorial-evidence-card__arrow { background: var(--primary); color: var(--light, #fff); transform: translateX(.25rem); }

@media (max-width: 767px) {
  .app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav { justify-content: flex-start; }
  .app-editorial-evidence-card__visual { min-height: 15rem; flex-basis: 15rem; }
}

@media (prefers-reduced-motion: reduce) {
  .app-media-card-carousel-shell--editorial-evidence .app-media-card-carousel__nav-button,
  .app-editorial-evidence-card,
  .app-editorial-evidence-card__image,
  .app-editorial-evidence-card__arrow { transition: none; }
  .app-editorial-evidence-card:hover .app-editorial-evidence-card__image,
  .app-editorial-evidence-card:focus-visible .app-editorial-evidence-card__image,
  .app-editorial-evidence-card:hover .app-editorial-evidence-card__arrow,
  .app-editorial-evidence-card:focus-visible .app-editorial-evidence-card__arrow { transform: none; }
}
.app-logo-carousel__item { display: flex; align-items: center; justify-content: center; min-height: 8rem; padding: 1rem; }
.app-logo-carousel__item img { display: block; width: auto !important; max-width: 100%; max-height: 5rem; margin: auto; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter .2s ease, opacity .2s ease; }
.app-logo-carousel__item:hover img { filter: none; opacity: 1; }

/* Testimonials are a shared section family with a proof-forward carousel and
 * a compact card-grid presentation. */
.app-testimonials { padding-inline: 1.5rem; background: transparent; color: var(--app-color-text); }
.app-testimonials__frame { background: var(--app-testimonials-surface, var(--app-color-surface)); }
.app-testimonials--card-grid { --app-testimonials-surface: var(--app-color-surface-alt); }
.app-testimonials__rating-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .55rem; margin-top: 1.25rem; color: var(--app-color-text); }
.app-testimonials__brand,
.app-testimonials__score { font-weight: 700; }
.app-testimonials__total { color: var(--app-color-text); font-weight: 500; }
.app-testimonials__stars,
.app-testimonial__stars { display: inline-flex; gap: .18rem; color: var(--app-testimonial-star, #fbbc04); }
.app-testimonials__star { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; fill: var(--app-testimonial-star, #fbbc04); }
.app-testimonials__title-wrap { perspective: 100px; }
.app-testimonials__carousel .owl-stage { display: flex; align-items: stretch; }
.app-testimonials__carousel .owl-item { display: flex; align-items: stretch; }
.app-testimonials__carousel .owl-item > .app-testimonial { width: 100%; margin-inline: 0; }
.app-testimonial--featured { min-height: 0; }
@media (min-width: 992px) {
  .app-testimonial--featured > :first-child { flex: 0 0 12rem; width: 12rem; padding-left: 1rem !important; }
  .app-testimonial--featured > :last-child { flex: 1 1 0; width: auto; min-width: 0; }
}
.app-testimonial--featured .app-testimonial__body { color: var(--app-color-text); font-family: var(--app-testimonial-font, "Playfair Display", serif); }
.app-testimonial__avatar-wrap { position: relative; display: inline-block; }
.app-testimonial__avatar { display: inline-flex; align-items: center; justify-content: center; width: 120px; height: 120px; border-radius: 50%; background: var(--app-testimonial-avatar, color-mix(in srgb, var(--primary) 45%, var(--app-color-surface))); color: var(--light, #fff); font-size: 3.5rem; font-weight: 700; }
.app-testimonial__avatar--tone-1 { --app-testimonial-avatar: #8fa7c6; }
.app-testimonial__avatar--tone-2 { --app-testimonial-avatar: #b697b9; }
.app-testimonial__avatar--tone-3 { --app-testimonial-avatar: #9db5a2; }
.app-testimonial__avatar--tone-4 { --app-testimonial-avatar: #c4a08f; }
.app-testimonial__avatar--tone-5 { --app-testimonial-avatar: #9aa5ba; }
.app-testimonial__avatar--tone-6 { --app-testimonial-avatar: #b6a0c4; }
.app-testimonial__avatar--tone-7 { --app-testimonial-avatar: #bfa784; }
.app-testimonial__avatar--tone-8 { --app-testimonial-avatar: #98a2bf; }
.app-testimonial__quote { position: absolute; top: -1rem; left: -1rem; z-index: 3; display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--primary); color: var(--light, #fff); font-size: 1.55rem; }
.app-testimonial__meta { display: block; margin-top: .35rem; color: var(--app-color-muted); font-size: .9rem; }
.app-testimonials__carousel .owl-prev,
.app-testimonials__carousel .owl-next { border: 1px solid rgba(0,0,0,.08) !important; background-color: #fff !important; color: var(--dark) !important; box-shadow: 0 15px 30px -15px rgba(0,0,0,.2); }
.app-testimonials__carousel .owl-prev::before,
.app-testimonials__carousel .owl-next::before { color: var(--dark) !important; }
.app-testimonial--card { display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid color-mix(in srgb, var(--primary) 14%, transparent); border-radius: calc(var(--border-radius2x, 4px) * 2); background: var(--app-color-surface); box-shadow: var(--app-shadow-card); }
.app-testimonial--card .app-testimonial__stars { margin-bottom: 1.25rem; }
.app-testimonial--card blockquote { flex: 1 1 auto; margin: 0 0 1.5rem; }
.app-testimonial--card blockquote p { margin: 0; color: var(--app-color-text); font-family: var(--app-testimonial-font, inherit); font-size: 1.15rem; line-height: 1.75; }
.app-testimonial--card cite,
.app-testimonial--card footer span { display: block; }
.app-testimonial--card cite { color: var(--app-color-text); font-style: normal; font-weight: 700; }
.app-testimonial--card footer span { margin-top: .25rem; color: var(--app-color-muted); font-size: .9rem; }
.app-testimonials__actions { display: flex; justify-content: center; margin-top: 2.5rem; }

@media (max-width: 991px) {
  .app-general-section__heading--with-actions { grid-template-columns: 1fr; align-items: start; gap: 1.25rem; }
  .app-general-section__heading-actions { justify-content: flex-start; padding-bottom: 0; }
  .app-quick-action-band { --app-quick-action-height: 104px; --app-quick-action-overlap: 52px; width: calc(100vw - 1rem); }
  .app-quick-action__box { padding: .5rem !important; gap: .25rem; }
  .app-quick-action:nth-child(2) .app-quick-action__box { padding-left: 1.8rem !important; }
  .app-quick-action:nth-child(3) .app-quick-action__box { padding-left: 1rem !important; }
  .app-quick-action__icon img { width: 3.45rem; height: 3.45rem; }
  .app-quick-action__content strong { font-size: 1.25rem; }
  .app-media-card__wrapper,
  .app-media-card__media { min-height: 28rem; }
  .app-media-card .thumb-info-title.top-0 { padding: 3rem 1.5rem 1.5rem !important; }
  .app-media-card__copy { max-width: none; }
  .app-media-card__cta { margin-left: 1.5rem; }
}
@media (max-width: 767px) {
  .app-quick-action-band { --app-quick-action-height: 90px; --app-quick-action-overlap: 45px; position: static; left: auto; display: flex; flex-direction: column; width: 100%; transform: none; }
  .app-quick-action { width: 100%; }
  .app-quick-action--connector::after { content: none; }
  .app-quick-action__box,
  .app-quick-action:nth-child(2) .app-quick-action__box,
  .app-quick-action:nth-child(3) .app-quick-action__box { justify-content: flex-start; padding: 1rem 1rem 1rem 1.35rem !important; gap: .8rem; }
  .app-quick-action__icon img { width: 4.8rem; height: 4.8rem; }
  .app-quick-action__content strong { font-size: 1.4rem; }
  .app-media-card-carousel__nav { position: static; display: flex; justify-content: center; gap: .65rem; margin-bottom: 1rem; transform: none; }
  .app-media-card-carousel__nav-button { position: static; }
  .app-media-card__bottom { bottom: 1rem; }
  .app-media-card__wrapper,
  .app-media-card__media { min-height: 25rem; }
  .app-testimonial--featured { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .app-quick-action,
  .app-quick-action__link,
  .app-media-card__image,
  .app-logo-carousel__item img { transition: none; }
  .app-quick-action__link:hover,
  .app-quick-action__link:focus-visible { transform: none; }
}

/* Renewable-energy donor adaptations. These remain column-level capabilities so
 * the surrounding General Section controls width, surface, order, and stacking. */
.app-general-cover-media {
  position: relative;
  height: 100%;
  min-height: 26rem;
  margin: 0;
  overflow: hidden;
  background: var(--app-color-surface-alt);
}
.app-general-cover-media--compact { min-height: 22rem; }
.app-general-cover-media--standard { min-height: 32rem; }
.app-general-cover-media--tall { min-height: 37.5rem; }
.app-general-cover-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.035); }
.app-general-cover-media--motion-drift-left img { animation: app-cover-media-drift-left 18s ease-out both; }
.app-general-cover-media--motion-drift-right img { animation: app-cover-media-drift-right 18s ease-out both; }

.app-image-filled-text { display: flex; flex-direction: column; justify-content: center; min-height: 20rem; }
.app-image-filled-text--align-center { align-items: center; text-align: center; }
.app-image-filled-text--align-end { align-items: flex-end; text-align: end; }
.app-image-filled-text__value {
  margin: 0;
  color: var(--primary);
  font-size: clamp(7rem, 18vw, 13rem);
  font-weight: 800;
  line-height: .78;
  letter-spacing: -.075em;
}
.app-image-filled-text--md .app-image-filled-text__value { font-size: clamp(5.5rem, 13vw, 9rem); }
.app-image-filled-text--xl .app-image-filled-text__value { font-size: clamp(9rem, 23vw, 18.75rem); }
.app-image-filled-text__value small { margin-left: .06em; font-size: .55em; letter-spacing: -.04em; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .app-general-section .app-image-filled-text__value {
    background: var(--app-image-filled-text-image) center / cover no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}
.app-image-filled-text__caption { max-width: 32rem; margin: 1.5rem 0 0; color: var(--app-general-column-muted); }

.app-media-text-mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(15rem, 1fr);
  height: 100%;
  min-height: 30rem;
  overflow: hidden;
}
.app-media-text-mosaic--compact { grid-auto-rows: minmax(12rem, 1fr); min-height: 24rem; }
.app-media-text-mosaic--tall { grid-auto-rows: minmax(18.75rem, 1fr); min-height: 37.5rem; }
.app-media-text-mosaic--oversize { margin-block: clamp(-2.5rem, -3vw, -1.5rem); }
.app-media-text-mosaic__tile { position: relative; min-width: 0; min-height: 0; margin: 0; overflow: hidden; }
.app-media-text-mosaic__tile--image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.app-media-text-mosaic__tile--text {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  color: var(--app-mosaic-foreground, var(--light));
  text-align: center;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.app-media-text-mosaic__tile--surface-primary { --app-mosaic-background: var(--primary); --app-mosaic-foreground: var(--primary-inverse, var(--light)); }
.app-media-text-mosaic__tile--surface-secondary { --app-mosaic-background: var(--secondary); --app-mosaic-foreground: var(--secondary-inverse, var(--light)); }
.app-media-text-mosaic__tile--surface-tertiary { --app-mosaic-background: var(--tertiary); --app-mosaic-foreground: var(--tertiary-inverse, var(--light)); }
.app-media-text-mosaic__tile--surface-quaternary { --app-mosaic-background: var(--quaternary); --app-mosaic-foreground: var(--quaternary-inverse, var(--light)); }
.app-media-text-mosaic__tile--text { background: var(--app-mosaic-background); }
.app-media-text-mosaic__tile--text strong { color: inherit; font-size: clamp(1.35rem, 2.4vw, 2rem); line-height: 1.15; }
.app-media-text-mosaic__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.app-media-text-mosaic__body { max-width: 24rem; color: inherit; opacity: .82; }
.app-media-text-mosaic__arrow { display: inline-grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; }
.app-media-text-mosaic a.app-media-text-mosaic__tile--text:hover,
.app-media-text-mosaic a.app-media-text-mosaic__tile--text:focus-visible {
  z-index: 2;
  background: var(--primary);
  color: var(--primary-inverse, var(--light));
  text-decoration: none;
  transform: scale(1.025);
}
.app-media-text-mosaic a.app-media-text-mosaic__tile--text:focus-visible { outline: 3px solid currentColor; outline-offset: -5px; }
.app-general-section--media-mosaic-split .app-general-section__grid { overflow: visible; }

.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--placement-top-left { grid-column: 1; grid-row: 1; }
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--placement-top-right { grid-column: 2; grid-row: 1; }
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--placement-bottom-right { grid-column: 2; grid-row: 2; }
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--placement-bottom-left { grid-column: 1; grid-row: 2; }
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0;
  padding: clamp(1.5rem, 3.25vw, 3rem);
  color: var(--app-mosaic-foreground, var(--light));
  text-align: start;
  text-decoration: none;
  isolation: isolate;
  transition: background-color .3s ease, color .3s ease, transform .3s ease;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked.app-media-text-mosaic__tile--image {
  --app-mosaic-foreground: var(--primary-inverse, var(--light));
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.035);
  transition: transform .5s ease;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__scrim {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: color-mix(in srgb, var(--primary) 72%, transparent);
  transition: background-color .3s ease;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .7rem;
  width: 100%;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__content strong {
  color: inherit;
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
  line-height: 1.08;
  transition: transform .3s ease;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__body {
  max-width: 25rem;
  font-size: .95rem;
  line-height: 1.45;
  opacity: .78;
  transition: opacity .3s ease, transform .3s ease;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__arrow {
  transition: transform .3s ease;
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover,
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible {
  z-index: 2;
  background: var(--primary);
  color: var(--primary-inverse, var(--light));
  text-decoration: none;
  transform: scale(1.025);
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover .app-media-text-mosaic__scrim,
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible .app-media-text-mosaic__scrim {
  background: var(--primary);
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover > img,
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible > img {
  transform: scale(1.09) translate3d(1%, 0, 0);
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover .app-media-text-mosaic__content strong,
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible .app-media-text-mosaic__content strong {
  transform: translateY(-.15rem);
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover .app-media-text-mosaic__body,
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible .app-media-text-mosaic__body {
  opacity: 1;
  transform: translateY(-.1rem);
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover .app-media-text-mosaic__arrow,
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible .app-media-text-mosaic__arrow {
  transform: translateX(.3rem);
}
.app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: -6px;
}
.app-general-section--linked-mosaic-split .app-general-section__grid { overflow: visible; }

@media (min-width: 62rem) {
  .app-general-section--linked-mosaic-split .app-general-section__grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
  .app-general-section--linked-mosaic-split .app-general-section__grid > .app-general-column {
    grid-column: auto;
  }
}

.app-general-section--editorial-resource-split,
.app-general-section--document-resource-split {
  overflow: hidden;
}

.app-numbered-editorial-field--collage {
  position: relative;
  isolation: isolate;
  min-height: clamp(34rem, 43vw, 43rem);
  overflow: hidden;
}

.app-numbered-editorial-field--collage::before,
.app-numbered-editorial-field--collage::after {
  position: absolute;
  z-index: -1;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.app-numbered-editorial-field--collage::before {
  top: -22%;
  right: -17%;
  width: 68%;
  aspect-ratio: 1;
}

.app-numbered-editorial-field--collage::after {
  bottom: -35%;
  left: -20%;
  width: 76%;
  aspect-ratio: 1.35;
}

.app-numbered-editorial-field--collage .app-numbered-editorial-field__list {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.app-numbered-editorial-field--collage .app-numbered-editorial-field__item {
  position: absolute;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: end;
  gap: clamp(.65rem, 1.4vw, 1.15rem);
  width: min(48%, 27rem);
}

.app-numbered-editorial-field--collage .app-numbered-editorial-field__number {
  color: color-mix(in srgb, var(--primary) 58%, var(--light));
  font-size: clamp(5.5rem, 9vw, 9.25rem);
  font-weight: 800;
  line-height: .72;
  letter-spacing: -.09em;
}

.app-numbered-editorial-field--collage .app-numbered-editorial-field__label {
  padding-bottom: .35rem;
  color: currentColor;
  font-size: clamp(.78rem, 1.05vw, 1rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(1) { top: 4%; left: 1%; }
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(2) { top: 14%; right: 0; }
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(3) { top: 42%; left: 22%; }
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(4) { bottom: 4%; left: -3%; }
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(5) { right: 0; bottom: 10%; }
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(6) { right: 24%; bottom: 36%; }

.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(2) .app-numbered-editorial-field__number,
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(5) .app-numbered-editorial-field__number {
  color: var(--tertiary);
  font-size: clamp(4.75rem, 7.4vw, 7.4rem);
}

.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(3) .app-numbered-editorial-field__number,
.app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(6) .app-numbered-editorial-field__number {
  color: color-mix(in srgb, var(--quaternary) 76%, var(--light));
  font-size: clamp(5rem, 8.2vw, 8rem);
}

.app-numbered-editorial-field--document-checklist {
  display: flex;
  min-height: clamp(35rem, 40vw, 41rem);
  align-items: center;
  justify-content: center;
}

.app-practitioner-document {
  position: relative;
  isolation: isolate;
  width: min(100%, 46rem);
  overflow: hidden;
  padding: clamp(2.1rem, 4vw, 3.75rem);
  border: 1px solid color-mix(in srgb, var(--tertiary) 82%, var(--secondary));
  background: color-mix(in srgb, var(--app-color-background, #faf8f5) 95%, var(--tertiary));
  color: var(--app-color-text, #252426);
  box-shadow: 0 2.25rem 5rem -3rem color-mix(in srgb, var(--secondary) 78%, transparent), .8rem .8rem 0 color-mix(in srgb, var(--tertiary) 22%, transparent);
}

.app-practitioner-document__watermark {
  position: absolute;
  z-index: -1;
  top: clamp(-1rem, -1.5vw, -.25rem);
  right: clamp(.5rem, 2vw, 1.5rem);
  color: color-mix(in srgb, var(--primary) 8%, transparent);
  font-size: clamp(9rem, 17vw, 16rem);
  font-weight: 800;
  line-height: .8;
  letter-spacing: -.11em;
  pointer-events: none;
}

.app-practitioner-document__header {
  position: relative;
  max-width: 31rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  padding-bottom: clamp(1.35rem, 2.5vw, 2rem);
  border-bottom: 3px solid var(--primary);
}

.app-practitioner-document__kicker {
  margin: 0 0 .65rem;
  color: var(--quaternary);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1.3;
  text-transform: uppercase;
}

.app-practitioner-document__title {
  max-width: 25rem;
  margin: 0;
  color: var(--secondary, var(--app-color-text));
  font-size: clamp(2rem, 3.4vw, 3.25rem);
  font-weight: 750;
  letter-spacing: -.04em;
  line-height: .98;
  text-transform: uppercase;
}

.app-practitioner-document__list {
  margin: 0;
  padding: 0;
  border-top: 1px solid color-mix(in srgb, var(--quaternary) 62%, var(--tertiary));
  list-style: none;
}

.app-practitioner-document__item {
  display: grid;
  grid-template-columns: clamp(2.75rem, 5vw, 4rem) minmax(0, 1fr);
  align-items: baseline;
  gap: clamp(.75rem, 2vw, 1.35rem);
  padding: clamp(.85rem, 1.65vw, 1.15rem) 0;
  border-bottom: 1px solid color-mix(in srgb, var(--quaternary) 62%, var(--tertiary));
}

.app-practitioner-document__number {
  color: var(--primary);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1;
}

.app-practitioner-document__label {
  color: var(--secondary, var(--app-color-text));
  font-size: clamp(.95rem, 1.45vw, 1.12rem);
  font-weight: 700;
  line-height: 1.28;
}

.app-practitioner-document__footer {
  margin: clamp(1.35rem, 2.4vw, 2rem) 0 0;
  color: var(--primary);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.3;
  text-align: right;
  text-transform: uppercase;
}

@media (min-width: 62rem) {
  .app-general-section--editorial-resource-split .app-general-section__grid {
    grid-template-columns: minmax(0, 9fr) minmax(0, 11fr);
  }

  .app-general-section--document-resource-split .app-general-section__grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }

  .app-general-section--editorial-resource-split .app-general-section__grid > .app-general-column,
  .app-general-section--document-resource-split .app-general-section__grid > .app-general-column {
    grid-column: auto;
  }
}

@media (max-width: 61.99rem) {
  .app-numbered-editorial-field--collage {
    min-height: 0;
    overflow: visible;
  }

  .app-numbered-editorial-field--collage::before,
  .app-numbered-editorial-field--collage::after {
    display: none;
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__list {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
    border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item,
  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(n) {
    position: relative;
    inset: auto;
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    width: auto;
    min-height: 10rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    border-right: 1px solid color-mix(in srgb, currentColor 22%, transparent);
    border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__number,
  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(n) .app-numbered-editorial-field__number {
    flex: 0 0 auto;
    font-size: clamp(4rem, 12vw, 6.5rem);
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__label {
    max-width: 15rem;
  }

  .app-numbered-editorial-field--document-checklist {
    min-height: 0;
  }

  .app-practitioner-document {
    width: min(100%, 43rem);
  }
}

@media (max-width: 35.99rem) {
  .app-numbered-editorial-field--collage .app-numbered-editorial-field__list {
    grid-template-columns: 1fr;
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item,
  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(n),
  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item:last-child:nth-child(odd) {
    grid-column: auto;
    min-height: 7.5rem;
  }

  .app-numbered-editorial-field--collage .app-numbered-editorial-field__number,
  .app-numbered-editorial-field--collage .app-numbered-editorial-field__item:nth-child(n) .app-numbered-editorial-field__number {
    font-size: clamp(3.75rem, 18vw, 5.25rem);
  }

  .app-practitioner-document {
    padding: 1.75rem 1.4rem;
    box-shadow: 0 1.5rem 3rem -2.25rem color-mix(in srgb, var(--secondary) 76%, transparent), .35rem .35rem 0 color-mix(in srgb, var(--tertiary) 22%, transparent);
  }

  .app-practitioner-document__title {
    max-width: 16rem;
    font-size: clamp(1.75rem, 9vw, 2.35rem);
  }

  .app-practitioner-document__watermark {
    top: .5rem;
    right: .5rem;
    font-size: 8rem;
  }
}

@keyframes app-cover-media-drift-left { from { transform: scale(1.08) translateX(1.5%); } to { transform: scale(1.035) translateX(0); } }
@keyframes app-cover-media-drift-right { from { transform: scale(1.08) translateX(-1.5%); } to { transform: scale(1.035) translateX(0); } }

@media (max-width: 767px) {
  .app-media-text-mosaic { grid-auto-rows: minmax(12rem, auto); }
  .app-media-text-mosaic--oversize { margin-block: 0; }
}

@media (max-width: 575px) {
  .app-media-text-mosaic { grid-template-columns: 1fr; }
  .app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile { grid-column: auto; grid-row: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .app-general-cover-media img { animation: none; transform: none; }
  .app-media-text-mosaic__tile,
  .app-media-text-mosaic__tile--image img { transition: none; }
  .app-media-text-mosaic a.app-media-text-mosaic__tile--text:hover,
  .app-media-text-mosaic a.app-media-text-mosaic__tile--text:focus-visible,
  .app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover,
  .app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible { transform: none; }
  .app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:hover > img,
  .app-media-text-mosaic--linked-routing .app-media-text-mosaic__tile--linked:focus-visible > img { transform: scale(1.035); }
}


/* Configured treatments of the existing General Section, action row and horizontal cards. */
.app-general-section--split-surface-band {
--app-general-section-background: var(--app-color-background);
  overflow: hidden;
}

.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:first-child {
position: relative;
  isolation: isolate;
  padding-inline-start: 0;
}

.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:nth-child(2) {
position: relative;
  isolation: isolate;
  padding-inline-end: 0;
}

.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:first-child::before,
.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:nth-child(2)::before {
position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  width: 100vw;
  content: "";
  pointer-events: none;
}

.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:first-child::before {
right: 100%;
  background: var(--secondary);
}

.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:nth-child(2)::before {
left: 100%;
  background: var(--primary);
}

.app-general-section--split-surface-band .app-general-content-flow--panel {
display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 45rem;
  padding: 3rem;
  --app-general-column-background: var(--app-color-background);
  --app-general-column-foreground: var(--app-color-text);
}

.app-general-section--split-surface-band .app-general-content-flow--panel .app-general-column__title {
font-size: clamp(1.9rem, 2.6vw, 2.35rem) !important;
  line-height: 1.08;
}

.app-general-section--split-surface-band .app-general-column--surface-secondary > .app-general-content-flow {
width: 100%;
  max-width: 35rem;
}

.app-general-section--split-surface-band .app-general-column--surface-secondary > .app-general-content-flow .app-general-column__title {
line-height: 1.04;
}

.app-general-section--split-surface-band .app-general-column--surface-secondary > .app-general-content-flow > p:not(.app-section-eyebrow) {
font-size: 1.125rem !important;
  line-height: 1.6;
}

.app-general-section--split-surface-band .app-general-column--surface-secondary .app-content-list {
margin: 2.5rem 0 0;
  padding: 0;
  border-top: 1px solid color-mix(in srgb, var(--tertiary) 36%, transparent);
  list-style: none;
}

.app-general-section--split-surface-band .app-general-column--surface-secondary .app-content-list li {
padding: 1.1875rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--tertiary) 36%, transparent);
  color: var(--light);
  font-size: 1.1875rem !important;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
}

.app-general-section--split-surface-band .app-general-column--surface-secondary > .app-general-content-flow > .app-general-content-flow__actions {
margin-top: 2rem;
}

.app-general-section--split-surface-band .app-general-column--surface-primary .app-general-content-flow--panel > .app-general-content-flow__actions {
display: flex;
  justify-content: flex-end;
  margin-top: auto;
  padding-top: clamp(1.5rem, 4vw, 3rem);
  text-align: end;
}

.app-general-section--split-surface-band .app-general-column--surface-primary .app-general-content-flow--panel > .app-general-content-flow__actions .btn-link {
font-size: 1.0625rem !important;
  font-weight: 700 !important;
}

.app-general-section--compact-actions {
--app-general-section-background: var(--app-color-background);
  --app-quick-action-secondary: var(--light-200);
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.app-general-section--compact-actions .app-quick-action-band {
--app-quick-action-height: 11.5rem;
  --app-quick-action-overlap: 0px;
  width: 100%;
  max-width: none;
  left: auto;
  transform: none;
  margin: 0 auto;
}

.app-general-section--compact-actions .app-quick-action.appear-animation {
opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

.app-general-section--compact-actions .app-quick-action__box,
.app-general-section--compact-actions .app-quick-action:nth-child(2) .app-quick-action__box,
.app-general-section--compact-actions .app-quick-action:nth-child(3) .app-quick-action__box {
align-items: flex-start;
  justify-content: center;
  gap: 0;
  padding: 1.75rem !important;
}

.app-general-section--compact-actions .app-quick-action:not(:first-child) .app-quick-action__box {
padding-left: 4.25rem !important;
}

.app-general-section--compact-actions .app-quick-action__content strong {
order: -1;
  margin-bottom: .65rem;
  font-size: clamp(1.35rem, 1.55vw, 1.75rem) !important;
  line-height: 1.15;
}

.app-general-section--compact-actions .app-quick-action__content {
display: flex;
  flex-direction: column;
}

.app-general-section--compact-actions .app-quick-action__content small {
font-size: 1rem !important;
  font-weight: 400;
  line-height: 1.45;
}

.app-general-section--compact-actions .app-quick-action--secondary .app-quick-action__link,
.app-general-section--compact-actions .app-quick-action--secondary .app-quick-action__link:hover,
.app-general-section--compact-actions .app-quick-action--secondary .app-quick-action__link:focus-visible,
.app-general-section--compact-actions .app-quick-action--tertiary .app-quick-action__link,
.app-general-section--compact-actions .app-quick-action--tertiary .app-quick-action__link:hover,
.app-general-section--compact-actions .app-quick-action--tertiary .app-quick-action__link:focus-visible,
.app-general-section--compact-actions .app-quick-action--quaternary .app-quick-action__link,
.app-general-section--compact-actions .app-quick-action--quaternary .app-quick-action__link:hover,
.app-general-section--compact-actions .app-quick-action--quaternary .app-quick-action__link:focus-visible {
color: var(--app-color-text) !important;
}

.app-general-section--compact-actions .app-quick-action--secondary .app-quick-action__content small,
.app-general-section--compact-actions .app-quick-action--tertiary .app-quick-action__content small,
.app-general-section--compact-actions .app-quick-action--quaternary .app-quick-action__content small {
color: color-mix(in srgb, var(--app-color-text) 84%, transparent);
}

.app-general-section--inline-action {
--app-general-section-background: var(--app-color-background);
}

.app-general-section--inline-action .app-general-content-flow {
display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(3rem, 7vw, 7rem);
}

.app-general-section--inline-action .app-general-content-flow > :not(.app-general-content-flow__actions) {
grid-column: 1;
}

.app-general-section--inline-action .app-general-content-flow > p:not(.app-section-eyebrow) {
max-width: 52rem;
  margin-bottom: 0;
  font-size: 1.125rem !important;
  line-height: 1.6;
}

.app-general-section--inline-action .app-general-content-flow > .app-general-content-flow__actions {
grid-column: 2;
  grid-row: 1 / span 3;
  justify-self: end;
  margin-top: 0;
}

@media (max-width: 35.99rem) {
.app-general-section--split-surface-band .app-general-column--surface-primary {
padding: 1rem;
}

.app-general-section--split-surface-band .app-general-content-flow--panel {
padding: 1.5rem;
}

.app-general-section--split-surface-band .app-general-content-flow--panel .app-general-column__title {
font-size: 1.65rem !important;
}
}

@media (max-width: 61.99rem) {
.app-general-section--split-surface-band .app-general-section__grid > .app-general-column:first-child::before,
  .app-general-section--split-surface-band .app-general-section__grid > .app-general-column:nth-child(2)::before {
right: calc(var(--app-general-container-padding-inline) * -1);
    left: calc(var(--app-general-container-padding-inline) * -1);
    width: auto;
}

.app-general-section--compact-actions .app-quick-action-band {
--app-quick-action-height: auto;
}

.app-general-section--compact-actions .app-quick-action__box,
  .app-general-section--compact-actions .app-quick-action:nth-child(2) .app-quick-action__box,
  .app-general-section--compact-actions .app-quick-action:nth-child(3) .app-quick-action__box,
  .app-general-section--compact-actions .app-quick-action:not(:first-child) .app-quick-action__box {
padding: 1.5rem !important;
}

.app-general-section--inline-action .app-general-content-flow {
grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
}

.app-general-section--inline-action .app-general-content-flow > .app-general-content-flow__actions {
grid-column: 1;
    grid-row: auto;
    justify-self: start;
    margin-top: 1.75rem;
}
}

.app-card-list--flat .app-card-image-horizontal {
--bs-border-radius: 0;
  --bs-card-color: var(--app-general-column-foreground, var(--app-color-text));
  color: var(--app-general-column-foreground, var(--app-color-text));
  border-color: var(--app-color-border);
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}

.app-card-list--flat .app-card-image-horizontal .col-lg-4 {
position: relative;
}

.app-card-list--flat .app-card-image-horizontal .col-lg-4::after {
position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .18), rgba(var(--secondary-rgb), .12));
  pointer-events: none;
}

.app-card-list--flat .app-card-image-horizontal img {
width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.app-card-list--flat .app-card-image-horizontal .card-body {
padding: clamp(1.5rem, 3vw, 2.5rem);
  width: 100%;
  flex: 0 1 auto;
}

.app-card-list--flat .app-card-image-horizontal .row > .col-lg-8 {
  display: flex;
  align-items: center;
}

.app-card-list--flat .app-card-image-horizontal .card-title {
line-height: 1.3;
  color: inherit;
  text-transform: none;
}

.app-card-list--flat .app-card-image-horizontal .card-text {
  color: inherit;
}

.app-card-list--flat .app-card-image-horizontal .read-more {
  color: inherit;
}
.app-card-list--flat .app-card-image-horizontal .read-more:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: .25rem;
}

.app-cta-section--inline {
background: var(--app-color-background);
  border-top: 1px solid var(--tertiary);
}

.app-cta-section--inline .app-cta-block {
background: transparent;
  border-radius: 0;
  box-shadow: none;
  padding-block: 1rem;
}

.app-cta-section--inline .app-cta-block .app-section-title {
max-width: 48rem;
}

@media (min-width: 992px) {
.app-cta-section--inline .app-cta-block {
display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 3rem;
}

.app-cta-section--inline .app-cta-block > :not(.app-button-row) {
grid-column: 1;
}

.app-cta-section--inline .app-cta-block > .app-button-row {
grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
}
}

/* Opt-in emphasis, paired schedules and icon captions. */
.app-content-list-unstyled-emphasis{margin:1.5rem 0;padding:0 0 0 1rem;list-style:none;font-family:var(--app-font-body);font-size:1.0625rem;font-weight:700;line-height:1.45}
.app-content-list-unstyled-emphasis li+li{margin-top:.45rem}
.app-general-content-flow--paired-schedule{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(1.5rem,4vw,3rem);width:100%}
.app-general-content-flow--paired-schedule> :is(.app-section-eyebrow,.app-general-column__title,.app-content-list-schedule-details){grid-column:1/-1}
.app-general-content-flow--paired-schedule>.app-general-column__title{max-width:13ch;line-height:1.08}
.app-general-content-flow--paired-schedule :is(.app-content-list-schedule-labels,.app-content-list-schedule-values){margin:clamp(1.25rem,2.5vw,1.75rem) 0 0;padding:0;list-style:none;color:inherit;font-size:clamp(1.05rem,1.6vw,1.2rem);font-weight:700;line-height:1.25}
.app-content-list-schedule-values{text-align:right}
.app-general-content-flow--paired-schedule :is(.app-content-list-schedule-labels,.app-content-list-schedule-values) li{padding:.18rem 0}
.app-general-content-flow--paired-schedule>.app-content-list-schedule-details{margin:clamp(1.25rem,2.5vw,1.75rem) 0 0;padding:clamp(1rem,2vw,1.4rem) 0 0;border-top:1px solid var(--app-color-border);list-style:none}
.app-content-list-schedule-details li{margin:0;padding:.34rem 0;font-size:clamp(1rem,1.5vw,1.125rem);font-weight:600;line-height:1.25}
.app-general-media--single.app-general-media--icon-list{height:clamp(24rem,33vw,29rem)}
.app-general-media--icon-list>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.app-general-media--icon-list .app-general-media__overlay-caption{padding:clamp(1.5rem,4vw,2.75rem);background:linear-gradient(90deg,rgba(8,10,13,.92),rgba(8,10,13,.68) 52%,rgba(8,10,13,.12))}
.app-general-media--icon-list .app-image-frame-caption__inner{gap:clamp(.75rem,1.5vw,1.1rem)}
.app-general-media--icon-list .app-image-frame-caption__text{display:flex;align-items:center;gap:.9rem;color:#fff;font-size:clamp(1.15rem,2vw,1.55rem);font-weight:700;letter-spacing:-.015em;line-height:1.15;text-shadow:0 2px 14px rgba(0,0,0,.72);text-transform:none}
.app-general-media--icon-list .app-image-frame-caption__text i{flex:0 0 2.5rem;text-align:center;font-size:1.7rem}

/* Filled media columns stretch with their authored row, independent of intrinsic image size. */
@media (min-width: 992px) {
  .app-general-section__grid--align-stretch > :is(.app-general-column--single-media,.app-general-column--image-carousel).app-general-column--fill-height { position:relative; min-height:20rem; }
  .app-general-section__grid--align-stretch > .app-general-column--single-media.app-general-column--fill-height > .app-general-media--single,
  .app-general-section__grid--align-stretch > .app-general-column--image-carousel.app-general-column--fill-height > .app-general-image-carousel { position:absolute; inset:0; height:100%; }
  .app-general-section__grid--align-stretch > .app-general-column--single-media.app-general-column--fill-height > .app-general-media--single img { height:100%; aspect-ratio:auto; border-radius:0; box-shadow:none; }
}
/* Controls over photographs need their own contrasting surface in every document mode. */
.app-general-image-carousel.owl-theme .owl-dots .owl-dot span { width:8px; height:8px; margin:5px; border-radius:50%; background:#333a3e; border:0; }
.app-general-image-carousel.owl-theme .owl-dots .owl-dot:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.app-general-image-carousel.owl-theme .owl-dots .owl-dot:focus-visible span { background:var(--primary); }
.app-general-image-carousel.owl-theme .owl-dots .owl-dot.active span,
.app-general-image-carousel.owl-theme .owl-dots .owl-dot:hover span { background:var(--primary); }

/* Optional contained gallery and details presentations. */
.app-general-section__container--bootstrap { --app-general-container-padding-inline: calc(var(--bs-gutter-x, 1.5rem) * .5); }
.app-thumbnail-gallery__stage { position: relative; }
.app-thumbnail-gallery__slide { margin: 0; }
.app-thumbnail-gallery__slide img { display: block; width: 100%; height: auto; }
.app-thumbnail-gallery__controls:not([hidden]) { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; pointer-events: none; z-index: 2; }
.app-thumbnail-gallery__controls button { pointer-events: auto; border: 0; border-radius: 50%; width: 2.75rem; height: 2.75rem; margin: .75rem; background: var(--primary); color: var(--primary-inverse, #fff); font-size: 2rem; line-height: 1; }
.app-thumbnail-gallery__controls button:disabled { opacity: .4; cursor: default; }
.app-thumbnail-gallery__thumbnails:not([hidden]) { display: flex; gap: 15px; overflow-x: auto; position: relative; margin-top: 15px; }
.app-thumbnail-gallery__thumbnails button { flex: 0 0 calc((100% - 45px) / 4); min-width: 0; padding: 0; border: 0; background: transparent; opacity: .5; }
.app-thumbnail-gallery__thumbnails button[aria-current="true"] { opacity: 1; }
.app-thumbnail-gallery__thumbnails img { display: block; width: 100%; height: auto; }
.app-thumbnail-gallery button:focus-visible { outline: 3px solid var(--primary); outline-offset: -3px; }
.app-general-content-flow--compact-details.app-general-content-flow--panel { padding: 1.5rem; border-radius: var(--mp-radius, .5rem); box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .12); }
.app-general-content-flow--compact-details .app-general-column__title { text-align: center; font-family: var(--app-font-ui, inherit); font-size: 1.25rem; font-weight: 700; color: var(--primary); margin-bottom: 1.5rem; }
.app-general-content-flow__details { margin: 0; }
.app-general-content-flow__details > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding-block: .5rem; }
.app-general-content-flow__details dt { font-weight: 700; }
.app-general-content-flow__details dd { margin: 0; overflow-wrap: anywhere; }

/* Authored decoration and photographic bands are independent of content columns. */
.app-general-section--decorated { position:relative; isolation:isolate; overflow:hidden; }
.app-general-section--decorated > .app-general-section__container { position:relative; z-index:1; }
.app-general-section--backdrop { background-image:var(--app-section-backdrop); background-size:cover; background-position:center; }
.app-general-section--backdrop::before { content:""; position:absolute; inset:0; background:var(--primary); pointer-events:none; opacity:0; }
.app-general-section--overlay-soft::before { opacity:.4; }
.app-general-section--overlay-strong::before { opacity:.8; }
.app-general-section--backdrop-top { background-position:center top; }
.app-general-section--content-panel-dark .app-general-section__container { position:relative; z-index:1; margin-block:clamp(2.5rem,6vw,5rem); padding-inline:clamp(1.5rem,4vw,3rem); background:rgba(0,0,0,var(--app-section-panel-opacity,.5)); }
.app-general-section--parallax { background-attachment:fixed; }
.app-general-section__decoration { position:absolute; z-index:0; pointer-events:none; width:min(75rem,100%); max-width:none; top:0; opacity:.65; }
.app-general-section__decoration--left { left:-35%; transform:rotate(45deg); }
.app-general-section__decoration--right { right:-35%; transform:rotate(-40deg); }
.app-general-media--decorated { position:relative; isolation:isolate; padding:2.5rem; }
.app-general-media--decorated > .app-general-media__decoration { position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:fill; aspect-ratio:auto; pointer-events:none; }
.app-countdown { text-align:center; color:inherit; }
.app-countdown__units { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(1rem,5vw,4rem); }
.app-countdown__units[hidden] { display:none; }
.app-countdown__unit { display:flex; flex-direction:column; }
.app-countdown__unit strong { font-size:clamp(2rem,6vw,4rem); line-height:1.1; font-variant-numeric:tabular-nums; }
.app-countdown__unit > span { text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; }
.app-gallery-album__open { display:block; color:inherit; text-decoration:none; }
.app-gallery-album__open:hover { text-decoration:none; }
.app-gallery-album__cover { display:block; position:relative; overflow:hidden; }
.app-gallery-album__cover > img { width:100%; height:auto; display:block; }
.app-gallery-album__cover > span { position:absolute; inset:0; display:grid; place-items:center; color:#fff; background:rgba(0,0,0,.3); opacity:0; font-size:3rem; transition:opacity .2s; }
.app-gallery-album__open:hover .app-gallery-album__cover > span, .app-gallery-album__open:focus-visible .app-gallery-album__cover > span { opacity:1; }
.app-gallery-album__label, .app-gallery-album__count { display:block; text-transform:uppercase; letter-spacing:.12em; margin-top:.75rem; }
.app-gallery-album__count { font-size:.75rem; margin-top:.25rem; }
.app-gallery-dialog { color:#fff; background:transparent; border:0; padding:3rem 2.5rem 1rem; width:100vw; height:100dvh; max-width:100vw; max-height:100dvh; overflow:auto; }
.app-gallery-dialog::backdrop { background:rgba(0,0,0,.95); }
.app-gallery-dialog__close { position:fixed; z-index:3; top:.5rem; right:.5rem; border:0; width:2.75rem; height:2.75rem; color:var(--primary-inverse,#fff); background:var(--primary,#333); font-size:2rem; }
.app-gallery-dialog .app-thumbnail-gallery__slide { margin:0; }
.app-gallery-dialog .app-thumbnail-gallery__slide > img { width:100%; height:70dvh; object-fit:contain; }
.app-gallery-dialog .app-thumbnail-gallery__thumbnails { justify-content:center; transition:opacity .2s; }
.app-gallery-dialog--quiet .app-thumbnail-gallery__thumbnails:not(:hover):not(:focus-within) { opacity:.15; }
.app-gallery-dialog :is(button,a):focus-visible { outline:3px solid #fff; outline-offset:3px; }
@media(max-width:991px), (prefers-reduced-motion:reduce) { .app-general-section--parallax { background-attachment:scroll; } }
@media(max-width:575px) { .app-gallery-dialog { padding:3.25rem .75rem 1rem; } .app-general-media--decorated { padding:1.5rem; } }
@media(prefers-reduced-motion:reduce) { .app-gallery-album__cover > span, .app-gallery-dialog .app-thumbnail-gallery__thumbnails { transition:none; } }

.app-gallery-dialog .app-thumbnail-gallery__thumbnails button { flex:0 0 clamp(3rem,6vw,6rem); }
.app-gallery-dialog .app-thumbnail-gallery__thumbnails img { height:8vh; object-fit:cover; }
/* Occasion presentation of the existing card-list column. */
.app-occasion-card-list { display:grid; gap:3rem; }
.app-occasion-card { max-width:22.25rem; margin-inline:auto; width:100%; color:var(--app-color-muted,#777); }
.app-occasion-card__image { display:block; width:100%; aspect-ratio:356/160; object-fit:cover; }
.app-occasion-card .app-occasion-card__title { margin:2.5rem 0 .5rem; color:var(--primary); text-align:center; font-family:var(--mp-heading-font,var(--app-font-display,inherit)); font-size:3.125rem; font-weight:700; line-height:1.1; text-transform:none; letter-spacing:0; }
.app-occasion-card__date,.app-occasion-card__time { margin:0 0 .4rem; text-align:center; text-transform:uppercase; letter-spacing:.15em; font-size:.8125rem; }
.app-occasion-card__date { font-weight:700; }
.app-occasion-card-list--fill .app-occasion-card { max-width:none; }
.app-occasion-card-list--landscape .app-occasion-card__image { aspect-ratio:5/3; }
.app-occasion-card__location { margin:0 0 .4rem; text-align:center; color:var(--primary); font-family:var(--mp-body-font,inherit); font-size:1.125rem; font-weight:700; }
.app-occasion-card__venue { display:flex; justify-content:space-between; align-items:center; gap:1rem; border-block:1px solid var(--app-color-border,#eee); padding:1.5rem 0; margin:1.5rem 0; }
.app-occasion-card__venue strong { display:block; color:var(--primary); font-family:var(--mp-body-font,inherit); font-size:1.125rem; font-weight:700; }
.app-occasion-card__venue span { display:block; }
.app-occasion-card__directions { flex-shrink:0; text-align:center; color:inherit; font-size:.625rem; text-transform:uppercase; text-decoration:none; }
.app-occasion-card__directions i { display:grid; place-items:center; width:3.125rem; height:3.125rem; border:1px solid var(--app-color-border,#ddd); border-radius:50%; color:var(--app-color-text,#333); margin:0 auto .35rem; }
.app-occasion-card__directions:hover,.app-occasion-card__directions:focus-visible { color:var(--primary); }
.app-occasion-card__body { font-size:.875rem; line-height:1.85; }
/* Editorial display introduction; all colors inherit the authored section surface. */
.app-general-content-flow--occasion-intro { max-width:58rem; margin-inline:auto; text-align:center; padding-block:clamp(2rem,5vw,5rem); }
.app-general-content-flow--occasion-intro > .app-general-column__title { font-family:var(--mp-heading-font,var(--app-font-display,inherit)); font-size:clamp(4rem,8vw,8rem); line-height:1.05; margin:0; text-transform:none; letter-spacing:0; text-shadow:0 .06em .06em rgba(0,0,0,.24); }
.app-general-content-flow--occasion-intro > .app-general-column__title + * { margin-top:2rem; }
.app-general-content-flow--align-center { text-align:center; }
.app-general-content-flow--align-center .app-button-row { display:flex; flex-wrap:wrap; justify-content:center; }
.app-general-content-flow--align-end .app-button-row { display:flex; flex-wrap:wrap; justify-content:flex-end; }
.app-general-content-flow--align-end { text-align:end; }
.app-general-content-flow--occasion-intro p { max-width:48rem; margin-inline:auto; font-size:clamp(1rem,1.2vw,1.1875rem); }
