/* Selectors below refer to inspected Elementor component IDs, not generated SoftLite classes. */
body .elementor .jpbc-site-header nav :is(a.hfe-menu-item, a.hfe-sub-menu-item):is(:hover, :focus-visible),
body:has(.jpbc-site-header) .elementor .jpbc-site-header nav.hfe-dropdown a.hfe-menu-item:is(:hover, :focus-visible) { color:#EE4CA2 !important; }
.jpbc-site-header nav a:focus-visible { outline:2px solid #EE4CA2; outline-offset:4px; border-radius:3px; }
body.home .jpbc-home-media { width:100%; min-width:0; }
body.home .jpbc-home-media .caf-builder-preview-template-container { padding:0; }
body.home .jpbc-home-media .post-layout-container-inner.caf-grid { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:32px; }
.jpbc-media-status { font-size:14px; margin:12px 0 0; }
.jpbc-media-status:empty { display:none; }
body.home [data-id="b3fdc06"] { width:100%; min-width:0; }
body.home .jpbc-partners-section { padding:0; background:transparent; }
body.home .jpbc-partner-card { background:#fff; border:1px solid #e2e2e2; border-radius:24px; }
body.home .jpbc-partner-logo { object-fit:contain; }
body.home .jpbc-newsletter__form { flex-wrap:wrap; }
body.home .jpbc-newsletter__form .jpbc-signup-consent { flex-basis:100%; }
.jpbc-recap { box-sizing:border-box; width:min(960px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:52px 16px 16px; border:0; border-radius:16px; background:#151515; color:#fff; overflow:auto; }
.jpbc-recap::backdrop { background:rgba(0,0,0,.84); }
.jpbc-recap-close { position:absolute; top:6px; right:8px; width:44px; height:44px; display:grid; place-items:center; padding:0; background:transparent; color:#fff; border:0; font-size:32px; line-height:1; cursor:pointer; }
.jpbc-recap button:focus-visible { outline:2px solid #EE4CA2; outline-offset:1px; }
.jpbc-recap-content { text-align:center; }
.jpbc-recap iframe { display:block; width:100%; aspect-ratio:16/9; border:0; }
.jpbc-recap video { display:block; width:100%; max-height:calc(100dvh - 110px); object-fit:contain; }
body.page-id-20 [data-id="a87d3ff"] { overflow:visible; align-items:stretch; }
body.page-id-20 [data-id="a87d3ff"] > .e-con { transition:transform 240ms ease,box-shadow 240ms ease; min-width:0; }
body.page-id-20 [data-id="a87d3ff"] > .e-con > .e-con { height:100%; }
body.page-id-20 [data-id="a87d3ff"] .elementor-widget-button { margin-top:auto; width:100%; }
body.page-id-20 [data-id="a87d3ff"] .elementor-button { display:flex; justify-content:center; align-items:center; min-height:48px; width:100%; text-align:center; }
body.page-id-20 [data-id="a87d3ff"] .elementor-button-content-wrapper { justify-content:center; align-items:center; }
body.page-id-20 [data-id="a87d3ff"] .elementor-button-text { flex-grow:0; }
.jpbc-ticket-unavailable .elementor-button { cursor:default; }
body.page-id-20 [data-id="503fe95"] { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:32px; align-items:start; }
body.page-id-20 [data-id="503fe95"] > .e-con { width:auto; padding:0; min-width:0; }
body.page-id-20 [data-id="503fe95"] > [data-id="19fdbe7"] { white-space:nowrap; padding-left:16px; }
body.page-id-25 [data-id="33c3753"] > .elementor-widget,
body.page-id-45 [data-id="7ec8bae"] > .e-con { transition:transform 240ms ease,box-shadow 240ms ease; }
body.page-id-25 [data-id="33c3753"], body.page-id-45 [data-id="7ec8bae"] { overflow:visible; }
/* The tier shortcode widget contributes 50px beneath the grid, in addition to section padding. */
body.page-id-35 .elementor [data-id="1dfe2c4"] { padding-bottom:16px; }
body.page-id-35 .jpbc-sponsorship-card,
body.page-id-35 .jpbc-sponsorship-card__inner,
body.page-id-35 .jpbc-sponsorship-card__link { min-height:0; }
body.page-id-35 .jpbc-sponsorship-card__inner,
body.page-id-35 .jpbc-sponsorship-card__link { padding-bottom:28px; }
body.page-id-35 .jpbc-sponsorship-card:is(:hover,:focus-within) { transform:translateY(-5px); box-shadow:0 12px 28px rgba(0,0,0,.10); }
body.page-id-40 #foogallery-gallery-600 :is(.fg-item-inner,.fg-thumb,.fg-image-wrap) { border-radius:24px; overflow:hidden; }
body.page-id-40 #foogallery-gallery-600 .fg-image { height:auto; object-fit:contain; }
body.page-id-40 .fg-panel button { min-width:44px; min-height:44px; }
body.page-id-40 .fg-thumb:focus-visible { outline:3px solid #EE4CA2; outline-offset:-4px; }
:is(.jpbc-sponsorship-card,.jpbc-partner-card,[data-id="a87d3ff"],[data-id="33c3753"],[data-id="7ec8bae"]) a:focus-visible { outline:3px solid #EE4CA2; outline-offset:-4px; }
body .jpbc-partners-grid { grid-template-columns:none; scroll-snap-type:none; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 body.page-id-20 [data-id="a87d3ff"] > .e-con:hover { transform:scale(1.02); box-shadow:0 12px 28px rgba(0,0,0,.08); }
 body.page-id-25 [data-id="33c3753"] > .elementor-widget:hover,
 body.page-id-45 [data-id="7ec8bae"] > .e-con:hover { transform:translateY(-5px); box-shadow:0 12px 28px rgba(0,0,0,.10); }
}
@media (max-width:767px) {
 body.home .jpbc-home-media .post-layout-container-inner.caf-grid { grid-template-columns:minmax(0,1fr); row-gap:24px; }
 body.home .jpbc-home-media .post-layout-container { padding:0; }
 body.page-id-20 [data-id="503fe95"] { grid-template-columns:minmax(0,1fr); gap:14px; }
 body.page-id-20 [data-id="503fe95"] > [data-id="a02cd28"] { padding-left:16px; }
}
@media (prefers-reduced-motion:reduce) {
 body.page-id-20 [data-id="a87d3ff"] > .e-con,
 body.page-id-25 [data-id="33c3753"] > .elementor-widget,
 body.page-id-45 [data-id="7ec8bae"] > .e-con,
 body.page-id-35 .jpbc-sponsorship-card,
 .jpbc-partner-card,.jpbc-partner-logo { transition:none !important; transform:none !important; }
 body.page-id-40 .fg-panel * { animation:none !important; transition:none !important; }
}
/* The old static grid's generated Elementor CSS remains cached by Elementor. */
body.home .elementor [data-id="ebc8a67"] { display:block; width:100%; grid-template-columns:none; }
.jpbc-home-media [role="button"]:focus-visible { outline:2px solid #EE4CA2; outline-offset:3px; }
body.home .elementor [data-id="a6d18a4"].elementor-widget-shortcode { display:block; width:100%; }
body.home .jpbc-small-partners .jpbc-partners-grid { grid-template-columns:repeat(6,minmax(0,1fr)); grid-template-rows:auto; grid-auto-flow:row; grid-auto-columns:auto; gap:16px; padding:0; margin:24px 0 0; overflow:visible; }
body.home .jpbc-small-partners .jpbc-partner-card { min-height:112px; border:0; border-radius:22px; background:#ee4ca2; color:#fff; }
body.home .jpbc-small-partners .jpbc-partner-link { min-height:112px; padding:16px; }
body.home .jpbc-small-partners .jpbc-partner-name { font-size:14px; color:inherit; }
body.home .jpbc-small-partners .jpbc-partner-card:nth-child(6n+2) { background:#f9be3d; color:#1f1f1f; }
body.home .jpbc-small-partners .jpbc-partner-card:nth-child(6n+3) { background:#d6d441; color:#1f1f1f; }
body.home .jpbc-small-partners .jpbc-partner-card:nth-child(6n+4) { background:#7686fe; }
body.home .jpbc-small-partners .jpbc-partner-card:nth-child(6n+5) { background:#fd992d; color:#1f1f1f; }
body.home .jpbc-small-partners .jpbc-partner-card:nth-child(6n+6) { background:#bfdff3; color:#1f1f1f; }
@media (max-width:767px) {
 body.home .jpbc-small-partners .jpbc-partners-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.home .jpbc-small-partners .jpbc-partner-link { min-height:124px; }
}
body.home .elementor [data-id="a6d18a4"].elementor-widget-shortcode { margin-top:24px; }
body.home .jpbc-small-partners .jpbc-partners-grid { margin-top:0; }

/* Rounded card surfaces retain their colors; the animated outer layers do not
   paint square backgrounds/shadows outside those surfaces. */
body.page-id-20 .elementor [data-id="a87d3ff"] > .e-con,
body.page-id-25 .elementor [data-id="33c3753"] > .elementor-widget,
body.page-id-25 .elementor [data-id="33c3753"] > .elementor-widget > .elementor-widget-container {
 background:transparent;
 border-radius:34px;
}
body.page-id-20 .elementor [data-id="a87d3ff"] > .e-con::before,
body.page-id-20 .elementor [data-id="a87d3ff"] > .e-con::after,
body.page-id-25 .elementor [data-id="33c3753"] > .elementor-widget::before,
body.page-id-25 .elementor [data-id="33c3753"] > .elementor-widget::after {
 background:transparent;
 border-radius:inherit;
}
body.page-id-35 .jpbc-sponsorship-card__inner,
body.page-id-35 .jpbc-sponsorship-card__link,
body.page-id-45 [data-id="7ec8bae"] > .e-con > .elementor-widget {
 background:transparent;
}
body.page-id-35 .jpbc-sponsorship-card__inner,
body.page-id-35 .jpbc-sponsorship-card__link { border-radius:inherit; }

/* Title → price → description spacing, with a consistent bottom action. */
body.page-id-20 .elementor [data-id="a87d3ff"] > .e-con > .e-con {
 display:flex;
 flex-direction:column;
 gap:16px;
}
body.page-id-20 .elementor [data-id="a87d3ff"] :is(.elementor-widget-heading,.elementor-widget-text-editor) {
 margin:0;
}
body.page-id-20 .elementor [data-id="a87d3ff"] .elementor-widget-text-editor p { margin:0; }
body.page-id-20 .elementor [data-id="a87d3ff"] :is([data-id="b0adab7"],[data-id="2f6e9e9"],[data-id="cf234c8"]) {
 flex:1 0 auto !important;
 margin-bottom:8px;
}
body.page-id-20 .elementor [data-id="a87d3ff"] .elementor-button {
 display:flex;
 align-items:center;
 justify-content:center;
 padding:12px 16px;
 line-height:1.25;
 text-align:center;
}
body.page-id-20 .elementor [data-id="a87d3ff"] .elementor-button-content-wrapper {
 display:flex;
 width:100%;
 align-items:center;
 justify-content:center;
 margin:0;
}
body.page-id-20 .elementor [data-id="a87d3ff"] .elementor-button-text { margin:0; line-height:inherit; }

/* Mobile Partners: remove repeated section padding around the same carousel. */
@media (max-width:767px) {
 body.page-id-35 .elementor [data-id="3f97ee2"] { padding-block:48px; }
 body.page-id-35 .elementor .jpbc-partners-section { padding-block:0; background:transparent; }
 body.page-id-35 .elementor .jpbc-partners-grid { margin-top:20px; padding-block:4px 12px; }
 body.page-id-35 .elementor [data-id="1dfe2c4"] { padding-top:28px; }
}

/* Keep imported tablet columns wide enough for their existing typography. */
@media (min-width: 768px) and (max-width: 1024px) {
 body.home .elementor .jpbc-values-grid,
 body.home .elementor [data-id="03747bc"],
 body.page-id-25 .elementor [data-id="e555fe0"] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }
 body.page-id-25 .elementor [data-id="e555fe0"] > .e-con { width: 100%; }
}
@media (max-width: 767px) {
 body.page-id-35 .jpbc-sponsorship-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
 body.page-id-20 .elementor [data-id="1646e07"] { grid-template-columns: minmax(0, 1fr); }
 /* Scale long hero words without splitting them in the middle. */
 body .elementor :is([data-id="937f533"], [data-id="b2295cc"], [data-id="1f251e5"], [data-id="c5dd818"], [data-id="8681895"]) :is(h1, h2) {
  font-size: clamp(40px, 12vw, 60px) !important;
 }
 body .elementor [data-id="3587f83"] .elementor-heading-title { font-size: clamp(38px, 11.2vw, 60px) !important; }
 body.home .elementor [data-id="e0050ae"] h2 { font-size: clamp(38px, 12vw, 48px) !important; }
}
@media (max-width: 767px) {
 body.page-id-13 .elementor [data-id="d6e00a3"] { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 768px) and (max-width: 1024px) {
 body.home .elementor .jpbc-intro__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
 body.page-id-35 .elementor [data-id="3f97ee2"],
 body.page-id-35 .elementor [data-id="73da982"],
 body.page-id-35 .elementor [data-id="8dc6a3b"] { width: 100%; max-width: 100%; min-width: 0; }
 body.page-id-35 .elementor [data-id="73da982"] { padding-inline: 24px; }
}

/* CAF keeps Reset outside the term list; share one wrapping row on phones. */
@media (max-width: 767px) {
 body:is(.home, .page-id-30) .caf-builder-filter .caf-fl-column-0 {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
 }
 body:is(.home, .page-id-30) .caf-builder-filter .caf-module-type-checkbox_filter,
 body:is(.home, .page-id-30) .caf-builder-filter .caf-terms-list {
  display: contents !important;
 }
 body:is(.home, .page-id-30) .caf-builder-filter .caf-module-type-reset,
 body:is(.home, .page-id-30) .caf-builder-filter .caf-terms-list-item {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 10px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
 }
 body:is(.home, .page-id-30) .caf-builder-filter .caf-term-label {
  white-space: normal;
 }
}

/* Full-bleed, single-row logo carousels; static small-business tiles stay boxed. */
body:is(.home, .page-id-35) .jpbc-partners-grid:not(.jpbc-small-partners .jpbc-partners-grid) {
 grid-template-rows: minmax(170px, auto);
 width: var(--jpbc-partner-viewport, 100vw);
 max-width: none;
 margin-inline: calc((100% - var(--jpbc-partner-viewport, 100vw)) / 2);
}
body:is(.home, .page-id-35) .jpbc-partners-section { overflow: visible; }
@media (max-width: 767px) {
 body:is(.home, .page-id-35) .jpbc-partners-grid:not(.jpbc-small-partners .jpbc-partners-grid) {
  grid-template-rows: minmax(145px, auto);
 }
}

/* Independent reversible card reveals. No JS means no hidden content. */
body .jpbc-card-reveal {
 opacity: 1;
 translate: 0 0;
}
body .jpbc-card-reveal, body[class] .elementor .jpbc-card-reveal {
 transition: opacity 500ms ease, translate 600ms cubic-bezier(.22,1,.36,1), transform 250ms ease, box-shadow 250ms ease;
}
body .jpbc-card-reveal.jpbc-card-pending { opacity: 0; translate: 0 28px; }
body .jpbc-card-reveal:focus-within { opacity: 1; translate: 0 0; }
@media (prefers-reduced-motion: reduce) {
 body .jpbc-card-reveal, body .jpbc-card-reveal.jpbc-card-pending { opacity: 1; translate: none; transition: none !important; }
}
@media print {
 body .jpbc-card-reveal, body .jpbc-card-reveal.jpbc-card-pending { opacity: 1; translate: none; }
}

/* How We Help follows scroll distance directly, with no time-based delay. */
body.home .elementor .jpbc-help-reveal {
 opacity: var(--jpbc-help-opacity, 1);
 translate: 0 var(--jpbc-help-offset, 0px);
 transition: transform 250ms ease, box-shadow 250ms ease;
 transition-delay: 0s;
}
body.home .elementor .jpbc-help-reveal:focus-within { opacity: 1; translate: 0 0; }
@media (prefers-reduced-motion: reduce), print {
 body.home .elementor .jpbc-help-reveal { opacity: 1; translate: none; transition: none; }
}

/* Media & Press: content determines card height, including future longer titles. */
body.page-id-30 .caf-grid .caf-builder-post-area,
body.page-id-30 .caf-grid .caf-builder-post-area > .caf-row-0 {
 min-width: 0;
 max-height: none;
}
body.page-id-30 .caf-grid .caf-builder-post-area .caf-column-2 {
 height: auto;
 max-height: none;
 min-width: 0;
 flex: 1 0 auto;
 overflow: visible;
}
body.page-id-30 .caf-grid .caf-column-2 :is(.caf-module-type-title, .caf-module-type-excerpt, .caf-builder-title-value) {
 height: auto;
 max-height: none;
 min-width: 0;
 width: 100%;
 flex-shrink: 0;
 overflow: visible;
 display: block;
 -webkit-line-clamp: unset;
 line-clamp: unset;
 white-space: normal;
 overflow-wrap: anywhere;
 word-break: normal;
}
body.page-id-30 .caf-grid .caf-column-2 .caf-builder-title-value { line-height: 1.3; }
body.page-id-30 .caf-grid .caf-builder-post-area .caf-column-3 { flex-shrink: 0; margin-top: auto; }

/* Every Schedule Preview row, including new duplicates, shares the first row layout. */
body.page-id-20 .elementor [data-id="2a830fb"] > .e-con {
 display: grid;
 grid-template-columns: max-content minmax(0, 1fr);
 gap: 32px;
 align-items: start;
 padding: 10px;
 height: auto;
 min-height: 0;
 border: 1px solid #e4e4e4;
 border-radius: 20px;
}
body.page-id-20 .elementor [data-id="2a830fb"] > .e-con > .e-con {
 width: auto;
 min-width: 0;
 height: auto;
 min-height: 0;
 padding: 0;
 gap: 20px;
}
body.page-id-20 .elementor [data-id="2a830fb"] > .e-con > .e-con:first-child {
 padding-left: 16px;
 white-space: nowrap;
}
body.page-id-20 .elementor .jpbc-schedule-scroll {
 opacity: var(--jpbc-help-opacity, 1);
 translate: 0 var(--jpbc-help-offset, 0px);
 transition: transform 250ms ease, box-shadow 250ms ease;
}
body.page-id-20 .elementor .jpbc-schedule-scroll:focus-within { opacity: 1; translate: none; }
@media (max-width: 767px) {
 body.page-id-20 .elementor [data-id="2a830fb"] > .e-con { grid-template-columns: minmax(0, 1fr); gap: 14px; }
 body.page-id-20 .elementor [data-id="2a830fb"] > .e-con > .e-con:last-child { padding-left: 16px; }
}
@media (prefers-reduced-motion: reduce), print {
 body.page-id-20 .elementor .jpbc-schedule-scroll { opacity: 1; translate: none; transition: none; }
}
