/* Fala Sportu — Mapa i Panel Zapisów (isolated from theme CSS) */
.fsbm{
  --fsbm-gap:20px; --fsbm-title:#231541; --fsbm-muted:#7e7588; --fsbm-accent:#e92c91;
  --fsbm-land:#fffdf6; --fsbm-land2:#f2f6e9; --fsbm-water1:#deedf3; --fsbm-water2:#b9deed;
  --fsbm-park:#e8f2e5; --fsbm-road:#fffef7; --fsbm-road-edge:#d6dbd2; --fsbm-city-ink:#344765;
  --fsbm-marker-w:110px; --fsbm-marker-h:81px;
  --fsbm-marker-bg:#fff; --fsbm-marker-border:#fff; --fsbm-marker-active:#e92c91;
  --fsbm-marker-label-bg:#fff; --fsbm-marker-label-fg:#293c4b; --fsbm-marker-active-bg:#e92c91; --fsbm-marker-active-fg:#fff;
  --fsbm-location-bg:#fff; --fsbm-location-hover:#fff8fc; --fsbm-location-active-bg:#fff0f7; --fsbm-location-text:#231541;
  --fsbm-panel-bg:#fff; --fsbm-panel-border:#e9e5ed; --fsbm-panel-head:#b7267a; --fsbm-panel-title:#231541;
  --fsbm-fact-icon:#e92c91; --fsbm-fact-bg:#f8f5f9; --fsbm-price-bg:#f8f5f9; --fsbm-price:#231541;
  --fsbm-term-bg:#fff; --fsbm-term-hover:#fff8fc; --fsbm-term-active-bg:#fff0f7;
  --fsbm-term-border:#ede6ee; --fsbm-term-active-border:#e92c91; --fsbm-term-text:#231541;
  --fsbm-free:#078365; --fsbm-last:#b96a08; --fsbm-full:#c52749;
  --fsbm-button-bg:#e92c91; --fsbm-button-text:#fff; --fsbm-button-icon:#fff;
  --fsbm-button-hover-bg:#c71d79; --fsbm-button-hover-text:#fff; --fsbm-button-hover-icon:#fff;
  --fsbm-button-disabled:#a6a0ac;
  width:100%;max-width:1380px;min-width:0;margin-inline:auto;padding:20px;
  background-color:#fff;border:1px solid #eee8ed;border-radius:24px;
  box-shadow:0 10px 40px rgb(34 20 55 / .06);
  font-family:Inter,"Segoe UI",Arial,sans-serif;line-height:1.5;box-sizing:border-box;color:var(--fsbm-title);
}
.fsbm *, .fsbm *::before, .fsbm *::after{box-sizing:border-box}
.fsbm button,.fsbm a{font-family:inherit;touch-action:manipulation}
.fsbm button{cursor:pointer;appearance:none;-webkit-appearance:none;line-height:inherit}
.fsbm button:focus-visible,.fsbm a:focus-visible{outline:3px solid var(--fsbm-accent);outline-offset:3px}
.fsbm [hidden]{display:none!important}
.fsbm .fsbm-eyebrow{margin:0 0 7px;text-align:center;color:var(--fsbm-accent);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.fsbm .fsbm-heading{margin:0 0 7px;text-align:center;font-size:clamp(24px,3.1vw,35px);line-height:1.15;letter-spacing:-.7px;color:var(--fsbm-title);font-weight:800}
.fsbm .fsbm-intro{max-width:700px;margin:0 auto var(--fsbm-gap);text-align:center;font-size:13px;line-height:1.6;color:var(--fsbm-muted)}
.fsbm .fsbm-variant-heading{font-size:15px;font-weight:800;margin:0 0 13px;color:var(--fsbm-title)}
.fsbm[data-layout="A"] .fsbm-variant-d{display:none}
.fsbm[data-layout="D"] .fsbm-variant-a{display:none}
.fsbm .fsbm-variant{margin-bottom:var(--fsbm-gap);min-width:0}
/* Variant A */
.fsbm .fsbm-locations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fsbm .fsbm-location{display:flex;align-items:center;gap:12px;min-width:0;min-height:90px;text-align:left;
 border:1.5px solid var(--fsbm-term-border);padding:13px;background:var(--fsbm-location-bg);border-radius:16px;
 color:var(--fsbm-location-text);transition:background-color .18s,border-color .18s,box-shadow .18s}
.fsbm .fsbm-location:hover{background:var(--fsbm-location-hover);border-color:var(--fsbm-marker-active)}
.fsbm .fsbm-location.is-active{background:var(--fsbm-location-active-bg);border-color:var(--fsbm-marker-active);box-shadow:inset 0 0 0 1px var(--fsbm-marker-active)}
.fsbm .fsbm-location-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;color:var(--fsbm-marker-active);border-radius:12px;background:var(--fsbm-fact-bg)}
.fsbm .fsbm-location-text{flex:1;min-width:0}
.fsbm .fsbm-location-name{display:block;font-size:14px;font-weight:800;color:inherit;overflow-wrap:anywhere}
.fsbm .fsbm-location-text small{display:block;color:var(--fsbm-muted);font-size:10px;margin-top:4px;line-height:1.35}
.fsbm .fsbm-location-check{font-weight:900;color:var(--fsbm-marker-active);visibility:hidden}
.fsbm .fsbm-location.is-active .fsbm-location-check{visibility:visible}
/* Map variant D */
.fsbm .fsbm-map{height:450px;position:relative;overflow:hidden;border:1px solid #e6e6dd;background:#fbf9ef;border-radius:20px;isolation:isolate;min-width:0;background-size:100% 100%;background-position:center center}
.fsbm .fsbm-map-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.fsbm .fsbm-map-tag{position:absolute;top:15px;left:15px;z-index:2;background:#fff;border-radius:50px;padding:8px 12px;
 color:#526b65;font-size:10px;font-weight:800;border:1px solid #e8e6db;max-width:calc(100% - 30px);line-height:1.3;box-shadow:0 3px 14px rgb(20 50 50 / .08)}
.fsbm .fsbm-map-tag::before{content:"";display:inline-block;width:8px;height:8px;background:var(--fsbm-accent);border-radius:50%;margin-right:7px;vertical-align:middle}
.fsbm .fsbm-map-city{position:absolute;z-index:1;right:10%;top:32%;pointer-events:none;text-align:center;color:var(--fsbm-city-ink);text-shadow:0 1px #fff,0 0 12px #fff}
.fsbm .fsbm-map-city strong{display:block;font-size:clamp(16px,2vw,23px);font-weight:900;line-height:1.15}
.fsbm .fsbm-map-city small{display:block;font-size:10px;font-weight:750;letter-spacing:.08em;color:var(--fsbm-city-ink)}
.fsbm .fsbm-map-note{position:absolute;bottom:9px;left:12px;z-index:1;background:#ffffffe8;border-radius:8px;padding:5px 7px;
 max-width:calc(100% - 22px);font-size:9px;color:#76817f;line-height:1.3}
.fsbm .fsbm-point{position:absolute;z-index:2;left:var(--fsbm-x);top:var(--fsbm-y);transform:translate(-50%,-50%);
 border:none!important;background:transparent!important;display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px;min-width:0;
 text-align:center;box-shadow:none!important;transition:none!important}
.fsbm .fsbm-point-picture{display:grid;place-items:center;flex:none;width:var(--fsbm-marker-w);height:var(--fsbm-marker-h);
 border-radius:15px;border:2px solid var(--fsbm-marker-border);background:var(--fsbm-marker-bg);box-shadow:0 5px 15px rgb(50 75 60 / .14);
 transition:border-color .16s,box-shadow .16s,background-color .16s;overflow:hidden}
.fsbm .fsbm-point-picture img{display:block;width:100%;height:100%;object-fit:contain}
.fsbm .fsbm-marker-fallback{display:grid;place-items:center;color:var(--fsbm-marker-label-fg)}
.fsbm .fsbm-point-title{display:block;max-width:150px;min-width:64px;border-radius:99px;padding:5px 10px;
 font-size:12px;font-weight:850;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 color:var(--fsbm-marker-label-fg);background:var(--fsbm-marker-label-bg);box-shadow:0 4px 10px rgb(30 45 42 / .1);border:1px solid rgb(0 0 0 / .07)}
.fsbm .fsbm-point:hover .fsbm-point-picture{border-color:var(--fsbm-marker-active);box-shadow:0 6px 19px rgb(70 40 60 / .19)}
.fsbm .fsbm-point.is-active .fsbm-point-picture{border-color:var(--fsbm-marker-active);box-shadow:0 0 0 4px color-mix(in srgb,var(--fsbm-marker-active),transparent 78%),0 9px 22px rgb(70 40 60 / .18)}
.fsbm .fsbm-point.is-active .fsbm-point-title{background:var(--fsbm-marker-active-bg);color:var(--fsbm-marker-active-fg);border-color:var(--fsbm-marker-active-bg)}
/* Shared details panel */
.fsbm .fsbm-info{border:1px solid var(--fsbm-panel-border);border-radius:19px;overflow:hidden;background:var(--fsbm-panel-bg);min-width:0}
.fsbm .fsbm-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}
.fsbm .fsbm-info-part{padding:22px 20px;min-width:0}
.fsbm .fsbm-info-part+.fsbm-info-part{border-left:1px solid var(--fsbm-panel-border)}
.fsbm .fsbm-block-heading{margin:0 0 14px;font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--fsbm-panel-head)}
.fsbm .fsbm-selected-image{width:100%;max-height:140px;margin-bottom:10px;overflow:hidden;border-radius:12px}
.fsbm .fsbm-selected-image img{width:100%;max-height:140px;display:block;object-fit:cover}
.fsbm .fsbm-selected-name{font-weight:850;font-size:23px;letter-spacing:-.45px;line-height:1.18;margin:0 0 9px;color:var(--fsbm-panel-title)}
.fsbm .fsbm-school{font-size:13px;font-weight:650;margin:0 0 4px;color:var(--fsbm-panel-title)}
.fsbm .fsbm-address{margin:0 0 8px;color:var(--fsbm-muted);font-size:12px;line-height:1.5}
.fsbm .fsbm-description{font-size:12px;margin:5px 0 10px;line-height:1.55;color:var(--fsbm-muted)}
.fsbm .fsbm-extra-link{color:var(--fsbm-accent);font-size:12px;text-decoration:none;font-weight:750}
.fsbm .fsbm-extra-link:hover{color:var(--fsbm-title);text-decoration:underline}
.fsbm .fsbm-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;min-width:0}
.fsbm .fsbm-fact{display:flex;gap:7px;align-items:center;max-width:100%;padding:7px 9px;border-radius:10px;background:var(--fsbm-fact-bg);font-size:11px;color:var(--fsbm-title)}
.fsbm .fsbm-fact-words{display:flex;flex-direction:column;min-width:0;line-height:1.3;overflow-wrap:anywhere}
.fsbm .fsbm-fact-label{font-size:10px;color:var(--fsbm-muted)}
.fsbm .fsbm-fact-value{font-weight:750;font-size:11px;color:var(--fsbm-title)}
.fsbm .fsbm-fact-icon{color:var(--fsbm-fact-icon);min-width:16px;text-align:center;font-style:normal}
.fsbm .fsbm-fact-image{width:20px;height:20px;object-fit:contain;flex:none}
/* Turnuses */
.fsbm .fsbm-term-list{display:grid;gap:8px}
.fsbm .fsbm-term{display:flex;align-items:center;gap:9px;width:100%;min-width:0;min-height:54px;text-align:left;
 padding:10px;background:var(--fsbm-term-bg);color:var(--fsbm-term-text);border:1.5px solid var(--fsbm-term-border);border-radius:12px;
 transition:background-color .18s,border-color .18s}
.fsbm .fsbm-term:hover{border-color:var(--fsbm-term-active-border);background:var(--fsbm-term-hover)}
.fsbm .fsbm-term.is-active{background:var(--fsbm-term-active-bg);border-color:var(--fsbm-term-active-border)}
.fsbm .fsbm-term-dot{width:15px;height:15px;border-radius:50%;border:2px solid #cfc6d3;flex:none;display:grid;place-items:center}
.fsbm .fsbm-term.is-active .fsbm-term-dot{border-color:var(--fsbm-accent)}
.fsbm .fsbm-term.is-active .fsbm-term-dot::after{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--fsbm-accent)}
.fsbm .fsbm-term-content{display:flex;flex:1;flex-direction:column;min-width:0;gap:2px}
.fsbm .fsbm-term-date{font-size:12px;font-weight:800;color:var(--fsbm-term-text);overflow-wrap:anywhere}
.fsbm .fsbm-term-label{font-size:10px;color:var(--fsbm-muted);line-height:1.3}
.fsbm .fsbm-term-price{white-space:nowrap;font-size:12px;color:var(--fsbm-price);font-weight:800}
.fsbm .fsbm-no-terms{font-size:12px;color:var(--fsbm-muted)}
.fsbm .fsbm-alternatives{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--fsbm-fact-bg);font-size:11px;line-height:1.6}
.fsbm .fsbm-alt-heading{display:block;font-weight:700;color:var(--fsbm-title);margin-bottom:5px}
.fsbm .fsbm-alt-link{padding:3px 7px;margin:3px 5px 0 0;background:var(--fsbm-location-bg);color:var(--fsbm-accent);border:1px solid var(--fsbm-term-border);border-radius:7px;font-weight:750;font-size:11px}
.fsbm .fsbm-alt-link:hover{background:var(--fsbm-location-hover);border-color:var(--fsbm-accent)}
.fsbm .fsbm-price-card{display:flex;flex-direction:column;gap:3px;border-radius:12px;padding:13px;background:var(--fsbm-price-bg)}
.fsbm .fsbm-price-label{font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:800;color:var(--fsbm-muted)}
.fsbm .fsbm-summary-price{font-weight:900;font-size:27px;line-height:1.15;color:var(--fsbm-price)}
.fsbm .fsbm-summary-date{font-size:11px;font-weight:700;color:var(--fsbm-muted)}
.fsbm .fsbm-status{align-self:flex-start;display:inline-block;border-radius:30px;padding:4px 9px;font-size:10px;font-weight:800;margin-top:7px}
.fsbm .fsbm-status.is-free{background:color-mix(in srgb,var(--fsbm-free),white 88%);color:var(--fsbm-free)}
.fsbm .fsbm-status.is-last{background:color-mix(in srgb,var(--fsbm-last),white 88%);color:var(--fsbm-last)}
.fsbm .fsbm-status.is-full{background:color-mix(in srgb,var(--fsbm-full),white 88%);color:var(--fsbm-full)}
.fsbm .fsbm-term-note{margin:8px 0 0;color:var(--fsbm-muted);font-size:11px}
.fsbm .fsbm-signup{margin-top:13px;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 13px;
 border-radius:12px;border:0;background:var(--fsbm-button-bg);color:var(--fsbm-button-text);text-decoration:none!important;
 text-align:center;font-weight:800;font-size:12px;line-height:1.35;transition:background-color .18s,color .18s,box-shadow .18s}
.fsbm .fsbm-signup .fsbm-button-arrow{color:var(--fsbm-button-icon);flex:none}
.fsbm .fsbm-signup:hover:not(.is-disabled){background:var(--fsbm-button-hover-bg);color:var(--fsbm-button-hover-text)}
.fsbm .fsbm-signup:hover:not(.is-disabled) .fsbm-button-arrow{color:var(--fsbm-button-hover-icon)}
.fsbm .fsbm-signup.is-disabled{background:var(--fsbm-button-disabled);cursor:not-allowed;opacity:.75;pointer-events:none}
.fsbm .fsbm-empty{padding:20px;text-align:center;color:var(--fsbm-muted)}
@media(max-width:1050px){
 .fsbm .fsbm-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fsbm .fsbm-info-part:nth-child(3){grid-column:1/-1;border-top:1px solid var(--fsbm-panel-border);border-left:0}
}
@media(max-width:767px){
 .fsbm{padding:12px;border-radius:16px}
 .fsbm .fsbm-heading{font-size:25px}
 .fsbm .fsbm-variant{margin-bottom:14px}
 .fsbm[data-mobile-layout="A"] .fsbm-variant-a{display:block}
 .fsbm[data-mobile-layout="A"] .fsbm-variant-d{display:none}
 .fsbm[data-mobile-layout="D"] .fsbm-variant-d{display:block}
 .fsbm[data-mobile-layout="D"] .fsbm-variant-a{display:none}
 .fsbm .fsbm-map{height:330px;border-radius:15px}
 .fsbm .fsbm-map-tag{top:8px;left:8px;font-size:8px;padding:6px 8px;max-width:80%}
 .fsbm .fsbm-map-city{top:36%;right:2%}
 .fsbm .fsbm-map-city strong{font-size:15px}
 .fsbm .fsbm-map-city small{font-size:8px}
 .fsbm .fsbm-map-note{font-size:8px;bottom:5px;left:5px}
 .fsbm .fsbm-point-picture{width:min(var(--fsbm-marker-w),79px);height:min(var(--fsbm-marker-h),58px);border-radius:11px}
 .fsbm .fsbm-point-title{max-width:90px;font-size:9px;padding:4px 6px;min-width:50px}
 .fsbm .fsbm-point{gap:3px;padding:2px;left:var(--fsbm-x-mobile,var(--fsbm-x));top:var(--fsbm-y-mobile,var(--fsbm-y))}
 .fsbm .fsbm-locations{grid-template-columns:1fr;gap:7px}
 .fsbm .fsbm-location{min-height:62px;padding:8px 11px}
 .fsbm .fsbm-info-grid{grid-template-columns:minmax(0,1fr)}
 .fsbm .fsbm-info-part{padding:15px}
 .fsbm .fsbm-info-part:nth-child(n){grid-column:auto;border-left:none;border-top:1px solid var(--fsbm-panel-border)}
 .fsbm .fsbm-info-part:first-child{border-top:none}
 .fsbm .fsbm-selected-name{font-size:20px}
 .fsbm .fsbm-signup{width:100%}
}
@media(max-width:360px){
 .fsbm .fsbm-map{height:304px}
 .fsbm .fsbm-point-picture{width:min(var(--fsbm-marker-w),68px);height:min(var(--fsbm-marker-h),50px)}
 .fsbm .fsbm-point-title{max-width:77px;font-size:8px}
 .fsbm .fsbm-map-city strong{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
 .fsbm *, .fsbm *::before,.fsbm *::after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}
}

/* 1.1 — Separate location/date/theme selection */
.fsbm {
  --fsbm-theme-bg:#fff; --fsbm-theme-hover:#fff8fc; --fsbm-theme-active-bg:#fff0f7;
  --fsbm-theme-border:#ede6ee; --fsbm-theme-active-border:#e92c91;
  --fsbm-theme-text:#231541; --fsbm-theme-icon:#e92c91;
}
.fsbm .fsbm-info-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.fsbm .fsbm-theme-list{display:grid;gap:8px}
.fsbm .fsbm-theme{display:flex;align-items:center;gap:10px;min-height:58px;width:100%;min-width:0;
  padding:10px;text-align:left;border:1.5px solid var(--fsbm-theme-border);border-radius:12px;
  color:var(--fsbm-theme-text);background:var(--fsbm-theme-bg);transition:background-color .17s,border-color .17s,box-shadow .17s}
.fsbm .fsbm-theme:hover:not(:disabled){background:var(--fsbm-theme-hover);border-color:var(--fsbm-theme-active-border)}
.fsbm .fsbm-theme.is-active{background:var(--fsbm-theme-active-bg);border-color:var(--fsbm-theme-active-border);box-shadow:inset 0 0 0 1px var(--fsbm-theme-active-border)}
.fsbm .fsbm-theme:disabled{opacity:.55;cursor:not-allowed}
.fsbm .fsbm-theme-icon{width:34px;height:34px;display:grid;place-items:center;flex:none;font-size:20px;color:var(--fsbm-theme-icon)}
.fsbm .fsbm-theme-icon img{display:block;width:30px;height:30px;max-width:100%;object-fit:contain}
.fsbm .fsbm-theme-words{flex:1;min-width:0;display:grid;gap:2px}
.fsbm .fsbm-theme-name{display:block;color:var(--fsbm-theme-text);font-size:12px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.fsbm .fsbm-theme-description{font-size:10px;line-height:1.3;color:var(--fsbm-muted)}
.fsbm .fsbm-summary-theme{font-size:11px;font-weight:750;color:var(--fsbm-title)}
/* Custom map photo is a real image. Marker percentages refer to its *entire* image rect;
   no background-size:cover crop and no geometry distortion. */
.fsbm .fsbm-map.fsbm-map-custom{height:auto!important;background:transparent}
.fsbm .fsbm-map-background{display:block;position:relative;width:100%;height:auto;max-width:none!important;max-height:none!important;object-fit:contain;pointer-events:none}
/* WordPress themes must not set a fixed map image height. */
.fsbm .fsbm-map-custom .fsbm-map-background{aspect-ratio:auto}
@media(max-width:1050px){
  .fsbm .fsbm-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fsbm .fsbm-info-part:nth-child(n){grid-column:auto;border-left:0;border-top:0}
  .fsbm .fsbm-info-part:nth-child(even){border-left:1px solid var(--fsbm-panel-border)}
  .fsbm .fsbm-info-part:nth-child(n+3){border-top:1px solid var(--fsbm-panel-border)}
}
@media(max-width:767px){
  .fsbm .fsbm-info-grid{grid-template-columns:minmax(0,1fr)}
  .fsbm .fsbm-info-part:nth-child(n){grid-column:auto;border-left:0;border-top:1px solid var(--fsbm-panel-border)}
  .fsbm .fsbm-info-part:first-child{border-top:0}
  .fsbm .fsbm-theme-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fsbm .fsbm-theme{min-height:57px;padding:8px;gap:6px}
  .fsbm .fsbm-theme-icon{width:24px;height:24px;font-size:17px}
  .fsbm .fsbm-theme-icon img{width:24px;height:24px}
  .fsbm .fsbm-theme-name{font-size:11px}
  .fsbm .fsbm-theme-description{font-size:9px}
}
@media(max-width:360px){
  .fsbm .fsbm-theme-list{grid-template-columns:minmax(0,1fr)}
}

/* v1.2.1 — isolate map markers from global WordPress / Elementor image styles. */
.fsbm .fsbm-map .fsbm-point .fsbm-point-picture {
  position:relative;
  display:block;
  box-sizing:border-box;
  width:var(--fsbm-marker-w);
  height:var(--fsbm-marker-h);
  min-width:0;
  min-height:0;
  max-width:none;
  max-height:none;
  flex:0 0 auto;
  overflow:hidden;
  background:var(--fsbm-marker-bg);
}
.fsbm .fsbm-map .fsbm-point .fsbm-point-picture > img.fsbm-point-image {
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  aspect-ratio:auto !important;
  object-fit:var(--fsbm-marker-image-fit,cover) !important;
  object-position:center center !important;
  box-shadow:none !important;
  transform:scale(var(--fsbm-marker-image-zoom,1)) !important;
}
/* Built-in school drawings are logos, not photographs: preserve their complete outline. */
.fsbm .fsbm-map .fsbm-point .fsbm-point-picture > img.is-preset { object-fit:contain !important;transform:none !important; }
.fsbm .fsbm-map .fsbm-point .fsbm-point-picture > .fsbm-marker-fallback {
  width:100%;height:100%;display:grid;place-items:center;
}
@media (max-width:767px) {
  .fsbm .fsbm-map .fsbm-point .fsbm-point-picture {
    width:var(--fsbm-marker-mobile-w,min(var(--fsbm-marker-w),79px));
    height:var(--fsbm-marker-mobile-h,min(var(--fsbm-marker-h),58px));
  }
}
@media (max-width:360px) {
  .fsbm .fsbm-map .fsbm-point .fsbm-point-picture {
    width:var(--fsbm-marker-mobile-w,min(var(--fsbm-marker-w),68px));
    height:var(--fsbm-marker-mobile-h,min(var(--fsbm-marker-h),50px));
  }
}

/* v1.3.0 — independent motif description and availability badge. */
.fsbm .fsbm-theme-description-row {
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;min-width:0;
}
.fsbm .fsbm-theme-description {display:block;min-width:0;overflow-wrap:break-word}
.fsbm .fsbm-theme-status {
  display:inline-flex;align-items:center;max-width:100%;min-width:0;
  width:max-content;white-space:normal;overflow-wrap:break-word;
  font-size:9px;font-weight:800;line-height:1.3;border-radius:40px;
  padding:3px 7px;flex:none;
}
.fsbm .fsbm-theme-status.is-free{background:color-mix(in srgb,var(--fsbm-free),white 88%);color:var(--fsbm-free)}
.fsbm .fsbm-theme-status.is-last{background:color-mix(in srgb,var(--fsbm-last),white 88%);color:var(--fsbm-last)}
.fsbm .fsbm-theme-status.is-full{background:color-mix(in srgb,var(--fsbm-full),white 88%);color:var(--fsbm-full)}
.fsbm .fsbm-theme-unavailable {font-size:9px;color:var(--fsbm-muted)}

/* v1.3.0 — a compact pink promo area beside the gray booking summary. */
.fsbm {
 --fsbm-discount-bg:#fff0f8;--fsbm-discount-card-bg:#fff;
 --fsbm-discount-border:#f6d3e7;--fsbm-discount-code-bg:#ffe0f0;
 --fsbm-discount-code-color:#b91d72;--fsbm-discount-text:#62546e;
}
/* When promo codes are configured, the three selection columns stay alongside
   each other, and the final summary gets the full row for the two panels. */
.fsbm.fsbm-has-discounts .fsbm-info-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
.fsbm.fsbm-has-discounts .fsbm-summary {
  grid-column:1/-1;border-left:0;border-top:1px solid var(--fsbm-panel-border);
}
.fsbm .fsbm-summary-body {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch}
.fsbm .fsbm-summary-body:has(.fsbm-discounts:not([hidden])) {grid-template-columns:repeat(2,minmax(0,1fr))}
.fsbm .fsbm-discounts {
  min-width:0;padding:13px;border-radius:12px;background:var(--fsbm-discount-bg);
  border:1px solid var(--fsbm-discount-border);color:var(--fsbm-title);
}
.fsbm .fsbm-discounts-heading {font-size:11px;font-weight:850;letter-spacing:.045em;text-transform:uppercase;margin:0 0 10px;color:var(--fsbm-panel-head)}
.fsbm .fsbm-discount-list {display:grid;gap:8px}
.fsbm .fsbm-discount {min-width:0;display:grid;gap:5px;padding:10px;border-radius:10px;background:var(--fsbm-discount-card-bg)}
.fsbm .fsbm-discount-title {font-size:12px;font-weight:850;color:var(--fsbm-title);line-height:1.4}
.fsbm .fsbm-discount-description {font-size:11px;line-height:1.5;margin:0;color:var(--fsbm-discount-text);white-space:pre-line;overflow-wrap:anywhere}
.fsbm .fsbm-discount-code-row {display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:2px}
.fsbm .fsbm-discount-code {display:inline-block;max-width:100%;padding:5px 9px;border-radius:7px;background:var(--fsbm-discount-code-bg);color:var(--fsbm-discount-code-color);font-size:12px;font-weight:900;letter-spacing:.055em;overflow-wrap:anywhere}
.fsbm .fsbm-discount-copy {background:transparent;color:var(--fsbm-discount-code-color);border:1px solid var(--fsbm-discount-border);border-radius:7px;padding:5px 8px;font-size:10px;font-weight:800}
.fsbm .fsbm-discount-copy:hover {background:var(--fsbm-discount-code-bg)}
.fsbm .fsbm-discounts-note {margin:8px 0 0;font-size:10px;line-height:1.5;color:var(--fsbm-discount-text)}
@media(max-width:1050px) {
  .fsbm.fsbm-has-discounts .fsbm-info-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .fsbm.fsbm-has-discounts .fsbm-info-part:nth-child(n){grid-column:auto;border-left:0;border-top:0}
  .fsbm.fsbm-has-discounts .fsbm-info-part:nth-child(even){border-left:1px solid var(--fsbm-panel-border)}
  .fsbm.fsbm-has-discounts .fsbm-info-part:nth-child(n+3){border-top:1px solid var(--fsbm-panel-border)}
  .fsbm.fsbm-has-discounts .fsbm-summary {grid-column:1/-1;border-left:0;border-top:1px solid var(--fsbm-panel-border)}
}
@media(max-width:767px) {
  .fsbm.fsbm-has-discounts .fsbm-info-grid {grid-template-columns:minmax(0,1fr)}
  .fsbm.fsbm-has-discounts .fsbm-info-part:nth-child(n){grid-column:auto;border-left:0;border-top:1px solid var(--fsbm-panel-border)}
  .fsbm.fsbm-has-discounts .fsbm-info-part:first-child{border-top:0}
  .fsbm .fsbm-summary-body:has(.fsbm-discounts:not([hidden])) {grid-template-columns:minmax(0,1fr)}
  .fsbm .fsbm-theme-status {font-size:9px;padding:3px 6px}
}
/* Tablet summary must span both selection columns. Keep two readable promo panels. */
@media (min-width:768px) and (max-width:1050px) {
  .fsbm.fsbm-has-discounts .fsbm-info-grid > .fsbm-summary {
    grid-column:1/-1;
    border-left:0;
    border-top:1px solid var(--fsbm-panel-border);
  }
}

/* v1.3.1 — desktop readability and optional wider presentation.
   All additions are desktop-only: do not touch the trusted mobile layout. */
@media (min-width:768px) {
  .fsbm.fsbm-desktop-wide.fsbm {
    position:relative;
    left:50%;
    transform:translateX(-50%);
    width:min(calc(100vw - 40px),1480px);
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
  .fsbm.fsbm-desktop-readable {
    --fsbm-desktop-scale:1;
    --fsbm-desktop-card-padding:24px;
  }
  /* Three generous selection columns and an uninterrupted summary row. */
  .fsbm.fsbm-desktop-readable.fsbm-desktop-layout-3 .fsbm-info-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .fsbm.fsbm-desktop-readable.fsbm-desktop-layout-3 .fsbm-info-grid > .fsbm-summary {
    grid-column:1/-1;
    border-left:0;
    border-top:1px solid var(--fsbm-panel-border);
  }
  /* The previous four-column arrangement remains available on request. */
  .fsbm.fsbm-desktop-readable.fsbm-desktop-layout-4:not(.fsbm-has-discounts) .fsbm-info-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .fsbm.fsbm-desktop-readable.fsbm-desktop-layout-4:not(.fsbm-has-discounts) .fsbm-info-grid > .fsbm-summary {
    grid-column:auto;
    border-top:0;
    border-left:1px solid var(--fsbm-panel-border);
  }
  .fsbm.fsbm-desktop-readable .fsbm-info-part {
    padding:var(--fsbm-desktop-card-padding);
  }
  .fsbm.fsbm-desktop-readable .fsbm-eyebrow {font-size:calc(12px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-intro {font-size:calc(16px * var(--fsbm-desktop-scale));max-width:850px;}
  .fsbm.fsbm-desktop-readable .fsbm-variant-heading {font-size:calc(18px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-block-heading {
    font-size:calc(15px * var(--fsbm-desktop-scale));
    line-height:1.4;
    letter-spacing:.035em;
    margin-bottom:18px;
  }
  .fsbm.fsbm-desktop-readable .fsbm-selected-name {font-size:calc(27px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-school {font-size:calc(16px * var(--fsbm-desktop-scale));line-height:1.45;}
  .fsbm.fsbm-desktop-readable .fsbm-address,
  .fsbm.fsbm-desktop-readable .fsbm-description {
    font-size:calc(15px * var(--fsbm-desktop-scale));
    line-height:1.65;
  }
  .fsbm.fsbm-desktop-readable .fsbm-extra-link {font-size:calc(14px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-selected-image,
  .fsbm.fsbm-desktop-readable .fsbm-selected-image img {max-height:180px;}
  .fsbm.fsbm-desktop-readable .fsbm-facts {gap:10px;margin-top:16px;}
  .fsbm.fsbm-desktop-readable .fsbm-fact {font-size:calc(14px * var(--fsbm-desktop-scale));padding:10px 12px;gap:10px;}
  .fsbm.fsbm-desktop-readable .fsbm-fact-label {font-size:calc(13px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-fact-value {font-size:calc(14px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-fact-image {width:24px;height:24px;}
  .fsbm.fsbm-desktop-readable .fsbm-term-list,
  .fsbm.fsbm-desktop-readable .fsbm-theme-list {gap:11px;}
  .fsbm.fsbm-desktop-readable .fsbm-term {
    min-height:76px;
    padding:15px;
    gap:12px;
    border-radius:14px;
  }
  .fsbm.fsbm-desktop-readable .fsbm-term-content {gap:4px;}
  .fsbm.fsbm-desktop-readable .fsbm-term-date {font-size:calc(16px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-term-label {font-size:calc(14px * var(--fsbm-desktop-scale));line-height:1.45;}
  .fsbm.fsbm-desktop-readable .fsbm-term-price {font-size:calc(16px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-theme {
    min-height:78px;
    padding:14px;
    gap:12px;
    border-radius:14px;
  }
  .fsbm.fsbm-desktop-readable .fsbm-theme-icon {width:40px;height:40px;font-size:23px;}
  .fsbm.fsbm-desktop-readable .fsbm-theme-icon img {width:36px;height:36px;}
  .fsbm.fsbm-desktop-readable .fsbm-theme-words {gap:5px;}
  .fsbm.fsbm-desktop-readable .fsbm-theme-name {font-size:calc(16px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-theme-description {font-size:calc(14px * var(--fsbm-desktop-scale));line-height:1.5;}
  .fsbm.fsbm-desktop-readable .fsbm-theme-status,
  .fsbm.fsbm-desktop-readable .fsbm-status {font-size:calc(12px * var(--fsbm-desktop-scale));padding:5px 9px;}
  .fsbm.fsbm-desktop-readable .fsbm-theme-unavailable {font-size:calc(13px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-price-card {padding:18px;gap:6px;}
  .fsbm.fsbm-desktop-readable .fsbm-price-label {font-size:calc(13px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-summary-price {font-size:calc(34px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-summary-date,
  .fsbm.fsbm-desktop-readable .fsbm-summary-theme,
  .fsbm.fsbm-desktop-readable .fsbm-term-note {font-size:calc(14px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-signup {min-height:56px;padding:14px 19px;font-size:calc(16px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-discounts {padding:18px;}
  .fsbm.fsbm-desktop-readable .fsbm-discounts-heading {font-size:calc(15px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-discount {padding:13px;gap:8px;}
  .fsbm.fsbm-desktop-readable .fsbm-discount-title {font-size:calc(16px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-discount-description {font-size:calc(14px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-discount-code {font-size:calc(15px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-discount-copy,
  .fsbm.fsbm-desktop-readable .fsbm-discounts-note {font-size:calc(13px * var(--fsbm-desktop-scale));}
  .fsbm.fsbm-desktop-readable .fsbm-no-terms,
  .fsbm.fsbm-desktop-readable .fsbm-alternatives {font-size:calc(14px * var(--fsbm-desktop-scale));}
}

/* Intermediate laptop widths / tablet: two generously sized columns, never three cramped ones. */
@media (min-width:768px) and (max-width:1050px) {
  .fsbm.fsbm-desktop-readable .fsbm-info-grid,
  .fsbm.fsbm-desktop-readable.fsbm-has-discounts .fsbm-info-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .fsbm.fsbm-desktop-readable .fsbm-info-grid > .fsbm-summary {
    grid-column:1/-1;
    border-left:0;
    border-top:1px solid var(--fsbm-panel-border);
  }
}
