/* Shared responsive type and interaction scale. Loaded after component styles. */
@font-face {
 font-family:"BPG Mrgvlovani Caps 2010";
 src:url("bpg-mrgvlovani-caps-2010.ttf") format("truetype");
 font-style:normal;
 font-weight:400;
 font-display:swap;
}
/* The supplied caps font uses Mkhedruli characters, so do not uppercase them
   into modern Mtavruli code points. Keep long-form copy in the body font. */
html:lang(ka) .primary-navigation a,
html:lang(ka) .site-footer nav a,
html:lang(ka) .button,
html:lang(ka) .branch-switch button,
html:lang(ka) #main :is(h1,h2,h3,h4,h5,h6,.eyebrow,summary,label) {
 font-family:"BPG Mrgvlovani Caps 2010","Noto Sans Georgian",sans-serif !important;
 font-weight:400 !important;
 text-transform:none !important;
 letter-spacing:normal !important;
}
:root{--rf-title:clamp(2rem,1.5rem + 1.5vw,3rem);--rf-section-title:clamp(1.625rem,1.3rem + 1vw,2.125rem);--rf-card-title:clamp(1.125rem,1rem + .35vw,1.375rem);--rf-copy:1rem;--rf-lead:clamp(1rem,.94rem + .2vw,1.125rem)}
body{font-size:var(--rf-copy);line-height:1.6}
body.home,body:not(.home){--rf-section-space:clamp(32px,3.5vw,48px);--rf-heading-space:24px;--rf-card-gap:clamp(16px,2vw,24px)}
#main h1,#main h2,#main h3,#main h4{overflow-wrap:break-word;text-wrap:balance}
#main .eyebrow{font:600 .75rem/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
body:not(.home) #main .rf-page-hero{padding-block:32px;gap:32px}
body:not(.home) #main .rf-page-hero h1,body:not(.home) #main .rf-page-heading h1,body:not(.home) #main .rf-gallery-heading>div>h1{font:600 var(--rf-title)/1.16 var(--heading);letter-spacing:0;text-transform:none;margin:0 0 16px;max-width:30ch}
body:not(.home) #main .rf-page-heading{padding-top:32px;margin-bottom:24px}
#main .rf-lead{font-size:var(--rf-lead);line-height:1.65;max-width:68ch}
body:not(.home) #main .rf-page-hero .rf-lead{margin-bottom:0}
#main .rf-page-hero .rf-lead p{margin:0}
#main .rf-page-hero-copy>.button{margin-top:22px}
#main .rf-prose{font-size:1rem;line-height:1.7}
#main .rf-prose>p{max-width:72ch}
#main .rf-section-intro{font-size:1rem;line-height:1.65;max-width:72ch;padding-inline:0;margin-bottom:24px}
#main .section-heading h2,#main .membership>h2,#main .offers h2,#main .gallery h2,#main .rf-story h2,#main .rf-cta h2,#main .rf-faq h2,#main .rf-branch-details>h2,#main .rf-contact-section h2,#main .location-map h2{font:600 var(--rf-section-title)/1.2 var(--heading);white-space:normal;letter-spacing:0}
#main .rf-story h2,#main .rf-cta h2,#main .rf-faq h2{margin-bottom:16px}
body:not(.home) #main>.rf-page-hero+.membership{padding-top:28px}
#main .membership-tagline{font-size:1rem;line-height:1.6}
body.home #main .branch-switch,body:not(.home) #main .branch-switch{margin:20px auto 28px;max-width:390px;width:100%;padding:4px}
#main .branch-switch button{flex:1;min-height:44px;font-size:.875rem;padding:10px 14px}
#main .rf-membership-label{gap:16px;margin-bottom:20px}
#main .rf-membership-label h3{font:600 1.375rem/1.35 var(--body);text-transform:none}
#main .rf-membership-label span{font-size:.8125rem;line-height:1.5}
#main .rf-rate-card{padding:24px 20px}
#main .rf-rate-card h4{font:600 1.25rem/1.3 var(--body)}
#main .rf-rate-card .rf-rate-price{font:600 clamp(2.25rem,2rem + .8vw,2.875rem)/1.1 var(--heading);margin:16px 0 4px;font-variant-numeric:tabular-nums}
#main .rf-rate-price span{font:400 1.25rem var(--body)}
#main .rf-rate-card p{font-size:1rem;line-height:1.5;margin:16px 0 20px}
#main .rf-rate-card .rf-rate-fee{font-size:.8125rem;margin:0}
#main .rf-rate-disclosure summary{font-size:1rem;line-height:1.5;padding:16px 20px;min-height:56px}
#main .rf-rate-disclosure summary span{font-size:.8125rem;line-height:1.8}
#main .rf-rate-row{padding:20px;gap:20px}
#main .rf-rate-row h4{font-size:1.0625rem;line-height:1.4}
#main .rf-rate-row p{font-size:1rem;line-height:1.55}
#main .rf-rate-row .rf-rate-conditions{font-size:.875rem}
#main .rf-rate-row-price strong{font-size:1.625rem;font-variant-numeric:tabular-nums}
#main .trainer-info h3,#main .offer-copy h3,#main .rf-blog-copy h2,#main .rf-blog-copy h3{font:600 var(--rf-card-title)/1.35 var(--body);text-transform:none;letter-spacing:0}
body.home #main .trainer-info,body:not(.home) #main .trainer-info{padding:20px 16px}
#main .trainer-info p,#main .offer-copy p,#main .rf-blog-copy p,#main .benefits p{font-size:1rem;line-height:1.55}
#main .rf-trainer-branch{font-size:.875rem;line-height:1.5}
#main .benefits h2{font:600 .9375rem/1.4 var(--body)}
#main .offer-tagline{font-size:1.0625rem;line-height:1.5}
#main .rf-blog-meta{font-size:.8125rem;line-height:1.5}
#main .rf-gallery-intro,#main .rf-gallery-branch-copy{font-size:1rem;line-height:1.6}
body:not(.home) #main .rf-gallery-heading{padding-bottom:24px;margin-bottom:28px}
#main .rf-gallery-branch-heading h2{font:600 1.5rem/1.3 var(--heading)}
#main .location-card h3{font:600 1rem/1.4 var(--body)}
#main .location-card p,#main .location-card>a:not(.button){font-size:.9375rem;line-height:1.6;align-items:flex-start}
#main .location-card svg{flex-shrink:0;margin-top:4px}
#main .rf-faq summary{font:600 1.0625rem/1.5 var(--body)}
body:not(.home) #main .rf-faq details{padding-block:18px}
body:not(.home) #main .rf-contact-form label{font-size:1rem;margin-top:8px}
#main input,#main textarea,#main select{font-size:1rem;line-height:1.5}
#main .rf-filters{gap:12px}
#main .rf-filters label{display:flex;align-items:center;gap:12px;min-width:0}
#main .rf-filters select{min-height:44px;padding:8px 12px}
.button,#main .button,.header-join{font-size:.8125rem;line-height:1.25;min-height:44px;padding:12px 18px;white-space:normal;text-align:center}
.header-language-switcher-wrap{display:flex;flex:none}
.site-header .header-language-switcher{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--text);font:600 .8125rem/1.25 var(--body);letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.site-header .header-language-switcher::after{content:"";position:absolute;bottom:2px;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform var(--ease)}
.site-header .header-language-switcher:hover::after,.site-header .header-language-switcher:focus-visible::after{transform:scaleX(1)}
.site-header .header-language-switcher img{display:block;width:22px;height:16px;object-fit:cover;flex:none;border-radius:1px}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.site-header .primary-navigation a{font-size:.8125rem;line-height:1.4;padding-block:14px}
.site-header{gap:24px}
.site-footer>p{font-size:.875rem;line-height:1.6}
.social-links a{min-width:44px;min-height:44px}
.site-footer .social-links a{color:var(--gold)}
.site-footer .social-links a:is(:hover,:focus-visible,:active){color:#fff}
.rf-footer-socials{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px 20px}
.rf-footer-social-branch{display:flex;flex-direction:column;align-items:center;gap:2px}
.rf-footer-social-name{color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.4}
.rf-footer-social-branch .social-links{gap:2px}
#main .hero h1{font-size:clamp(2.5rem,6.3vw,5rem);line-height:1.08}
#main .hero>p{font-size:clamp(.875rem,.8rem + .25vw,1rem);line-height:1.6}
#main .branch-content h2{font-size:clamp(1.75rem,2.8vw,2.25rem);line-height:1.2}
#main .branch-content p{font-size:1rem;line-height:1.5}
@media(max-width:1024px){
 .site-header{height:80px;gap:16px}
 .site-header .header-language-switcher-wrap{margin-left:auto}
 .site-header .menu-toggle{display:flex;order:3;flex-direction:column;justify-content:center;gap:5px;padding:10px;width:44px;height:44px;flex-shrink:0;border:1px solid #bf933a70;background:#080909e6;border-radius:4px}
 .menu-toggle span{width:22px;height:2px;background:var(--gold);transition:transform .2s,opacity .2s}
 .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}
 .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
 .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}
 .site-header .primary-navigation{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;gap:0;padding:12px 20px;border:1px solid var(--border);border-radius:4px;background:#090a0a;box-shadow:0 12px 32px #0008;max-height:calc(100dvh - 100px);overflow-y:auto}
 .site-header .primary-navigation.is-open{display:flex}
 .site-header .primary-navigation a{font-size:1rem;min-height:44px;width:100%;padding:12px 4px}
 .home .hero-shell{padding-top:80px}
 #main .locations-grid{grid-template-columns:1fr 1fr;align-items:start}
 #main .location-map{grid-column:1/-1;grid-row:2;min-height:220px}
 #main .location-card:last-child{justify-self:start}
}
@media(max-width:760px){
 body:not(.home) #main .rf-page-hero,body:not(.home) #main .rf-page-heading{padding-top:24px}
 body:not(.home) #main .rf-page-hero{padding-bottom:24px}
 #main .rf-page-hero-photo,#main .rf-story-photo{height:auto;aspect-ratio:4/3}
 #main .rf-membership-label{align-items:flex-start;flex-direction:column;gap:4px}
 #main .rf-rate-card{padding:24px 16px}
 #main .rf-rate-row{padding:18px 16px;gap:16px;grid-template-columns:minmax(0,1fr) 100px}
 #main .rf-rate-row>.button{grid-column:1/-1}
 #main .rf-rate-disclosure summary{padding:16px}
 body:not(.home) #main>.rf-cta{padding:24px 20px;margin-top:12px}
 #main .hero-actions{flex-wrap:wrap;gap:12px}
 #main .hero-actions .button{min-width:0}
 #main .rf-branch-detail .hero-actions .button{flex-basis:100%}
 #main .rf-contact-form{padding:20px 16px}
 #main .rf-filters label{flex-wrap:wrap;width:100%;gap:8px}
 #main .rf-filters select{width:100%}
 #main .rf-branch-gallery-copy{min-height:0}
}
@media(max-width:600px){
 #main .rf-membership-grid{grid-template-columns:1fr}
 #main .rf-rate-badge{max-width:calc(100% - 28px);white-space:nowrap}
}
@media(max-width:480px){
 #main .trainer-grid{grid-template-columns:1fr 1fr}
 body.home #main .trainer-info,body:not(.home) #main .trainer-info{padding:16px 12px}
 #main .trainer-info h3{font-size:1.0625rem;overflow-wrap:anywhere}
 #main .trainer-info p{font-size:.9375rem}
 #main .trainer-info .button{padding-inline:8px;font-size:.75rem}
 #main .locations-grid{grid-template-columns:1fr;gap:24px}
 #main .location-map{grid-column:auto;grid-row:auto}
 #main .rf-rate-disclosure summary span{float:none;display:block;margin:4px 0 0 16px}
 .site-header{gap:10px}
 .site-header .header-language-switcher{gap:6px}
 #main .rf-gallery-branch-heading{flex-wrap:wrap;gap:12px}
}
@media(max-width:359px){#main .trainer-grid{grid-template-columns:1fr}#main .rf-rate-row{grid-template-columns:1fr}#main .rf-rate-row>.button{grid-column:auto}#main .rf-rate-row-price{display:flex;gap:12px;align-items:baseline}}
@media(prefers-reduced-motion:reduce){.menu-toggle span{transition:none}}
#main .rf-branch-detail h3{font:600 1.5rem/1.3 var(--heading);margin-bottom:12px}
#main .rf-branch-detail address{font-style:normal;font-size:1rem;line-height:1.6}
.site-footer .rf-footer-legal{max-width:none;margin:0;font-size:.875rem;font-weight:400;line-height:1.6;text-align:center;color:#858a92}
.rf-footer-legal>span{display:block}
.rf-footer-legal>span+span{margin-top:4px}
.site-footer .rf-footer-legal a,.site-footer .rf-footer-legal a:visited{color:inherit;font:inherit;text-decoration:none}
.site-footer .rf-footer-legal a:is(:hover,:focus-visible){color:#b7bbc1;text-decoration:underline;text-underline-offset:3px}
@media(max-width:480px){.site-footer .rf-footer-legal{font-size:.8125rem}}
