:root {
  --fjc-free-swim: #00a99c;
  --fjc-log-cabin: #3f2712;
  --fjc-bug-juice: #ed125f;
  --fjc-firefly: #cfdc29;
  --fjc-starry-night: #004766;
  --fjc-ohc-blue: #01afd8;
  --fjc-clear-skies: #D6F0FC;
  --fjc-toasted-marshmallow: #413939;
  --fjc-lights-out: #181210;
}

.fjc-block,
.editor-styles-wrapper .fjc-block {
  --fjc-text: var(--fjc-starry-night);
  --fjc-accent: var(--fjc-free-swim);
  position: relative;
  box-sizing: border-box;
  background: transparent !important;
  color: var(--fjc-text);
  font-family: inherit;
  isolation: isolate;
}
.fjc-block *, .fjc-block *::before, .fjc-block *::after { box-sizing: border-box; }
.fjc-block img, .fjc-block video { max-width: 100%; display: block; }
.fjc-block p { color: currentColor; }

.fjc-ribbon {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  background: var(--fjc-firefly);
  color: var(--fjc-lights-out);
  padding: .34rem .66rem .28rem;
  font-size: clamp(.68rem, .8vw, .82rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: .025em;
  text-transform: uppercase;
  box-shadow: 0 .25rem 1rem rgba(24,18,16,.06);
}
.fjc-link-button, .fjc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  border-radius: 999px;
  background: var(--fjc-accent);
  color: #fff !important;
  text-decoration: none !important;
  padding: .75rem 1.15rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 .7rem 1.4rem rgba(24,18,16,.11);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.fjc-link-button:hover, .fjc-cta:hover { transform: translateY(-2px); filter: saturate(1.08); box-shadow: 0 1rem 1.9rem rgba(24,18,16,.16); }
.fjc-section-grid {
  width: min(1120px, calc(100% - 2rem));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(320px, 1fr);
  gap: clamp(1.6rem, 4vw, 5rem);
  align-items: center;
}

/* Video sections */
.fjc-video-hero {
  min-height: var(--fjc-min-h, 78vh);
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: clamp(4rem, 9vw, 8rem) 1rem;
  color: #fff;
}
.fjc-bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; }
.fjc-video-overlay { position: absolute; inset: 0; background: rgba(24,18,16,var(--fjc-overlay, .35)); z-index: -2; }
.fjc-video-content { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; text-align: left; }
.fjc-video-content h1 {
  max-width: 920px;
  margin: .85rem 0 .4rem;
  color: inherit;
  font-size: clamp(3rem, 8.8vw, 8.5rem);
  line-height: .84;
  letter-spacing: -.045em;
  font-weight: 900;
}
.fjc-video-content p { max-width: 720px; font-size: clamp(1.15rem, 2.1vw, 2rem); line-height: 1.15; font-weight: 750; }
.fjc-video-story {
  position: relative;
  overflow: hidden;
  min-height: 70vh;
  padding: clamp(4rem, 8vw, 8rem) 0;
  color: #fff;
}
.fjc-video-story__inner { position: relative; z-index: 2; }
.fjc-video-story h2 { margin: 1rem 0 0; color: inherit; font-size: clamp(2.6rem, 6.3vw, 6.8rem); line-height: .86; letter-spacing: -.04em; }
.fjc-video-story h3 { color: inherit; font-size: clamp(1.25rem, 2vw, 2rem); line-height: 1.1; }

/* Text / letter / why */
.fjc-letter, .fjc-why { padding: clamp(3rem, 7vw, 7rem) 0; }
.fjc-letter h2, .fjc-why h2 { margin: .9rem 0 0; color: var(--fjc-text); font-size: clamp(2.2rem, 5.4vw, 5.7rem); line-height: .88; letter-spacing: -.035em; font-weight: 850; }
.fjc-richtext, .fjc-letter .fjc-section-grid > div:last-child, .fjc-why p { font-size: clamp(1.04rem, 1.28vw, 1.25rem); line-height: 1.5; }
.fjc-signatures { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.fjc-signature { display: flex; gap: .8rem; align-items: center; padding: .6rem .8rem; border: 1px solid rgba(0,0,0,.09); border-radius: 1rem; }
.fjc-signature img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; }
.fjc-signature strong { display: block; }
.fjc-signature span { display: block; opacity: .75; font-size: .92rem; }
.fjc-why { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; }
.fjc-why h2 { max-width: 980px; }
.fjc-why p { max-width: 760px; }

/* Animated opening circles */
.fjc-circles {
  width: min(1120px, calc(100% - 2rem));
  margin-inline: auto;
  padding: clamp(2rem, 6vw, 5rem) 0;
}
.fjc-circle-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(1rem, 2.4vw, 2rem);
}
.fjc-statement-circle {
  width: min(var(--fjc-circle-size, 210px), 42vw);
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  padding: clamp(1.1rem, 2.2vw, 1.8rem);
  color: #fff;
  text-align: center;
  box-shadow: 0 1.25rem 2.3rem rgba(24,18,16,.12);
  transform-origin: center;
  transition: transform .35s ease, box-shadow .35s ease;
}
.fjc-statement-circle:hover { transform: translateY(-5px) scale(1.02); box-shadow: 0 1.8rem 3rem rgba(24,18,16,.16); }
.fjc-statement-circle span {
  display: block;
  max-width: 12.5em;
  color: inherit;
  font-size: clamp(.96rem, 1.25vw, 1.28rem);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -.02em;
}
.fjc-circle-color-0 { background: var(--fjc-firefly); color: var(--fjc-lights-out); }
.fjc-circle-color-1 { background: var(--fjc-free-swim); }
.fjc-circle-color-2 { background: var(--fjc-bug-juice); }
.fjc-circle-color-3 { background: var(--fjc-ohc-blue); }

/* Ripple */
.fjc-ripple {
  width: min(1120px, calc(100% - 2rem));
  margin-inline: auto;
  padding: clamp(2.5rem, 6vw, 5.5rem) 0;
  display: grid;
  place-items: center;
  gap: clamp(1.2rem, 3vw, 2.4rem);
}
.fjc-ripple__dots {
  display: grid;
  grid-template-columns: repeat(var(--fjc-columns, 30), var(--fjc-dot-size, 9px));
  gap: clamp(7px, .75vw, 11px);
  justify-content: center;
  max-width: 100%;
}
.fjc-ripple__dots span {
  width: var(--fjc-dot-size, 9px);
  height: var(--fjc-dot-size, 9px);
  border-radius: 50%;
  border: 1.8px solid color-mix(in srgb, var(--fjc-accent) 64%, #fff 36%);
  background: transparent;
}
.fjc-ripple__dots span.is-highlighted { border-color: transparent; background: var(--fjc-accent); }
.fjc-ripple__dots span:nth-child(5n).is-highlighted { background: var(--fjc-firefly); }
.fjc-ripple__dots span:nth-child(7n).is-highlighted { background: var(--fjc-bug-juice); }
.fjc-ripple__dots span:nth-child(11n).is-highlighted { background: var(--fjc-ohc-blue); }
.fjc-ripple__message {
  max-width: 780px;
  text-align: center;
  color: var(--fjc-text);
  font-size: clamp(1.75rem, 4.2vw, 4rem);
  line-height: .96;
  font-weight: 850;
  letter-spacing: -.035em;
}

/* Vision / commitments */
.fjc-vision {
  width: min(1120px, calc(100% - 2rem));
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 7rem) 0;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, 1fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: start;
}
.fjc-vision h2 { margin: .85rem 0 0; color: var(--fjc-text); font-size: clamp(2.7rem, 6.1vw, 6.6rem); line-height: .84; letter-spacing: -.045em; font-weight: 830; }
.fjc-vision h3 { margin: .1rem 0 1.4rem; color: var(--fjc-text); font-size: clamp(1.1rem, 1.55vw, 1.45rem); line-height: 1.25; font-weight: 900; }
.fjc-commitments { display: grid; gap: 1rem; }
.fjc-commitment { display: grid; grid-template-columns: 58px 1fr; gap: .9rem; align-items: center; }
.fjc-commitment img, .fjc-commitment__num {
  width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center;
  background: var(--fjc-accent); color: #fff; font-weight: 900; object-fit: cover;
  box-shadow: 0 .65rem 1.2rem rgba(24,18,16,.10);
}
.fjc-commitment h4 { margin: 0; color: var(--fjc-firefly); font-size: clamp(1.06rem, 1.35vw, 1.32rem); line-height: 1.05; font-weight: 900; }
.fjc-commitment p { margin: .25rem 0 0; line-height: 1.35; font-size: clamp(.9rem, 1vw, 1rem); color: var(--fjc-text); }

/* Priorities */
.fjc-priority-overview {
  width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 7vw, 7rem) 0;
  display: grid; grid-template-columns: minmax(240px,.55fr) 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: start;
}
.fjc-priority-overview > h2, .fjc-platforms-intro h2, .fjc-platforms-complete h2 {
  color: var(--fjc-accent); font-size: clamp(2.8rem, 6.1vw, 6.6rem); line-height: .84; margin: 0; letter-spacing: -.045em; font-weight: 830;
}
.fjc-priority-cards { display: grid; gap: 1rem; }
.fjc-priority-card { display: grid; grid-template-columns: 56px 1fr; gap: 1rem; align-items: start; padding: 1rem; border: 1px solid color-mix(in srgb, var(--fjc-accent) 35%, transparent); border-radius: 1.25rem; background: rgba(255,255,255,.42); }
.fjc-priority-card span, .fjc-priority h2 span { width: 48px; height: 48px; border-radius: 50%; background: var(--fjc-accent); color: #fff; display: grid; place-items: center; font-weight: 900; }
.fjc-priority-card h3 { margin: 0; color: var(--fjc-text); font-size: clamp(1.35rem, 2.2vw, 2.2rem); line-height: .95; font-weight: 850; }
.fjc-priority-card p { grid-column: 2; margin: -.35rem 0 0; line-height: 1.35; }
.fjc-priority { padding: clamp(3rem, 7vw, 7rem) 0; }
.fjc-priority > .fjc-ribbon { margin-left: max(1rem, calc((100% - 1120px)/2)); background: var(--fjc-accent); color: #fff; }
.fjc-priority .fjc-section-grid { margin-top: 1.5rem; align-items: center; }
.fjc-priority h2 { margin: 0; color: var(--fjc-accent); font-size: clamp(3rem, 7vw, 7.5rem); line-height: .82; letter-spacing: -.05em; font-weight: 820; }
.fjc-priority h2 span { display: inline-grid; margin-right: .2em; font-size: .5em; vertical-align: middle; }
.fjc-priority .fjc-section-grid p { font-size: clamp(1.03rem, 1.28vw, 1.22rem); line-height: 1.42; }
.fjc-point-grid { width: min(1120px, calc(100% - 2rem)); margin: 2rem auto 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.fjc-point { min-height: 110px; display: flex; flex-direction: column; gap: .65rem; padding: 1rem; border: 2px solid var(--fjc-accent); border-radius: 1rem; color: var(--fjc-text); font-weight: 900; background: rgba(255,255,255,.55); transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.fjc-point:hover { transform: translateY(-4px); box-shadow: 0 .9rem 1.6rem rgba(24,18,16,.10); background: #fff; }
.fjc-point span { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: var(--fjc-accent); color: #fff; }

/* Platforms */
.fjc-platforms-intro, .fjc-platforms-complete { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.fjc-platforms-intro { padding: clamp(3rem, 7vw, 6rem) 0 1rem; display: grid; grid-template-columns: minmax(240px,.72fr) 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.fjc-platforms-intro p, .fjc-platforms-complete p { max-width: 620px; line-height: 1.5; font-size: clamp(1rem, 1.15vw, 1.15rem); }
.fjc-platforms-complete { padding: clamp(3rem, 7vw, 7rem) 0; }
.fjc-platforms-complete__intro { display: grid; grid-template-columns: minmax(240px,.72fr) 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: end; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.fjc-flips { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(1rem, 4vw, 3rem) 0 clamp(3rem, 7vw, 6rem); }
.fjc-flip-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(1rem, 2.3vw, 1.6rem); }
.fjc-flip { min-height: var(--fjc-flip-size, 190px); perspective: 1000px; }
.fjc-flip__inner { position: relative; width: var(--fjc-flip-size, 190px); height: var(--fjc-flip-size, 190px); max-width: 100%; margin: 0 auto; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.fjc-flip:hover .fjc-flip__inner, .fjc-flip:focus .fjc-flip__inner { transform: rotateY(180deg); }
.fjc-flip__front, .fjc-flip__back { position: absolute; inset: 0; border-radius: 50%; backface-visibility: hidden; display: grid; place-items: center; text-align: center; padding: 1.25rem; line-height: 1.05; box-shadow: 0 1.2rem 2rem rgba(24,18,16,.12); }
.fjc-flip__front { background: var(--fjc-accent); color: #fff; }
.fjc-flip__front span { display: block; opacity: .82; font-size: .85rem; margin-bottom: .5rem; }
.fjc-flip__front strong { font-size: clamp(.9rem, 1.15vw, 1.03rem); }
.fjc-flip__back { background: var(--fjc-firefly); color: var(--fjc-lights-out); transform: rotateY(180deg); font-weight: 900; }

/* Shared charge */
.fjc-shared { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 7vw, 7rem) 0; }
.fjc-image-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; margin: 1.5rem 0; }
.fjc-image-strip img { width: clamp(70px, 9vw, 135px); height: clamp(70px, 9vw, 135px); border-radius: 50%; object-fit: cover; border: 4px solid #fff; box-shadow: 0 10px 24px rgba(24,18,16,.12); }
.fjc-shared__messages { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.5rem, 5vw, 5rem); margin-top: 1.5rem; }
.fjc-shared__messages p { color: var(--fjc-accent); font-weight: 850; font-size: clamp(1.8rem, 3.6vw, 4.2rem); line-height: .96; letter-spacing: -.035em; }
.fjc-shared h2 { max-width: 980px; margin: 1rem 0 0; color: var(--fjc-accent); font-size: clamp(3.4rem, 9vw, 9.5rem); line-height: .82; letter-spacing: -.055em; font-weight: 820; }

/* Added v4 blocks */
.fjc-impact, .fjc-photo-band, .fjc-cta-buttons { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 7vw, 7rem) 0; }
.fjc-impact h2, .fjc-photo-band h2, .fjc-cta-buttons h2 { margin: 1rem 0 1.5rem; color: var(--fjc-text); font-size: clamp(2.5rem, 5.7vw, 6.2rem); line-height: .86; letter-spacing: -.045em; font-weight: 840; }
.fjc-impact__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.fjc-impact-card { padding: clamp(1rem, 2vw, 1.4rem); border-radius: 1.35rem; border: 2px solid color-mix(in srgb, var(--fjc-accent) 70%, transparent); background: #fff; box-shadow: 0 .8rem 1.8rem rgba(24,18,16,.08); }
.fjc-impact-card strong { display: block; color: var(--fjc-accent); font-size: clamp(2.5rem, 5vw, 5.6rem); line-height: .82; letter-spacing: -.05em; }
.fjc-impact-card h3 { margin: .75rem 0 .4rem; color: var(--fjc-text); font-size: clamp(1.1rem, 1.5vw, 1.45rem); line-height: 1.05; }
.fjc-impact-card p { margin: 0; line-height: 1.4; }
.fjc-photo-band__grid { display: grid; grid-template-columns: repeat(12,1fr); gap: .8rem; }
.fjc-photo-band__grid img { width: 100%; height: var(--fjc-photo-h, 360px); object-fit: cover; border-radius: 1.25rem; box-shadow: 0 1rem 2rem rgba(24,18,16,.11); }
.fjc-photo-band__grid img:nth-child(4n+1), .fjc-photo-band__grid img:nth-child(4n+4) { grid-column: span 4; }
.fjc-photo-band__grid img:nth-child(4n+2), .fjc-photo-band__grid img:nth-child(4n+3) { grid-column: span 2; }
.fjc-photo-band__empty { border: 2px dashed color-mix(in srgb, var(--fjc-accent) 50%, transparent); padding: 2rem; border-radius: 1rem; text-align: center; }
.fjc-cta-buttons { text-align: center; }
.fjc-cta-buttons p { max-width: 720px; margin: 0 auto 1.5rem; font-size: clamp(1.05rem, 1.35vw, 1.25rem); line-height: 1.4; }
.fjc-cta-buttons__links { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; }
.fjc-cta:nth-child(2) { background: var(--fjc-bug-juice); }
.fjc-cta:nth-child(3) { background: var(--fjc-firefly); color: var(--fjc-lights-out) !important; }

/* Fallback / enhanced animation styling */
[data-aos] { transition-property: opacity, transform; }
.fjc-block .fjc-kinetic { will-change: transform, opacity; }
@keyframes fjcFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.fjc-statement-circle:nth-child(2n), .fjc-flip:nth-child(2n) .fjc-flip__inner { animation: fjcFloat 5.5s ease-in-out infinite; }
.fjc-statement-circle:nth-child(3n), .fjc-flip:nth-child(3n) .fjc-flip__inner { animation: fjcFloat 6.5s ease-in-out infinite reverse; }
@media (prefers-reduced-motion: reduce) {
  .fjc-block *, .fjc-block *::before, .fjc-block *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .fjc-flip:hover .fjc-flip__inner, .fjc-flip:focus .fjc-flip__inner { transform: none; }
}
@media (max-width: 980px) {
  .fjc-section-grid, .fjc-vision, .fjc-priority-overview, .fjc-platforms-intro, .fjc-platforms-complete__intro { grid-template-columns: 1fr; }
  .fjc-point-grid, .fjc-flip-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fjc-impact__grid { grid-template-columns: 1fr; }
  .fjc-priority-card p { grid-column: auto; }
  .fjc-ripple__dots { grid-template-columns: repeat(min(var(--fjc-columns, 30), 20), var(--fjc-dot-size, 9px)); }
  .fjc-photo-band__grid img { grid-column: span 6 !important; height: min(var(--fjc-photo-h, 360px), 320px); }
}
@media (max-width: 640px) {
  .fjc-point-grid, .fjc-flip-grid, .fjc-shared__messages { grid-template-columns: 1fr; }
  .fjc-statement-circle { width: min(var(--fjc-circle-size, 210px), 82vw); }
  .fjc-commitment { grid-template-columns: 46px 1fr; }
  .fjc-commitment img, .fjc-commitment__num { width: 46px; height: 46px; }
  .fjc-photo-band__grid { grid-template-columns: 1fr; }
  .fjc-photo-band__grid img { grid-column: auto !important; height: 240px; }
  .fjc-ripple__dots { grid-template-columns: repeat(min(var(--fjc-columns, 30), 14), var(--fjc-dot-size, 9px)); }
}

/* =========================
   FJC Strategy Blocks Pro v5 visual polish
   Fixes type scale, weight, rhythm, grids, and animated colored ripple circles.
   ========================= */
.fjc-block,
.editor-styles-wrapper .fjc-block {
  --fjc-page-w: min(1220px, calc(100vw - 48px));
  --fjc-display: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --fjc-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --fjc-muted: color-mix(in srgb, var(--fjc-text) 78%, white 22%);
  font-family: var(--fjc-body) !important;
  font-size: 18px;
  line-height: 1.35;
  background: transparent !important;
  color: var(--fjc-text, #004766) !important;
  letter-spacing: 0;
}
.entry-content > .fjc-block,
.wp-block-post-content > .fjc-block,
.site-main .fjc-block,
.fjc-block {
  width: var(--fjc-page-w) !important;
  max-width: var(--fjc-page-w) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.fjc-block h1,
.fjc-block h2,
.fjc-block h3,
.fjc-block h4,
.fjc-block p { color: inherit; }
.fjc-block h1,
.fjc-block h2,
.fjc-block h3 {
  font-family: var(--fjc-display) !important;
  text-wrap: balance;
  font-weight: 650 !important;
  letter-spacing: -0.055em !important;
}
.fjc-block p,
.fjc-block li,
.fjc-block div { font-weight: 500; }
.fjc-block strong { font-weight: 800; }
.fjc-ribbon {
  font-size: clamp(.72rem, .72vw, .82rem) !important;
  font-weight: 900 !important;
  padding: .4rem .72rem .34rem !important;
  letter-spacing: .035em !important;
  box-shadow: none !important;
  margin-bottom: clamp(.75rem, 1.4vw, 1.1rem);
}
.fjc-section-grid,
.fjc-vision,
.fjc-priority-overview,
.fjc-platforms-intro,
.fjc-platforms-complete,
.fjc-platforms-complete__intro,
.fjc-flips,
.fjc-ripple,
.fjc-circles,
.fjc-shared,
.fjc-impact,
.fjc-photo-band,
.fjc-cta-buttons,
.fjc-why {
  width: var(--fjc-page-w) !important;
  max-width: var(--fjc-page-w) !important;
}
.fjc-section-grid,
.fjc-vision,
.fjc-priority-overview,
.fjc-platforms-intro,
.fjc-platforms-complete__intro {
  gap: clamp(2.75rem, 5.8vw, 6.5rem) !important;
}
.fjc-letter,
.fjc-why,
.fjc-circles,
.fjc-ripple,
.fjc-vision,
.fjc-priority,
.fjc-priority-overview,
.fjc-platforms-intro,
.fjc-platforms-complete,
.fjc-flips,
.fjc-shared,
.fjc-impact,
.fjc-photo-band,
.fjc-cta-buttons {
  padding-top: clamp(4.5rem, 8vw, 8.5rem) !important;
  padding-bottom: clamp(4.5rem, 8vw, 8.5rem) !important;
}

/* Display type */
.fjc-video-content h1,
.fjc-letter h2,
.fjc-why h2,
.fjc-video-story h2,
.fjc-vision h2,
.fjc-priority-overview > h2,
.fjc-priority h2,
.fjc-platforms-intro h2,
.fjc-platforms-complete h2,
.fjc-shared h2,
.fjc-impact h2,
.fjc-photo-band h2,
.fjc-cta-buttons h2 {
  font-size: clamp(3.15rem, 7vw, 7.7rem) !important;
  line-height: .84 !important;
  font-weight: 600 !important;
  letter-spacing: -.062em !important;
  margin-top: 0 !important;
  margin-bottom: clamp(1rem, 2.4vw, 2rem) !important;
}
.fjc-platforms-intro h2,
.fjc-platforms-complete h2,
.fjc-priority-overview > h2 {
  color: var(--fjc-free-swim) !important;
}
.fjc-priority h2 { color: var(--fjc-accent) !important; }
.fjc-vision h2 { color: var(--fjc-text) !important; }
.fjc-letter h2,
.fjc-why h2 { max-width: 900px; }
.fjc-why h2 {
  color: var(--fjc-free-swim) !important;
  font-size: clamp(2.6rem, 5.5vw, 6.25rem) !important;
}
.fjc-richtext,
.fjc-letter .fjc-section-grid > div:last-child,
.fjc-why p,
.fjc-platforms-intro p,
.fjc-platforms-complete p,
.fjc-priority .fjc-section-grid p,
.fjc-video-content p,
.fjc-video-story h3,
.fjc-vision h3,
.fjc-cta-buttons p {
  font-size: clamp(1.08rem, 1.35vw, 1.34rem) !important;
  line-height: 1.42 !important;
  font-weight: 650 !important;
  letter-spacing: -.012em;
}
.fjc-vision h3,
.fjc-video-story h3 { font-weight: 850 !important; }

/* Opening circles */
.fjc-circle-row {
  gap: clamp(1.2rem, 2.2vw, 2rem) !important;
  align-items: center;
}
.fjc-statement-circle {
  width: min(var(--fjc-circle-size, 230px), 24vw) !important;
  min-width: 170px;
  box-shadow: 0 1.2rem 2.5rem rgba(24,18,16,.16) !important;
  padding: clamp(1.1rem, 2vw, 1.7rem) !important;
}
.fjc-statement-circle span {
  font-size: clamp(.95rem, 1.05vw, 1.2rem) !important;
  line-height: 1.03 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
}

/* Colored animated ripple dot grid */
.fjc-ripple {
  gap: clamp(1.8rem, 3.2vw, 3rem) !important;
  overflow: visible;
}
.fjc-ripple__dots {
  --fjc-dot-size: clamp(9px, .86vw, 13px);
  gap: clamp(8px, .72vw, 12px) !important;
  padding: clamp(.3rem, 1.2vw, .8rem);
  perspective: 900px;
}
.fjc-ripple__dots span {
  width: var(--fjc-dot-size, 11px) !important;
  height: var(--fjc-dot-size, 11px) !important;
  border-radius: 999px;
  border: 1.65px solid currentColor !important;
  background: currentColor !important;
  opacity: .96 !important;
  box-shadow: 0 0 0 0 rgba(0,0,0,0);
  transform-origin: center;
  animation: fjcDotPulse 3.6s ease-in-out infinite;
  animation-delay: calc((var(--fjc-dot-index, 1) % 14) * -.17s);
}
.fjc-ripple__dots span:nth-child(9n+1) { color: var(--fjc-firefly); }
.fjc-ripple__dots span:nth-child(9n+2) { color: var(--fjc-free-swim); }
.fjc-ripple__dots span:nth-child(9n+3) { color: var(--fjc-ohc-blue); }
.fjc-ripple__dots span:nth-child(9n+4) { color: var(--fjc-bug-juice); }
.fjc-ripple__dots span:nth-child(9n+5) { color: var(--fjc-starry-night); }
.fjc-ripple__dots span:nth-child(9n+6) { color: var(--fjc-clear-skies); }
.fjc-ripple__dots span:nth-child(9n+7) { color: var(--fjc-free-swim); }
.fjc-ripple__dots span:nth-child(9n+8) { color: var(--fjc-firefly); }
.fjc-ripple__dots span:nth-child(9n) { color: var(--fjc-bug-juice); }
.fjc-ripple__dots span:not(.is-highlighted) {
  background: transparent !important;
  opacity: .72 !important;
}
.fjc-ripple__dots span.is-highlighted {
  opacity: 1 !important;
  box-shadow: 0 .25rem .75rem color-mix(in srgb, currentColor 35%, transparent);
}
.fjc-ripple__message {
  max-width: 880px !important;
  color: var(--fjc-starry-night) !important;
  font-size: clamp(2.2rem, 4.5vw, 4.9rem) !important;
  line-height: .93 !important;
  font-weight: 600 !important;
  letter-spacing: -.055em !important;
  text-wrap: balance;
}
@keyframes fjcDotPulse {
  0%, 100% { transform: translateY(0) scale(.9); filter: saturate(.96); }
  45% { transform: translateY(-5px) scale(1.22); filter: saturate(1.2); }
}

/* Vision cards */
.fjc-commitments { gap: clamp(.9rem, 1.5vw, 1.25rem) !important; }
.fjc-commitment {
  grid-template-columns: 66px 1fr !important;
  gap: 1rem !important;
  padding: .6rem .7rem .6rem 0;
}
.fjc-commitment img,
.fjc-commitment__num {
  width: 66px !important;
  height: 66px !important;
  font-size: 1.02rem !important;
  background: var(--fjc-free-swim) !important;
  box-shadow: 0 .75rem 1.4rem rgba(0,169,156,.22) !important;
}
.fjc-commitment h4 {
  color: var(--fjc-firefly) !important;
  font-size: clamp(1.18rem, 1.55vw, 1.48rem) !important;
  line-height: 1.02 !important;
  font-weight: 850 !important;
  letter-spacing: -.025em;
}
.fjc-commitment p {
  font-size: clamp(.98rem, 1.1vw, 1.1rem) !important;
  line-height: 1.32 !important;
  font-weight: 550 !important;
}

/* Priority / card sections */
.fjc-priority-card,
.fjc-point,
.fjc-impact-card {
  background: rgba(255,255,255,.86) !important;
  backdrop-filter: blur(3px);
  border-width: 2px !important;
  box-shadow: 0 .85rem 1.7rem rgba(24,18,16,.07) !important;
}
.fjc-priority-card {
  grid-template-columns: 60px 1fr !important;
  padding: clamp(1rem, 1.8vw, 1.35rem) !important;
  min-height: 116px;
}
.fjc-priority-card span,
.fjc-priority h2 span,
.fjc-point span {
  background: var(--fjc-accent) !important;
  color: white !important;
  font-weight: 900 !important;
}
.fjc-priority-card h3 {
  font-size: clamp(1.55rem, 2.35vw, 2.45rem) !important;
  line-height: .92 !important;
  font-weight: 650 !important;
  letter-spacing: -.048em !important;
}
.fjc-priority-card p,
.fjc-point {
  font-size: clamp(.98rem, 1.1vw, 1.08rem) !important;
  font-weight: 650 !important;
}
.fjc-point-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(.9rem, 1.4vw, 1.2rem) !important;
  margin-top: clamp(1.8rem, 3vw, 2.6rem) !important;
}
.fjc-point {
  min-height: 124px !important;
  border-radius: 1.15rem !important;
  padding: 1rem !important;
}

/* Platform circles */
.fjc-flip-grid { gap: clamp(1.25rem, 2vw, 1.9rem) !important; }
.fjc-flip__inner {
  width: min(var(--fjc-flip-size, 205px), 100%) !important;
  height: min(var(--fjc-flip-size, 205px), 22vw) !important;
  min-height: 180px;
  min-width: 180px;
}
.fjc-flip__front,
.fjc-flip__back {
  padding: 1.35rem !important;
  box-shadow: 0 1.25rem 2.4rem rgba(0,169,156,.18) !important;
}
.fjc-flip__front { background: var(--fjc-free-swim) !important; }
.fjc-flip:nth-child(2) .fjc-flip__front { background: var(--fjc-ohc-blue) !important; }
.fjc-flip:nth-child(3) .fjc-flip__front { background: var(--fjc-bug-juice) !important; }
.fjc-flip:nth-child(4) .fjc-flip__front { background: var(--fjc-starry-night) !important; }
.fjc-flip__front strong {
  font-size: clamp(1rem, 1.12vw, 1.18rem) !important;
  line-height: 1.02 !important;
  font-weight: 850 !important;
  letter-spacing: -.025em;
}
.fjc-flip__front span { font-weight: 900; }
.fjc-flip__back {
  background: var(--fjc-firefly) !important;
  color: var(--fjc-lights-out) !important;
  font-size: clamp(.98rem, 1.1vw, 1.12rem);
  line-height: 1.15 !important;
}

/* Shared charge */
.fjc-shared__messages {
  gap: clamp(2rem, 6vw, 7rem) !important;
  margin-top: clamp(1rem, 2vw, 1.8rem) !important;
}
.fjc-shared__messages p {
  color: var(--fjc-free-swim) !important;
  font-size: clamp(2rem, 4vw, 4.6rem) !important;
  line-height: .94 !important;
  font-weight: 600 !important;
  letter-spacing: -.055em !important;
  margin: 0;
}
.fjc-shared h2 {
  color: var(--fjc-free-swim) !important;
  font-size: clamp(3.4rem, 8.8vw, 9.2rem) !important;
  max-width: 1050px !important;
}

/* Video fallback and image polish */
.fjc-video-hero,
.fjc-video-story {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.fjc-video-hero::after,
.fjc-video-story::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -4;
  background:
    radial-gradient(circle at 20% 30%, rgba(0,169,156,.55), transparent 28%),
    radial-gradient(circle at 80% 65%, rgba(237,18,95,.38), transparent 32%),
    linear-gradient(135deg, var(--fjc-starry-night), var(--fjc-free-swim));
}
.fjc-image-strip img,
.fjc-photo-band__grid img {
  transition: transform .35s ease, box-shadow .35s ease;
}
.fjc-image-strip img:hover,
.fjc-photo-band__grid img:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 1.2rem 2.4rem rgba(24,18,16,.16) !important;
}

/* A cleaner editor preview */
.editor-styles-wrapper .fjc-block {
  outline: 1px solid rgba(0,71,102,.08);
  outline-offset: 10px;
}

@media (max-width: 1100px) {
  .fjc-flip-grid,
  .fjc-point-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .fjc-flip__inner { height: min(var(--fjc-flip-size, 205px), 42vw) !important; }
  .fjc-statement-circle { width: min(var(--fjc-circle-size, 230px), 42vw) !important; }
}
@media (max-width: 780px) {
  .fjc-block,
  .editor-styles-wrapper .fjc-block { --fjc-page-w: min(100% - 28px, 720px); }
  .fjc-section-grid,
  .fjc-vision,
  .fjc-priority-overview,
  .fjc-platforms-intro,
  .fjc-platforms-complete__intro,
  .fjc-shared__messages {
    grid-template-columns: 1fr !important;
  }
  .fjc-video-content h1,
  .fjc-letter h2,
  .fjc-why h2,
  .fjc-video-story h2,
  .fjc-vision h2,
  .fjc-priority-overview > h2,
  .fjc-priority h2,
  .fjc-platforms-intro h2,
  .fjc-platforms-complete h2,
  .fjc-shared h2,
  .fjc-impact h2,
  .fjc-photo-band h2,
  .fjc-cta-buttons h2 {
    font-size: clamp(2.75rem, 14vw, 5rem) !important;
  }
  .fjc-ripple__message { font-size: clamp(2rem, 9vw, 3.6rem) !important; }
  .fjc-ripple__dots { grid-template-columns: repeat(min(var(--fjc-columns, 30), 18), var(--fjc-dot-size, 11px)) !important; }
  .fjc-point-grid,
  .fjc-flip-grid { grid-template-columns: 1fr !important; }
  .fjc-flip__inner { height: min(var(--fjc-flip-size, 205px), 78vw) !important; }
  .fjc-statement-circle { width: min(var(--fjc-circle-size, 230px), 78vw) !important; }
}
