:root{--bs250-navy:#0b2f6f;--bs250-blue:#1686c7;--bs250-red:#c92534;--bs250-ink:#15344b;--bs250-soft:#eef8fc}
.sg-page-nav,.bs-guide-experience,.bs-visitor-actions-panel,.bs-living-guide,.bs-discovery-deck{display:none!important}
.bs250-public-header{display:grid;justify-items:center;gap:.2rem;padding:.2rem 0 .55rem!important;text-align:center}
.bs250-brand-mark{display:block;width:min(70vw,500px)!important;margin:-.45rem auto -.25rem!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
.bs250-brand-mark img{display:block;width:100%;height:auto;max-height:340px;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(8,39,95,.16))}
.bs250-header-copy{max-width:820px}.bs250-header-kicker{margin:0;color:var(--bs250-red);font-size:.78rem;font-weight:950;letter-spacing:.16em}.bs250-accessible-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.bs250-header-copy>p:last-child{margin:.25rem auto 0;color:#526d84;font-size:1.04rem;line-height:1.45}
.bs250-directory{display:grid;gap:2rem}.bs250-welcome{padding:.35rem 0 .1rem}.bs250-welcome h2{margin:.12rem 0 .35rem;color:var(--bs250-navy);font-size:clamp(2rem,5vw,3.5rem);line-height:1}.bs250-welcome>p:last-child{max-width:850px;margin:0;color:#466279;font-size:1.05rem;line-height:1.55}
.bs250-section-title h2,.bs250-event-section-head h2{margin:.08rem 0 .3rem;color:#102f47;font-size:clamp(1.8rem,3vw,2.45rem)}
.bs250-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.bs250-category-card{display:grid;grid-template-rows:190px auto;overflow:hidden;border:1px solid rgba(8,39,95,.14);border-radius:22px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 14px 34px rgba(8,39,95,.09);transition:transform .18s ease,box-shadow .18s ease}.bs250-category-card:hover,.bs250-category-card:focus-visible{transform:translateY(-4px);box-shadow:0 20px 42px rgba(8,39,95,.16)}
.bs250-category-image{position:relative;display:block;overflow:hidden}.bs250-category-image img{width:100%;height:100%;object-fit:cover}.bs250-category-image:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(5,31,70,.78))}.bs250-category-image>span{position:absolute;z-index:1;right:.8rem;bottom:.7rem;padding:.42rem .65rem;border-radius:999px;background:rgba(255,255,255,.93);color:var(--bs250-navy);font-size:.78rem;font-weight:900}
.bs250-category-copy{display:grid;gap:.48rem;padding:1rem 1.05rem 1.15rem}.bs250-category-copy small,.bs250-city{color:#1d9ac8;font-size:.72rem;font-weight:950;letter-spacing:.13em}.bs250-category-copy strong{color:#102f47;font-size:1.28rem;line-height:1.18}.bs250-category-copy>span{color:#405c73;line-height:1.48}.bs250-category-copy b{width:max-content;max-width:100%;margin-top:.2rem;padding:.62rem .82rem;border-radius:999px;background:#edf7fc;color:#166681;font-size:.86rem}
.bs250-event-section{scroll-margin-top:1rem}.bs250-event-section-head{padding:.1rem 0 .7rem}.bs250-event-section-head>p:last-child{max-width:800px;margin:.1rem 0;color:#466279;line-height:1.5}.bs250-back{display:inline-flex;margin-bottom:.55rem;padding:.48rem .72rem;border:1px solid rgba(23,75,155,.2);border-radius:999px;background:#edf5fb;color:#173d5c;font-weight:850;text-decoration:none}
.bs250-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.bs250-event-card{display:grid;grid-template-rows:235px auto;overflow:hidden;border:1px solid rgba(8,39,95,.15);border-radius:22px;background:#fff;box-shadow:0 14px 34px rgba(8,39,95,.09)}.bs250-event-image{position:relative;overflow:hidden;background:#dceefa}.bs250-event-image img{width:100%;height:100%;object-fit:cover}.bs250-event-image:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(4,27,63,.78))}.bs250-event-image>span{position:absolute;z-index:1;left:1rem;bottom:.85rem;padding:.48rem .7rem;border-radius:999px;background:rgba(255,255,255,.94);color:var(--bs250-red);font-size:.8rem;font-weight:950}
.bs250-event-body{display:flex;flex-direction:column;padding:1.15rem}.bs250-city{margin:0}.bs250-event-body h3{margin:.35rem 0 .55rem;color:#102f47;font-size:1.42rem;line-height:1.18}.bs250-summary{margin:0;color:#354f66;line-height:1.55}.bs250-facts{display:grid;gap:.55rem;margin:1rem 0 0}.bs250-facts div{display:grid;grid-template-columns:74px 1fr;gap:.5rem;padding:.55rem .65rem;border-radius:12px;background:#f3f8fc}.bs250-facts dt{color:#63788b;font-weight:850}.bs250-facts dd{margin:0;color:#18354c;line-height:1.35}.bs250-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:auto;padding-top:1rem}.bs250-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.62rem .82rem;border-radius:999px;background:var(--bs250-navy);color:#fff;font-weight:850;text-decoration:none}.bs250-actions .bs250-secondary{border:1px solid rgba(23,101,129,.2);background:#eef6fb;color:#176581}
.bs250-source-note{padding:1.25rem 1.35rem;border:1px solid rgba(8,39,95,.14);border-radius:22px;background:#fff;box-shadow:0 12px 30px rgba(8,39,95,.07)}.bs250-source-note h2{margin:.15rem 0 .35rem;color:#102f47}.bs250-source-note p:last-child{margin:.1rem 0;color:#405d75;line-height:1.55}
@media(max-width:960px){.bs250-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bs250-event-grid{grid-template-columns:1fr}}
@media(max-width:620px){.bs250-brand-mark{width:min(94vw,430px)!important}.bs250-category-grid{grid-template-columns:1fr}.bs250-category-card{grid-template-rows:165px auto}.bs250-event-card{grid-template-rows:185px auto}.bs250-facts div{grid-template-columns:1fr;gap:.15rem}.bs250-actions a{width:100%}}

/* V8: compact directory header and fully visible category/event grids */
.bs250-public-header{padding:.1rem 0 .35rem!important}
.bs250-brand-mark{width:min(56vw,390px)!important;margin:-.25rem auto -.2rem!important}
.bs250-brand-mark img{max-height:255px}
.bs250-header-copy>p:last-child{max-width:760px;font-size:.98rem}
.bs250-directory{gap:1.6rem}
.bs250-welcome{padding:.1rem 0 0}
.bs250-welcome h2{font-size:clamp(2rem,4.5vw,3.15rem)}
.bs250-category-section{scroll-margin-top:1rem}
.bs250-category-grid{align-items:stretch}
.bs250-category-card{height:100%}
.bs250-category-copy>span{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.bs250-event-card{height:100%}
.bs250-event-image img{transition:transform .2s ease}
.bs250-event-card:hover .bs250-event-image img{transform:scale(1.025)}
@media(max-width:620px){.bs250-brand-mark{width:min(82vw,350px)!important}.bs250-brand-mark img{max-height:230px}}

/* V9 expanded editorial guide */
.bs250-section-title>p:last-child{max-width:820px;margin:.1rem 0 .8rem;color:#466279;line-height:1.5}
.bs250-stat-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.bs250-stat-row span{display:inline-flex;align-items:baseline;gap:.35rem;padding:.58rem .78rem;border:1px solid rgba(8,39,95,.12);border-radius:999px;background:#fff;color:#49667c;box-shadow:0 8px 22px rgba(8,39,95,.06)}.bs250-stat-row strong{color:var(--bs250-navy);font-size:1.05rem}
.bs250-featured{display:grid;gap:.75rem}.bs250-featured-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.bs250-featured-card{position:relative;min-height:240px;overflow:hidden;border-radius:22px;color:#fff;text-decoration:none;box-shadow:0 16px 36px rgba(8,39,95,.14)}.bs250-featured-card img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.bs250-featured-card:after{content:"";position:absolute;inset:20% 0 0;background:linear-gradient(transparent,rgba(5,25,62,.92))}.bs250-featured-card:hover img{transform:scale(1.035)}.bs250-featured-overlay{position:absolute;z-index:1;inset:auto 1rem 1rem;display:grid;gap:.3rem}.bs250-featured-overlay small{font-size:.78rem;font-weight:950;letter-spacing:.08em}.bs250-featured-overlay strong{font-size:1.2rem;line-height:1.18}.bs250-featured-overlay b{font-size:.82rem;color:#d9f5ff}
.bs250-chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.55rem}.bs250-chip-row span{display:inline-flex;padding:.32rem .55rem;border-radius:999px;background:#eef6fb;color:#245d78;font-size:.72rem;font-weight:900}.bs250-chip-row .is-featured{background:#fff0f1;color:#a51d2e}
.bs250-checked{margin:.8rem 0 0;color:#4f7082;font-size:.82rem;font-weight:750}.bs250-checked span{color:#19834b}
.bs250-event-grid{align-items:stretch}.bs250-event-body{height:100%}
@media(max-width:960px){.bs250-featured-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.bs250-featured-strip{grid-template-columns:1fr}.bs250-featured-card{min-height:210px}.bs250-stat-row span{width:100%;justify-content:center}.bs250-category-grid{grid-template-columns:1fr}.bs250-event-grid{grid-template-columns:1fr}}


/* V10: full-scale 250 identity and richer category imagery */
.bs250-public-header{padding:.15rem 0 .5rem!important}
.bs250-brand-mark{width:min(92vw,900px)!important;max-width:900px!important;margin:-1rem auto -.45rem!important}
.bs250-brand-mark img{width:100%!important;max-height:560px!important;object-fit:contain!important}
@media(max-width:760px){.bs250-brand-mark{width:min(96vw,680px)!important;margin:-.55rem auto -.25rem!important}.bs250-brand-mark img{max-height:430px!important}}
@media(max-width:480px){.bs250-brand-mark{width:min(98vw,520px)!important}.bs250-brand-mark img{max-height:330px!important}}


/* V11: unique listing artwork and individual share pages */
.bs250-event-image{display:block;color:inherit;text-decoration:none;cursor:pointer}
.bs250-event-image:focus-visible{outline:4px solid #26a7d5;outline-offset:-4px}
.bs250-detail{display:grid;gap:1rem}.bs250-detail-back{width:max-content;max-width:100%;padding:.62rem .85rem;border-radius:999px;background:#edf5fb;color:#173d5c;font-weight:850;text-decoration:none}
.bs250-detail-card{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);overflow:hidden;border:1px solid rgba(8,39,95,.15);border-radius:26px;background:#fff;box-shadow:0 18px 48px rgba(8,39,95,.12)}
.bs250-detail-visual{position:relative;min-height:620px;overflow:hidden;background:#071f3e;touch-action:none;cursor:grab}.bs250-detail-visual:active{cursor:grabbing}.bs250-detail-visual img{width:100%;height:100%;object-fit:contain;transform-origin:center;user-select:none;transition:transform .06s linear}
.bs250-zoom-tools{position:absolute;z-index:3;top:1rem;right:1rem;display:flex;gap:.4rem;padding:.4rem;border-radius:999px;background:rgba(4,20,43,.78);backdrop-filter:blur(8px)}.bs250-zoom-tools button{min-width:42px;min-height:40px;padding:.45rem .7rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:#fff;color:#10324c;font-weight:900;cursor:pointer}
.bs250-detail-copy{display:flex;flex-direction:column;padding:clamp(1.25rem,3vw,2.2rem)}.bs250-detail-copy h1{margin:.25rem 0 .7rem;color:#102f47;font-size:clamp(2rem,4vw,3.5rem);line-height:1.04}.bs250-detail-summary{margin:0;color:#405c73;font-size:1.05rem;line-height:1.6}
.bs250-detail-facts{display:grid;gap:.55rem;margin:1.25rem 0}.bs250-detail-facts div{display:grid;grid-template-columns:92px 1fr;gap:.65rem;padding:.68rem .75rem;border-radius:14px;background:#f2f7fb}.bs250-detail-facts dt{color:#60788b;font-weight:900}.bs250-detail-facts dd{margin:0;color:#17354d;line-height:1.4}
.bs250-detail-actions{display:flex;flex-wrap:wrap;gap:.55rem}.bs250-detail-actions a,.bs250-detail-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.68rem .9rem;border:0;border-radius:999px;background:#173f73;color:#fff;font:inherit;font-weight:850;text-decoration:none;cursor:pointer}.bs250-detail-actions .is-secondary{background:#edf6fb;color:#176581;border:1px solid rgba(23,101,129,.2)}
.bs250-rights{margin-top:1.25rem;padding:1rem;border-left:4px solid #cc2638;border-radius:12px;background:#fff5f5;color:#4b6071;line-height:1.5}
@media(max-width:980px){.bs250-detail-card{grid-template-columns:1fr}.bs250-detail-visual{min-height:520px}}
@media(max-width:620px){.bs250-detail-visual{min-height:390px}.bs250-zoom-tools{top:.55rem;right:.55rem;left:.55rem;justify-content:center}.bs250-zoom-tools button{min-width:38px;padding:.4rem .55rem}.bs250-detail-facts div{grid-template-columns:1fr;gap:.12rem}.bs250-detail-actions>*{width:100%}}


/* V12: reliable standalone event-page styling and controlled viewer sizing */
html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:inherit}
body{margin:0;background:linear-gradient(180deg,#f7fbfe 0,#eef5fa 100%);color:#15344b;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit}
.bs250-public-header,.bs250-detail{width:min(1180px,calc(100% - 32px));margin-left:auto;margin-right:auto}
.bs250-public-header{padding-top:1rem!important}
.bs250-header-copy>p:last-child{margin-bottom:.7rem}
.bs250-detail{padding:1rem 0 3rem}
.bs250-detail-card{grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr)}
.bs250-detail-visual{min-height:0!important;aspect-ratio:16/10;max-height:720px}
.bs250-detail-visual img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.bs250-detail-copy{min-width:0}
.bs250-detail-copy .bs-app-eyebrow{margin:0;color:#1785b6;font-size:.78rem;font-weight:900;letter-spacing:.12em}
.bs250-detail-actions button{font-family:inherit}
.bs250-detail-visual:fullscreen{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;background:#04172f}
.bs250-detail-visual:fullscreen img{object-fit:contain}
@media(max-width:980px){.bs250-detail-card{grid-template-columns:1fr}.bs250-detail-visual{aspect-ratio:16/10;max-height:none}.bs250-detail-copy{padding:1.25rem 1.1rem 1.5rem}}
@media(max-width:620px){.bs250-public-header,.bs250-detail{width:min(100% - 20px,1180px)}.bs250-detail{padding-top:.55rem}.bs250-detail-card{border-radius:18px}.bs250-detail-visual{min-height:0!important;aspect-ratio:16/10}.bs250-detail-copy h1{font-size:clamp(1.7rem,9vw,2.4rem)}}

/* V12: listing-card fact spacing and bottom action clearance */
.bs250-event-body{height:auto;min-height:0}
.bs250-facts div{grid-template-columns:96px minmax(0,1fr);column-gap:.75rem}
.bs250-facts dt{white-space:nowrap}
.bs250-actions{padding-top:1.15rem;padding-bottom:.15rem}
@media(max-width:620px){
  .bs250-facts div{grid-template-columns:1fr;gap:.15rem}
  .bs250-facts dt{white-space:normal}
}

/* V13: allow listing cards to grow naturally so action buttons stay inside */
.bs250-event-grid{align-items:stretch}
.bs250-event-card{height:auto!important;min-height:100%}
.bs250-event-body{height:auto!important;min-height:0;padding-bottom:1.4rem}
.bs250-actions{margin-top:auto;padding-top:1.15rem;padding-bottom:0;align-self:stretch}



/* V15: corrected 250 badge placement, event header scale, and intrinsic viewer */
.bs250-brand-mark{overflow:visible!important}
.bs250-brand-stage{position:relative;display:block;width:100%;transform-origin:50% 58%;will-change:translate,rotate;animation:bs250BrandGentleWaveMagic 6.8s ease-in-out infinite}
.bs250-brand-stage>img{display:block;width:100%;height:auto}
.bs250-function-badge{position:absolute;z-index:4;top:8%;left:13%;display:inline-flex;align-items:center;justify-content:center;max-width:38%;min-height:clamp(2.25rem,4vw,3.25rem);padding:.5rem clamp(.8rem,2vw,1.35rem);border:1.5px solid rgba(41,124,186,.34);border-radius:999px;background:linear-gradient(135deg,rgba(247,252,255,.97),rgba(218,239,251,.96));box-shadow:0 14px 30px rgba(12,44,70,.16),inset 0 1px 0 rgba(255,255,255,.96);color:#12324b;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1rem,2.2vw,1.75rem);font-style:italic;font-weight:800;line-height:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
@keyframes bs250BrandGentleWaveMagic{0%,100%{translate:0 0;rotate:0deg}20%{translate:0 -1.6px;rotate:-.62deg}50%{translate:0 -4.2px;rotate:.92deg}80%{translate:0 -1.3px;rotate:-.5deg}}

/* Event pages use a more compact identity header. */
.bs250-public-header[data-bs250-active="event"] .bs250-brand-mark{width:min(62vw,560px)!important;max-width:560px!important;margin:-.35rem auto -.15rem!important}
.bs250-public-header[data-bs250-active="event"] .bs250-brand-mark img{max-height:390px!important}
.bs250-public-header[data-bs250-active="event"] .bs250-function-badge{top:7%;left:12%;max-width:44%;font-size:clamp(.88rem,1.8vw,1.35rem)}

.bs250-detail-visual{aspect-ratio:3/2;max-height:none!important}
.bs250-detail-visual img{object-fit:contain}

@media(max-width:760px){
  .bs250-function-badge{top:7%;left:10%;max-width:44%}
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark{width:min(82vw,480px)!important}
}
@media(max-width:620px){
  .bs250-function-badge{top:5%;left:8%;max-width:48%;min-height:2rem;padding:.4rem .7rem;font-size:clamp(.82rem,4vw,1.1rem)}
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark{width:min(88vw,420px)!important}
}
@media(prefers-reduced-motion:reduce){.bs250-brand-stage{animation:none!important;translate:none!important;rotate:none!important}}

/* V16: one unified BluSup 250 header on home and event pages */
.bs250-public-header{
  position:relative;
  width:100%!important;
  max-width:none!important;
  padding:clamp(.35rem,1.2vw,1rem) max(16px,calc((100vw - 1180px)/2)) .85rem!important;
  background:#dff5fb;
  overflow:visible;
  box-shadow:0 0 0 100vmax #dff5fb;
  clip-path:inset(0 -100vmax);
}

/* Event pages no longer use a reduced identity. */
.bs250-public-header[data-bs250-active="event"] .bs250-brand-mark,
.bs250-brand-mark{
  width:min(92vw,900px)!important;
  max-width:900px!important;
  margin:-1rem auto -.45rem!important;
}
.bs250-public-header[data-bs250-active="event"] .bs250-brand-mark img,
.bs250-brand-mark img{
  width:100%!important;
  max-height:560px!important;
  object-fit:contain!important;
}

/* Badge sits on the upper-left shoulder of the logo on every page. */
.bs250-function-badge,
.bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
  top:9%;
  left:14%;
  width:auto;
  max-width:31%;
  min-height:clamp(2.2rem,4vw,3.25rem);
  padding:.5rem clamp(.75rem,1.7vw,1.2rem);
  font-size:clamp(.92rem,1.8vw,1.5rem);
  line-height:1.05;
  white-space:normal;
  text-wrap:balance;
  overflow:visible;
  text-overflow:clip;
}

/* Keep the event content on its own pale page field beneath the unified header. */
.bs250-detail{
  width:min(1180px,calc(100% - 32px));
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:760px){
  .bs250-public-header{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark,
  .bs250-brand-mark{
    width:min(96vw,680px)!important;
    margin:-.55rem auto -.25rem!important;
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark img,
  .bs250-brand-mark img{
    max-height:430px!important;
  }
  .bs250-function-badge,
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    top:8%;
    left:11%;
    max-width:36%;
    font-size:clamp(.8rem,3.2vw,1.15rem);
  }
}

@media(max-width:480px){
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark,
  .bs250-brand-mark{
    width:min(98vw,520px)!important;
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark img,
  .bs250-brand-mark img{
    max-height:330px!important;
  }
  .bs250-function-badge,
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    top:6%;
    left:7%;
    max-width:42%;
    min-height:2rem;
    padding:.38rem .62rem;
  }
}

/* V17: integrate the status badge into the logo like the main BluSup identity */
.bs250-function-badge{
  top:9%;
  left:43%;
  max-width:27%;
  min-width:0;
  min-height:clamp(2.25rem,4vw,3.2rem);
  padding:.48rem clamp(.95rem,1.8vw,1.35rem);
  font-size:clamp(1.02rem,2vw,1.55rem);
  line-height:1;
  white-space:nowrap;
  text-wrap:nowrap;
  transform:translateX(-8%);
}

/* Longer event/category labels stay attached without overwhelming the artwork. */
.bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
  top:8%;
  left:43%;
  width:max-content;
  max-width:36%;
  padding:.48rem clamp(.8rem,1.5vw,1.1rem);
  font-size:clamp(.84rem,1.55vw,1.2rem);
  line-height:1.08;
  white-space:normal;
  text-wrap:balance;
  transform:translateX(-8%);
}

/* Home remains the compact badge used by the main BluSup header. */
.bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
  width:max-content;
  max-width:22%;
}

@media(max-width:760px){
  .bs250-function-badge{
    top:8%;
    left:42%;
    max-width:29%;
    font-size:clamp(.9rem,2.8vw,1.2rem);
    transform:translateX(-6%);
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    top:7%;
    left:42%;
    max-width:40%;
    font-size:clamp(.76rem,2.5vw,1rem);
    transform:translateX(-6%);
  }
}

@media(max-width:480px){
  .bs250-function-badge{
    top:6%;
    left:39%;
    max-width:34%;
    padding:.38rem .7rem;
    transform:none;
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    top:5%;
    left:37%;
    max-width:47%;
    padding:.36rem .58rem;
    font-size:clamp(.7rem,3vw,.9rem);
    transform:none;
  }
}


/* V18: final badge position — match the main BluSup home-base badge */
.bs250-function-badge,
.bs250-public-header[data-bs250-active="event"] .bs250-function-badge,
.bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
  top:10%;
  left:52%;
  right:auto;
  width:max-content;
  max-width:min(34%,340px);
  min-height:clamp(2.25rem,4vw,3.25rem);
  padding:.48rem clamp(.9rem,1.7vw,1.3rem);
  transform:translateX(-8%);
  font-size:clamp(.96rem,1.8vw,1.42rem);
  line-height:1.08;
  white-space:normal;
  text-wrap:balance;
  text-align:center;
  overflow:visible;
  text-overflow:clip;
}

/* Short Home label stays compact at the same anchored position. */
.bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
  max-width:180px;
  white-space:nowrap;
}

/* Long category/function labels may use two clean lines. */
.bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
  width:min(34%,340px);
  max-width:340px;
}

@media(max-width:760px){
  .bs250-function-badge,
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge,
  .bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
    top:9%;
    left:51%;
    max-width:min(40%,300px);
    transform:translateX(-7%);
    font-size:clamp(.82rem,2.8vw,1.12rem);
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    width:min(40%,300px);
  }
}

@media(max-width:480px){
  .bs250-function-badge,
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge,
  .bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
    top:7%;
    left:49%;
    max-width:48%;
    padding:.38rem .62rem;
    transform:none;
    font-size:clamp(.72rem,3vw,.92rem);
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    width:48%;
  }
}

/* V19: connect the badge physically to the 250 logo shoulder */
.bs250-function-badge,
.bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
  top:15%;
  left:51%;
  transform:translateX(-5%);
}

/* Wider event badges sit slightly higher, but still overlap the gear/crest. */
.bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
  top:13%;
  left:50%;
  transform:translateX(-4%);
}

@media(max-width:760px){
  .bs250-function-badge,
  .bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
    top:14%;
    left:50%;
    transform:translateX(-4%);
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    top:12%;
    left:49%;
    transform:translateX(-3%);
  }
}

@media(max-width:480px){
  .bs250-function-badge,
  .bs250-public-header:not([data-bs250-active="event"]) .bs250-function-badge{
    top:12%;
    left:47%;
    transform:none;
  }
  .bs250-public-header[data-bs250-active="event"] .bs250-function-badge{
    top:10%;
    left:45%;
    transform:none;
  }
}


/* V20: compact the BluSup 250 desktop header so guide content appears sooner. */
@media (min-width:761px){
  .bs250-public-header{
    padding-top:.15rem!important;
    padding-bottom:.55rem!important;
  }
  .bs250-public-header .bs250-brand-mark,
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark{
    width:min(48vw,620px)!important;
    max-width:620px!important;
    margin:-.7rem auto -.45rem!important;
  }
  .bs250-public-header .bs250-brand-mark img,
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark img{
    max-height:430px!important;
  }
  .bs250-header-copy>p:last-child{
    margin-top:.12rem;
    font-size:.98rem;
    line-height:1.35;
  }
}

/* V21: readable BluSup 250 type and strict mobile-width containment. */
.bs250-public-header,
.bs250-directory,
.bs250-detail,
.bs250-public-header *,
.bs250-directory *,
.bs250-detail *{
  box-sizing:border-box;
  min-width:0;
}

.bs250-public-header,
.bs250-directory,
.bs250-detail{
  max-width:100%;
}

.bs250-header-copy,
.bs250-welcome,
.bs250-section-title,
.bs250-event-section-head,
.bs250-detail-copy{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Bring the special 250 guide up to the comfortable reading scale used by
   the regular BluSup guides. */
.bs250-header-kicker,
.bs250-public-header .bs-app-eyebrow,
.bs250-directory .bs-app-eyebrow{
  font-size:.92rem;
  line-height:1.35;
}

.bs250-header-copy>p:last-child{
  max-width:900px;
  font-size:1.18rem;
  line-height:1.5;
}

.bs250-welcome>p:last-child,
.bs250-section-title>p:last-child,
.bs250-event-section-head>p:last-child,
.bs250-summary,
.bs250-category-copy>span,
.bs250-source-note p:last-child,
.bs250-detail-summary,
.bs250-detail-facts dd,
.bs250-detail-facts dt{
  font-size:1.08rem;
  line-height:1.58;
}

.bs250-welcome h2{
  font-size:clamp(2.35rem,4.8vw,3.8rem);
  line-height:1.03;
}

.bs250-section-title h2,
.bs250-event-section-head h2{
  font-size:clamp(2rem,3.2vw,2.7rem);
  line-height:1.1;
}

.bs250-category-copy small,
.bs250-city,
.bs250-chip-row span,
.bs250-checked,
.bs250-event-image>span{
  font-size:.88rem;
}

.bs250-category-copy strong{
  font-size:1.42rem;
}

.bs250-event-body h3{
  font-size:1.58rem;
}

.bs250-facts dt,
.bs250-facts dd,
.bs250-actions a,
.bs250-detail-actions a,
.bs250-detail-actions button,
.bs250-detail-back,
.bs250-rights{
  font-size:1rem;
}

@media(max-width:620px){
  html,
  body{
    max-width:100%;
    overflow-x:hidden;
  }

  .bs-app-shell{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .bs250-public-header,
  .bs250-directory,
  .bs250-detail{
    width:100%!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .bs250-public-header{
    padding-left:0!important;
    padding-right:0!important;
  }

  .bs250-brand-mark,
  .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark{
    width:100%!important;
    max-width:520px!important;
  }

  .bs250-header-copy{
    width:100%;
    padding:0 .15rem;
  }

  .bs250-header-kicker,
  .bs250-public-header .bs-app-eyebrow,
  .bs250-directory .bs-app-eyebrow{
    font-size:.84rem;
    line-height:1.4;
    letter-spacing:.11em;
  }

  .bs250-header-copy>p:last-child{
    width:100%;
    padding:0 .2rem;
    font-size:1.08rem;
    line-height:1.48;
  }

  .bs250-directory{
    gap:1.45rem;
  }

  .bs250-welcome{
    width:100%;
  }

  .bs250-welcome h2{
    font-size:clamp(2.15rem,11vw,3rem);
    line-height:1.02;
  }

  .bs250-welcome>p:last-child,
  .bs250-section-title>p:last-child,
  .bs250-event-section-head>p:last-child,
  .bs250-summary,
  .bs250-category-copy>span,
  .bs250-source-note p:last-child,
  .bs250-detail-summary,
  .bs250-detail-facts dd,
  .bs250-detail-facts dt{
    font-size:1.08rem;
    line-height:1.55;
  }

  .bs250-section-title h2,
  .bs250-event-section-head h2{
    font-size:2rem;
  }

  .bs250-category-copy strong,
  .bs250-event-body h3{
    font-size:1.42rem;
  }

  .bs250-stat-row,
  .bs250-featured-strip,
  .bs250-category-grid,
  .bs250-event-grid,
  .bs250-detail-card{
    width:100%;
    max-width:100%;
  }

  .bs250-stat-row span,
  .bs250-category-card,
  .bs250-event-card,
  .bs250-featured-card,
  .bs250-source-note{
    max-width:100%;
  }

  .bs250-detail-copy{
    padding:1.1rem;
  }

  .bs250-rights{
    font-size:.88rem;
    line-height:1.48;
  }
}

/* V22: event-page mobile readability and hard containment.
   The standalone event layout must never widen the mobile viewport. */
@media (max-width: 700px){
  body:has(.bs250-detail),
  body:has(.bs250-detail) .bs-app-shell{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
  }

  body:has(.bs250-detail) .bs-app-shell{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  body:has(.bs250-detail) .bs250-public-header,
  body:has(.bs250-detail) .bs250-detail,
  body:has(.bs250-detail) .bs250-detail-card,
  body:has(.bs250-detail) .bs250-detail-visual,
  body:has(.bs250-detail) .bs250-detail-copy{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  body:has(.bs250-detail) .bs250-detail-card{
    display:block!important;
    grid-template-columns:none!important;
    overflow:hidden!important;
  }

  body:has(.bs250-detail) .bs250-detail-visual{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }

  body:has(.bs250-detail) .bs250-detail-visual img{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    object-fit:contain!important;
  }

  body:has(.bs250-detail) .bs250-zoom-tools{
    left:.45rem!important;
    right:.45rem!important;
    top:.45rem!important;
    max-width:calc(100% - .9rem)!important;
    flex-wrap:wrap!important;
  }

  body:has(.bs250-detail) .bs250-detail-copy{
    padding:1rem .9rem 1.2rem!important;
  }

  body:has(.bs250-detail) .bs250-detail-copy .bs-app-eyebrow{
    font-size:.88rem!important;
    line-height:1.35!important;
  }

  body:has(.bs250-detail) .bs250-detail-copy h1{
    font-size:clamp(1.85rem,9.5vw,2.5rem)!important;
    line-height:1.06!important;
  }

  body:has(.bs250-detail) .bs250-detail-summary,
  body:has(.bs250-detail) .bs250-detail-facts dt,
  body:has(.bs250-detail) .bs250-detail-facts dd{
    font-size:1.05rem!important;
    line-height:1.5!important;
  }

  body:has(.bs250-detail) .bs250-detail-facts div{
    width:100%!important;
    grid-template-columns:1fr!important;
  }

  body:has(.bs250-detail) .bs250-detail-back,
  body:has(.bs250-detail) .bs250-detail-actions a,
  body:has(.bs250-detail) .bs250-detail-actions button{
    font-size:1rem!important;
  }

  body:has(.bs250-detail) .bs250-rights{
    font-size:.86rem!important;
    line-height:1.45!important;
  }
}

/* V23: reliable event-page phone sizing.
   Uses an explicit page class instead of :has(), and repairs the viewport
   meta tag when the event route is opened inside a mobile browser tab. */
@media screen and (max-width: 700px){
  html.bs250-event-page,
  html.bs250-event-page body{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
  }

  html.bs250-event-page body .bs-app-shell{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
    overflow-x:hidden!important;
  }

  html.bs250-event-page .bs250-public-header,
  html.bs250-event-page .bs250-detail,
  html.bs250-event-page .bs250-detail-card,
  html.bs250-event-page .bs250-detail-visual,
  html.bs250-event-page .bs250-detail-copy{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  html.bs250-event-page .bs250-public-header{
    padding-left:0!important;
    padding-right:0!important;
  }

  html.bs250-event-page .bs250-public-header[data-bs250-active="event"] .bs250-brand-mark{
    width:100%!important;
    max-width:430px!important;
    margin:-.35rem auto -.15rem!important;
  }

  html.bs250-event-page .bs250-header-copy{
    width:100%!important;
    max-width:100%!important;
    padding:0 .25rem!important;
  }

  html.bs250-event-page .bs250-header-kicker{
    font-size:.82rem!important;
    line-height:1.35!important;
  }

  html.bs250-event-page .bs250-header-copy>p:last-child{
    font-size:1rem!important;
    line-height:1.45!important;
  }

  html.bs250-event-page .bs250-detail{
    display:block!important;
    padding:.6rem 0 2rem!important;
  }

  html.bs250-event-page .bs250-detail-back{
    display:inline-flex!important;
    width:auto!important;
    max-width:100%!important;
    font-size:1rem!important;
    line-height:1.25!important;
    white-space:normal!important;
  }

  html.bs250-event-page .bs250-detail-card{
    display:block!important;
    grid-template-columns:none!important;
    border-radius:18px!important;
    overflow:hidden!important;
  }

  html.bs250-event-page .bs250-detail-visual{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }

  html.bs250-event-page .bs250-detail-visual img{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    object-fit:contain!important;
    transform:none;
  }

  html.bs250-event-page .bs250-zoom-tools{
    left:.4rem!important;
    right:.4rem!important;
    top:.4rem!important;
    max-width:calc(100% - .8rem)!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
  }

  html.bs250-event-page .bs250-zoom-tools button{
    min-width:40px!important;
    min-height:40px!important;
    font-size:.95rem!important;
  }

  html.bs250-event-page .bs250-detail-copy{
    padding:1rem .9rem 1.25rem!important;
  }

  html.bs250-event-page .bs250-detail-copy .bs-app-eyebrow{
    font-size:.88rem!important;
    line-height:1.35!important;
  }

  html.bs250-event-page .bs250-detail-copy h1{
    margin:.28rem 0 .7rem!important;
    font-size:clamp(1.9rem,9.5vw,2.55rem)!important;
    line-height:1.06!important;
  }

  html.bs250-event-page .bs250-detail-summary{
    font-size:1.08rem!important;
    line-height:1.55!important;
  }

  html.bs250-event-page .bs250-detail-facts{
    gap:.65rem!important;
  }

  html.bs250-event-page .bs250-detail-facts div{
    width:100%!important;
    grid-template-columns:1fr!important;
    gap:.15rem!important;
    padding:.8rem!important;
  }

  html.bs250-event-page .bs250-detail-facts dt,
  html.bs250-event-page .bs250-detail-facts dd{
    font-size:1.05rem!important;
    line-height:1.45!important;
  }

  html.bs250-event-page .bs250-detail-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  html.bs250-event-page .bs250-detail-actions a,
  html.bs250-event-page .bs250-detail-actions button{
    width:100%!important;
    min-height:48px!important;
    font-size:1rem!important;
  }

  html.bs250-event-page .bs250-rights{
    font-size:.86rem!important;
    line-height:1.45!important;
  }
}


/* V24: restore the event image viewer's true full-screen canvas on phones.
   Mobile page-containment rules must not force the fullscreen stage or image
   back into the normal document's auto-height layout. */
@media screen and (max-width:700px){
  html.bs250-event-page .bs250-detail-visual:fullscreen,
  html.bs250-event-page .bs250-detail-visual:-webkit-full-screen{
    position:fixed!important;
    inset:0!important;
    display:block!important;
    width:100vw!important;
    max-width:none!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100vh!important;
    min-height:100dvh!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    margin:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    background:#04172f!important;
    touch-action:none!important;
  }

  html.bs250-event-page .bs250-detail-visual:fullscreen img,
  html.bs250-event-page .bs250-detail-visual:-webkit-full-screen img{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    max-height:none!important;
    object-fit:contain!important;
    transform-origin:center center!important;
  }

  html.bs250-event-page .bs250-detail-visual:fullscreen .bs250-zoom-tools,
  html.bs250-event-page .bs250-detail-visual:-webkit-full-screen .bs250-zoom-tools{
    position:absolute!important;
    z-index:10!important;
    top:max(.55rem,env(safe-area-inset-top))!important;
    right:max(.55rem,env(safe-area-inset-right))!important;
    left:max(.55rem,env(safe-area-inset-left))!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
  }
}
