/* ============================================================
   YMCA of Greater Nashua | site styles
   Page structure lives in Elementor; this file handles the look.
   Everything is scoped to body.ymca (added in functions.php) so
   nothing leaks into wp-admin or the Elementor editor panels.
   ============================================================ */

/* ---------- Elementor and Hello resets ----------
   Elementor gives every Div block padding, width:100% and position:relative,
   and buttons a blue background. Hello adds link and button colours. Reset
   them once so the component rules below start from a clean box. */
body.ymca .e-con{position:static;width:auto;min-width:0;height:auto;min-height:0;margin:0;padding:0;border-radius:0;overflow:visible;z-index:auto;transition:none}
body.ymca .e-con::before{content:none}
body.ymca .e-div-block-base{min-width:0;padding:0}
body.ymca .e-button-base{padding:0;border-radius:0;background:none;text-align:inherit;font:inherit}
body.ymca .e-heading-base,body.ymca .e-paragraph-base{margin:0}
body.ymca h1,body.ymca h2,body.ymca h3,body.ymca h4,body.ymca h5,body.ymca h6,body.ymca p,body.ymca ul,body.ymca ol,body.ymca figure,body.ymca blockquote,body.ymca dl,body.ymca dd{margin:0;padding:0}
body.ymca h1 a,body.ymca h2 a,body.ymca h3 a,body.ymca h4 a{color:inherit}
body.ymca button{font:inherit;color:inherit;background:none;border:0;border-radius:0;padding:0;cursor:pointer}
body.ymca button:where(:hover,:focus){background-color:transparent;color:inherit}
body.ymca h1 em,body.ymca h2 em,body.ymca h3 em{font-style:normal}
body.ymca .site-header{display:block;flex-wrap:nowrap;max-width:none;width:auto;margin:0;padding:0}
body.ymca :focus-visible{outline:3px solid var(--y-cyan);outline-offset:2px}
body.ymca .screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- brand tokens, type, header, homepage and footer ---------- */
body.ymca{--y-purple:#92278f; --y-purple-deep:#5c2e91; --y-magenta:#c6168d; --y-blue:#0089d0; --y-blue-deep:#0060af; --y-cyan:#00aeef; --y-red:#ed1c24; --y-orange:#f47920; --y-gold:#fcaf17; --y-teal:#01a490; --y-teal-light:#20bdbe; --ink:#231f20; --gray:#636466; --line:#e6e2e9; --tint-lav:#f7f3fb; --tint-teal:#eef9f8; --tint-cream:#fff7e6; --font-head:"Cachet Pro","Trebuchet MS",Verdana,sans-serif; --font-body:"Lato","Helvetica Neue",Arial,sans-serif; --maxw:1680px; --radius:16px; --shadow:0 2px 8px rgba(35,31,32,.06), 0 14px 34px rgba(35,31,32,.08); --shadow-hover:0 4px 12px rgba(35,31,32,.1), 0 20px 44px rgba(35,31,32,.14);}
html{scroll-behavior:smooth;}
body.ymca{font-family:var(--font-body); color:var(--ink); background:#fff; font-size:18px; line-height:1.65;}
body.ymca img{max-width:100%; display:block;}
body.ymca a{text-decoration:none; color:var(--y-blue);}
body.ymca .wrap{max-width:var(--maxw); margin:0 auto; padding:0 48px;}
body.ymca h1,body.ymca h2,body.ymca h3,body.ymca h4{font-family:var(--font-head); color:var(--y-purple-deep); line-height:1.12;}
body.ymca h1{font-size:58px; font-weight:700; letter-spacing:-.5px;}
body.ymca h2{font-size:44px; font-weight:700; letter-spacing:-.3px;}
body.ymca h3{font-size:22px; font-weight:700;}
body.ymca .lead{font-size:20.5px; color:var(--gray);}
body.ymca .eyebrow{font-family:var(--font-head); font-weight:700; font-size:14px; letter-spacing:2.5px; text-transform:uppercase; color:var(--y-magenta); display:inline-block; margin-bottom:12px;}
body.ymca .btn{display:inline-block; font-family:var(--font-head); font-weight:700; font-size:16px; letter-spacing:1px; text-transform:uppercase; padding:16px 34px; border-radius:8px; transition:all .18s ease; cursor:pointer; border:2px solid transparent; text-align:center; white-space:nowrap;}
body.ymca .btn-join{background:var(--y-magenta); color:#fff;}
body.ymca .btn-join:hover{background:#a51276; transform:translateY(-1px);}
body.ymca .btn-give{background:var(--y-blue); color:#fff;}
body.ymca .btn-give:hover{background:var(--y-blue-deep); transform:translateY(-1px);}
body.ymca .btn-outline{border-color:var(--y-purple-deep); color:var(--y-purple-deep); background:transparent;}
body.ymca .btn-outline:hover{background:var(--tint-lav);}
body.ymca .btn-white{background:#fff; color:var(--y-purple-deep);}
body.ymca .btn-white:hover{background:#f3edf9; transform:translateY(-1px);}
body.ymca .alert-bar{background:var(--y-gold); color:var(--ink); font-size:14.5px; font-weight:700; position:relative; z-index:300;}
body.ymca .alert-bar .wrap{display:flex; align-items:center; justify-content:center; gap:10px; padding-top:9px; padding-bottom:9px;}
body.ymca .alert-bar a{color:var(--ink); text-decoration:underline; font-weight:900;}
body.ymca .alert-close{position:absolute; right:18px; top:50%; transform:translateY(-50%); background:none; border:none; font-size:20px; font-weight:900; cursor:pointer; color:var(--ink); line-height:1; padding:4px 8px;}
body.ymca .alert-close:hover{opacity:.6;}
body.ymca .alert-bar.dismissed{display:none;}
body.ymca .site-header{background:#fff; position:sticky; top:0; z-index:200; transition:box-shadow .2s ease;}
body.ymca .site-header.scrolled{box-shadow:0 2px 18px rgba(35,31,32,.12);}
body.ymca .utility{border-bottom:1px solid var(--line); position:relative; z-index:10;}
body.ymca .utility .wrap{display:flex; justify-content:flex-end; align-items:center; gap:26px; padding-top:9px; padding-bottom:9px;}
body.ymca .utility a{font-family:var(--font-head); font-weight:500; font-size:12.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--ink);}
body.ymca .utility a:hover{color:var(--y-blue);}
body.ymca .lang{position:relative;}
body.ymca .lang > a::after{content:"▾"; margin-left:5px; color:var(--y-blue);}
body.ymca .lang-menu{display:none; position:absolute; right:0; top:calc(100% + 8px); background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-hover); min-width:150px; padding:8px 0;}
body.ymca .lang:hover .lang-menu,body.ymca .lang.open .lang-menu{display:block;}
body.ymca .lang-menu a{display:block; padding:8px 18px; font-size:12px;}
body.ymca .lang-menu a:hover{background:var(--tint-lav);}
body.ymca .search-btn{background:none; border:none; cursor:pointer; font-size:16px; color:var(--ink);}
body.ymca .mainnav{position:relative;}
body.ymca .mainnav .wrap{display:flex; align-items:center; gap:24px; min-height:92px;}
body.ymca .nav-items > .nav-item.has-mega{position:static;}
body.ymca .logo{flex:none;}
body.ymca .logo img{height:54px; width:auto;}
body.ymca .nav-items{display:flex; align-items:center; justify-content:center; gap:30px; list-style:none; flex:1;}
body.ymca .nav-items > .nav-item{position:relative;}
body.ymca .nav-items > .nav-item > a{font-family:var(--font-head); font-weight:700; font-size:15px; letter-spacing:.2px; text-transform:uppercase; color:var(--y-blue); padding:34px 0; display:inline-block; position:relative; white-space:nowrap;}
body.ymca .nav-items > .nav-item > a::before{content:""; position:absolute; left:0; right:0; bottom:24px; height:5px; background:var(--y-purple); border-radius:3px; opacity:0; transition:opacity .15s ease;}
body.ymca .nav-items > .nav-item:hover > a::before,body.ymca .nav-items > .nav-item.demo-open > a::before{opacity:1;}
body.ymca .nav-cta{display:flex; gap:12px; flex:none;}
body.ymca .nav-cta .btn{padding:13px 24px; font-size:15px;}
body.ymca .drop,body.ymca .mega{display:none; position:absolute; top:100%; background:#fff; border-radius:0 0 14px 14px; box-shadow:0 24px 48px rgba(35,31,32,.16); z-index:150; border-top:4px solid; border-image:linear-gradient(90deg, var(--y-purple-deep), var(--y-magenta) 45%, var(--y-blue)) 1;}
body.ymca .nav-items > .nav-item:hover .drop,body.ymca .nav-items > .nav-item:hover .mega,body.ymca .nav-items > .nav-item.demo-open .drop,body.ymca .nav-items > .nav-item.demo-open .mega{display:block;}
body.ymca .drop{left:-10px; min-width:250px; padding:16px 0;}
body.ymca .drop a{display:block; padding:9px 26px; font-size:15.5px; font-weight:700; color:var(--ink);}
body.ymca .drop a:hover{background:var(--tint-lav); color:var(--y-blue-deep);}
body.ymca .drop a.d-all{font-family:var(--font-head); font-size:13.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--y-red); border-top:1px solid var(--line); margin-top:10px; padding-top:15px;}
body.ymca .drop a.d-all:hover{background:none; text-decoration:underline;}
body.ymca .mega{left:50%; transform:translateX(-50%); width:min(1520px, 94vw); padding:36px 44px 30px;}
body.ymca .mega-cols{display:grid; gap:34px;}
body.ymca .mega-cols.c6{grid-template-columns:repeat(6,1fr);}
body.ymca .mega-cols.c2p{grid-template-columns:240px 240px 1fr; gap:56px;}
body.ymca .mega h4{font-size:15px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--ink); margin-bottom:6px;}
body.ymca .mega .hbar{width:34px; height:4px; border-radius:2px; margin-bottom:12px;}
body.ymca .mega .mega-links{list-style:none;}
body.ymca .mega .mega-links a{margin-bottom:9px;}
body.ymca .mega .mega-links a{font-size:14.5px; font-weight:700; color:#4a4d55;}
body.ymca .mega .mega-links a:hover{color:var(--y-blue-deep); text-decoration:underline;}
body.ymca .mega-foot{display:flex; gap:16px; border-top:1px solid var(--line); margin-top:26px; padding-top:22px;}
body.ymca .mega-foot a{font-family:var(--font-head); font-weight:700; font-size:12.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--y-red); border:2px solid var(--y-red); border-radius:999px; padding:8px 20px;}
body.ymca .mega-foot a:hover{background:var(--y-red); color:#fff;}
body.ymca .mega-promo{display:grid; grid-template-columns:1fr 1fr; gap:18px; align-self:start;}
body.ymca .mp-card{position:relative; border-radius:14px; overflow:hidden; box-shadow:var(--shadow); display:block;}
body.ymca .mp-card img{width:100%; height:190px; object-fit:cover; transition:transform .3s ease;}
body.ymca .mp-card:hover img{transform:scale(1.05);}
body.ymca .mp-card span{position:absolute; left:0; right:0; bottom:0; padding:26px 14px 10px; background:linear-gradient(transparent, rgba(35,31,32,.78)); color:#fff; font-family:var(--font-head); font-weight:700; font-size:15px;}
body.ymca .wave{display:block; width:100%; height:70px;}
body.ymca .btn-white-o{border-color:#fff; color:#fff; background:transparent;}
body.ymca .btn-white-o:hover{background:rgba(255,255,255,.14);}
body.ymca .hero{position:relative; height:640px; overflow:hidden; background:#181026;}
body.ymca .hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center bottom; transform:scale(1.12); transform-origin:0 100%;}
body.ymca .hero-blur{position:absolute; inset:0; backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); -webkit-mask-image:linear-gradient(90deg, #000 26%, transparent 60%); mask-image:linear-gradient(90deg, #000 26%, transparent 60%);}
body.ymca .hero-scrim{position:absolute; inset:0; background:linear-gradient(97deg, rgba(24,16,38,.9) 6%, rgba(24,16,38,.72) 34%, rgba(24,16,38,.34) 56%, rgba(24,16,38,0) 74%);}
body.ymca .hero-content{position:absolute; inset:0; display:flex; align-items:center; z-index:4;}
body.ymca .hero-content .wrap{width:100%;}
body.ymca .hero-content .inner{max-width:560px; padding-bottom:26px;}
body.ymca .hero-content .assoc{font-family:var(--font-head); font-weight:700; font-size:14.5px; letter-spacing:3px; text-transform:uppercase; color:var(--y-gold); display:block; margin-bottom:18px;}
body.ymca .hero-content h1{color:#fff; font-size:58px; margin-bottom:18px;}
body.ymca .hero-content h1 em{color:var(--y-gold);}
body.ymca .hero-content p.hlead{color:rgba(255,255,255,.93); font-size:19px; max-width:440px; margin-bottom:32px;}
body.ymca .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:26px;}
body.ymca .hero-assist{font-size:14.5px; color:rgba(255,255,255,.88);}
body.ymca .hero-assist a{color:#fff; text-decoration:underline; font-weight:700;}
body.ymca .hero .wave{position:absolute; bottom:-1px; left:0; z-index:5;}
body.ymca .quick{background:#eaf6fd; padding:72px 0 78px;}
body.ymca .quick-head{text-align:center; margin-bottom:38px;}
body.ymca .quick-head h2{margin-bottom:8px;}
body.ymca .quick-head p{color:var(--gray); font-size:19px;}
body.ymca .quick-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:18px;}
body.ymca .q-card{background:#fff; border:1.5px solid #cfe4f2; border-radius:16px; padding:30px 14px 26px; text-align:center; transition:all .18s ease;}
body.ymca .q-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-hover); border-color:currentColor;}
body.ymca .q-card .q-ico{width:46px; height:46px; margin:0 auto 14px; display:block;}
body.ymca .q-card h3{font-size:19px; color:var(--y-blue-deep); display:inline-block;}
body.ymca .q-card .go{font-family:var(--font-head); font-weight:700; font-size:20px; margin-left:7px; display:inline-block; vertical-align:-1px; transition:transform .18s ease;}
body.ymca .q-card:hover .go{transform:translateX(4px);}
body.ymca .memband{background:var(--y-teal); color:#fff; padding:84px 0;}
body.ymca .mb-grid{display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center;}
body.ymca .memband .eyebrow{color:var(--y-gold);}
body.ymca .memband h2{color:#fff; margin-bottom:16px;}
body.ymca .memband p.mb-lead{color:rgba(255,255,255,.93); font-size:18px; max-width:540px; margin-bottom:30px;}
body.ymca .mb-ctas{display:flex; gap:14px; flex-wrap:wrap;}
body.ymca .memband .btn-white{color:#016a60;}
body.ymca .mb-photo img{width:100%; height:400px; object-fit:cover; border-radius:22px; box-shadow:0 24px 56px rgba(1,74,66,.35);}
body.ymca .section{padding:84px 0;}
body.ymca .sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:44px;}
body.ymca .sec-head .lead{max-width:560px; margin-top:10px;}
body.ymca .sec-link{font-family:var(--font-head); font-weight:700; font-size:15px; letter-spacing:1px; text-transform:uppercase; color:var(--y-blue); white-space:nowrap; padding-bottom:4px;}
body.ymca .sec-link:hover{color:var(--y-blue-deep);}
body.ymca .prog-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
body.ymca .p-card{background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:all .18s ease;}
body.ymca .p-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
body.ymca .p-card .pi{height:190px; overflow:hidden; position:relative;}
body.ymca .p-card .pi img{width:100%; height:100%; object-fit:cover; object-position:center 28%; transition:transform .4s ease;}
body.ymca .p-card:hover .pi img{transform:scale(1.05);}
body.ymca .p-card .tagbar{position:absolute; left:0; bottom:0; font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:1.4px; text-transform:uppercase; color:#fff; padding:7px 16px; border-radius:0 10px 0 0;}
body.ymca .p-card .pb{padding:20px 22px 24px;}
body.ymca .p-card h3{margin-bottom:6px;}
body.ymca .p-card p{font-size:16px; color:var(--gray); margin-bottom:12px;}
body.ymca .p-more{font-family:var(--font-head); font-weight:700; font-size:13.5px; letter-spacing:1px; text-transform:uppercase;}
body.ymca .news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
body.ymca .n-card{background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:all .18s ease;}
body.ymca .n-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
body.ymca .n-card .ni{height:210px; overflow:hidden;}
body.ymca .n-card .ni img{width:100%; height:100%; object-fit:cover;}
body.ymca .n-card .nb{padding:22px 24px 26px;}
body.ymca .n-tag{display:inline-block; font-family:var(--font-head); font-weight:700; font-size:11.5px; letter-spacing:1.3px; text-transform:uppercase; border-radius:30px; padding:4px 13px; margin-bottom:12px;}
body.ymca .n-date{font-size:13px; color:var(--gray); margin-bottom:6px;}
body.ymca .n-card h3{font-size:21px; margin-bottom:8px;}
body.ymca .n-card p{font-size:16px; color:var(--gray);}
body.ymca .events{background:var(--tint-teal);}
body.ymca .ev-row{display:grid; grid-template-columns:104px 1fr auto; gap:26px; align-items:center; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:22px 28px; margin-bottom:16px; transition:all .18s ease;}
body.ymca .ev-row:hover{transform:translateY(-2px); box-shadow:var(--shadow-hover);}
body.ymca .ev-date{text-align:center; background:var(--y-purple-deep); color:#fff; border-radius:12px; padding:12px 6px; font-family:var(--font-head);}
body.ymca .ev-date .mo{font-size:12.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--y-gold);}
body.ymca .ev-date .dy{font-size:30px; font-weight:700; line-height:1.05;}
body.ymca .ev-meta{display:flex; gap:18px; flex-wrap:wrap; font-size:15.5px; color:var(--gray); margin-top:5px;}
body.ymca .ev-row h3{font-size:21px;}
body.ymca .impact{position:relative; background:linear-gradient(120deg, var(--y-purple-deep), var(--y-purple) 55%, var(--y-magenta)); color:#fff; overflow:hidden;}
body.ymca .impact .wrap{position:relative; padding-top:80px; padding-bottom:84px;}
body.ymca .impact h2{color:#fff;}
body.ymca .impact .tagline{font-family:var(--font-head); font-weight:700; font-size:21px; color:var(--y-gold); margin-bottom:8px;}
body.ymca .impact-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center;}
body.ymca .impact p.big{color:rgba(255,255,255,.88); font-size:17.5px; margin:16px 0 28px; max-width:520px;}
body.ymca .stats{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
body.ymca .stat{background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:16px; padding:22px 24px;}
body.ymca .stat .stat-num{font-family:var(--font-head); font-weight:700; font-size:38px; display:block; line-height:1.1;}
body.ymca .stat span{font-size:13px; letter-spacing:1.6px; text-transform:uppercase; color:rgba(255,255,255,.75); font-weight:700;}
body.ymca .footer{background:var(--ink); color:rgba(255,255,255,.8);}
body.ymca .footer .wrap{padding-top:70px;}
body.ymca .f-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:48px; padding-bottom:48px;}
body.ymca .f-grid h4{color:#fff; font-size:14.5px; letter-spacing:1.6px; text-transform:uppercase; margin-bottom:18px;}
body.ymca .f-grid .f-links{list-style:none;}
body.ymca .f-grid .f-links a{margin-bottom:11px; font-size:16px;}
body.ymca .f-grid a{color:rgba(255,255,255,.8);}
body.ymca .f-grid a:hover{color:#fff;}
body.ymca .f-brand img{height:58px; background:#fff; padding:7px 9px; border-radius:10px; margin-bottom:18px;}
body.ymca .f-brand .f-name{font-family:var(--font-head); font-weight:700; font-size:19px; color:#fff; margin-bottom:8px;}
body.ymca .f-brand p{font-size:14px; line-height:1.7; color:rgba(255,255,255,.6);}
body.ymca .f-social{display:flex; gap:12px; margin-top:18px;}
body.ymca .f-social a{width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:14px; color:#fff;}
body.ymca .f-social a:hover{background:var(--y-magenta);}
body.ymca .f-news input{width:100%; padding:13px 15px; border-radius:8px; border:none; font-family:var(--font-body); font-size:15px; margin-bottom:10px;}
body.ymca .f-bottom{border-top:1px solid rgba(255,255,255,.14); padding:22px 0 30px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.5);}
body.ymca .f-bottom a{color:rgba(255,255,255,.5); margin-left:18px;}
body.ymca .reveal{opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease;}
body.ymca .reveal.in{opacity:1; transform:none;}
body.ymca .rv1{transition-delay:.05s;}
body.ymca .rv2{transition-delay:.15s;}
body.ymca .rv3{transition-delay:.25s;}
body.ymca .rv4{transition-delay:.35s;}
body.ymca .rv5{transition-delay:.45s;}
@media (prefers-reduced-motion: reduce){
body.ymca .reveal{opacity:1; transform:none; transition:none;}
}

/* ---------- colour and spacing helpers ----------
   Small one-off classes for accents set per card in the design
   (tag colours, column bars, section spacing). */
body.ymca .bg-blue{background:var(--y-blue)!important}
body.ymca .bg-orange{background:var(--y-orange)!important}
body.ymca .bg-teal{background:var(--y-teal)!important}
body.ymca .bg-purple{background:var(--y-purple)!important}
body.ymca .bg-magenta{background:var(--y-magenta)!important}
body.ymca .bg-cyan{background:var(--y-cyan)!important}
body.ymca .c-blue{color:var(--y-blue)!important}
body.ymca .c-orange{color:var(--y-orange)!important}
body.ymca .c-teal{color:var(--y-teal)!important}
body.ymca .c-magenta{color:var(--y-magenta)!important}
body.ymca .c-gold{color:var(--y-gold)!important}
body.ymca .c-purple{color:var(--y-purple)!important}
body.ymca .tag-gold{background:var(--y-gold)!important;color:var(--ink)!important}
body.ymca .sec-news{background:var(--tint-lav);position:relative;padding-top:100px}
body.ymca .sec-wave{position:relative;padding-top:100px}
body.ymca .f-note{font-size:14px;margin-bottom:12px;color:rgba(255,255,255,.6)}
body.ymca .btn-block{width:100%;display:block}
body.ymca .btn-sm{padding:11px 22px;font-size:13px}

/* ---------- header ----------
   The alert bar and header share Elementor's header location. The whole
   location sticks, pulled up by the alert bar's height (set by ymca.js)
   so only the white header stays on screen. */
body.ymca .elementor-location-header{position:sticky;top:calc(var(--ya-h,0px) * -1);z-index:200}
body.ymca.admin-bar .elementor-location-header{top:calc(32px - var(--ya-h,0px))}
body.ymca .site-header{position:relative}
html.alert-dismissed body.ymca .alert-bar{display:none}
body.ymca .alert-bar .wrap{padding-left:60px;padding-right:60px;text-align:center}

/* Approved after Phase 1 review: menu one point larger, spacing that grows on wide screens. */
body.ymca .nav-items{gap:clamp(20px,2.3vw,46px)}
body.ymca .nav-items > .nav-item > a{font-size:16px}
body.ymca .nav-items > .nav-item.has-sub > a::after{content:"\25BC";display:inline-block;font-size:10px;margin-left:5px;vertical-align:1px}
body.ymca .nav-toggle,body.ymca .sub-toggle,body.ymca .nav-extra{display:none}

body.ymca .mega h4 a:hover{color:var(--y-blue-deep)}
body.ymca .mega .mega-links a{display:block;line-height:29.7px}
body.ymca .drop a,body.ymca .lang-menu a{line-height:1.65}

/* ---------- search ---------- */
body.ymca .site-search{position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 24px 48px rgba(35,31,32,.16);border-top:4px solid;border-image:linear-gradient(90deg,var(--y-purple-deep),var(--y-magenta) 45%,var(--y-blue)) 1;padding:26px 0;z-index:160}
body.ymca .site-search[hidden]{display:none}
body.ymca .site-search form{display:flex;gap:12px;max-width:760px;margin:0 auto}
body.ymca .site-search input{flex:1;height:54px;border:1.5px solid #d6dbe4;border-radius:10px;padding:0 18px;font-family:var(--font-body);font-size:17px;color:var(--ink)}
body.ymca .site-search input:focus{outline:none;border-color:var(--y-blue);box-shadow:0 0 0 4px rgba(0,137,208,.14)}
body.ymca .site-search .btn{padding:0 28px;height:54px}

/* ---------- homepage ---------- */
body.ymca .wave-top{position:absolute;top:-1px;left:0}
body.ymca .n-tag{background:var(--tint-lav);color:var(--y-purple-deep)}
body.ymca .n-tag-community{background:#fdeef5;color:var(--y-magenta)}
body.ymca .n-tag-programs{background:#eaf6fd;color:var(--y-blue)}
body.ymca .n-tag-impact{background:#e9f8f6;color:var(--y-teal)}
body.ymca .n-tag-camp{background:var(--tint-cream);color:#b06d00}
body.ymca .ev-row > div:nth-child(2){min-width:0}

/* ---------- footer ---------- */
body.ymca .f-brand img{width:auto}
body.ymca .f-brand .f-name{line-height:1.65}
body.ymca .f-grid .f-links a{display:block;line-height:1.65}
body.ymca .f-signup-msg{font-size:14px;color:#fff;margin-top:4px}
body.ymca .f-signup .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- program pages ---------- */
body.ymca .pghead{background:#eaf6fd; position:relative; padding:52px 0 64px;}
body.ymca .pgh-grid{display:grid; grid-template-columns:1fr 540px; gap:80px; align-items:center;}
body.ymca .pgh-img img{width:100%; height:370px; object-fit:cover; border-radius:24px; box-shadow:var(--shadow-hover);}
body.ymca .crumb{font-size:14.5px; color:var(--gray); margin-bottom:16px;}
body.ymca .crumb a{color:var(--y-blue); font-weight:700;}
body.ymca .crumb span{margin:0 7px; color:#a8b6c2;}
body.ymca .pghead h1{font-size:63px; margin-bottom:10px;}
body.ymca .pghead .tag{font-family:var(--font-head); font-weight:700; font-size:23px; color:var(--y-teal); margin-bottom:12px;}
body.ymca .pghead .sub{max-width:640px; margin-bottom:28px;}
body.ymca .pgh-cta{display:flex; gap:14px; flex-wrap:wrap;}
body.ymca .pghead .wave{position:absolute; bottom:-1px; left:0;}
body.ymca .fband{background:linear-gradient(120deg, var(--y-blue-deep), var(--y-blue));}
body.ymca .facts{display:flex; justify-content:center; gap:90px; padding:36px 0; flex-wrap:wrap;}
body.ymca .fband .fact .fi{background:rgba(255,255,255,.16) !important;}
body.ymca .fband .fact svg,body.ymca .fband .fact svg *{stroke:#fff !important;}
body.ymca .fband .fact .fact-t{color:#fff;}
body.ymca .fband .fact .fact-s{color:rgba(255,255,255,.85);}
body.ymca .fact{display:flex; align-items:center; gap:14px;}
body.ymca .fact .fi{width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; flex:none;}
body.ymca .fact .fact-t{font-family:var(--font-head); font-size:19px; color:var(--y-blue-deep); display:block; line-height:1.25;}
body.ymca .fact .fact-s{font-size:15.5px; color:var(--gray);}
body.ymca .lvl-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:22px;}
body.ymca .lvl-card{background:#fff; border-radius:var(--radius); padding:32px 26px 30px; box-shadow:var(--shadow); transition:all .18s ease; border-top:6px solid transparent;}
body.ymca .lvl-grid > :nth-child(5n+1){background:#f0f8fe; border-top-color:var(--y-blue);}
body.ymca .lvl-grid > :nth-child(5n+2){background:#fdf2f8; border-top-color:var(--y-magenta);}
body.ymca .lvl-grid > :nth-child(5n+3){background:#fff5ea; border-top-color:var(--y-orange);}
body.ymca .lvl-grid > :nth-child(5n+4){background:#ecf9f7; border-top-color:var(--y-teal);}
body.ymca .lvl-grid > :nth-child(5n+5){background:#f5effb; border-top-color:var(--y-purple);}
body.ymca .lvl-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
body.ymca .lvl-chip{display:inline-block; font-family:var(--font-head); font-weight:700; font-size:13px; letter-spacing:1.2px; text-transform:uppercase; border-radius:30px; padding:6px 15px; margin-bottom:15px; background:#fff !important;}
body.ymca .lvl-card h3{font-size:23.5px; margin-bottom:8px;}
body.ymca .lvl-card p{font-size:16px; color:#4b4f57; margin-bottom:16px;}
body.ymca .lvl-card .p-more{font-family:var(--font-head); font-weight:700; font-size:14px; letter-spacing:1px; text-transform:uppercase;}
body.ymca .duo{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
body.ymca .duo-card{border-radius:var(--radius); padding:42px 44px; display:flex; align-items:center; gap:28px; color:#fff;}
body.ymca .duo-card .di{width:68px; height:68px; border-radius:18px; background:#fff; display:flex; align-items:center; justify-content:center; flex:none; box-shadow:var(--shadow);}
body.ymca .duo-card h3{font-size:26px; margin-bottom:7px; color:#fff;}
body.ymca .duo-card p{font-size:16.5px; color:rgba(255,255,255,.92); margin-bottom:18px;}
body.ymca .private{background:var(--y-teal); position:relative; padding:110px 0 96px;}
body.ymca .pv-band{display:grid; grid-template-columns:1fr 470px; gap:80px; align-items:center;}
body.ymca .pv-photo{background:#fff; border-radius:22px; padding:16px; box-shadow:0 24px 56px rgba(1,60,54,.35);}
body.ymca .pv-photo img{width:100%; height:410px; object-fit:cover; object-position:center 25%; border-radius:14px;}
body.ymca .pv-copy .eyebrow{color:var(--y-gold);}
body.ymca .pv-copy h2{color:#fff;}
body.ymca .pv-copy .lead{max-width:720px; margin-bottom:24px; color:rgba(255,255,255,.93);}
body.ymca .pv-list{list-style:none; margin-bottom:32px;}
body.ymca .pv-list .pv-item{position:relative; padding-left:32px; margin-bottom:11px; font-size:17.5px; color:#fff; font-weight:700;}
body.ymca .pv-list .pv-item::before{content:"✓"; position:absolute; left:0; top:0; font-family:var(--font-head); font-weight:700; color:var(--y-gold); font-size:19px;}
body.ymca .private .btn-join{background:#fff; color:#016a60;}
body.ymca .private .btn-join:hover{background:#eafaf7;}
body.ymca .fac-faq{background:var(--tint-lav); position:relative; padding:100px 0 90px;}
body.ymca .ff-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:start;}
body.ymca .loc-card{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:26px 30px; margin-bottom:18px; display:flex; align-items:center; justify-content:space-between; gap:18px; transition:all .18s ease;}
body.ymca .loc-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-hover);}
body.ymca .loc-card h3{font-size:22px; margin-bottom:4px;}
body.ymca .loc-card p{font-size:16px; color:var(--gray);}
body.ymca .loc-card .go2{font-family:var(--font-head); font-weight:700; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--y-blue); white-space:nowrap;}
body.ymca .swimcta{background:linear-gradient(140deg, #026e63, var(--y-teal) 70%); color:#fff; position:relative; padding:104px 0 92px; text-align:center;}
body.ymca .swimcta h2{color:#fff; margin-bottom:10px;}
body.ymca .swimcta p{color:rgba(255,255,255,.92); font-size:19.5px; margin-bottom:30px;}

/* ---------- programs finder, careers, events, locations ---------- */
body.ymca{--y-purple:#92278f; --y-purple-deep:#5c2e91; --y-magenta:#c6168d; --y-blue:#0089d0; --y-blue-deep:#0060af; --y-cyan:#00aeef; --y-red:#ed1c24; --y-orange:#f47920; --y-gold:#fcaf17; --y-teal:#01a490; --y-teal-light:#20bdbe; --ink:#231f20; --gray:#636466; --line:#e6e2e9; --tint-lav:#f7f3fb; --tint-teal:#eef9f8; --tint-cream:#fff7e6; --font-head:"Cachet Pro","Cachet Pro","Trebuchet MS",Verdana,sans-serif; --font-body:"Lato","Helvetica Neue",Arial,sans-serif; --radius:16px; --shadow:0 2px 8px rgba(35,31,32,.06), 0 14px 34px rgba(35,31,32,.08); --shadow-hover:0 4px 12px rgba(35,31,32,.1), 0 20px 44px rgba(35,31,32,.14);}
body.ymca .btn-join:hover{background:#a51276; color:#fff; transform:translateY(-1px);}
body.ymca .btn-give:hover{background:var(--y-blue-deep); color:#fff; transform:translateY(-1px);}
body.ymca .btn-outline:hover{background:var(--tint-lav); color:var(--y-purple-deep);}
body.ymca .pg-card h3,body.ymca .job h3,body.ymca .ev-card h3,body.ymca .lc h3,body.ymca .tip h3,body.ymca .step h3,body.ymca .f-empty h3,body.ymca .here-card h3,body.ymca .hub-card h3,body.ymca .age-card h3,body.ymca .person h3{font-family:var(--font-head); font-weight:700; color:var(--y-purple-deep); line-height:1.15; margin-top:0;}
body.ymca .pg-card,body.ymca .ev-card,body.ymca .job a,body.ymca .lc a{text-decoration:none;}
body.ymca .pg-meta em,body.ymca .ev-meta2 em{font-style:normal; color:#4b4f57;}
body.ymca .ev-meta2 span{color:var(--y-purple-deep);}
body.ymca .vc-btns{display:flex; gap:10px; flex-wrap:wrap;}
body.ymca .jobs-grid.jobs-3{grid-template-columns:repeat(3,1fr);}
body.ymca .f-empty .btn,body.ymca .job .btn,body.ymca .jside .btn,body.ymca .vc-col .btn{text-decoration:none;}
body.ymca{--c-swim:#0089d0; --c-sports:#f47920; --c-health:#01a490; --c-arts:#c6168d; --c-teens:#00a3e0; --c-community:#92278f; --c-childcare:#5c2e91; --c-camp:#e8960c; --c-nashua:#0089d0; --c-merrimack:#c6168d; --c-westwood:#f47920; --c-sargent:#01a490;}
body.ymca .fbar-wrap{position:relative; z-index:6; margin-top:-56px;}
body.ymca .fbar{background:#fff; border-radius:20px; box-shadow:0 10px 30px rgba(35,31,32,.10), 0 30px 60px rgba(35,31,32,.10); padding:24px 26px 22px; position:relative; overflow:hidden;}
body.ymca .fbar::before{content:""; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg, var(--y-purple-deep), var(--y-magenta) 45%, var(--y-blue));}
body.ymca .f-row{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr auto; gap:14px; align-items:end;}
body.ymca .f-row.f4{grid-template-columns:1.6fr 1fr 1fr auto;}
body.ymca .fld label{display:block; font-family:var(--font-head); font-weight:700; font-size:12.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--gray); margin-bottom:7px;}
body.ymca .fld input,body.ymca .fld select{width:100%; height:54px; border:1.5px solid #d6dbe4; border-radius:10px; padding:0 16px; font-family:var(--font-body); font-size:16.5px; color:var(--ink); background:#fff; transition:border-color .15s ease, box-shadow .15s ease;}
body.ymca .fld select{appearance:none; -webkit-appearance:none; padding-right:42px; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230089d0' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center;}
body.ymca .fld input{padding-left:46px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23636466' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 16px center;}
body.ymca .fld input:focus,body.ymca .fld select:focus{outline:none; border-color:var(--y-blue); box-shadow:0 0 0 4px rgba(0,137,208,.14);}
body.ymca .f-clear{height:54px; padding:0 22px; border-radius:10px; border:2px solid var(--line); background:#fff; font-family:var(--font-head); font-weight:700; font-size:14px; letter-spacing:1px; text-transform:uppercase; color:var(--gray); cursor:pointer; transition:all .15s ease;}
body.ymca .f-clear:hover{border-color:var(--y-red); color:var(--y-red);}
body.ymca .pills{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line);}
body.ymca .pill{--c:var(--y-purple-deep); display:inline-flex; align-items:center; gap:8px; font-family:var(--font-head); font-weight:700; font-size:13px; letter-spacing:.3px; text-transform:uppercase; color:var(--ink); background:#fff; border:2px solid var(--line); border-radius:999px; padding:7px 13px; cursor:pointer; transition:all .15s ease;}
body.ymca .pill i{width:9px; height:9px; border-radius:50%; background:var(--c); display:inline-block;}
body.ymca .pill:hover{border-color:var(--c); color:var(--c);}
body.ymca .pill.on{background:var(--c); border-color:var(--c); color:#fff;}
body.ymca .pill.on i{background:#fff;}
body.ymca .f-meta{display:flex; justify-content:space-between; align-items:center; gap:20px; margin:34px 0 22px; flex-wrap:wrap;}
body.ymca .f-count{font-family:var(--font-head); font-weight:700; font-size:20px; color:var(--y-purple-deep);}
body.ymca .f-count span{color:var(--y-magenta);}
body.ymca .f-note{font-size:15.5px; color:var(--gray);}
body.ymca .f-note a{font-weight:700;}
body.ymca .f-empty{display:none; text-align:center; background:var(--tint-lav); border-radius:20px; padding:56px 30px;}
body.ymca .f-empty.show{display:block;}
body.ymca .f-empty h3{font-size:26px; margin-bottom:8px;}
body.ymca .f-empty p{color:var(--gray); margin-bottom:22px;}
body.ymca .is-hidden{display:none !important;}
body.ymca .pg-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
body.ymca .pg-card{--c:var(--y-blue); background:#fff; border-radius:18px; overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .18s ease; color:var(--ink); position:relative;}
body.ymca .pg-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-hover);}
body.ymca .pg-card .im{height:196px; position:relative; overflow:hidden; background:#e9eef3;}
body.ymca .pg-card .im img{width:100%; height:100%; object-fit:cover; transition:transform .45s ease;}
body.ymca .pg-card:hover .im img{transform:scale(1.06);}
body.ymca .pg-card .act{position:absolute; left:14px; top:14px; background:var(--c); color:#fff; font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:1.3px; text-transform:uppercase; padding:6px 13px; border-radius:999px; box-shadow:0 4px 12px rgba(0,0,0,.18);}
body.ymca .pg-card .bd{padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; border-top:5px solid var(--c);}
body.ymca .pg-card h3{font-size:22.5px; margin-bottom:10px;}
body.ymca .pg-meta{display:flex; flex-direction:column; gap:6px; margin-bottom:12px;}
body.ymca .pg-meta span{display:flex; align-items:center; gap:8px; font-size:14.5px; font-weight:700; color:#4b4f57;}
body.ymca .pg-meta svg{width:17px; height:17px; flex:none;}
body.ymca .pg-card p{font-size:15.5px; color:var(--gray); line-height:1.55; flex:1; margin-bottom:14px;}
body.ymca .pg-go{font-family:var(--font-head); font-weight:700; font-size:14px; letter-spacing:1px; text-transform:uppercase; color:var(--c);}
body.ymca .pg-card .flag{position:absolute; right:14px; top:14px; background:#fff; color:var(--ink); font-family:var(--font-head); font-weight:700; font-size:11.5px; letter-spacing:1.1px; text-transform:uppercase; padding:5px 11px; border-radius:999px;}
body.ymca .tips{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
body.ymca .tip{background:#fff; border-radius:var(--radius); padding:28px 28px 26px; box-shadow:var(--shadow); border-top:6px solid var(--c, var(--y-blue));}
body.ymca .tip h3{font-size:22px; margin-bottom:8px;}
body.ymca .tip p,body.ymca .tip li{font-size:16px; color:#4b4f57;}
body.ymca .tip ul{padding-left:18px;}
body.ymca .tip li{margin-bottom:6px;}
body.ymca .related{padding:46px 0 54px; border-top:1px solid var(--line);}
body.ymca .related .wrap{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
body.ymca .related h4{font-size:15px; letter-spacing:1.6px; text-transform:uppercase; color:var(--ink); margin-right:6px;}
body.ymca .rl{display:inline-block; font-weight:700; font-size:15.5px; color:var(--y-blue-deep); background:#eef6fc; border-radius:999px; padding:9px 18px; transition:all .15s ease;}
body.ymca .rl:hover{background:var(--y-blue); color:#fff;}
body.ymca .map-sec{padding:0 0 96px;}
body.ymca .map-grid{display:grid; grid-template-columns:500px 1fr; gap:30px; align-items:start;}
body.ymca .loc-list{display:flex; flex-direction:column; gap:16px;}
body.ymca .lc{--c:var(--y-blue); background:#fff; border-radius:18px; box-shadow:var(--shadow); padding:24px 26px 22px 26px; border-left:7px solid var(--c); cursor:pointer; transition:all .18s ease; position:relative;}
body.ymca .lc:hover{transform:translateX(4px); box-shadow:var(--shadow-hover);}
body.ymca .lc.on{box-shadow:0 0 0 3px var(--c), var(--shadow-hover);}
body.ymca .lc-top{display:flex; align-items:center; gap:14px; margin-bottom:8px;}
body.ymca .lc-num{width:36px; height:36px; border-radius:50%; background:var(--c); color:#fff; font-family:var(--font-head); font-weight:700; font-size:17px; display:flex; align-items:center; justify-content:center; flex:none;}
body.ymca .lc h3{font-size:24px;}
body.ymca .lc .best{font-size:15.5px; color:#4b4f57; margin-bottom:10px;}
body.ymca .lc .best b{color:var(--c); font-family:var(--font-head); letter-spacing:.3px;}
body.ymca .lc .addr{font-size:15.5px; color:var(--gray); margin-bottom:14px; line-height:1.55;}
body.ymca .lc .addr a{color:var(--gray); font-weight:700;}
body.ymca .lc-act{display:flex; gap:18px; align-items:center; flex-wrap:wrap;}
body.ymca .lc-act a{font-family:var(--font-head); font-weight:700; font-size:13.5px; letter-spacing:1px; text-transform:uppercase;}
body.ymca .lc-act .pri{background:var(--c); color:#fff; padding:10px 18px; border-radius:8px;}
body.ymca .lc-act .pri:hover{filter:brightness(.92);}
body.ymca .map-box{position:sticky; top:150px; border-radius:24px; overflow:hidden; box-shadow:var(--shadow-hover); background:#e9eef3;}
body.ymca #ymap{height:720px; width:100%;}
body.ymca .ypin{--c:#0089d0; width:42px; height:42px; border-radius:50% 50% 50% 0; background:var(--c); transform:rotate(-45deg); display:flex; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(0,0,0,.28); border:3px solid #fff;}
body.ymca .ypin span{transform:rotate(45deg); color:#fff; font-family:var(--font-head); font-weight:700; font-size:17px;}
body.ymca .leaflet-popup-content-wrapper{border-radius:14px !important; box-shadow:var(--shadow-hover) !important;}
body.ymca .leaflet-popup-content{font-family:var(--font-body) !important; margin:14px 18px !important;}
body.ymca .leaflet-popup-content b{font-family:var(--font-head); font-size:17px; color:var(--y-purple-deep); display:block; margin-bottom:3px;}
body.ymca .leaflet-popup-content span{font-size:13.5px; color:var(--gray); display:block; margin-bottom:8px;}
body.ymca .leaflet-popup-content a{font-family:var(--font-head); font-weight:700; font-size:12.5px; letter-spacing:1px; text-transform:uppercase;}
body.ymca .visit{padding:0 0 80px;}
body.ymca .visit-card{background:#fff; border-radius:24px; box-shadow:0 10px 30px rgba(35,31,32,.10), 0 30px 60px rgba(35,31,32,.10); display:grid; grid-template-columns:1fr 1fr 1.25fr; overflow:hidden; margin-top:-56px; position:relative; z-index:6;}
body.ymca .vc-col{padding:34px 34px 32px; border-right:1px solid var(--line);}
body.ymca .vc-col h3{font-size:15px; letter-spacing:1.6px; text-transform:uppercase; color:var(--y-magenta); margin-bottom:12px;}
body.ymca .vc-col .big{font-family:var(--font-head); font-weight:700; font-size:23px; color:var(--y-purple-deep); line-height:1.3; margin-bottom:6px;}
body.ymca .vc-col p{font-size:15.5px; color:var(--gray); margin-bottom:16px;}
body.ymca .vc-col .btn{padding:12px 22px; font-size:14px;}
body.ymca .hours{width:100%; border-collapse:collapse; margin-bottom:12px;}
body.ymca .hours td{padding:8px 0; font-size:16px; border-bottom:1px dashed var(--line);}
body.ymca .hours td:first-child{font-weight:700; color:var(--ink);}
body.ymca .hours td:last-child{text-align:right; color:#4b4f57;}
body.ymca .hours tr.today td{color:var(--y-teal);}
body.ymca .vc-note{font-size:13.5px; color:var(--gray);}
body.ymca .vc-map{min-height:330px; position:relative;}
body.ymca .vc-map #ymap{height:100%; min-height:330px;}
body.ymca .here-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
body.ymca .here-card{--c:var(--y-blue); --t:#f0f8fe; background:var(--t); border-radius:var(--radius); padding:30px 26px 28px; border-top:6px solid var(--c); box-shadow:var(--shadow); transition:all .18s ease; display:flex; flex-direction:column;}
body.ymca .here-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
body.ymca .here-card .hi{width:58px; height:58px; border-radius:16px; background:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:18px; box-shadow:var(--shadow);}
body.ymca .here-card h3{font-size:23px; margin-bottom:8px;}
body.ymca .here-card p{font-size:16px; color:#4b4f57; flex:1; margin-bottom:16px;}
body.ymca .here-card .p-more{color:var(--c); font-family:var(--font-head); font-weight:700; font-size:14px; letter-spacing:1px; text-transform:uppercase;}
body.ymca .jobs{display:flex; flex-direction:column; gap:14px;}
body.ymca .job{--c:var(--y-blue); display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; background:#fff; border-radius:16px; box-shadow:var(--shadow); padding:22px 26px 22px 28px; border-left:6px solid var(--c); transition:all .18s ease;}
body.ymca .job:hover{transform:translateY(-2px); box-shadow:var(--shadow-hover);}
body.ymca .job h3{font-size:22px; margin-bottom:8px;}
body.ymca .job h3 a{color:var(--y-purple-deep);}
body.ymca .job h3 a:hover{color:var(--y-blue);}
body.ymca .job-meta{display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; font-size:15px; color:var(--gray);}
body.ymca .job-meta span{display:inline-flex; align-items:center; gap:7px;}
body.ymca .job-meta svg{width:16px; height:16px;}
body.ymca .jt{font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:1.2px; text-transform:uppercase; border-radius:999px; padding:4px 12px;}
body.ymca .jt.pt{background:#e7f5fc; color:var(--y-blue-deep);}
body.ymca .jt.ft{background:#e8f7f4; color:#017a6b;}
body.ymca .jdep{font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:1.2px; text-transform:uppercase; color:var(--c);}
body.ymca .job-act{display:flex; gap:12px; align-items:center;}
body.ymca .job-act .btn{padding:12px 22px; font-size:14px;}
body.ymca .job .feat{font-family:var(--font-head); font-weight:700; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; background:var(--y-gold); color:var(--ink); border-radius:6px; padding:3px 8px; margin-left:10px; vertical-align:3px;}
body.ymca .more-row{text-align:center; margin-top:26px;}
body.ymca .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; counter-reset:st;}
body.ymca .step{background:#fff; border-radius:var(--radius); padding:34px 30px 30px; box-shadow:var(--shadow); position:relative;}
body.ymca .step::before{counter-increment:st; content:counter(st); width:52px; height:52px; border-radius:50%; background:linear-gradient(140deg, var(--y-magenta), var(--y-purple)); color:#fff; font-family:var(--font-head); font-weight:700; font-size:24px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; box-shadow:0 8px 18px rgba(198,22,141,.3);}
body.ymca .step h3{font-size:23px; margin-bottom:8px;}
body.ymca .step p{font-size:16px; color:#4b4f57;}
body.ymca .step p a{font-weight:700;}
body.ymca .jhead{background:linear-gradient(120deg, var(--y-blue-deep), var(--y-blue)); color:#fff; padding:44px 0 58px;}
body.ymca .jhead .crumb,body.ymca .jhead .crumb a{color:rgba(255,255,255,.85);}
body.ymca .jhead .crumb span{color:rgba(255,255,255,.5);}
body.ymca .jhead h1{color:#fff; font-size:56px; margin-bottom:16px;}
body.ymca .jhead .job-meta{color:rgba(255,255,255,.92); font-size:16.5px; margin-bottom:26px;}
body.ymca .jhead .job-meta svg *{stroke:#fff;}
body.ymca .jhead .jt.pt{background:#fff;}
body.ymca .jbody{padding:64px 0 84px;}
body.ymca .jgrid{display:grid; grid-template-columns:1fr 400px; gap:64px; align-items:start;}
body.ymca .jcontent h2{font-size:30px; margin:34px 0 12px;}
body.ymca .jcontent h2:first-child{margin-top:0;}
body.ymca .jcontent p{margin-bottom:14px; color:#3b3e45;}
body.ymca .jcontent ul{padding-left:22px; margin-bottom:14px;}
body.ymca .jcontent li{margin-bottom:7px; color:#3b3e45;}
body.ymca .bonus{background:var(--tint-cream); border-left:6px solid var(--y-gold); border-radius:12px; padding:16px 20px; font-weight:700; margin-bottom:22px;}
body.ymca .jside{position:sticky; top:150px; background:#fff; border-radius:20px; box-shadow:var(--shadow-hover); padding:30px 30px 28px;}
body.ymca .jside h3{font-size:15px; letter-spacing:1.6px; text-transform:uppercase; color:var(--y-magenta); margin-bottom:14px;}
body.ymca .jside dl{margin-bottom:22px;}
body.ymca .jside dt{font-size:13px; letter-spacing:1.3px; text-transform:uppercase; color:var(--gray); font-weight:700;}
body.ymca .jside dd{font-family:var(--font-head); font-weight:700; font-size:18px; color:var(--y-purple-deep); margin-bottom:12px;}
body.ymca .jside .btn{width:100%; display:block; margin-bottom:12px;}
body.ymca .jside .help{font-size:14.5px; color:var(--gray); border-top:1px solid var(--line); padding-top:16px; margin-top:6px;}
body.ymca .jside .help a{font-weight:700;}
body.ymca .ev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
body.ymca .ev-card{--c:var(--y-purple); background:#fff; border-radius:18px; overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:all .18s ease; color:var(--ink);}
body.ymca .ev-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-hover);}
body.ymca .ev-card .im{height:230px; position:relative; overflow:hidden;}
body.ymca .ev-card .im img{width:100%; height:100%; object-fit:cover; transition:transform .45s ease;}
body.ymca .ev-card:hover .im img{transform:scale(1.06);}
body.ymca .ev-badge{position:absolute; left:16px; top:16px; width:74px; text-align:center; background:var(--y-purple-deep); color:#fff; border-radius:12px; padding:9px 4px 8px; font-family:var(--font-head); box-shadow:0 8px 18px rgba(0,0,0,.25);}
body.ymca .ev-badge .mo{font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--y-gold);}
body.ymca .ev-badge .dy{font-size:30px; font-weight:700; line-height:1.05;}
body.ymca .ev-badge .wd{font-size:11.5px; font-weight:500; letter-spacing:1px; text-transform:uppercase; opacity:.85;}
body.ymca .ev-card .cat{position:absolute; right:14px; bottom:14px; background:var(--c); color:#fff; font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:1.3px; text-transform:uppercase; padding:6px 13px; border-radius:999px;}
body.ymca .ev-card .bd{padding:22px 24px 24px; display:flex; flex-direction:column; flex:1;}
body.ymca .ev-card h3{font-size:23px; margin-bottom:10px;}
body.ymca .ev-card .ev-meta2{display:flex; flex-direction:column; gap:6px; font-size:15px; color:#4b4f57; font-weight:700; margin-bottom:12px;}
body.ymca .ev-card .ev-meta2 span{display:flex; align-items:center; gap:8px;}
body.ymca .ev-card .ev-meta2 svg{width:17px; height:17px; flex:none;}
body.ymca .ev-card p{font-size:15.5px; color:var(--gray); flex:1; margin-bottom:14px;}
body.ymca .ev-card .pg-go{color:var(--y-blue);}
body.ymca .viewsw{display:inline-flex; background:#eef1f6; border-radius:12px; padding:5px; gap:4px;}
body.ymca .viewsw a{font-family:var(--font-head); font-weight:700; font-size:13.5px; letter-spacing:1px; text-transform:uppercase; color:var(--gray); padding:9px 18px; border-radius:9px; display:inline-flex; align-items:center; gap:8px;}
body.ymca .viewsw a.on{background:#fff; color:var(--y-purple-deep); box-shadow:0 2px 8px rgba(35,31,32,.1);}
body.ymca .viewsw svg{width:16px; height:16px;}
body.ymca .blk-label{display:inline-block; font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:1.6px; text-transform:uppercase; color:#fff; background:var(--ink); border-radius:6px; padding:5px 10px; margin-bottom:18px;}
body.ymca .hub-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
body.ymca .hub-card{--c:var(--y-blue); position:relative; border-radius:20px; overflow:hidden; min-height:300px; display:flex; align-items:flex-end; box-shadow:var(--shadow); color:#fff;}
body.ymca .hub-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
body.ymca .hub-card:hover img{transform:scale(1.06);}
body.ymca .hub-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,14,34,0) 30%, rgba(20,14,34,.82) 100%);}
body.ymca .hub-card .hc{position:relative; z-index:2; padding:24px 26px 24px; width:100%;}
body.ymca .hub-card .hbar2{width:42px; height:5px; border-radius:3px; background:var(--c); margin-bottom:12px;}
body.ymca .hub-card h3{color:#fff; font-size:27px; margin-bottom:6px;}
body.ymca .hub-card p{font-size:15.5px; color:rgba(255,255,255,.9); line-height:1.5;}
body.ymca .age-row{display:grid; grid-template-columns:repeat(5,1fr); gap:18px;}
body.ymca .age-card{--c:var(--y-blue); background:#fff; border-radius:16px; padding:26px 22px 24px; box-shadow:var(--shadow); border-bottom:6px solid var(--c); transition:all .18s ease;}
body.ymca .age-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
body.ymca .age-card .ag{font-family:var(--font-head); font-weight:700; font-size:13px; letter-spacing:1.3px; text-transform:uppercase; color:var(--c); margin-bottom:6px; display:block;}
body.ymca .age-card h3{font-size:22px; margin-bottom:8px;}
body.ymca .age-card p{font-size:15px; color:#4b4f57;}
body.ymca .rates{width:100%; border-collapse:separate; border-spacing:0; background:#fff; border-radius:18px; overflow:hidden; box-shadow:var(--shadow);}
body.ymca .statband{background:linear-gradient(120deg, var(--y-purple-deep), var(--y-purple) 55%, var(--y-magenta)); color:#fff; border-radius:24px; padding:52px 56px; display:grid; grid-template-columns:auto 1fr auto; gap:48px; align-items:center;}
body.ymca .statband .n{font-family:var(--font-head); font-weight:700; font-size:76px; line-height:1; color:var(--y-gold);}
body.ymca .statband p{font-size:19px; color:rgba(255,255,255,.92); max-width:620px;}
body.ymca .statband p b{color:#fff;}
body.ymca .people{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
body.ymca .person{background:#fff; border-radius:18px; box-shadow:var(--shadow); overflow:hidden; text-align:center;}
body.ymca .person .ph{height:220px; background:linear-gradient(140deg, #eaf6fd, #f3edf9); display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:48px; color:var(--y-purple-deep);}
body.ymca .person .pb{padding:18px 18px 22px;}
body.ymca .person h3{font-size:21px; margin-bottom:4px;}
body.ymca .person span{font-size:14.5px; color:var(--gray);}
body.ymca .textsplit{display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center;}
body.ymca .textsplit img{width:100%; height:420px; object-fit:cover; border-radius:24px; box-shadow:var(--shadow-hover);}
body.ymca .textsplit h2{margin-bottom:14px;}
body.ymca .textsplit p{color:#3b3e45; margin-bottom:14px;}
body.ymca .pg-grid > .e-loop-item,body.ymca .ev-grid > .e-loop-item{display:flex;}
body.ymca .pg-grid > .e-loop-item > .pg-card,body.ymca .ev-grid > .e-loop-item > .ev-card{flex:1;}
body.ymca .leaflet-tile-pane{filter:saturate(.7) brightness(1.02);}
body.ymca .jobs-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
body.ymca .jobs-grid > .e-loop-item{display:flex;}
body.ymca .jobs-grid .job{flex:1; grid-template-columns:1fr; gap:16px; align-content:space-between;}
body.ymca .jobs-grid .job-act{padding-top:4px;}
body.ymca .jobs-grid .job-act .btn{padding:11px 20px; font-size:13.5px;}
@media (max-width:1280px){
body.ymca .pg-grid{grid-template-columns:repeat(3,1fr);}
body.ymca .map-grid{grid-template-columns:420px 1fr;}
body.ymca .here-grid{grid-template-columns:repeat(2,1fr);}
body.ymca .age-row{grid-template-columns:repeat(3,1fr);}
body.ymca .people{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:1024px){
body.ymca .f-row,body.ymca .f-row.f4{grid-template-columns:1fr 1fr;}
body.ymca .f-row .fld:first-child{grid-column:1 / -1;}
body.ymca .pg-grid,body.ymca .ev-grid{grid-template-columns:repeat(2,1fr);}
body.ymca .map-grid,body.ymca .jgrid,body.ymca .textsplit{grid-template-columns:1fr;}
body.ymca .map-box,body.ymca .jside{position:relative; top:0;}
body.ymca #ymap{height:440px;}
body.ymca .visit-card{grid-template-columns:1fr;}
body.ymca .vc-col{border-right:none; border-bottom:1px solid var(--line);}
body.ymca .tips,body.ymca .steps,body.ymca .hub-grid{grid-template-columns:1fr 1fr;}
body.ymca .statband{grid-template-columns:1fr; gap:22px; padding:40px 34px;}
body.ymca .jobs-grid,body.ymca .jobs-grid.jobs-3{grid-template-columns:1fr;}
}
@media (max-width:640px){
body.ymca .f-row,body.ymca .f-row.f4{grid-template-columns:1fr;}
body.ymca .pills{flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px;}
body.ymca .pill{flex:none;}
body.ymca .pg-grid,body.ymca .ev-grid,body.ymca .tips,body.ymca .steps,body.ymca .hub-grid,body.ymca .here-grid,body.ymca .age-row,body.ymca .people{grid-template-columns:1fr;}
body.ymca .job{grid-template-columns:1fr;}
body.ymca .job-act{flex-wrap:wrap;}
body.ymca .statband .n{font-size:54px;}
}

/* ---------- inner pages ----------
   Blocks used on the program, childcare, about, join and give pages. */
body.ymca .pghead.pghead-tall{padding-bottom:110px}
body.ymca .pghead.compact .pgh-grid{grid-template-columns:1fr}
body.ymca .pghead.compact .pgh-copy{max-width:860px}
body.ymca .pgh-cta{align-items:center}
body.ymca .pgh-link{font-family:var(--font-head);font-weight:700;font-size:14.5px;letter-spacing:1px;text-transform:uppercase;color:var(--y-blue);margin-left:6px}
body.ymca .pgh-link:hover{color:var(--y-blue-deep)}
body.ymca .crumb:empty{display:none}

body.ymca .bg-lav{background:var(--tint-lav)}
body.ymca .bg-sky{background:#eaf6fd}

/* Waves: a soft curve in the colour of the section above. */
body.ymca .has-wave{position:relative}
body.ymca .has-wave::before{content:"";position:absolute;inset:-1px 0 auto 0;width:auto;height:70px;opacity:1;border:0;border-radius:0;mix-blend-mode:normal;background:var(--wave-c,#fff);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C240,-10 480,70 760,45 C1040,20 1240,50 1440,25 L1440,0 L0,0 Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C240,-10 480,70 760,45 C1040,20 1240,50 1440,25 L1440,0 L0,0 Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;pointer-events:none;z-index:1}
body.ymca .wf-white{--wave-c:#fff}
body.ymca .wf-lav{--wave-c:var(--tint-lav)}
body.ymca .wf-sky{--wave-c:#eaf6fd}
body.ymca .wf-teal{--wave-c:var(--y-teal)}
body.ymca .section.has-wave{padding-top:110px}
body.ymca .has-wave > .wrap{position:relative;z-index:2}

body.ymca .sec-intro{max-width:760px;margin-bottom:34px}
body.ymca .sec-intro.center{text-align:center;margin:0 auto 44px}
body.ymca .sec-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
body.ymca .text-link{margin-top:18px}
body.ymca .text-link a,body.ymca .cta-link{font-family:var(--font-head);font-weight:700;font-size:14.5px;letter-spacing:1px;text-transform:uppercase}

body.ymca .text-block{max-width:860px}
body.ymca .text-block h2,body.ymca .ts-copy h2{margin-bottom:14px}
body.ymca .text-block p,body.ymca .ts-copy p{color:#3b3e45;margin-bottom:14px}
body.ymca .lead-block p{font-size:20.5px;line-height:1.6;color:var(--gray)}
body.ymca .textsplit.flip .ts-img{order:-1}
body.ymca .ts-img img{width:100%;height:420px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow-hover)}
body.ymca .sub-h{font-size:20px;margin:24px 0 10px}

body.ymca .check-list{margin:8px 0 18px}
body.ymca .check-list .ck-item{position:relative;padding-left:30px;margin-bottom:9px;font-weight:700;color:var(--ink)}
body.ymca .check-list .ck-item::before{content:"\2713";position:absolute;left:0;top:0;font-family:var(--font-head);font-weight:700;color:var(--y-teal)}
body.ymca .pv-copy p{font-size:18px;color:rgba(255,255,255,.93);margin-bottom:16px;max-width:720px}
body.ymca .pv-copy p a{color:#fff;text-decoration:underline}
body.ymca .pv-band.solo{grid-template-columns:1fr}
body.ymca .private .pv-list .pv-item a{color:#fff}

/* Tinted cards (Block C) */
body.ymca .lvl-grid.c2{grid-template-columns:repeat(2,1fr)}
body.ymca .lvl-grid.c3{grid-template-columns:repeat(3,1fr)}
body.ymca .lvl-grid.c4{grid-template-columns:repeat(4,1fr)}
body.ymca .lvl-card p:last-child{margin-bottom:0}
body.ymca div.lvl-card:hover{transform:none;box-shadow:var(--shadow)}
body.ymca .lvl-card p a{font-weight:700}

/* Duo blocks */
body.ymca .duo-purple{background:linear-gradient(150deg,var(--y-purple),var(--y-purple-deep))}
body.ymca .duo-teal{background:linear-gradient(150deg,var(--y-teal-light),var(--y-teal))}
body.ymca .duo-card .sec-btns{margin-top:4px}
body.ymca .duo-card p a{color:#fff;text-decoration:underline}
body.ymca .duo-purple .btn-white{color:var(--y-purple-deep)}
body.ymca .duo-teal .btn-white{color:#016a60}

/* Fact band */
body.ymca .fact .fi::before{content:"";width:28px;height:28px;background:#fff;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
body.ymca .fact .fact-t{font-family:var(--font-head);font-weight:700;font-size:19px;color:#fff;line-height:1.25}
body.ymca .fact .fact-s{font-size:15.5px;color:rgba(255,255,255,.85);max-width:300px}
body.ymca .fband .fi{background:rgba(255,255,255,.16)}

/* FAQ (Elementor accordion) */
body.ymca .ff-side .sec-btns{margin-top:22px}
body.ymca .ff-side .lead{margin-bottom:6px}
body.ymca .faq h2{margin-bottom:22px}
body.ymca .faq-list{display:block;width:auto;padding:0}
body.ymca .faq-item{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:18px 24px;margin-bottom:14px}
body.ymca .faq-q{font-family:var(--font-head);font-weight:700;font-size:18.5px;line-height:1.35;color:var(--y-blue-deep);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:0}
body.ymca .faq-q::-webkit-details-marker{display:none}
body.ymca .faq-q::after{content:"+";font-size:22px;color:var(--y-magenta);flex:none}
body.ymca .faq-item[open] .faq-q::after{content:"\2212"}
body.ymca .faq-a{padding:10px 0 0;min-width:0}
body.ymca .faq-a p{font-size:16px;color:var(--gray);margin-bottom:8px}
body.ymca .faq-a p:last-child{margin-bottom:0}
body.ymca .faq-item::details-content{transition:height .4s ease,content-visibility .4s allow-discrete;height:0;overflow:clip}
body.ymca .faq-item[open]::details-content{height:auto}
@supports (interpolate-size:allow-keywords){body.ymca{interpolate-size:allow-keywords}}

/* Closing band and related links */
body.ymca .swimcta p{max-width:760px;margin-left:auto;margin-right:auto}
body.ymca .swimcta .btn-white{color:#016a60}
body.ymca .cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
body.ymca .cta-link{display:inline-block;margin-top:20px;color:#fff;text-decoration:underline}

/* Rates (Block D) */
body.ymca .rates{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
body.ymca .rt-row{display:grid;grid-template-columns:repeat(3,1fr)}
body.ymca .rates.c2 .rt-row{grid-template-columns:1fr 1.4fr}
body.ymca .rates.c3 .rt-row{grid-template-columns:1.5fr 1fr 1fr}
body.ymca .rates.c4 .rt-row{grid-template-columns:1.3fr 1fr 1fr 1fr}
body.ymca .rt-cell{padding:16px 26px;font-size:17px;border-bottom:1px solid var(--line);margin:0}
body.ymca .rt-row:last-child .rt-cell{border-bottom:none}
body.ymca .rt-row:nth-child(odd):not(.rt-head) .rt-cell{background:#faf8fc}
body.ymca .rt-row .rt-cell:first-child{font-weight:700;color:var(--ink)}
body.ymca .rt-head .rt-cell{background:var(--y-purple-deep);color:#fff;font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:1.4px;text-transform:uppercase;padding:18px 26px;border-bottom:none}
body.ymca .rt-head .rt-cell:first-child{color:#fff}
body.ymca .rates-split{grid-template-columns:1fr 1.25fr;align-items:start}
body.ymca .rates-split .rt-row:not(.rt-head) .rt-cell:nth-child(2){font-family:var(--font-head);font-weight:700;font-size:21px;color:var(--y-purple-deep)}
body.ymca .rates-split .rt-row:not(.rt-head) .rt-cell:nth-child(3){color:var(--gray)}

/* Steps (Block E) */
body.ymca .steps.c1{grid-template-columns:1fr;max-width:760px}
body.ymca .steps.c2{grid-template-columns:repeat(2,1fr)}
body.ymca .steps.c4{grid-template-columns:repeat(4,1fr)}

/* People (Block G), contact cards, board directory */
body.ymca .person .ph{margin:0}
body.ymca .person .pb{text-align:left;padding:20px 22px 24px}
body.ymca .person .role{font-size:14.5px;font-weight:700;color:var(--y-magenta);margin-bottom:10px}
body.ymca .person .pb p{font-size:15px;color:#4b4f57;margin-bottom:10px}
body.ymca .person .pb p:last-child{margin-bottom:0}
body.ymca .contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-bottom:24px}
body.ymca .contact-card{--c:var(--y-blue);background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:26px 24px;border-top:6px solid var(--c)}
body.ymca .contact-card h3{font-size:21px;margin-bottom:8px}
body.ymca .contact-card p{font-size:15.5px;color:#4b4f57}
body.ymca .contact-card a{font-weight:700}
body.ymca .directory{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 48px}
body.ymca .dir-group h3{font-size:20px;margin-bottom:14px;padding-bottom:10px;border-bottom:3px solid var(--y-gold)}
body.ymca .dir-names{columns:2;column-gap:28px}
body.ymca .dir-item{font-size:16px;margin-bottom:8px;break-inside:avoid}
body.ymca .dir-officers .dir-item{font-weight:700}

/* Here cards, tips, location and listing sections */
body.ymca .here-card.tone-blue{--t:#f0f8fe}
body.ymca .here-card.tone-magenta{--t:#fdf2f8}
body.ymca .here-card.tone-orange{--t:#fff5ea}
body.ymca .here-card.tone-teal{--t:#ecf9f7}
body.ymca .here-card.tone-purple{--t:#f5effb}
body.ymca .here-card{display:flex;flex-direction:column}
body.ymca .here-card .p-more{margin-top:auto}
body.ymca .tip .check-list{margin:6px 0 0}
body.ymca .tip p a{font-weight:700}
body.ymca .tips-sec{padding-bottom:20px}
body.ymca .big-quote-sec{padding:20px 0 40px}
body.ymca .big-quote{font-family:var(--font-head);font-weight:700;font-size:30px;line-height:1.35;color:var(--y-purple-deep);text-align:center;max-width:1060px;margin:0 auto}
body.ymca .finder-sec{position:relative;z-index:6;margin-top:-56px;padding-bottom:90px}
body.ymca .visit{position:relative;z-index:6;margin-top:-56px}
body.ymca .map-sec{padding-top:64px}
body.ymca .events-mini,body.ymca .news-mini{padding:10px 0 70px}
body.ymca .openings .roles{max-width:860px;margin:0 auto 34px;text-align:center}
body.ymca .openings .roles .check-list{display:inline-grid;grid-template-columns:repeat(2,auto);gap:4px 40px;text-align:left}
body.ymca .openings .roles p{color:var(--gray)}
body.ymca .ic-people::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19c.6-3.2 2.8-5 5.5-5s4.9 1.8 5.5 5'/%3E%3Ccircle cx='17' cy='9.5' r='2.4'/%3E%3Cpath d='M15.5 14.6c2.4.2 4.2 1.7 4.8 4.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19c.6-3.2 2.8-5 5.5-5s4.9 1.8 5.5 5'/%3E%3Ccircle cx='17' cy='9.5' r='2.4'/%3E%3Cpath d='M15.5 14.6c2.4.2 4.2 1.7 4.8 4.4'/%3E%3C/svg%3E")}
body.ymca .ic-calendar::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect height='16' rx='2' width='18' x='3' y='5'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M8 14.5l2.5 2.5L16 12'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect height='16' rx='2' width='18' x='3' y='5'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M8 14.5l2.5 2.5L16 12'/%3E%3C/svg%3E")}
body.ymca .ic-heart::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7.5-4.8-9.5-9.5C1.2 8.5 3.3 5 6.8 5c2 0 3.6 1 5.2 3 1.6-2 3.2-3 5.2-3 3.5 0 5.6 3.5 4.3 6.5-2 4.7-9.5 9.5-9.5 9.5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7.5-4.8-9.5-9.5C1.2 8.5 3.3 5 6.8 5c2 0 3.6 1 5.2 3 1.6-2 3.2-3 5.2-3 3.5 0 5.6 3.5 4.3 6.5-2 4.7-9.5 9.5-9.5 9.5z'/%3E%3C/svg%3E")}
body.ymca .ic-briefcase::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect height='13' rx='2' width='18' x='3' y='7'/%3E%3Cpath d='M9 7V5a2 2 0 012-2h2a2 2 0 012 2v2M3 12h18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect height='13' rx='2' width='18' x='3' y='7'/%3E%3Cpath d='M9 7V5a2 2 0 012-2h2a2 2 0 012 2v2M3 12h18'/%3E%3C/svg%3E")}
body.ymca .ic-star::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.6 5.4 5.9.8-4.3 4.1 1 5.9L12 16.4 6.8 19.2l1-5.9L3.5 9.2l5.9-.8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.6 5.4 5.9.8-4.3 4.1 1 5.9L12 16.4 6.8 19.2l1-5.9L3.5 9.2l5.9-.8z'/%3E%3C/svg%3E")}

/* ---------- accent tones ----------
   Cards, pills and map pins pick their accent colour from a tone class. */
body.ymca .tone-swim{--c:var(--c-swim)}
body.ymca .tone-sports{--c:var(--c-sports)}
body.ymca .tone-health{--c:var(--c-health)}
body.ymca .tone-arts{--c:var(--c-arts)}
body.ymca .tone-teens{--c:var(--c-teens)}
body.ymca .tone-community{--c:var(--c-community)}
body.ymca .tone-childcare{--c:var(--c-childcare)}
body.ymca .tone-camp{--c:var(--c-camp)}
body.ymca .tone-blue{--c:var(--y-blue)}
body.ymca .tone-magenta{--c:var(--y-magenta)}
body.ymca .tone-orange{--c:var(--y-orange)}
body.ymca .tone-teal{--c:var(--y-teal)}
body.ymca .tone-purple{--c:var(--y-purple)}
body.ymca .tone-purple-deep{--c:var(--y-purple-deep)}
body.ymca .tone-nashua{--c:var(--c-nashua)}
body.ymca .tone-merrimack{--c:var(--c-merrimack)}
body.ymca .tone-westwood{--c:var(--c-westwood)}
body.ymca .tone-sargent{--c:var(--c-sargent)}
body.ymca .pg-meta span{color:var(--c)}

/* Keyboard users open the desktop menus by tabbing into them. */
@media (min-width:1200px){
  body.ymca .nav-items > .nav-item:focus-within .drop,body.ymca .nav-items > .nav-item:focus-within .mega{display:block}
  body.ymca .nav-items > .nav-item:focus-within > a::before{opacity:1}
}

/* ---------- responsive ----------
   The approved designs are 1440px wide. Below that the layout steps down:
   1360 tighter menu, 1199 drawer menu, 1024 tablet, 767 phone, 480 small phone. */
@media (max-width:1360px){
  body.ymca .wrap{padding:0 36px}
  body.ymca .mainnav .wrap{gap:18px}
  body.ymca .nav-items{gap:clamp(16px,1.9vw,30px)}
  body.ymca .nav-items > .nav-item > a{font-size:15px}
  body.ymca .nav-cta .btn{padding:12px 20px;font-size:14px}
  body.ymca .logo img{height:48px}
  body.ymca .mega{padding:32px 34px 28px}
  body.ymca .mega-cols{gap:26px}
}

@media (max-width:1199px){
  body.ymca .mainnav .wrap{min-height:78px;gap:14px}
  body.ymca .logo img{height:46px}
  body.ymca .nav-cta{margin-left:auto}
  body.ymca .nav-toggle{display:inline-flex;align-items:center;gap:10px;padding:10px 4px 10px 8px;font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:var(--y-purple-deep)}
  body.ymca .nav-toggle::before{content:"";width:22px;height:16px;background:linear-gradient(currentColor,currentColor) 0 0/100% 2.5px no-repeat,linear-gradient(currentColor,currentColor) 0 50%/100% 2.5px no-repeat,linear-gradient(currentColor,currentColor) 0 100%/100% 2.5px no-repeat}
  body.ymca.nav-open .nav-toggle::before{background:linear-gradient(45deg,transparent 45%,currentColor 45%,currentColor 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,currentColor 45%,currentColor 55%,transparent 55%);width:18px;height:18px;margin:0 2px}

  body.ymca .nav-items{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:#fff;border-top:4px solid;border-image:linear-gradient(90deg,var(--y-purple-deep),var(--y-magenta) 45%,var(--y-blue)) 1;box-shadow:0 24px 48px rgba(35,31,32,.16);max-height:calc(100vh - var(--nav-top,140px));overflow-y:auto;overscroll-behavior:contain;padding:6px 0 24px}
  body.ymca.nav-open .nav-items{display:flex}
  body.ymca .nav-items > *{flex-shrink:0}
  body.ymca .nav-items > .nav-item{position:relative;border-bottom:1px solid var(--line)}
  body.ymca .nav-items > .nav-item.has-mega{position:relative}
  body.ymca .nav-items > .nav-item > a{display:block;padding:16px 70px 16px 36px;font-size:16px;white-space:normal}
  body.ymca .nav-items > .nav-item > a::before,body.ymca .nav-items > .nav-item.has-sub > a::after{content:none}
  body.ymca .sub-toggle{display:flex;align-items:center;justify-content:center;position:absolute;right:16px;top:4px;width:50px;height:50px;color:var(--y-blue)}
  body.ymca .sub-toggle::before{content:"";width:10px;height:10px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .2s ease}
  body.ymca .nav-item.open > .sub-toggle::before{transform:translateY(2px) rotate(-135deg)}

  body.ymca .nav-items > .nav-item:hover .drop,body.ymca .nav-items > .nav-item:hover .mega{display:none}
  body.ymca .nav-items > .nav-item.open .drop,body.ymca .nav-items > .nav-item.open .mega{display:block}
  body.ymca .drop,body.ymca .mega{position:static;left:auto;transform:none;width:auto;min-width:0;box-shadow:none;border:0;border-image:none;border-radius:0;background:var(--tint-lav);padding:18px 36px 22px}
  body.ymca .drop a{padding:9px 0;font-size:15.5px}
  body.ymca .drop a.d-all{margin-top:8px;padding-top:14px}
  body.ymca .mega-cols.c6,body.ymca .mega-cols.c2p{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 28px}
  body.ymca .mega-promo{display:none}
  body.ymca .mega-foot{flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:18px}

  body.ymca .nav-extra{display:flex;flex-wrap:wrap;gap:10px 22px;padding:22px 36px 0}
  body.ymca .nav-extra a{font-family:var(--font-head);font-weight:500;font-size:13px;letter-spacing:1.3px;text-transform:uppercase;color:var(--ink)}
  body.ymca .nav-extra .btn{flex:1 1 100%;color:#fff;padding:14px 20px;font-weight:700;font-size:15px;margin-top:6px}

  body.ymca .mega-cols{gap:22px}
  body.ymca .quick-grid{grid-template-columns:repeat(3,1fr)}
  body.ymca .prog-grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:1024px){
  body.ymca .wrap{padding:0 28px}
  body.ymca h1{font-size:46px}
  body.ymca h2{font-size:36px}
  body.ymca .lead{font-size:18.5px}
  body.ymca .utility .wrap{gap:18px}

  body.ymca .hero{height:560px}
  body.ymca .hero-content h1{font-size:46px}
  body.ymca .hero-scrim{background:linear-gradient(97deg,rgba(24,16,38,.9) 6%,rgba(24,16,38,.74) 44%,rgba(24,16,38,.36) 72%,rgba(24,16,38,.1) 100%)}
  body.ymca .hero-blur{-webkit-mask-image:linear-gradient(90deg,#000 40%,transparent 80%);mask-image:linear-gradient(90deg,#000 40%,transparent 80%)}

  body.ymca .quick{padding:60px 0 66px}
  body.ymca .section{padding:68px 0}
  body.ymca .sec-news,body.ymca .sec-wave{padding-top:90px}
  body.ymca .memband{padding:68px 0}
  body.ymca .mb-grid,body.ymca .impact-grid{grid-template-columns:1fr;gap:40px}
  body.ymca .mb-photo img{height:360px}
  body.ymca .impact .wrap{padding-top:76px;padding-bottom:72px}
  body.ymca .f-grid{grid-template-columns:1fr 1fr;gap:40px 36px}
}

@media (min-width:768px) and (max-width:1024px){
  body.ymca .news-grid{grid-template-columns:1fr;gap:20px}
  body.ymca .n-card{display:grid;grid-template-columns:260px 1fr}
  body.ymca .n-card .ni{height:auto;min-height:200px}
}

@media (max-width:767px){
  body.ymca{font-size:17px}
  body.ymca .wrap{padding:0 20px}
  body.ymca h1{font-size:36px}
  body.ymca h2{font-size:30px}
  body.ymca h3{font-size:20px}
  body.ymca .lead{font-size:17px}
  body.ymca .eyebrow{font-size:13px;letter-spacing:2px}

  body.ymca .alert-bar{font-size:13.5px}
  body.ymca .alert-bar .wrap{padding:9px 44px 9px 20px;text-align:left;justify-content:flex-start}
  body.ymca .alert-close{right:8px}
  body.ymca .utility .wrap{justify-content:space-between;gap:14px;padding-top:7px;padding-bottom:7px}
  body.ymca .utility .wrap > a{display:none}
  body.ymca .lang{margin-right:auto}

  body.ymca .mainnav .wrap{min-height:68px;gap:10px}
  body.ymca .logo img{height:40px}
  body.ymca .nav-cta{gap:8px}
  body.ymca .nav-cta .btn{padding:10px 16px;font-size:13px}
  body.ymca .nav-cta .btn-give{display:none}
  body.ymca .nav-items > .nav-item > a{padding:15px 64px 15px 20px}
  body.ymca .sub-toggle{right:6px}
  body.ymca .drop,body.ymca .mega{padding:16px 20px 20px}
  body.ymca .mega-cols.c6,body.ymca .mega-cols.c2p{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px}
  body.ymca .mega .mega-links a{line-height:1.5;margin-bottom:10px}
  body.ymca .nav-extra{padding:20px 20px 0}

  body.ymca .hero{height:auto;min-height:540px}
  body.ymca .hero-content{position:relative;inset:auto;min-height:540px;padding:56px 0 90px}
  body.ymca .hero-content .inner{padding-bottom:0}
  body.ymca .hero-content h1{font-size:40px}
  body.ymca .hero-content p.hlead{font-size:17.5px;margin-bottom:26px}
  body.ymca .hero-bg{object-position:62% bottom;transform:none}
  body.ymca .hero-scrim{background:linear-gradient(180deg,rgba(24,16,38,.55) 0%,rgba(24,16,38,.82) 55%,rgba(24,16,38,.9) 100%)}
  body.ymca .hero-blur{display:none}
  body.ymca .hero-ctas .btn{flex:1 1 auto}
  body.ymca .wave{height:44px}

  body.ymca .quick{padding:48px 0 54px}
  body.ymca .quick-head{margin-bottom:26px}
  body.ymca .quick-head p{font-size:17px}
  body.ymca .quick-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  body.ymca .q-card{padding:22px 10px 20px}
  body.ymca .q-card .q-ico{width:40px;height:40px;margin-bottom:10px}
  body.ymca .q-card h3{font-size:17px}

  body.ymca .section{padding:56px 0}
  body.ymca .sec-news,body.ymca .sec-wave{padding-top:76px}
  body.ymca .sec-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:28px}
  body.ymca .prog-grid,body.ymca .news-grid{grid-template-columns:1fr;gap:18px}
  body.ymca .p-card .pi{height:200px}

  body.ymca .memband{padding:56px 0}
  body.ymca .mb-photo img{height:260px;border-radius:18px}
  body.ymca .mb-ctas .btn,body.ymca .impact .btn{flex:1 1 auto}

  body.ymca .ev-row{grid-template-columns:72px 1fr;gap:14px 18px;padding:18px}
  body.ymca .ev-row > .btn{grid-column:1 / -1;justify-self:start}
  body.ymca .ev-date .dy{font-size:26px}
  body.ymca .ev-row h3{font-size:19px}
  body.ymca .ev-meta{gap:4px 14px;font-size:14.5px}

  body.ymca .impact .wrap{padding-top:64px;padding-bottom:60px}
  body.ymca .impact .tagline{font-size:19px}
  body.ymca .stats{gap:12px}
  body.ymca .stat{padding:18px 16px}
  body.ymca .stat .stat-num{font-size:30px}
  body.ymca .stat span{font-size:11.5px;letter-spacing:1.2px}

  body.ymca .footer .wrap{padding-top:52px}
  body.ymca .f-grid{grid-template-columns:1fr 1fr;gap:34px 22px;padding-bottom:36px}
  body.ymca .f-brand,body.ymca .f-news{grid-column:1 / -1}
  body.ymca .f-bottom{flex-direction:column;gap:10px}
  body.ymca .f-bottom a{margin:0 18px 0 0}

  body.ymca .site-search{padding:18px 0}
  body.ymca .site-search .btn{padding:0 18px}
}

@media (max-width:480px){
  body.ymca .hero-content h1{font-size:36px}
  body.ymca .nav-cta .btn{padding:9px 13px}
}

@media (max-width:360px){
  body.ymca .mega-cols.c6,body.ymca .mega-cols.c2p{grid-template-columns:1fr}
}

@media (max-width:782px){
  body.ymca.admin-bar .elementor-location-header{top:calc(46px - var(--ya-h,0px))}
}

@media (max-width:600px){
  body.ymca.admin-bar .elementor-location-header{top:calc(var(--ya-h,0px) * -1)}
}

/* ---------- inner pages: tablet and phone ---------- */
@media (max-width:1280px){
  body.ymca .pgh-grid{grid-template-columns:1fr 440px;gap:56px}
  body.ymca .pghead h1{font-size:54px}
  body.ymca .lvl-grid,body.ymca .lvl-grid.c4{grid-template-columns:repeat(3,1fr)}
  body.ymca .contact-grid{grid-template-columns:repeat(2,1fr)}
  body.ymca .steps.c4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1024px){
  body.ymca .pgh-grid{grid-template-columns:1fr;gap:34px}
  body.ymca .pgh-img img{height:320px}
  body.ymca .pghead h1{font-size:46px}
  body.ymca .pghead .tag{font-size:21px}
  body.ymca .facts{gap:28px 48px;justify-content:flex-start}
  body.ymca .lvl-grid,body.ymca .lvl-grid.c3,body.ymca .lvl-grid.c4{grid-template-columns:repeat(2,1fr)}
  body.ymca .duo{grid-template-columns:1fr}
  body.ymca .pv-band{grid-template-columns:1fr;gap:40px}
  body.ymca .pv-photo img{height:340px}
  body.ymca .ff-grid{grid-template-columns:1fr;gap:34px}
  body.ymca .rates-split{grid-template-columns:1fr}
  body.ymca .directory{grid-template-columns:1fr}
  body.ymca .ts-img img{height:340px}
  body.ymca .textsplit.flip .ts-img{order:0}
  body.ymca .big-quote{font-size:25px}
  body.ymca .private{padding:96px 0 84px}
  body.ymca .fac-faq{padding:96px 0 80px}
  body.ymca .swimcta{padding:96px 0 84px}
}
@media (max-width:767px){
  body.ymca .pghead{padding:36px 0 52px}
  body.ymca .pghead.pghead-tall{padding-bottom:96px}
  body.ymca .pghead h1{font-size:36px}
  body.ymca .pghead .tag{font-size:19px}
  body.ymca .pgh-img img{height:240px;border-radius:18px}
  body.ymca .pgh-cta .btn{flex:1 1 auto}
  body.ymca .facts{flex-direction:column;gap:18px;padding:28px 0}
  body.ymca .lvl-grid,body.ymca .lvl-grid.c2,body.ymca .lvl-grid.c3,body.ymca .lvl-grid.c4,body.ymca .lvl-grid.c5{grid-template-columns:1fr}
  body.ymca .lvl-card{padding:26px 22px 24px}
  body.ymca .duo-card{padding:32px 26px;flex-direction:column;align-items:flex-start}
  body.ymca .section.has-wave{padding-top:84px}
  body.ymca .has-wave::before{height:44px}
  body.ymca .lead-block p{font-size:18px}
  body.ymca .ts-img img,body.ymca .pv-photo img{height:260px}
  body.ymca .faq-item{padding:16px 18px}
  body.ymca .faq-q{font-size:17px}
  body.ymca .rt-cell{padding:12px 14px;font-size:15px}
  body.ymca .rt-head .rt-cell{padding:14px;font-size:12px;letter-spacing:1px}
  body.ymca .rates-split .rt-row:not(.rt-head) .rt-cell:nth-child(2){font-size:17px}
  body.ymca .contact-grid,body.ymca .steps.c2,body.ymca .steps.c4{grid-template-columns:1fr}
  body.ymca .dir-names{columns:1}
  body.ymca .big-quote{font-size:21px}
  body.ymca .openings .roles .check-list{grid-template-columns:1fr}
  body.ymca .related .wrap{gap:10px}
  body.ymca .finder-sec,body.ymca .visit{margin-top:-48px}
}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.ymca .q-card,body.ymca .p-card,body.ymca .n-card,body.ymca .ev-row,body.ymca .btn{transition:none}
}

/* ---------- Elementor editor ----------
   Show everything while editing and label the blocks the theme fills in. */
body.elementor-editor-active.ymca .reveal{opacity:1;transform:none}
body.elementor-editor-active.ymca .elementor-location-header{position:relative;top:auto}
body.elementor-editor-active.ymca .feed:not(:has(*)){display:block;min-height:120px;border:2px dashed #c9bfd6;border-radius:var(--radius);background:rgba(255,255,255,.6)}
body.elementor-editor-active.ymca .feed:not(:has(*))::after{content:attr(id);display:block;padding:46px 20px;text-align:center;font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray)}
