/* Readable type, printed controls, and the mobile navigation panel. */
:root{--text-body:16px;--text-secondary:14px;--text-caption:12px;--weight-body:600;--weight-control:800;--ease-out:cubic-bezier(.2,.7,.2,1)}
body{font-size:var(--text-body);font-weight:var(--weight-body)}
p{line-height:1.75}
.header nav{font-size:14px;font-weight:800;gap:24px}
.topline{font-size:12px;font-weight:600}
.hero-copy>p{font-size:17px;font-weight:600}
.eyebrow,.section-top .eyebrow,.price-intro>.eyebrow{font-size:12px;line-height:1.6;letter-spacing:1.5px;font-weight:800}
.section-top>p,.schedule-intro p{font-size:15px;font-weight:600;line-height:1.75}
.search{width:220px;min-height:46px}.search input{font-size:14px;font-weight:600}.search input::placeholder{color:#bcb7ac;opacity:1}
.chip{font-size:13px;font-weight:800;min-height:44px;padding:10px 15px}
.filter-bar{flex-wrap:wrap}.chips{gap:8px}
.card-content h3{font-size:27px}.card-content p{font-size:14px;font-weight:600;min-height:48px;color:#bdb9ae}.card-bottom>span{font-size:12px;font-weight:600;line-height:1.65}.card-badge{font-size:10px;line-height:1.4;font-weight:800;letter-spacing:.7px}
.card-bottom{align-items:flex-start;flex-wrap:wrap}.card-bottom>span{width:100%}
.card-bottom button,.show-all,.help-strip .text-link{font-size:13px;font-weight:800;min-height:44px}
.help-strip strong{font-size:16px;font-weight:800}.help-strip p{font-size:14px}.help-symbol{font-size:33px}
.text-link{font-size:14px;font-weight:800;min-height:44px;display:inline-flex;align-items:center}
.source-note,.source,.price-row .source{font-size:12px;font-weight:600;line-height:1.7}
.day{font-size:15px;font-weight:800;min-height:48px}
.schedule-section select,.saved-filter{font-size:13px;font-weight:800;min-height:48px}
.saved-filter b{font-size:12px}.schedule-heading{font-size:11px;font-weight:800;letter-spacing:1px}
.schedule-row,.schedule-heading{grid-template-columns:130px 1.4fr 1fr 195px}
.session-title h3{font-size:17px;font-weight:800;line-height:1.4}.session-title p{font-size:13px;font-weight:600;line-height:1.6}.session-coach{font-size:14px;font-weight:600;line-height:1.6}.session-time{font-size:31px}.session-time span{font-size:12px;line-height:1.5;font-weight:600}.schedule-bottom{font-size:12px;line-height:1.8}
.trainer-feature p{font-size:15px;font-weight:600}.trainer-feature .eyebrow,.trainer-list .eyebrow{font-size:11px;letter-spacing:1px}.trainer-detail{font-size:12px;line-height:1.7}.coach-phone{font-size:15px;font-weight:800}.trainer-list h3{font-size:21px;font-weight:800}.trainer-list p{font-size:13px;line-height:1.6}.coach-contact{font-size:13px;font-weight:800;min-height:44px;display:inline-flex;align-items:center}.trainer-credential>span{font-size:10px;letter-spacing:1px;line-height:1.6}.trainer-credential i{font-size:19px}
.price-intro p{font-size:15px}.price-table-head{font-size:11px;font-weight:800;letter-spacing:.7px}.price-row h3{font-size:26px}.price-row p{font-size:13px;line-height:1.65}.price-row>strong{font-size:40px}.price-row>span{font-size:24px}.price-row-gym .price-enquire{font-size:14px;line-height:1.8;font-weight:600}.price-row-gym a{font-weight:800}.price-row .source{min-height:28px;display:inline-flex;align-items:center}
.news-tag{font-size:11px;font-weight:800}.news-card>div>span{font-size:13px;line-height:1.6}.community-card>.eyebrow{font-size:11px}.community-card p{font-size:15px}.community-card>a{font-size:15px;font-weight:800}.contacts .eyebrow{font-size:11px}.contact-caption{font-size:15px}.map-link{font-size:14px;min-height:44px;display:inline-flex;align-items:center}.contact-hours{font-size:14px;line-height:1.75}.contact-hours strong{font-weight:800}.contact-phone{font-size:32px}.footer-top>span,.footer-top>a:last-child{font-size:13px}.footer-bottom p,.footer-bottom a{font-size:12px;line-height:1.8}
.dialog-note,#detail-content>p,.detail-meta{font-size:15px;font-weight:600;line-height:1.75}.field-label{font-size:13px;font-weight:800}textarea,#quiz-form select{font-size:16px;font-weight:600}.copy-status{font-size:13px}.dialog-actions .button{font-size:13px}.empty{font-size:15px;line-height:1.8}.toast{font-size:14px;font-weight:800}

/* A dry ink surface and a short press, rather than decorative arrows. */
.button,.button.small,.hero-actions .button,.book-small{min-height:50px;font-size:14px;font-weight:800;line-height:1.4;padding:14px 22px;border-radius:2px;isolation:isolate;position:relative;overflow:hidden;box-shadow:3px 3px 0 #0006;transform:skewX(-2deg);transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out),background-color .22s,color .22s,border-color .22s}
.button:before,.book-small:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/grunge-texture.webp') 50%/340px;opacity:.15;mix-blend-mode:multiply}
.button:after,.book-small:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:#ffffff24;transform:translateX(-105%) skewX(-12deg);transition:transform .35s var(--ease-out)}
.button:active,.button.small:active,.hero-actions .button:active,.book-small:active{transform:translate(2px,2px) skewX(-2deg);box-shadow:0 0 0 #0000}
.button.secondary{border-color:#958874;background:#191713}.button.secondary:before{mix-blend-mode:screen;opacity:.12}
.book-small{min-height:46px;font-size:13px;padding:11px 17px;border-color:#5e574b;color:#27231c;background:#eeebe3;box-shadow:2px 2px 0 #5c534847}
.book-small:before{opacity:.07}.button.small{font-size:13px;padding:12px 21px;min-height:46px}
.save-session{width:46px;min-height:46px;flex-shrink:0;font-size:25px;border-radius:2px;transition:background .2s,transform .16s var(--ease-out),border-color .2s}
.save-session:active{transform:scale(.9)}.save-session[aria-pressed=true]{background:#e4d0ba}
.chip,.day,.saved-filter{transition:transform .16s var(--ease-out),background-color .2s,border-color .2s,color .2s}.chip:active,.day:active,.saved-filter:active{transform:scale(.96)}
.card-bottom button{padding:9px 0;position:relative;border-bottom:2px solid #7f7567;transition:color .2s,border-color .2s,transform .16s}.card-bottom button:active{transform:translateY(2px)}
@media(hover:hover){.button:hover,.button.small:hover,.hero-actions .button:hover{transform:translateY(-3px) skewX(-2deg);box-shadow:5px 6px 0 #0005}.button:hover:after,.button:focus-visible:after,.book-small:hover:after{transform:translateX(0) skewX(0)}.book-small:hover{background:#26231e;color:#fff;border-color:#26231e;transform:translateY(-2px) skewX(-2deg);box-shadow:3px 4px 0 #5c53483d}.card-bottom button:hover{transform:translateX(3px)}.chip:hover,.day:hover{transform:translateY(-1px)}}
:is(button,a,input,select,textarea):focus-visible{outline:3px solid #ff9d59;outline-offset:5px}.schedule-section :is(button,a,select):focus-visible{outline-color:#9a3c0d}.button:disabled{opacity:.5;transform:none;box-shadow:none}

/* Native dialog keeps focus inside the textured navigation panel. */
html.menu-open,html.menu-open body{overflow:hidden;overscroll-behavior:none}
dialog.mobile-menu{position:fixed;inset:0 0 0 auto;margin:0;width:min(100%,540px);max-width:none;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid #5e4b34;border-radius:0;background:linear-gradient(135deg,#25180ded,#11100ee6 65%),url('assets/grunge-texture.webp') center/700px;color:#f4eee2;overflow:hidden;opacity:0;transform:translateX(35px);transition:opacity .22s ease,transform .3s var(--ease-out);box-shadow:-25px 0 80px #0006}
dialog.mobile-menu[open]{display:flex;flex-direction:column}
dialog.mobile-menu.is-open{opacity:1;transform:translateX(0)}
dialog.mobile-menu::backdrop{background:#0009;backdrop-filter:blur(7px)}
.menu-head{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-shrink:0;padding:calc(20px + env(safe-area-inset-top)) 28px 20px;border-bottom:1px solid #7c654244}
.menu-brand{display:flex;gap:13px;align-items:center}.menu-brand img{width:63px;height:63px;object-fit:contain;border-radius:50%}.menu-brand strong{display:block;font:600 32px/1 var(--display);letter-spacing:1px}.menu-brand span{display:block;margin-top:9px;font-size:10px;letter-spacing:2px;font-weight:800;color:#c1ad8c}
.menu-close{flex-shrink:0;position:relative;width:48px;height:48px;min-height:48px;padding:0;border:1px solid #7c6446;border-radius:2px;background:#37261b;color:#fff;transition:background .2s,transform .2s}
.menu-close span{position:absolute;left:12px;top:22px;width:23px;height:2px;background:#f5e7cd;transform:rotate(45deg)}.menu-close span:last-child{transform:rotate(-45deg)}.menu-close:hover{background:#6b351f;transform:rotate(5deg)}.menu-close:active{transform:scale(.93)}
.menu-body{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#95724b #19140f;padding:15px 30px calc(25px + env(safe-area-inset-bottom))}
.menu-links{display:flex;flex-direction:column}
.menu-links a{display:block;position:relative;padding:18px 0 17px;border-bottom:1px solid #7c65424d;opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .35s var(--ease-out),color .2s}
.mobile-menu.is-open .menu-links a{opacity:1;transform:translateY(0);transition-delay:calc(var(--menu-order,0)*45ms)}
.menu-links a:nth-child(2){--menu-order:1}.menu-links a:nth-child(3){--menu-order:2}.menu-links a:nth-child(4){--menu-order:3}.menu-links a:nth-child(5){--menu-order:4}
.menu-links a>span{display:inline-block;font:600 italic 40px/1.08 var(--display);letter-spacing:.2px;position:relative;transition:color .2s,translate .2s}
.menu-links a>small{display:block;font:600 12px/1.5 var(--body);color:#c6bba8;margin-top:7px}
.menu-links a:hover>span,.menu-links a:focus-visible>span,.menu-links a[aria-current]>span{color:#ff803d;translate:5px 0}.menu-links a[aria-current]:after{content:'';position:absolute;left:-5px;bottom:-3px;width:95px;height:7px;background:#ff732a;mask:url('assets/brush-stroke.png') center/100% 100%;-webkit-mask:url('assets/brush-stroke.png') center/100% 100%}
.menu-footer{padding-top:24px}.menu-address{font-size:13px;line-height:1.65;color:#e0d6c4}.menu-address strong{font-weight:800}.menu-address span{font-size:11px;display:block;color:#b9ad99;margin-top:5px}.mobile-menu .menu-book{width:100%;margin:20px 0 0;font-size:15px;min-height:52px}.menu-socials{display:flex;justify-content:space-between;gap:20px;margin-top:16px}.menu-socials a{font-size:12px;font-weight:800;min-height:44px;display:flex;align-items:center;border-bottom:1px solid #766346}.menu-socials a:hover{color:var(--orange)}
.menu-toggle-label{font:600 16px var(--display);letter-spacing:1.5px}.menu-toggle-icon{position:relative;width:23px!important;height:19px!important;display:block;flex-shrink:0}.menu-toggle-icon i{position:absolute;left:0;top:4px;width:23px;height:2px;background:#f4ede0;transition:transform .25s,top .25s}.menu-toggle-icon i:last-child{top:13px;width:17px}.menu-toggle[aria-expanded=true] .menu-toggle-icon i{top:8px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle-icon i:last-child{width:23px;transform:rotate(-45deg)}
@media(min-width:1001px) and (max-width:1150px){.header nav{font-size:13px;gap:16px}.brand{gap:7px}.brand-name{font-size:26px}.header-inner{gap:17px}.button.small{padding:12px 16px;font-size:12px}}
@media(max-width:1000px){.header nav{display:none!important}.header .menu-toggle{display:flex;align-items:center;justify-content:center;flex-direction:row;gap:13px;padding:10px 12px;border:1px solid #756248;min-height:46px;width:auto;background:#282018}.header .menu-toggle>span{width:auto;height:auto;background:none}.header-inner{height:90px}.header-cta{margin-left:auto}.menu-toggle:hover{background:#3d2b1d}.menu-toggle:active{transform:scale(.96)}.hero-copy>p{font-size:16px}.filter-bar{align-items:stretch}.search{width:100%}.schedule-row,.schedule-heading{grid-template-columns:110px 1.5fr 1fr;gap:18px}.session-coach,.schedule-heading span:nth-child(3){display:none}.schedule-heading span:last-child{grid-column:3}.session-actions{gap:8px}.trainer-grid{grid-template-columns:1fr}.trainer-list p{font-size:14px}.prices-layout{gap:38px}.news-grid{gap:25px}.section-top>p{max-width:280px}}
@media(max-width:600px){
 .container{width:calc(100% - 36px)}.topline .container{font-size:10px;height:34px}.topline a{font-weight:800}.header-inner{height:82px;justify-content:space-between}.header-cta{display:none}.brand{gap:9px}.brand img{width:57px;height:57px}.brand-name{font-size:27px}.brand-name small{font-size:7px;letter-spacing:.8px}.header .menu-toggle{min-height:46px;gap:11px;padding:10px 12px}.menu-toggle-label{font-size:16px}
 .hero,.hero-inner{min-height:710px}.hero-copy>p{font-size:16px;line-height:1.65;max-width:340px}.hero-actions{gap:23px;align-items:center;flex-wrap:wrap}.hero-actions .button{font-size:13px;padding:15px 18px;min-height:50px}.hero-actions .text-link{font-size:13px;min-height:44px}.hero .eyebrow{font-size:10px;letter-spacing:1px}.hero-bottom-note,.photo-label{font-size:8px;line-height:1.5;letter-spacing:.5px}.hero-stamp{bottom:70px}
 .section-top .eyebrow,.price-intro>.eyebrow{font-size:11px;letter-spacing:1px}.section-top h2{font-size:43px}.section-top>p,.schedule-intro p{font-size:15px;font-weight:600;line-height:1.75;max-width:none}.section-top{margin-bottom:26px}
 .chip{font-size:12px;font-weight:800;min-height:44px;padding:11px 12px}.chips{gap:8px}.filter-bar{gap:18px}.search{min-height:48px;padding:12px}.search input{font-size:16px}.search svg{width:20px;height:20px}
 .directions-grid{grid-template-columns:1fr;gap:18px}.direction-card{display:grid;grid-template-columns:42% minmax(0,1fr);min-height:278px}.card-visual{height:100%;min-height:278px}.card-visual>img{height:100%;object-position:center;object-fit:cover}.card-visual.gym>img{object-position:60% center}.card-badge{font-size:8px;letter-spacing:.5px;padding:6px;line-height:1.5;top:10px;left:8px}.card-overlay{font-size:24px;line-height:1.12;padding:30px 10px 30px}.concept-label{font-size:7px;letter-spacing:.3px;left:8px;right:auto;bottom:8px}.card-content{padding:21px 17px 14px;display:flex;flex-direction:column;min-width:0}.card-content h3{font-size:26px;line-height:1.2}.card-content p{font-size:14px;line-height:1.65;min-height:0;margin:12px 0 16px;color:#c7c1b6}.card-bottom{margin-top:auto;padding-top:13px;gap:7px}.card-bottom>span{font-size:12px;line-height:1.65;font-weight:600}.card-bottom button{font-size:13px;min-height:44px;font-weight:800}.show-all{font-size:13px;min-height:44px;margin-top:19px}
 .help-strip{display:grid;grid-template-columns:28px 1fr;gap:12px 13px}.help-symbol{font-size:32px;width:28px}.help-strip strong{font-size:15px;line-height:1.5}.help-strip p{font-size:13px;margin-top:5px}.help-strip .text-link{grid-column:2;margin:0;font-size:13px;min-height:44px;justify-self:start}
 .schedule-section .section-top h2{font-size:44px}.source-note{font-size:12px;line-height:1.7;margin-top:15px}.days{gap:6px}.day{font-size:14px;min-height:46px;padding:8px 0}.schedule-toolbar{gap:14px}.select-wrap{max-width:none;width:100%}.select-wrap select{font-size:14px;min-height:48px;width:100%;padding:12px}.saved-filter{font-size:13px;min-height:46px;padding:10px 14px}.saved-filter>span{font-size:23px}.saved-filter b{font-size:12px;padding:3px 7px}.schedule-row{grid-template-columns:75px minmax(0,1fr);gap:10px 15px;padding:23px 0}.session-time{font-size:31px}.session-time span{font-size:11px;line-height:1.5;max-width:75px}.session-title h3{font-size:16px;line-height:1.45;font-weight:800}.session-title p{font-size:13px;line-height:1.6;margin-top:5px}.session-actions{grid-column:2;gap:12px;justify-content:flex-start;margin-top:8px}.book-small{font-size:13px;min-height:46px;padding:12px 15px;max-width:165px}.save-session{width:46px;min-height:46px}.schedule-bottom{font-size:12px;line-height:1.75}.schedule-bottom a{min-height:44px;display:inline-flex;align-items:center;margin-top:10px}
 .trainer-feature{grid-template-columns:1fr}.trainer-feature .trainer-credential{display:grid;grid-template-columns:80px 1fr;grid-template-rows:auto auto;gap:4px 18px;padding:22px;transform:none;align-items:center}.trainer-credential strong{grid-column:1;grid-row:1/3;font-size:83px;line-height:1}.trainer-credential>span:first-child{grid-column:2;grid-row:1;align-self:end;font-size:11px}.trainer-credential>span:nth-child(3){grid-column:2;grid-row:2;align-self:start;font-size:13px;font-weight:800}.trainer-credential i{display:none}.trainer-feature>div{padding:26px 23px}.trainer-feature .eyebrow{font-size:11px;letter-spacing:1px}.trainer-feature h3{font-size:34px;margin:13px 0}.trainer-feature p{font-size:15px;line-height:1.75}.trainer-detail{font-size:12px;line-height:1.7}.coach-phone{font-size:16px;font-weight:800;margin-top:18px;min-height:44px;display:inline-flex;align-items:center}.trainer-list article{display:grid;grid-template-columns:43px minmax(0,1fr);gap:10px 15px;padding:24px 0}.coach-number{width:43px;height:50px;font-size:21px;grid-row:1/3;align-self:start}.trainer-list .eyebrow{font-size:11px}.trainer-list h3{font-size:20px;line-height:1.4;margin-top:5px}.trainer-list p{font-size:14px;line-height:1.65}.coach-contact{grid-column:2;margin-left:0;justify-self:start;font-size:13px;min-height:44px}
 .price-intro p{font-size:15px;line-height:1.75}.price-handwritten{float:none;margin-top:22px;font-size:23px}.price-table-head{display:none}.price-row{grid-template-columns:1fr 1fr;gap:14px 22px;padding:24px 0}.price-row>div{grid-column:1/-1}.price-row h3{font-size:27px}.price-row p{font-size:14px;margin-top:6px}.price-row>strong{grid-column:1;grid-row:2;font-size:37px;line-height:1.25}.price-row strong small{font-size:20px}.price-row>strong:before{content:'АБОНЕМЕНТ';display:block;font:800 10px/1.5 var(--body);letter-spacing:1px;color:#b7ac99;margin-bottom:6px}.price-row>span:not(.price-enquire){grid-column:2;grid-row:2;font-size:32px;line-height:1.25}.price-row>span:not(.price-enquire):before{content:'РАЗОВОЕ';display:block;font:800 10px/1.5 var(--body);letter-spacing:1px;color:#b7ac99;margin-bottom:6px}.price-row .source{grid-column:1/-1;grid-row:3;font-size:12px;min-height:36px;margin-top:0}.price-row-gym .price-enquire{grid-column:1/-1;grid-row:auto;font-size:14px;line-height:1.8}.price-row-gym .price-enquire a{font-size:16px;font-weight:800;display:inline-block;margin-top:6px}
 .news-card h3{font-size:29px}.news-card>div>span{font-size:13px;line-height:1.65}.news-tag{font-size:10px;padding:6px 9px}.community-card>.eyebrow{font-size:11px}.community-card h3{font-size:36px}.community-card p{font-size:15px;max-width:none}.community-card>a{font-size:15px;padding:16px 0}.contacts .eyebrow{font-size:11px}.contact-caption{font-size:15px}.contact-info h3{font-size:30px}.map-link{font-size:14px;min-height:44px}.contact-hours{font-size:13px;line-height:1.65}.contact-hours span{gap:12px;margin-bottom:13px}.contact-hours strong{white-space:nowrap}.contact-phone{font-size:30px}.footer-top>span,.footer-top>a:last-child{font-size:12px}.footer-bottom p,.footer-bottom a{font-size:12px;line-height:1.8}
 dialog:not(.mobile-menu){padding:35px 23px}dialog h2{font-size:34px}.dialog-note,#detail-content>p,.detail-meta{font-size:15px}.dialog-actions .button{font-size:14px;min-height:50px}.field-label{font-size:13px}textarea,#quiz-form select{font-size:16px}.copy-status{font-size:13px}.empty{font-size:14px}.toast{font-size:13px}
 .menu-head{padding:calc(17px + env(safe-area-inset-top)) 22px 17px}.menu-body{padding:7px 25px calc(20px + env(safe-area-inset-bottom))}.menu-links a{padding:15px 0 14px}.menu-links a>span{font-size:36px}.menu-links a>small{font-size:12px;margin-top:5px}.menu-footer{padding-top:21px}.menu-address{font-size:13px}.menu-address span{font-size:11px}.menu-head .menu-brand img{width:59px;height:59px}.mobile-menu .menu-book{font-size:15px;margin-top:17px;min-height:52px}.menu-socials{margin-top:12px}
}
@media(max-width:360px){.topline .container{font-size:9px}.brand img{width:51px;height:51px}.brand-name{font-size:25px}.brand-name small{font-size:6px}.header .menu-toggle{gap:8px;padding:10px}.menu-toggle-label{font-size:15px}.hero-actions{gap:15px}.hero-actions .button{padding:14px 15px;font-size:12px}.hero-actions .text-link{font-size:12px}.card-content{padding:19px 13px 13px}.card-content h3{font-size:24px}.card-visual{min-height:300px}.card-content p{font-size:14px}.session-actions{gap:9px}.book-small{font-size:12px;padding:11px 12px}.trainer-list h3{font-size:19px}.menu-body{padding-left:22px;padding-right:22px}.menu-links a>span{font-size:32px}.menu-brand strong{font-size:28px}.menu-brand img{width:53px!important;height:53px!important}.menu-head{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){dialog.mobile-menu,.menu-links a,.menu-toggle-icon i,.menu-close,.button,.book-small,.button:after,.book-small:after{transition:none!important;animation:none!important}.mobile-menu.is-open .menu-links a{transition-delay:0ms!important}.button:hover,.button.small:hover,.hero-actions .button:hover,.book-small:hover,.button:active,.book-small:active{transform:none}}
