.pss-front,.pss-next,.pss-holidays{width:100%;box-sizing:border-box}.pss-front *,.pss-next *,.pss-holidays *{box-sizing:border-box}.pss-grid{display:grid;grid-template-columns:repeat(var(--pss-desktop,3),minmax(0,1fr));gap:var(--pss-gap,12px);width:100%}.pss-cell{min-width:0;display:flex;justify-content:var(--pss-align,center)}.pss-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:var(--pss-py,12px) var(--pss-px,20px);border:0;border-radius:var(--pss-radius,30px);background:var(--pss-item-bg,var(--pss-bg,#7bdcb5));color:var(--pss-item-fg,var(--pss-fg,#000))!important;font-size:var(--pss-font-size,14px);font-weight:var(--pss-weight,500);line-height:1.35;text-align:center;text-decoration:none!important;overflow-wrap:anywhere;transition:background .2s,color .2s,transform .2s,box-shadow .2s}.pss-button:hover,.pss-button:focus{background:var(--pss-item-hover-bg,var(--pss-hover-bg,#62c99d));color:var(--pss-item-hover-fg,var(--pss-hover-fg,#000))!important;text-decoration:none!important;transform:translateY(-1px);box-shadow:0 3px 10px #00000017}.pss-button:focus-visible,.pss-county:focus-visible{outline:3px solid #2271b1;outline-offset:3px}.pss-filter{display:flex;align-items:center;gap:12px;max-width:420px;margin:0 0 18px}.pss-filter label{font-weight:600;font-size:14px}.pss-county{width:100%;min-height:42px;padding:8px 12px;border:1px solid #d5dce0;border-radius:6px;background:#fff;color:#252a2e;font-size:14px}.pss-no-results,.pss-empty{padding:18px 20px;text-align:center;color:#667085;background:#f7faf8;border-radius:8px;font-size:14px}.pss-no-results[hidden]{display:none}.pss-section-title{text-align:center;margin:0 0 20px;font-size:clamp(22px,3vw,30px);line-height:1.25}.pss-camp-block{margin:0 0 28px}.pss-camp-block h3{text-align:center;margin:0 0 7px;font-size:clamp(19px,2.4vw,25px);line-height:1.3}.pss-dates{text-align:center;margin:0 0 17px;color:#68727b;font-size:13px}.pss-camp-grid{grid-template-columns:repeat(var(--pss-desktop,3),minmax(0,1fr))}.pss-holiday-camp{padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid #e6ece9}.pss-holiday-camp:last-child{border:0;margin-bottom:0}@media(max-width:1024px){.pss-grid{grid-template-columns:repeat(var(--pss-tablet,2),minmax(0,1fr))}}@media(max-width:600px){.pss-grid,.pss-camp-grid{grid-template-columns:repeat(var(--pss-mobile,1),minmax(0,1fr))}.pss-filter{align-items:stretch;flex-direction:column;gap:7px;max-width:none}}@media(prefers-reduced-motion:reduce){.pss-button{transition:none}.pss-button:hover{transform:none}}
/* Continuous horizontal school-button scroller */
.pss-scroller{overflow:hidden}.pss-scroller-viewport{width:100%;overflow:hidden}.pss-scroller-track{display:flex;width:max-content;animation:pss-scroll-left var(--pss-scroll-duration,35s) linear infinite;will-change:transform}.pss-scroller-group{display:flex;flex:0 0 auto;align-items:center;gap:var(--pss-gap,12px);padding-right:var(--pss-gap,12px)}.pss-scroller-item{flex:0 0 auto;width:max-content;max-width: min(280px,75vw)}.pss-scroller-item .pss-button{width:auto;min-width:150px;white-space:nowrap}.pss-scroller:hover .pss-scroller-track,.pss-scroller:focus-within .pss-scroller-track{animation-play-state:paused}@keyframes pss-scroll-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.pss-scroller-track{animation:none;transform:none}.pss-scroller-viewport{overflow-x:auto}.pss-scroller-track{width:max-content}}

/* v1.0.11 frontend refinements */
.pss-schools .pss-filter{
    margin-left:auto;
    margin-right:auto;
    justify-content:center;
}
.pss-schools .pss-filter select{
    max-width:260px;
}
.pss-grid:has(.pss-cell:only-child),
.pss-grid.pss-single-visible{
    grid-template-columns:1fr;
}
.pss-grid:has(.pss-cell:only-child) .pss-cell .pss-button,
.pss-grid.pss-single-visible .pss-cell .pss-button{
    width:auto;
    min-width:min(240px,100%);
    max-width:100%;
}
.pss-camp-block h3{
    text-transform:capitalize;
}

/* v1.0.12: configurable Sports Camp title styling */
.pss-camp-block h3{
    color:var(--pss-camp-title-color,#222222);
    font-size:var(--pss-camp-title-size,25px);
    font-weight:var(--pss-camp-title-weight,700);
}

/* v1.0.13: visible spacing below Sports Camp titles */
.pss-camp-block h3{
    margin-bottom:18px;
}
