
.s4n-module {
  font-family: 'Elza', system-ui, -apple-system, sans-serif;
  font-weight: 300;
  color: #1a1a1a;
  -webkit-font-smoothing: antialiased;
}
.s4n-module, .s4n-module *, .s4n-module *::before, .s4n-module *::after { box-sizing: border-box; }
.s4n-module * { margin: 0; padding: 0; }

@media (max-width: 767px) {
  .dtbd .commitments-stage, .dtbd .s4n, .dtbd .s5 { position: relative !important; z-index: 40 !important; }
  .dtbd .s4n { padding-bottom: clamp(44px, 9vh, 96px) !important; }
}
.dtbd .s4n {
	position: relative;
	width: 100%;
	background: #fff;
	display: flex;
	flex-direction: column;
	z-index: 4;
	overflow: hidden;
	color: #1d1d1f;
  }
.dtbd .s4n:not(.s4n--unpinned) { min-height: 100vh; }
.dtbd .s4n .section__idx { color: rgba(0,0,0,0.2); }
.dtbd .s4n .section__idx b { color: rgba(0,0,0,0.38); }
.dtbd .s4n__head {
	padding: clamp(3rem, 5vw, 5rem) clamp(2rem, 5vw, 5rem) 1.75rem;

	padding-left: max(clamp(2rem, 5vw, 5rem), calc(50vw - 730px));
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 2rem;
  }
.dtbd .s4n__head-left { max-width: 600px; }
.dtbd .s4n__eyebrow {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', 'Elza', sans-serif;
	font-weight: 700; font-size: 0.6875rem;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: #CC2031; margin-bottom: 0.75rem;
  }
.dtbd .s4n__headline {
	font-family: 'Elza', 'Plus Jakarta Sans', sans-serif;
	font-weight: 400;
	font-size: clamp(2rem, 3.5vw, 3.25rem) !important;
	line-height: 1.05; letter-spacing: -0.02em;
	color: #1d1d1f; max-width: 22ch;
  }
.dtbd .s4n__headline em { font-style: italic; }
.dtbd .s4n__explore-cta {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', 'Elza', sans-serif;
	font-weight: 700; font-size: 0.8125rem;
	letter-spacing: 0.06em; text-transform: uppercase;
	color: #fff; text-decoration: none;
	display: inline-flex; align-items: center; gap: 0.55rem;
	padding: 0.85rem 1.75rem;
	background: #CC2031; border-radius: 100px;
	white-space: nowrap; flex-shrink: 0;
	transition: background 0.25s ease;
  }
.dtbd .s4n__explore-cta:hover { background: #a81a27; color: #fff; }
.dtbd .s4n__card.s4n__card--explore {
	background: #0033A0;
	border-color: transparent;
  }
.dtbd .s4n__card.s4n__card--explore .s4n__card-body {
	flex: 1;
	display: flex; flex-direction: column;
	justify-content: flex-end;
	gap: 0.75rem;
	padding: 1.75rem 1.25rem;
  }
.dtbd .s4n__card.s4n__card--explore .s4n__explore-eyebrow {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', sans-serif;
	font-weight: 700; font-size: 0.5625rem;
	letter-spacing: 0.2em; text-transform: uppercase;
	color: rgba(255,255,255,0.55);
  }
.dtbd .s4n__card.s4n__card--explore .s4n__explore-headline {
	font-family: 'Elza', 'Plus Jakarta Sans', sans-serif;
	font-weight: 400; font-size: clamp(1.4rem, 1.8vw, 1.75rem);
	line-height: 1.15; letter-spacing: -0.02em;
	color: #fff;
  }
.dtbd .s4n__card.s4n__card--explore .s4n__explore-all-cta {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', sans-serif;
	font-weight: 700; font-size: 0.75rem;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #fff; text-decoration: none;
	margin-top: 0.5rem;
	transition: gap 0.25s ease, opacity 0.25s ease;
  }
.dtbd .s4n__card.s4n__card--explore:hover .s4n__explore-all-cta { gap: 0.7rem; opacity: 0.75; color: #fff; }
.dtbd .s4n__progress-dots {
	display: flex; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 1.25rem 0 2rem;
	background: #fff;
  }
.dtbd .s4n__pdot {
	display: block;
	width: 8px; height: 8px;
	border-radius: 50%;
	background: rgba(0,0,0,0.18);
	transition: background 0.3s ease, transform 0.3s ease;
  }
.dtbd .s4n__pdot.is-active {
	background: #CC2031;
	transform: scale(1.45);
  }
.dtbd .s4n__map-wrap {
	position: relative;
	height: clamp(260px, 44vh, 480px);
  }
.dtbd #s4n-map { position: absolute; inset: 0; }
.dtbd #s4n-map { background: #e7edf2; }
.dtbd #s4n-map .mapboxgl-ctrl-logo, .dtbd #s4n-map .mapboxgl-ctrl-attrib { opacity: 0.8; }
.dtbd .s4n-marker {
	display: flex; align-items: center; gap: 7px;
	cursor: pointer;
  }
.dtbd .s4n-marker__dot {
	width: 11px; height: 11px; border-radius: 50%;
	background: #CC2031;
	border: 2px solid #fff;
	box-shadow: 0 1px 4px rgba(0,0,0,0.35);
	flex-shrink: 0;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
	position: relative; z-index: 1;
  }
.dtbd .s4n-marker--multi .s4n-marker__dot {
	width: 20px; height: 20px;
	display: flex; align-items: center; justify-content: center;
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', sans-serif;
	font-weight: 700; font-size: 11px; line-height: 1; color: #fff;
  }
.dtbd .s4n-marker.is-active .s4n-marker__dot {
	transform: scale(1.5);
	box-shadow: 0 0 0 5px rgba(204,32,49,0.2), 0 1px 4px rgba(0,0,0,0.3);
  }
.dtbd .s4n-marker__label {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', sans-serif;
	font-weight: 700; font-size: 0.5625rem;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: #1d1d1f; white-space: nowrap;
	text-shadow: 0 1px 3px rgba(255,255,255,0.85);
	transition: color 0.3s ease;
  }
.dtbd .s4n-marker.is-active .s4n-marker__label { color: #CC2031; }
.dtbd .s4n-marker.is-active .s4n-marker__dot::after {
	content: ''; position: absolute; left: 50%; top: 50%;
	width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; border-radius: 50%;
	border: 2px solid rgba(204,32,49,0.55); pointer-events: none;
	animation: s4-pulse 1.8s ease-out infinite;
  }
.dtbd .s4n__carousel-wrap {
	background: #fff;
	padding-top: 1.75rem;
	overflow: hidden;
  }
.dtbd .s4n__cards-scroll {
	display: flex; gap: 1.5rem;
	scrollbar-width: none;
	padding: 1rem 0 1.5rem;
	will-change: transform;
  }
.dtbd .s4n__cards-scroll::-webkit-scrollbar { display: none; }
.dtbd .s4n--unpinned .s4n__carousel-wrap { overflow: visible; }
.dtbd .s4n--unpinned .s4n__cards-scroll {
	overflow-x: auto; overflow-y: hidden;
	transform: none !important;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding-left: max(clamp(2rem, 5vw, 5rem), calc(50vw - 730px));
	padding-right: clamp(2rem, 5vw, 5rem);
	scroll-padding-left: max(clamp(2rem, 5vw, 5rem), calc(50vw - 730px));
  }
.dtbd .s4n--unpinned .s4n__cards-scroll::-webkit-scrollbar { display: none; }
.dtbd .s4n--unpinned .s4n__card { opacity: 1 !important; transform: none !important; scroll-snap-align: start; }
.dtbd .s4n__cards-nav { display: none; }
.dtbd .s4n--unpinned .s4n__cards-nav {
	display: flex; justify-content: center; align-items: center; gap: 1rem;
	background: #fff; padding: 1.75rem 0 3rem;
  }
.dtbd .s4n__cards-arrow {
	width: clamp(46px, 3.4vw, 56px);
	height: clamp(46px, 3.4vw, 56px);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; padding: 0;
	transition: background 0.2s ease, border-color 0.2s ease;
	-webkit-tap-highlight-color: transparent;
  }
.dtbd .s4n__cards-arrow svg {
	width: 42%; height: 42%; fill: none;
	stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
  }
.dtbd .s4n__cards-arrow--prev { background: #ffffff; border: 1px solid #d8d8d8; }
.dtbd .s4n__cards-arrow--prev svg { stroke: #8a8a8a; }
.dtbd .s4n__cards-arrow--prev:hover { border-color: #CC2031; }
.dtbd .s4n__cards-arrow--prev:hover svg { stroke: #CC2031; }
.dtbd .s4n__cards-arrow--next { background: #CC2031; border: 1px solid #CC2031; }
.dtbd .s4n__cards-arrow--next svg { stroke: #ffffff; }
.dtbd .s4n__cards-arrow--next:hover { background: #AA182C; border-color: #AA182C; }
.dtbd .s4n__cards-arrow[disabled] { opacity: 0.4; pointer-events: none; }
@media (max-width: 767px) {
  .dtbd .s4n--unpinned .s4n__cards-nav { display: none; }
}
.dtbd .s4n__card {
	flex: 0 0 22rem;
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid rgba(0,0,0,0.09);
	border-radius: 24px;
	overflow: hidden;
	cursor: pointer;
	transform: scale(0.95);
	opacity: 0.4;
	transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease, opacity 0.3s ease;
  }
.dtbd .s4n__card.is-active {
	box-shadow: 0 6px 28px rgba(0,0,0,0.12);
	border-color: transparent;
	transform: scale(1);
	opacity: 1;
  }
.dtbd .s4n__card-image {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #e4e4e4;
	overflow: hidden;
  }
.dtbd .s4n__card-image img {
	position: absolute; inset: 0;
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform 0.6s ease;
  }
.dtbd .s4n__card:hover .s4n__card-image img { transform: scale(1.04); }
.dtbd .s4n__card-image.is-ph {
	background:
	  repeating-linear-gradient(135deg, rgba(0,0,0,0.04) 0 1px, transparent 1px 11px),
	  #eceef1;
	display: flex; align-items: center; justify-content: center;
  }
.dtbd .s4n__card-image.is-ph span:not(.s4n__card-play) {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', sans-serif;
	font-size: 0.625rem; letter-spacing: 0.18em; text-transform: uppercase;
	color: rgba(0,0,0,0.30);
  }
.dtbd .s4n__card-image.is-logo { background: #ffffff; }
.dtbd .s4n__card-image.is-logo img { object-fit: contain; padding: 14% 16%; box-sizing: border-box; }
.dtbd .s4n__card-play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 52px; height: 52px; border-radius: 50%;
	background: rgba(0,0,0,0.48); border: 1.5px solid rgba(255,255,255,0.9);
	display: flex; align-items: center; justify-content: center;
	pointer-events: auto; cursor: pointer; z-index: 3;
	transition: background 0.3s ease, transform 0.3s ease;
  }
.dtbd .s4n__card-play svg { width: 18px; height: 18px; fill: #fff; margin-left: 3px; pointer-events: none; }
.dtbd .s4n__card-play:hover { background: rgba(204,32,49,0.95); transform: translate(-50%, -50%) scale(1.1); }
.dtbd .s4n-lightbox {
	position: fixed; inset: 0; z-index: 9999;
	display: none; align-items: center; justify-content: center; padding: 5vh 5vw;
  }
.dtbd .s4n-lightbox.is-open { display: flex; }
.dtbd .s4n-lightbox__backdrop { position: absolute; inset: 0; background: rgba(5,5,5,0.86); cursor: pointer; }
.dtbd .s4n-lightbox__dialog { position: relative; z-index: 1; width: min(1080px, 100%); }
.dtbd .s4n-lightbox__frame {
	position: relative; width: 100%; aspect-ratio: 16 / 9;
	background: #000; border-radius: 10px; overflow: hidden;
	box-shadow: 0 24px 80px rgba(0,0,0,0.55);
  }
.dtbd .s4n-lightbox__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dtbd .s4n-lightbox__close {
	position: absolute; top: -42px; right: 0; width: 36px; height: 36px;
	background: transparent; border: 0; color: #fff; font-size: 30px; line-height: 1;
	cursor: pointer; opacity: 0.85;
  }
.dtbd .s4n-lightbox__close:hover { opacity: 1; }
.dtbd .s4n-lightbox__story {
	display: inline-block; margin-top: 16px;
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', sans-serif;
	font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase;
	color: rgba(255,255,255,0.8); text-decoration: none;
  }
.dtbd .s4n-lightbox__story:hover { color: #fff; }
.dtbd .s4n__card-body {
	padding: 1.25rem 1.4rem 1.5rem;
	display: flex; flex-direction: column; gap: 0.55rem; flex: 1;
  }
.dtbd .s4n__card-loc {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', 'Elza', sans-serif;
	font-weight: 700; font-size: 0.5625rem;
	letter-spacing: 0.2em; text-transform: uppercase;
	color: rgba(0,0,0,0.3); transition: color 0.3s ease;
  }
.dtbd .s4n__card.is-active .s4n__card-loc { color: #CC2031; }
.dtbd .s4n__card-text {
	font-family: 'Elza', 'Plus Jakarta Sans', sans-serif;
	font-weight: 400; font-size: 0.875rem;
	line-height: 1.45; color: #3d3d3f;
  }
.dtbd .s4n__card-link {
	font-family: 'Founders Grotesk', 'Plus Jakarta Sans', 'Elza', sans-serif;
	font-weight: 600; font-size: 0.625rem;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: rgba(0,0,0,0.32); text-decoration: none;
	display: inline-flex; align-items: center; gap: 0.35rem;
	margin-top: auto;
	transition: color 0.3s ease, gap 0.3s ease;
  }
.dtbd .s4n__card.is-active .s4n__card-link { color: #1d1d1f; }
.dtbd .s4n__card-link:hover, .dtbd .s4n__card.is-active .s4n__card-link:hover { color: #CC2031; gap: 0.6rem; }
.dtbd .s4n__nav-row {
	background: #fff;
	display: flex; align-items: center; justify-content: center; gap: 1rem;
	padding: 1.25rem clamp(2rem, 5vw, 5rem) 2.75rem;
  }
.dtbd .s4n__nav-pill {
	display: flex; align-items: center; gap: 0.55rem;
	background: #1C3BAD;
	border-radius: 100px;
	padding: 15px 22px;
  }
.dtbd .s4n__dot {
	position: relative;
	width: 10px; height: 10px;
	border-radius: 50%;
	background: #ffffff;
	border: none; padding: 0; cursor: pointer;
	overflow: hidden; flex-shrink: 0;

	transition: width 0.3s ease, border-radius 0.3s ease;
  }
.dtbd .s4n__dot.is-active {
	width: 88px;
	border-radius: 100px;
	background: #ffffff;
  }
.dtbd .s4n__dot-fill {
	position: absolute;
	top: 0; left: 0; bottom: 0;
	width: 0%;
	background: #CC2031; border-radius: 100px;
  }
.dtbd .s4n .s4n__play-pause {
	width: 40px; height: 40px; border-radius: 50%;
	background: #1C3BAD; border: none; color: #fff;
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; flex-shrink: 0;
	transition: background 0.2s ease;
  }
.dtbd .s4n .s4n__play-pause:hover { background: #15308c; }
.dtbd .s4n__play-pause svg { width: 13px; height: 13px; fill: currentColor; display: block; }
.dtbd .s4n__play-pause:not(.is-paused) svg { margin-left: 2px; }
@media (max-width: 767px) {
  .dtbd .s4n__head { flex-direction: column; align-items: flex-start; gap: 1.1rem; padding: clamp(2.5rem, 6vw, 3.5rem) 7vw 1.25rem; }
  .dtbd .s4n__head-left { max-width: none; }
  .dtbd .s4n__explore-cta { display: none !important; }
  .dtbd .s4n__map-wrap { height: 180px; }
  .dtbd .s4n__carousel-wrap { overflow: visible; padding-top: 1.25rem; }
  .dtbd .s4n__cards-scroll { overflow-x: auto; overflow-y: hidden; transform: none !important; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; gap: 1rem; padding: 1rem 7vw 1.5rem; scroll-padding: 0 7vw; }
  .dtbd .s4n__cards-scroll::-webkit-scrollbar { display: none; }
  .dtbd .s4n__card { flex: 0 0 78vw; opacity: 1 !important; transform: none !important; scroll-snap-align: center; }
  .dtbd .s4n__progress-dots { padding: 0.75rem 0 1.5rem; }
}

@media (min-width: 768px) {
  .dtbd .s4n--unpinned .s4n__cards-scroll {
    padding-left: calc(50% - 11rem);
    padding-right: calc(50% - 11rem);
    scroll-padding-left: 0;
  }
  .dtbd .s4n--unpinned .s4n__card { scroll-snap-align: center; }
}

.dtbd .s4n--nosnap .s4n__cards-scroll { scroll-snap-type: none; }

.dtbd .s4n__card-text {
  display: -webkit-box;
  -webkit-line-clamp: var(--s4n-card-lines, 3);
  line-clamp: var(--s4n-card-lines, 3);
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dtbd .s4n-lightbox__dialog { width: min(1080px, 100%, calc((90vh - 96px) * 16 / 9)); }

.dtbd .s4n__card-body { justify-content: flex-start; }
.dtbd .s4n__card-link { margin-top: auto; }
