.fs-section {
  --fs-paper: #f4f2eb;
  --fs-ink: #151615;
  --fs-red: #f83a36;
  --fs-rule: #c9c7bf;
  color: var(--fs-ink);
  background: var(--fs-paper);
  padding-block: clamp(3.7rem, 7vw, 7.6rem);
  scroll-margin-block-start: 4rem;
}
.fs-inner {
  width: min(calc(100% - 2 * var(--fs-gutter, clamp(1.1rem, 5vw, 6rem))), 1440px);
  margin-inline: auto;
}
.fs-section *, .fs-gallery-dialog * { box-sizing: border-box; }
.fs-section :is(h2,h3,p,figure), .fs-gallery-dialog :is(figure,h2) { margin: 0; }
.fs-section h2 {
  font-size: clamp(2.5rem, 5.4vw, 6.2rem);
  line-height: 1.05;
  font-weight: 750;
  letter-spacing: -.064em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
:lang(ka) .fs-section h2 { line-height: 1.18; letter-spacing: -.048em; }
.fs-section :is(a,button), .fs-gallery-dialog button { -webkit-tap-highlight-color: transparent; }
.fs-section :is(a,button):focus-visible, .fs-gallery-dialog button:focus-visible {
  outline: 3px solid #127fc0;
  outline-offset: 3px;
}
.fs-section button, .fs-gallery-dialog button {
  font: inherit;
  color: inherit;
  border-radius: 0;
  cursor: pointer;
}
.fs-section svg, .fs-gallery-dialog svg { width: 1.22rem; height: 1.22rem; flex-shrink: 0; }
.fs-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: clamp(1rem, 4vw, 5rem);
  margin-bottom: clamp(1.75rem, 3.3vw, 4rem);
}
.fs-head p {
  max-width: 36ch;
  color: #53534f;
  font-size: clamp(.96rem, 1.04vw, 1.14rem);
  line-height: 1.65;
  text-wrap: pretty;
}
.fs-tiles {
  display: grid;
  grid-template-columns: 1.36fr 1fr 1fr;
  gap: clamp(.65rem, 1.7vw, 1.9rem);
}
.fs-tile {
  display: block;
  min-width: 0;
  padding: 0;
  background: none;
  border: 0;
  text-align: left;
}
.fs-tile-pic { display:block; position:relative; overflow:hidden; background:#252624; }
.fs-tile-pic img {
  display: block;
  width: 100%;
  height: clamp(12rem, 23vw, 24rem);
  object-fit: cover;
  transition: transform .55s ease;
}
.fs-expand {
  display: grid;
  place-items: center;
  position: absolute;
  top: .8rem;
  right: .8rem;
  width: 2.05rem;
  height: 2.05rem;
  background: rgb(18 18 18 / .72);
  color: #fff;
}
.fs-expand svg { width: 1.02rem; height: 1.02rem; }
.fs-tile-info {
  display: block;
  overflow-wrap: anywhere;
  padding: .9rem 0 1rem;
  border-bottom: 1px solid var(--fs-rule);
  font-weight: 650;
  font-size: clamp(1rem, 1.45vw, 1.55rem);
  letter-spacing: -.035em;
  line-height: 1.35;
}
.fs-photo-count, .fs-text-button span {
  font-family: ui-monospace, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  letter-spacing: .035em;
}
.fs-gallery-link { display: flex; align-items: center; flex-wrap:wrap; gap: .4rem 1.2rem; justify-content:space-between; padding-top:1.1rem; }
.club-press-entry { display:inline-flex; align-items:center; gap:.7rem; font-size:.94rem; font-weight:700; min-height:44px; text-decoration:underline; text-decoration-color:#f33232; text-underline-offset:.28em; }
.club-press-entry svg { width:1rem; }
.fs-text-button {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  min-height: 44px;
  border: 0;
  background: transparent;
  padding: .5rem .1rem;
}
.fs-text-button svg { width: 1rem; height: 1rem; }
.fs-text-button span { font-size: .75rem; color: #676763; }
.fs-team { background: #171817; color: #faf9f3; }
.fs-team .fs-head p { color: #c5c4bd; }
.fs-coaches {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.2vw, 2.45rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.fs-coach { min-width: 0; }
.fs-coach-copy { min-width:0; }
.fs-coach-pic {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #30312f;
}
.fs-coach-pic img { width: 100%; height: 100%; display: block; object-fit: cover; }
.fs-coach:nth-child(1) img { object-position: 44% 27%; }
.fs-coach:nth-child(2) img { object-position: 62% 66%; }
.fs-coach:nth-child(3) img { object-position: 66% 68%; }
.fs-coach img[src$="/amir.webp"] { object-position: 49% 27%; }
.fs-coach img[src$="/dima.webp"] { object-position: 50% 18%; }
.fs-coach-initial {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  background: linear-gradient(125deg, #353631, #242623);
  color: #d6d5c9;
  font-size: clamp(2.8rem, 6vw, 6rem);
  font-weight: 650;
  line-height: 1;
}
@media (min-width: 1120px) {
  .fs-coaches { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .fs-coach-pic { aspect-ratio: 4 / 4.6; }
}
.fs-coach-role {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-top: 1.25rem;
  color: #c8c7c1;
  font-size: .82rem;
  line-height: 1.5;
}
.fs-coach-role::before { content: ''; width: 1.3rem; height: 2px; background: var(--fs-red); flex: 0 0 auto; }
.fs-coach h3 {
  margin-top: .4rem;
  font-size: clamp(1.35rem, 2vw, 2.3rem);
  letter-spacing: -.045em;
  line-height: 1.26;
  font-weight: 650;
}
.fs-visit-grid {
  display: grid;
  grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr);
  gap: clamp(2.4rem, 6vw, 7.5rem);
  align-items: stretch;
}
.fs-prices {
  background: #eeece3;
  border-bottom: 1px solid #d5d2c7;
}
.fs-price-columns {
  display: grid;
  grid-template-columns: minmax(0,1.07fr) minmax(0,1fr);
  align-items: start;
  gap: clamp(1.25rem,3.8vw,4.5rem);
  margin-top: clamp(1.6rem,3.6vw,3.8rem);
}
.fs-price-classes { display: grid; gap: clamp(1.25rem,2.4vw,2.6rem); }
.fs-price-visit { margin-top:clamp(1.35rem,2.6vw,2.5rem); max-width:100%; padding-block:.65rem; line-height:1.35; }
.fs-price-group { min-width: 0; border-bottom: 1px solid #bdbbb0; }
.fs-price-group h3 {
  position: relative;
  padding: .85rem 1.2rem .85rem 1.55rem;
  background: #252623;
  color: #fbfaf4;
  font-size: clamp(1.05rem,1.55vw,1.5rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.fs-price-group h3::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--fs-red);
}
.fs-price-group table { width: 100%; border-collapse: collapse; background: #f9f8f2; }
.fs-price-group tbody tr + tr { border-top: 1px solid #dad7cb; }
.fs-price-group th[scope=row] { font-weight: 400; text-align: start; }
.fs-price-group th[scope=row], .fs-price-amount { padding: .78rem clamp(.85rem,1.5vw,1.55rem); vertical-align: middle; }
.fs-price-name { display: block; font-size: clamp(.98rem,1.17vw,1.18rem); line-height: 1.35; font-weight: 650; }
.fs-price-terms, .fs-price-entry { display: block; margin-top: .18rem; color: #55574f; font-size: .84rem; line-height: 1.45; }
.fs-price-entry { margin-top: .04rem; }
.fs-price-amount { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fs-price-number { font: italic 900 clamp(1.8rem,2.7vw,2.65rem)/1 var(--display); }
.fs-price-currency { color: #44453e; font-size: .96rem; font-weight: 650; }
@media (max-width: 760px) {
  .fs-price-columns { grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
  .fs-price-classes { gap: 1.4rem; }
}
@media (max-width: 420px) {
  .fs-price-visit { width:100%; justify-content:space-between; }
  .fs-price-group h3 { padding: .74rem .85rem .74rem 1.05rem; }
  .fs-price-group th[scope=row], .fs-price-amount { padding: .72rem .7rem; }
  .fs-price-amount { padding-left: .25rem; }
}
.fs-apps { background: #17181a; color: #f6f4ed; }
.fs-app-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(2rem, 3.6vw, 3.6rem);
  border-top: 1px solid #4c4d4f;
}
.fs-app {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: clamp(1.75rem, 3vw, 3rem);
  padding-right: clamp(1.5rem, 4vw, 4.5rem);
}
.fs-app + .fs-app {
  border-left: 1px solid #4c4d4f;
  padding-right: 0;
  padding-left: clamp(1.5rem, 4vw, 4.5rem);
}
.fs-app-identity { display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.7rem); }
.fs-app-identity img {
  width: clamp(4rem, 6vw, 5rem); height: auto; aspect-ratio: 1;
  border-radius: 22%; border: 1px solid #ffffff24;
}
.fs-app-identity h3 {
  font-family: Barlow, Arial, sans-serif; font-size: clamp(1.9rem, 3.3vw, 3.35rem);
  letter-spacing: -.04em; line-height: 1.1;
}
.fs-app p {
  max-width: 48ch;
  margin-block: 1.2rem clamp(1.5rem, 2.4vw, 2.25rem);
  color: #d1d1cd; font-size: clamp(.98rem, 1.16vw, 1.13rem); line-height: 1.65;
}
.fs-app-platforms { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.3rem; margin-top: auto; }
.fs-app-download {
  display: inline-flex; gap: 1.05rem; align-items: center; min-height: 52px;
  background: #f4f2eb; color: #19191a; padding: .55rem 1rem;
}
.fs-app-download:hover { background: #fff; }
.fs-app-download span { display: grid; gap: .1rem; }
.fs-app-download small { font-size: .72rem; line-height: 1.25; }
.fs-app-download strong { font: 700 1.15rem/1.1 Barlow, Arial, sans-serif; }
.fs-app-download svg { width: .93rem; height: .93rem; }
.fs-app-ios { color: #c5c5c2; font-size: .9rem; line-height: 1.4; }
@media (max-width: 760px) {
  .fs-app-grid { grid-template-columns: minmax(0, 1fr); }
  .fs-app, .fs-app + .fs-app { padding: 1.6rem 0; }
  .fs-app + .fs-app { border-left: 0; border-top: 1px solid #4c4d4f; padding-bottom: 0; }
}
.fs-visit-info { display: flex; flex-direction: column; align-items: flex-start; }
.fs-first-visit { background:#f4f2eb; border-bottom:1px solid var(--fs-rule); }
.visit-layout { display:grid; align-items:start; grid-template-columns:minmax(0,1fr) minmax(0,.82fr); gap:clamp(2rem,7vw,7rem); }
.visit-intro h2 { max-width:13ch; }
.visit-intro p,.visit-receipt p { color:#52534e; line-height:1.6; }
.visit-intro p { max-width:39ch; margin-top:1.1rem; }
.visit-panel { border-top:3px solid #c42a25; padding-top:clamp(1.15rem,2.6vw,2.2rem); }
#visit-form { display:grid; grid-template-columns:minmax(0,1fr); }
#visit-form label { font-size:.95rem; font-weight:650; margin-bottom:.42rem; }
#visit-form input:not([type=hidden]):not([hidden]) { font:inherit; font-size:1rem; min-height:48px; width:100%; min-width:0; margin:0 0 1.05rem; padding:.7rem .85rem; border:1px solid #93938a; border-radius:0; background:#fcfbf7; color:#171816; }
#visit-form input:focus-visible { outline:2px solid #216b91; outline-offset:2px; }
#visit-form .visit-submit { display:inline-flex; align-items:center; justify-content:space-between; gap:1.6rem; justify-self:start; min-height:48px; padding:.7rem 1.12rem; border:0; background:#be2423; color:white; font-weight:700; }
#visit-form .visit-submit:hover { background:#9c1e1d; }
#visit-form .visit-submit:disabled { cursor:wait; background:#64504e; }
.visit-submit span { font-size:1.2rem; }
.visit-panel .visit-error { margin-top:.9rem; color:#972921; line-height:1.5; }
.visit-panel a { text-decoration:underline; white-space:nowrap; }
.visit-panel a.visit-privacy { display:inline-flex; align-items:center; min-height:36px; width:fit-content; max-width:100%; font-size:.84rem; color:#55534d; white-space:normal; text-underline-offset:3px; }
.visit-receipt { padding:clamp(.5rem,2vw,1.6rem) 0; scroll-margin-top:2rem; }
.visit-receipt h3 { font-size:clamp(1.45rem,2.6vw,2rem); letter-spacing:-.025em; line-height:1.18; }
.visit-receipt p { margin-top:.7rem; }
.visit-check { display:grid; width:2.45rem; height:2.45rem; place-items:center; border:1px solid #908e83; margin-bottom:1rem; border-radius:50%; color:#2c5e3b; font-size:1.35rem; }
#visit-received:target[hidden] { display:block!important; }
.visit-panel:has(#visit-received:target) #visit-form { display:none; }
@media(max-width:760px){
  .visit-layout { grid-template-columns:minmax(0,1fr); gap:1.55rem; }
  .visit-intro h2 { max-width:none; }
}
.fs-visit-info address {
  margin: clamp(1.6rem, 3.3vw, 3.7rem) 0 1.2rem;
  font-style: normal;
  line-height: 1.5;
}
.fs-visit-info address span { display: block; font-size: clamp(1.12rem, 1.7vw, 1.85rem); font-weight: 650; letter-spacing: -.035em; }
.fs-visit-info address small { display: block; color: #555651; margin-top: .3rem; font-size: .96rem; }
.fs-phone, .fs-route {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-height: 44px;
  text-decoration: none;
}
.fs-phone { color: var(--fs-ink); font-size: 1rem; white-space: nowrap; }
.fs-route {
  justify-content: space-between;
  margin-top: clamp(1.3rem, 2.6vw, 2.8rem);
  padding: .9rem 1.1rem .9rem 1.25rem;
  gap: 2rem;
  background: var(--fs-ink);
  color: #fff;
  font-weight: 650;
  font-size: .95rem;
}
.fs-route svg { color: #ff514a; }
.fs-gallery-dialog {
  box-sizing: border-box;
  width: min(94vw, 71rem);
  max-width: calc(100vw - 1rem);
  max-height: 95vh;
  max-height: 95dvh;
  overflow: auto;
  padding: 0;
  border: 1px solid #4b4b46;
  margin: auto;
  background: #171817;
  color: #f8f7f1;
}
.fs-gallery-dialog::backdrop { background: rgb(10 11 10 / .90); }
.fs-gallery-inner { padding: clamp(.8rem, 2vw, 1.6rem); }
.fs-gallery-bar, .fs-gallery-controls { display:flex; align-items:center; gap:1rem; }
.fs-gallery-bar { justify-content:space-between; margin-bottom:.6rem; }
.fs-gallery-bar h2 { font-size: clamp(1.1rem, 2vw, 1.5rem); font-weight: 600; }
.fs-icon-button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: 1px solid #63635f;
}
.fs-gallery-stage img { display:block; width:100%; height:clamp(8rem,55vh,39rem); height:clamp(8rem,55dvh,39rem); object-fit:contain; background:#101110; }
.fs-gallery-caption { text-align:center; line-height:1.4; font-size:1rem; margin:.8rem 0 .4rem; }
.fs-gallery-controls { justify-content:center; }
.fs-photo-count { font-size:.8rem; color:#cfcec7; }
html:has(.fs-gallery-dialog[open]) { overflow: hidden; }
@media (hover:hover) {
  .fs-tile:hover img { transform:scale(1.04); }
  .fs-tile:hover .fs-expand { background: var(--fs-red); }
  .fs-text-button:hover, .fs-phone:hover { text-decoration:underline; text-underline-offset:.25em; }
  .fs-route:hover { background:#373834; }
  .fs-icon-button:hover { background:#393a37; }
}
@media (max-width: 780px) {
  .fs-head { display: grid; gap: .85rem; }
  .fs-head p { max-width: 53ch; }
  .fs-tiles { grid-template-columns: 1.1fr 1fr 1fr; }
  .fs-tile-pic img { height: clamp(10rem, 24vw, 13rem); }
  .fs-visit-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.3rem; }
}
@media (max-width: 580px) {
  .fs-section { padding-block: 3.25rem; }
  .fs-head { margin-bottom: 1.4rem; }
  .fs-section h2 { font-size: clamp(2.15rem, 8.25vw, 2.75rem); }
  .fs-tiles { grid-template-columns: repeat(2,minmax(0,1fr)); gap:.85rem; }
  .fs-tile:first-child { grid-column:1 / -1; }
  .fs-tile:first-child img { aspect-ratio: 1.92; height:auto; }
  .fs-tile:not(:first-child) img { aspect-ratio: 1.4; height:auto; }
  .fs-expand { width: 1.65rem; height: 1.65rem; right:.5rem; top:.5rem; }
  .fs-tile-info { padding:.58rem 0 .7rem; font-size:.96rem; gap:.2rem; }
  .fs-gallery-link { padding-top:.45rem; }
  .fs-coaches { grid-template-columns: 1fr; gap: 1rem; }
  .fs-coach { display:grid; grid-template-columns: minmax(6.25rem,37%) minmax(0,1fr); column-gap:1rem; align-content:center; padding-block-end:1rem; border-bottom:1px solid #42433e; }
  .fs-coach-pic, .fs-coach-copy { align-self:center; }
  .fs-coach-role { align-self:end; margin:0; font-size:.73rem; gap:.35rem; overflow-wrap:anywhere; }
  .fs-coach-role::before { width:.7rem; }
  .fs-coach h3 { align-self:start; margin-top:.25rem; font-size:clamp(1.22rem,4.45vw,1.65rem); }
  .fs-visit-grid { grid-template-columns: 1fr; gap:1.65rem; }
  .fs-visit-info address { margin:1.35rem 0 .4rem; }
  .fs-route { margin-top:1rem; }
}
@media (prefers-reduced-motion:reduce) {
  .fs-tile-pic img { transition:none; }
  .fs-tile:hover img { transform:none; }
}

