/* Only replace behavior previously supplied by the Squarespace application.
   All authored layout, typography, spacing and responsive rules remain in design/. */
.ripple-skip{position:absolute;left:-10000px;top:8px;z-index:1000;background:white;color:#222;padding:10px}
.ripple-skip:focus{left:8px}
.ripple-blog-index{font-size:13px;text-align:center;margin:16px 0 0}
.ripple-blog-index a{display:inline-block;padding:10px 12px}
:focus-visible{outline:2px solid #2469b0;outline-offset:4px}
#mobileNav.ripple-open{height:auto!important}
.summary-block-setting-design-autogrid .summary-item-list{display:grid!important;grid-template-columns:repeat(var(--ripple-columns,3),minmax(0,1fr));gap:var(--ripple-gap,43px);margin:0!important;padding-bottom:var(--ripple-gap,43px)!important}
.summary-block-setting-design-autogrid .summary-item{width:auto!important;float:none!important;margin:0!important;clear:none!important}
.summary-block-setting-design-autogrid .summary-item-list:after{display:none!important}
/* Native image loading replaces Squarespace's JS-managed .loaded state.
   Every gallery thumbnail must remain visible, including video covers. */
.sqs-gallery-design-grid .ripple-lightbox .thumb-image{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:1!important}
.sqs-gallery-design-grid .image-slide-anchor{position:relative;display:block;height:0;padding-bottom:100%}
.sqs-gallery-design-grid .margin-wrapper{margin-right:20px;margin-bottom:20px}
.ripple-video-fallback{font-size:13px;line-height:1.5;margin:10px 0 0}
.ripple-video-fallback a{color:inherit}
.sqs-video-wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ripple-share{font:inherit;font-size:12px;color:inherit;border:0;background:none;cursor:pointer;padding:0}
.ripple-lightbox-dialog{background:#111;color:#eee;border:0;padding:50px 28px 28px;box-sizing:border-box;width:min(1100px,96vw);max-height:94vh;overflow:auto}
.ripple-lightbox-dialog::backdrop{background:#000d}
.ripple-lightbox-dialog img{display:block;max-width:100%;max-height:72vh;margin:auto;object-fit:contain}
.ripple-lightbox-dialog iframe{display:block;width:min(650px,100%);height:700px;max-height:74vh;border:0;margin:auto;background:#fff}
.ripple-lightbox-dialog p{font-size:15px;line-height:1.6;white-space:pre-line;max-width:800px;margin:20px auto 0}
.ripple-lightbox-close{position:absolute;right:14px;top:10px;color:white;background:transparent;border:0;font:28px/1 sans-serif;cursor:pointer}
.ripple-lightbox-controls{display:flex;justify-content:space-between;gap:20px;margin-top:20px}
.ripple-lightbox-controls button{font:inherit;color:white;background:transparent;border:1px solid #777;padding:5px 18px;cursor:pointer}
.ripple-lightbox-dialog .ripple-source-link{font-size:13px;text-align:center}
.ripple-form-status{font-size:14px}
form[data-netlify] input:invalid:not(:user-invalid),form[data-netlify] textarea:invalid:not(:user-invalid){background-color:#fafafa}
@media(max-width:767px){.ripple-lightbox-dialog{padding:45px 14px 20px}.ripple-lightbox-dialog p{font-size:14px}}
@media(max-width:767px){#page{overflow-wrap:break-word}}
.ripple-gallery-play{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:30px;text-shadow:0 1px 8px #000}
.ripple-video-poster{cursor:pointer}.ripple-video-poster img{width:100%;height:100%;object-fit:cover}
@media(prefers-reduced-motion:reduce){.ripple-animation-ready .image-inset,.ripple-animation-ready .image-card-wrapper,.ripple-animation-ready .sqs-dynamic-text-container{clip-path:none!important;animation:none!important;transition:none!important}}
