  :root {
  --ink : #151713;--ink-2 : #242720;--paper : #f6f6f2;--white : #fff;--muted : #777b72;--line : #e1e3dc;--accent : #c8f169;--accent-dark : #a9d34b;--font-body : "DM Sans", Arial, sans-serif;--font-display : "Manrope", "DM Sans", sans-serif;--radius : 18px;--shadow : 0 18px 50px rgba(15, 18, 12, .09)
}
* {
  box-sizing : border-box
}
html {
  scroll-behavior : smooth;
  scroll-padding-top : 95px
}
body {
  margin : 0;
  background : var(--paper);
  color : var(--ink);
  font-family : var(--font-body);
  font-size : 16px;
  line-height : 1.65;-webkit-font-smoothing : antialiased
}
img {
  display : block;
  width : 100%;
  height : 100%;
  object-fit : cover
}
a {
  color : inherit;
  text-decoration : none
}
button, input, textarea, select {
  font : inherit
}
button, a,input, textarea, select {
  -webkit-tap-highlight-color : transparent
}
button {
  cursor : pointer
}
  a : focus-visible, button : focus-visible, input : focus-visible, textarea : focus-visible, select : focus-visible {
  outline : 3px solid #78a925;
  outline-offset : 4px
}
.container {
  width : min(1160px, calc(100% - 48px));
  margin-inline : auto
}
.skip-link {
  position : absolute;
  left : 12px;
  top : -80px;
  background : var(--accent);
  padding : 12px 18px;
  z-index : 200;
  color : var(--ink);
  font-weight : 700
}
  .skip-link : focus {
  top : 12px
}
.site-header {
  height : 84px;
  background : rgba(246, 246, 242, .96);
  position : sticky;
  top : 0;
  z-index : 100;
  border-bottom : 1px solid rgba(20, 22, 17, .07);
  backdrop-filter : blur(14px)
}
.header-inner {
  height : 100%;
  display : flex;
  align-items : center;
  justify-content : space-between;
  gap : 28px
}
.brand {
  display : inline-flex;
  align-items : center;
  gap : 10px;
  font : 800 21px var(--font-display);
  letter-spacing : -1px;
  white-space : nowrap
}
.brand-mark {
  display : grid;
  place-items : center;
  background : var(--accent);
  width : 36px;
  height : 36px;
  border-radius : 11px;
  font-size : 22px;
  color : var(--ink);
  font-style : italic
}
.brand-dot {
  color : #8dbb37
}
.site-nav {
  display : flex;
  align-items : center;
  gap : 29px
}
  .site-nav>a : not(.nav-cta) {
  font-size : 13px;
  font-weight : 700;
  color : #5c6057;
  transition : color .2s;
  position : relative
}
  .site-nav>a : not(.nav-cta) : hover, .site-nav>a.active {
  color : var(--ink)
}
  .site-nav>a.active : after {
  content : "";
  position : absolute;
  height : 3px;
  width : 16px;
  bottom : -12px;
  left : 0;
  background : var(--accent-dark);
  border-radius : 5px
}
.nav-cta {
  background : var(--ink);
  color : white;
  padding : 12px 16px;
  border-radius : 8px;
  font-size : 12px;
  font-weight : 700;
  transition : background .2s, transform .2s
}
  .nav-cta : hover {
  background : #35392f;
  transform : translateY(-1px)
}
.nav-cta span {
  color : var(--accent);
  margin-left : 8px
}
.menu-toggle {
  display : none;
  background : transparent;
  border : 0;
  padding : 8px
}
.menu-toggle span {
  display : block;
  width : 25px;
  height : 2px;
  background : var(--ink);
  margin : 5px;
  border-radius : 2px
}
.hero {
  min-height : 690px;
  position : relative;
  isolation : isolate;
  overflow : hidden;
  background : #20231e;
  color : white;
  display : flex;
  align-items : center
}
.hero-image, .hero-shade {
  position : absolute;
  inset : 0;
  z-index : -1
}
.hero-image {
  background-image : url("https://images.unsplash.com/photo-1534438327276-14e5300c3a48?auto=format&fit=crop&w=2200&q=90");
  background-position : center 44%;
  background-size : cover;
  transform : scale(1.02)
}
.hero-shade {
  background : linear-gradient(90deg, rgba(10, 12, 9,.88) 0%, rgba(10, 12, 9,.67) 46%, rgba(10, 12, 9,.12) 100%), linear-gradient(0deg, rgba(10, 12, 9,.34), transparent 45%)
}
.hero-content {
  padding-top : 55px;
  padding-bottom : 78px
}
.eyebrow {
  display : flex;
  align-items : center;
  gap : 10px;
  color : var(--accent);
  font-size : 10px;
  font-weight : 800;
  letter-spacing : 2.1px;
  text-transform : uppercase;
  margin : 0 0 23px
}
.eyebrow-line {
  display : inline-block;
  width : 26px;
  height : 2px;
  background : var(--accent)
}
h1, h2, h3, p {
  margin-top : 0
}
.hero h1, .page-hero h1 {
  font : 800 clamp(44px, 6.4vw, 82px)/1.06 var(--font-display);
  letter-spacing : -4px;
  margin : 0 0 23px;
  max-width : 820px
}
.hero h1 em, .page-hero h1 em, .section-title em, .cta-inner h2 em {
  color : var(--accent);
  font-style : normal
}
.hero-copy {
  max-width : 490px;
  color : #e1e3dc;
  font-size : 17px;
  line-height : 1.8;
  margin-bottom : 30px
}
.button-row {
  display : flex;
  flex-wrap : wrap;
  gap : 12px
}
.button {
  display : inline-flex;
  justify-content : center;
  align-items : center;
  gap : 14px;
  min-height : 49px;
  padding : 13px 20px;
  border : 1px solid transparent;
  border-radius : 8px;
  font-size : 12px;
  font-weight : 800;
  transition : transform .2s, background .2s, border-color .2s;
  line-height : 1.4
}
  .button : hover {
  transform : translateY(-2px)
}
.button-accent {
  background : var(--accent);
  color : var(--ink)
}
  .button-accent : hover {
  background : #d7ff82
}
.button-ghost {
  border-color : rgba(255, 255, 255, .48);
  color : white;
  background : rgba(255, 255, 255, .04)
}
  .button-ghost : hover {
  border-color : var(--accent)
}
.button-dark {
  background : var(--ink);
  color : white
}
  .button-dark : hover {
  background : #34382f
}
.button-small {
  min-height : 40px;
  padding : 10px 13px;
  font-size : 11px
}
.hero-footnote {
  display : flex;
  align-items : center;
  gap : 9px;
  font-size : 9px;
  letter-spacing : 1.8px;
  color : #d0d2ca;
  font-weight : 700;
  margin-top : 78px
}
.pulse-dot {
  width : 7px;
  height : 7px;
  border-radius : 50%;
  background : var(--accent);
  box-shadow : 0 0 0 5px rgba(200, 241, 105, .13)
}
.scroll-cue {
  position : absolute;
  bottom : 32px;
  right : max(24px, calc((100vw - 1160px)/2));
  width : 44px;
  height : 44px;
  border : 1px solid #ffffff72;
  border-radius : 50%;
  display : grid;
  place-items : center;
  font-size : 22px;
  color : white
}
.section-pad {
  padding : 100px 0
}
.intro-grid {
  display : grid;
  grid-template-columns : 1fr 1fr;
  gap : 100px;
  align-items : start
}
.eyebrow-dark {
  color : #72796a
}
.section-title {
  font : 800 clamp(34px, 4.3vw, 55px)/1.13 var(--font-display);
  letter-spacing : -2.4px;
  margin : 0
}
.section-title em {
  color : #7d9f39
}
.intro-text {
  max-width : 490px;
  padding-top : 21px
}
.lead {
  font : 700 21px/1.45 var(--font-display);
  letter-spacing : -.4px
}
  .intro-text>p : not(.lead), .contact-aside>p : not(.eyebrow) {
  color : #696e63;
  line-height : 1.9
}
.text-link {
  display : inline-flex;
  align-items : center;
  gap : 14px;
  font-size : 12px;
  font-weight : 800;
  border-bottom : 1px solid #a4b77b;
  padding : 7px 0;
  transition : gap .2s
}
  .text-link : hover {
  gap : 20px
}
.text-link span {
  color : #7b9e36
}
.section-dark {
  background : var(--ink);
  color : white
}
.heading-light .section-title {
  color : white
}
.heading-light .section-title em {
  color : var(--accent)
}
.section-heading {
  display : flex;
  align-items : end;
  justify-content : space-between;
  gap : 35px;
  margin-bottom : 44px
}
.heading-description {
  max-width : 385px;
  color : #777c72;
  font-size : 14px;
  line-height : 1.8;
  margin : 0 0 5px
}
.heading-light .heading-description {
  color : #b0b4a9
}
.text-link-light {
  color : white;
  border-color : #555a4d;
  margin-bottom : 8px;
  white-space : nowrap
}
.activity-grid {
  display : grid;
  grid-template-columns : repeat(4, 1fr);
  gap : 14px
}
.activity-card {
  position : relative;
  isolation : isolate;
  height : 300px;
  overflow : hidden;
  border-radius : 13px;
  background : #35382f
}
  .activity-card : after {
  content : "";
  position : absolute;
  inset : 0;
  z-index : 0;
  background : linear-gradient(0deg, rgba(5, 7,4, .87), transparent 62%)
}
.activity-card img {
  position : absolute;
  inset : 0;
  transition : transform .6s
}
  .activity-card : hover img {
  transform : scale(1.06)
}
.activity-number {
  position : absolute;
  z-index : 1;
  top : 17px;
  left : 17px;
  border : 1px solid #ffffff78;
  color : white;
  border-radius : 5px;
  padding : 3px 7px;
  font-size : 9px;
  letter-spacing : 1px
}
.activity-card-info {
  position : absolute;
  z-index : 1;
  left : 20px;
  right : 15px;
  bottom : 20px
}
.activity-card-info h3 {
  font : 800 23px var(--font-display);
  margin : 0 0 3px
}
.activity-card-info span {
  font-size : 11px;
  color : #d6d9d0
}
.activity-card-video {
  grid-column : span 2
}
.centers-preview {
  background : #f0f1eb
}
.center-card-grid {
  display : grid;
  grid-template-columns : repeat(3, 1fr);
  gap : 22px
}
.center-card {
  background : white;
  border-radius : 13px;
  overflow : hidden;
  border : 1px solid #e7e8e1;
  transition : transform .25s, box-shadow .25s
}
  .center-card : hover {
  transform : translateY(-5px);
  box-shadow : var(--shadow)
}
.center-card-image {
  height : 225px;
  position : relative;
  overflow : hidden;
  background : #d5d8cd
}
.center-card-image img {
  transition : transform .6s
}
  .center-card : hover .center-card-image img {
  transform : scale(1.04)
}
.card-index {
  position : absolute;
  top : 15px;
  left : 15px;
  background : var(--accent);
  border-radius : 5px;
  padding : 5px 9px;
  font-size : 9px;
  letter-spacing : 1px;
  font-weight : 800
}
.center-card-body {
  padding : 23px
}
.card-kicker {
  font-size : 9px;
  font-weight : 800;
  letter-spacing : 1.5px;
  color : #7d8e5a;
  margin : 0 0 8px
}
.center-card h3 {
  font : 800 21px/1.3 var(--font-display);
  letter-spacing : -.5px;
  margin : 0 0 10px
}
  .center-card-body>p : not(.card-kicker) {
  font-size : 12px;
  line-height : 1.75;
  color : #777b72;
  min-height : 42px
}
.center-card .text-link {
  margin-top : 5px
}
.feature-band {
  background : #d9f3a9;
  padding : 82px 0
}
.feature-grid {
  display : grid;
  grid-template-columns : .9fr 1.1fr;
  gap : 100px
}
.feature-band .eyebrow {
  color : #566a31
}
.feature-band .section-title {
  margin-bottom : 28px
}
.feature-band .section-title em {
  color : #657f2e
}
.feature-list>div {
  display : grid;
  grid-template-columns : 42px 1fr;
  gap : 17px;
  padding : 17px 0;
  border-bottom : 1px solid #a9c77b
}
  .feature-list>div : first-child {
  padding-top : 0
}
.feature-list>div>span {
  font-size : 11px;
  color : #637b37;
  font-weight : 800;
  padding-top : 5px
}
.feature-list h3 {
  font : 800 16px var(--font-display);
  margin : 0 0 3px
}
.feature-list p {
  font-size : 12px;
  color : #566044;
  margin : 0
}
.hours-strip-inner {
  display : grid;
  grid-template-columns : 1fr 1fr;
  gap : 100px;
  align-items : center
}
  .hours-strip-inner>div : last-child {
  max-width : 490px
}
.hours-strip-inner p {
  color : #676c62;
  font-size : 14px;
  line-height : 1.85
}
.small-note {
  font-size : 11px!important;
  color : #878b81!important;
  line-height : 1.7!important
}
.hours-strip .text-link {
  margin-top : 8px
}
.cta-section {
  background : #242720;
  color : white;
  text-align : center;
  padding : 88px 0
}
.cta-inner .eyebrow {
  justify-content : center
}
.cta-inner h2 {
  font : 800 clamp(36px, 5vw, 59px)/1.14 var(--font-display);
  letter-spacing : -2.6px;
  margin : 0 0 30px
}
.cta-inner .button-row {
  justify-content : center
}
.page-hero {
  position : relative;
  isolation : isolate;
  overflow : hidden;
  background : var(--ink);
  color : white;
  min-height : 400px;
  display : flex;
  align-items : center
}
.page-hero-dark {
  background : radial-gradient(ellipse at 80% 10%, #42483a 0%, transparent 42%), var(--ink)
}
.page-hero-inner {
  padding-top : 64px;
  padding-bottom : 60px;
  position : relative;
  z-index : 2
}
.page-hero h1 {
  font-size : clamp(43px, 5.8vw, 70px);
  margin-bottom : 18px
}
  .page-hero-inner>p : not(.eyebrow) {
  max-width : 550px;
  color : #c5c9bf;
  line-height : 1.8;
  margin : 0;
  font-size : 15px
}
.breadcrumb {
  display : flex;
  gap : 11px;
  align-items : center;
  margin-top : 35px;
  font-size : 10px;
  color : #aeb3a7
}
.breadcrumb a {
  color : var(--accent)
}
.page-hero-image {
  min-height : 450px
}
.page-hero-photo, .page-hero-overlay {
  position : absolute;
  inset : 0;
  z-index : -1
}
.page-hero-photo {
  background : url("https://images.unsplash.com/photo-1571902943202-507ec2618e8f?auto=format&fit=crop&w=2000&q=90") center/cover
}
.page-hero-overlay {
  background : linear-gradient(90deg, rgba(13, 15, 11, .9), rgba(13, 15, 11, .35))
}
.centers-map-section {
  padding-top : 85px
}
.map-shell {
  border-radius : 15px;
  overflow : hidden;
  border : 1px solid #dfe2d8;
  background : #e6e8df;
  margin-bottom : 42px
}
.leaflet-map {
  min-height : 390px;
  display : grid;
  place-items : center;
  position : relative;
  background : linear-gradient(135deg, #e9eee0, #d8e2d1)
}
.map-placeholder {
  text-align : center;
  padding : 40px 20px;
  max-width : 480px
}
.map-pin-icon {
  display : grid;
  place-items : center;
  margin : 0 auto 15px;
  background : var(--accent);
  width : 56px;
  height : 56px;
  border-radius : 50%;
  font-size : 29px
}
.map-placeholder h3 {
  font : 800 24px var(--font-display);
  margin : 0 0 8px
}
.map-placeholder p {
  font-size : 13px;
  color : #62695c;
  line-height : 1.8;
  margin-bottom : 20px
}
.map-legend {
  display : flex;
  justify-content : space-between;
  gap : 20px;
  padding : 13px 18px;
  background : white;
  font-size : 10px;
  color : #72776d
}
  .map-legend>span : first-child {
  display : flex;
  align-items : center;
  gap : 8px
}
.legend-dot {
  width : 8px;
  height : 8px;
  background : #d5a13c;
  border-radius : 50%
}
.centers-full-grid {
  align-items : stretch
}
  .centers-full-grid .center-card-body>p : not(.card-kicker) {
  min-height : 64px
}
.card-actions {
  display : flex;
  align-items : center;
  flex-wrap : wrap;
  gap : 16px;
  margin-top : 18px
}
.notice {
  background : #eff4e5;
  border-left : 3px solid #9abe52;
  padding : 15px 18px;
  color : #59614c;
  font-size : 12px;
  line-height : 1.8;
  margin : 30px 0 0
}
.notice strong {
  color : #30382a
}
.gallery-grid {
  display : grid;
  grid-template-columns : 1.15fr 1fr 1fr;
  grid-auto-rows : 245px;
  gap : 15px
}
.gallery-item {
  position : relative;
  padding : 0;
  border : 0;
  border-radius : 13px;
  overflow : hidden;
  background : #d6d9cf;
  text-align : left
}
  .gallery-item : after {
  content : "";
  position : absolute;
  inset : 0;
  background : linear-gradient(0deg, rgba(8, 10, 7,.72), transparent 55%);
  pointer-events : none
}
.gallery-item img {
  transition : transform .6s
}
  .gallery-item : hover img {
  transform : scale(1.05)
}
.gallery-tall {
  grid-row : span 2
}
.gallery-wide {
  grid-column : span 2
}
.gallery-label {
  position : absolute;
  z-index : 1;
  bottom : 18px;
  left : 19px;
  right : 19px;
  color : white;
  font-size : 13px;
  font-weight : 700;
  display : flex;
  justify-content : space-between;
  align-items : center
}
.gallery-label b {
  color : var(--accent);
  font-size : 18px
}
.trainer-grid {
  display : grid;
  grid-template-columns : repeat(3, 1fr);
  gap : 20px
}
.trainer-card {
  background : #20231e;
  border : 1px solid #393d34;
  border-radius : 13px;
  overflow : hidden
}
.trainer-card>img {
  height : 250px;
  object-position : center 30%
}
.trainer-card>div {
  padding : 22px
}
.trainer-card h3 {
  font : 800 20px var(--font-display);
  margin : 0 0 5px
}
  .trainer-card p : not(.card-kicker) {
  font-size : 12px;
  color : #c0c4ba;
  margin-bottom : 14px
}
.trainer-credential {
  display : block;
  border-top : 1px solid #41453c;
  padding-top : 13px;
  color : var(--accent);
  font-size : 10px;
  line-height : 1.7
}
.light-note {
  color : #a7ada0!important;
  margin-top : 20px
}
.lightbox {
  display : none;
  position : fixed;
  inset : 0;
  background : rgba(7, 8,6, .94);
  z-index : 300;
  align-items : center;
  justify-content : center;
  padding : 60px 8vw 80px
}
.lightbox.is-open {
  display : flex
}
.lightbox img {
  max-width : min(100%, 1100px);
  max-height : 80vh;
  width : auto;
  height : auto;
  object-fit : contain;
  border-radius : 8px
}
.lightbox button {
  position : absolute;
  background : transparent;
  border : 1px solid #ffffff60;
  color : white;
  width : 44px;
  height : 44px;
  border-radius : 50%;
  font-size : 30px;
  line-height : 1
}
.lightbox-close {
  top : 22px;
  right : 24px
}
.lightbox-prev {
  left : 22px;
  top : 50%
}
.lightbox-next {
  right : 22px;
  top : 50%
}
.lightbox-caption {
  position : absolute;
  bottom : 22px;
  left : 20px;
  right : 20px;
  text-align : center;
  color : white;
  font-size : 12px
}
.schedule-section {
  padding-top : 85px
}
.schedule-intro {
  display : flex;
  align-items : end;
  justify-content : space-between;
  gap : 30px;
  margin-bottom : 38px
}
.mode-switch {
  display : flex;
  padding : 5px;
  background : #e7e9e0;
  border-radius : 10px;
  gap : 4px
}
.mode-tab {
  border : 0;
  background : transparent;
  border-radius : 7px;
  padding : 12px 17px;
  font-size : 12px;
  font-weight : 800;
  color : #73786d
}
.mode-tab.is-active {
  background : var(--ink);
  color : white;
  box-shadow : 0 3px 8px #1619121c
}
.schedule-panel {
  display : none;
  background : white;
  border : 1px solid #e2e4dc;
  border-radius : 15px;
  padding : 30px;
  margin-bottom : 20px
}
.schedule-panel.is-visible {
  display : block;
  animation : fade-in .25s ease
}
.schedule-panel-head {
  display : flex;
  justify-content : space-between;
  align-items : center;
  border-bottom : 1px solid var(--line);
  padding-bottom : 24px;
  margin-bottom : 25px
}
.schedule-tag {
  display : inline-block;
  font-size : 9px;
  font-weight : 800;
  letter-spacing : 1.5px;
  border-radius : 4px;
  padding : 5px 8px;
  margin-bottom : 10px
}
.video-tag {
  background : #eaf5d5;
  color : #5b792b
}
.directed-tag {
  background : #e9eaf8;
  color : #5555a2
}
.schedule-panel-head h3 {
  font : 800 25px var(--font-display);
  margin : 0 0 4px
}
.schedule-panel-head p {
  font-size : 12px;
  color : #7b8075;
  margin : 0
}
.schedule-icon {
  display : grid;
  place-items : center;
  width : 48px;
  height : 48px;
  border-radius : 12px;
  background : var(--accent);
  font-size : 22px
}
.video-hours-grid {
  display : grid;
  grid-template-columns : 1fr 1fr;
  gap : 16px
}
.hours-card {
  padding : 24px;
  border-radius : 10px;
  background : #f4f6ee;
  display : flex;
  flex-direction : column;
  align-items : flex-start;
  gap : 9px
}
.hours-card-weekend {
  background : #252820;
  color : white
}
.hours-day {
  font-size : 10px;
  letter-spacing : 1.4px;
  font-weight : 800;
  color : #788067;
  margin-bottom : 8px
}
.hours-card-weekend .hours-day {
  color : var(--accent)
}
.hours-card strong {
  font : 800 23px var(--font-display);
  letter-spacing : -.7px
}
.hours-card p {
  font-size : 11px;
  color : #858a7e;
  margin : 7px 0 0
}
.hours-card-weekend p {
  color : #c1c5b9
}
.schedule-filters {
  display : flex;
  align-items : center;
  gap : 14px;
  flex-wrap : wrap;
  margin-bottom : 20px
}
.schedule-filters label {
  font-size : 12px;
  font-weight : 800
}
.schedule-filters select {
  background : #f6f7f2;
  border : 1px solid #dfe2d7;
  border-radius : 7px;
  padding : 10px 30px 10px 12px;
  color : var(--ink);
  font-size : 12px
}
.schedule-filters .small-note {
  margin : 0
}
.timetable-wrap {
  width : 100%;
  overflow-x : auto
}
.timetable {
  border-collapse : collapse;
  width : 100%;
  text-align : left
}
.timetable th {
  font-size : 10px;
  letter-spacing : 1px;
  text-transform : uppercase;
  color : #858a7f;
  padding : 13px 14px;
  background : #f6f7f2
}
.timetable td {
  padding : 16px 14px;
  border-bottom : 1px solid #eceee7;
  font-size : 13px
}
  .timetable tr : last-child td {
  border-bottom : 0
}
  .timetable td : first-child {
  width : 25%
}
.activity-pill {
  display : inline-block;
  padding : 5px 9px;
  border-radius : 5px;
  font-size : 10px;
  font-weight : 800
}
.cardio-pill {
  background : #e9f4d4;
  color : #58752a
}
.zumba-pill {
  background : #ffe7d8;
  color : #a24d20
}
.yoga-pill {
  background : #e9e8fb;
  color : #5753a0
}
.step-pill {
  background : #dff1f1;
  color : #2b7370
}
.discipline-grid {
  display : grid;
  grid-template-columns : repeat(4, 1fr);
  gap : 15px
}
.discipline-grid article {
  border : 1px solid #3b3f35;
  border-radius : 12px;
  padding : 23px
}
.discipline-symbol {
  display : grid;
  place-items : center;
  width : 42px;
  height : 42px;
  background : var(--accent);
  color : var(--ink);
  border-radius : 10px;
  font-size : 22px;
  margin-bottom : 24px
}
.discipline-grid h3 {
  font : 800 18px var(--font-display);
  margin : 0 0 8px
}
.discipline-grid p {
  font-size : 12px;
  line-height : 1.8;
  color : #b9bdb3;
  margin : 0
}
.contact-grid {
  display : grid;
  grid-template-columns : .8fr 1.2fr;
  gap : 90px;
  align-items : start
}
.contact-aside {
  position : sticky;
  top : 120px
}
.contact-aside .section-title {
  margin-bottom : 20px
}
  .contact-aside>p : not(.eyebrow) {
  font-size : 13px;
  margin-bottom : 35px
}
.contact-detail {
  display : flex;
  gap : 15px;
  align-items : flex-start;
  padding : 17px 0;
  border-top : 1px solid var(--line)
}
.contact-icon {
  display : grid;
  place-items : center;
  width : 38px;
  height : 38px;
  flex-shrink : 0;
  border-radius : 9px;
  background : #e7f3d4;
  font-size : 19px
}
.contact-detail h3 {
  font : 800 13px var(--font-display);
  margin : 0 0 3px
}
.contact-detail p {
  font-size : 12px;
  color : #777c71;
  margin : 0
}
.contact-social {
  display : flex;
  gap : 20px;
  margin-top : 22px
}
.contact-social a {
  font-size : 12px;
  font-weight : 800;
  border-bottom : 1px solid #b9c99c;
  padding-bottom : 5px
}
.contact-form-wrap {
  background : white;
  border : 1px solid #e3e5dd;
  border-radius : 15px;
  padding : 32px;
  box-shadow : 0 15px 40px rgba(23, 26, 19, .04)
}
.form-heading {
  display : flex;
  justify-content : space-between;
  gap : 15px;
  align-items : center;
  padding-bottom : 22px;
  border-bottom : 1px solid var(--line);
  margin-bottom : 23px
}
.form-step {
  font-size : 10px;
  letter-spacing : 1.3px;
  font-weight : 800
}
.form-required {
  font-size : 10px;
  color : #888d81
}
.form-row {
  display : grid;
  grid-template-columns : 1fr 1fr;
  gap : 17px
}
.form-field {
  margin-bottom : 18px;
  min-width : 0
}
.form-field>label {
  display : block;
  font-size : 11px;
  font-weight : 800;
  margin-bottom : 8px
}
.form-field label span, .checkbox-label b {
  color : #7e9f3e
}
.form-field input, .form-field select, .form-field textarea {
  width : 100%;
  background : #fafbf8;
  border : 1px solid #dfe2d9;
  border-radius : 7px;
  padding : 12px 13px;
  color : var(--ink);
  font-size : 12px;
  transition : border-color .2s;
  min-height : 45px
}
.form-field textarea {
  resize : vertical;
  min-height : 130px
}
  .form-field input : focus, .form-field select : focus, .form-field textarea : focus {
  outline : 0;
  border-color : #8eae4b;
  box-shadow : 0 0 0 3px #c8f16940
}
.form-field [aria-invalid="true"] {
  border-color : #c34f46
}
.field-error {
  display : block;
  color : #b83c34;
  font-size : 10px;
  min-height : 0;
  margin-top : 4px
}
  .field-error : empty {
  display : none
}
.privacy-field {
  margin-top : 2px
}
.checkbox-label {
  display : flex!important;
  gap : 10px;
  align-items : flex-start;
  font-weight : 500!important;
  line-height : 1.7
}
.checkbox-label input {
  width : 16px;
  height : 16px;
  min-height : 16px;
  margin : 3px 0 0;
  flex-shrink : 0;
  accent-color : #7c9d37
}
.checkbox-label span {
  font-size : 11px;
  color : #686d62
}
.checkbox-label a {
  font-weight : 800;
  text-decoration : underline;
  text-underline-offset : 3px
}
.form-submit {
  width : 100%;
  border : 0;
  margin-top : 4px
}
.form-status {
  margin : 14px 0 0;
  font-size : 12px;
  font-weight : 700
}
.form-status.is-error {
  color : #a43a32
}
.form-status.is-success {
  color : #527a21
}
.form-disclaimer {
  font-size : 10px;
  line-height : 1.7;
  color : #888d82;
  margin : 15px 0 0
}
.legal-note {
  background : #eff0e9
}
.legal-grid {
  display : grid;
  grid-template-columns : .8fr 1.2fr;
  gap : 90px
}
.legal-grid h3 {
  font : 800 16px var(--font-display);
  margin : 0 0 8px
}
.legal-grid p {
  font-size : 12px;
  color : #686e62;
  line-height : 1.9;
  margin : 0 0 25px
}
.site-footer {
  background : #11130f;
  color : #c4c8be;
  padding : 60px 0 0
}
.footer-grid {
  display : grid;
  grid-template-columns : 1.3fr .8fr 1fr 1fr;
  gap : 40px;
  padding-bottom : 45px
}
.brand-light {
  color : white
}
.footer-brand>p {
  font-size : 12px;
  color : #a0a599;
  margin : 18px 0 7px
}
.footer-brand .footer-location {
  color : #d0d4ca
}
.footer-title {
  font : 800 12px var(--font-display);
  color : white;
  margin : 7px 0 18px
}
  .footer-grid>div : not( : first-child)>a {
  display : block;
  width : max-content;
  max-width : 100%;
  font-size : 11px;
  color : #aeb3a8;
  margin : 10px 0;
  transition : color .2s
}
  .footer-grid a : hover {
  color : var(--accent)
}
.footer-grid p {
  font-size : 11px;
  color : #aeb3a8;
  margin : 9px 0
}
.footer-small {
  font-size : 10px!important;
  line-height : 1.7
}
.social-links {
  display : flex;
  gap : 13px;
  flex-wrap : wrap
}
.social-links a {
  font-size : 10px;
  color : var(--accent)
}
.footer-bottom {
  border-top : 1px solid #30332c;
  padding : 17px 0 20px;
  display : flex;
  justify-content : space-between;
  gap : 20px;
  font-size : 10px;
  color : #7f8578
}
@keyframes fade-in {
  from{opacity : 0;
  transform : translateY(5px)
}
to {
  opacity : 1;
  transform : translateY(0)
}
  }@media(max-width : 1000px) {
  .site-nav{gap : 17px
}
  .site-nav>a : not(.nav-cta) {
  font-size : 12px
}
.nav-cta {
  padding : 11px 12px
}
.activity-grid {
  grid-template-columns : repeat(3, 1fr)
}
.activity-card-video {
  grid-column : span 1
}
.feature-grid, .hours-strip-inner {
  gap : 55px
}
.contact-grid, .legal-grid {
  gap : 50px
}
.footer-grid {
  gap : 25px
}
  }@media(max-width : 800px) {
  .container{width : min(100% - 36px, 650px)
}
.site-header {
  height : 72px
}
.menu-toggle {
  display : block;
  z-index : 102
}
.site-nav {
  display : none;
  position : absolute;
  top : 71px;
  left : 0;
  right : 0;
  background : var(--paper);
  padding : 18px 24px 25px;
  border-bottom : 1px solid var(--line);
  box-shadow : 0 20px 24px #10130c12;
  align-items : stretch;
  gap : 0;
  flex-direction : column
}
.site-nav.is-open {
  display : flex
}
  .site-nav>a : not(.nav-cta) {
  padding : 13px 0;
  border-bottom : 1px solid #e4e6dd;
  font-size : 14px
}
  .site-nav>a.active : after {
  display : none
}
.site-nav .nav-cta {
  margin-top : 16px;
  text-align : center;
  padding : 14px
}
.hero {
  min-height : 650px
}
.hero-shade {
  background : linear-gradient(90deg, rgba(10, 12, 9,.85), rgba(10, 12, 9,.36)), linear-gradient(0deg, rgba(10, 12, 9,.45), transparent)
}
.hero h1 {
  letter-spacing : -2.6px
}
.hero-content {
  padding-top : 60px;
  padding-bottom : 75px
}
.hero-footnote {
  margin-top : 55px
}
.section-pad {
  padding : 75px 0
}
.intro-grid, .feature-grid, .hours-strip-inner, .contact-grid, .legal-grid {
  grid-template-columns : 1fr;
  gap : 30px
}
.intro-text {
  padding-top : 0;
  max-width : 650px
}
.section-heading {
  align-items : flex-start;
  flex-direction : column;
  gap : 18px
}
.heading-description {
  max-width : 550px
}
.activity-grid {
  grid-template-columns : repeat(2, 1fr)
}
.activity-card {
  height : 270px
}
.center-card-grid {
  grid-template-columns : 1fr 1fr
}
  .center-card : last-child {
  grid-column : span 2
}
  .center-card : last-child .center-card-image {
  height : 260px
}
.feature-grid {
  gap : 45px
}
.hours-strip-inner {
  gap : 22px
}
.page-hero {
  min-height : 370px
}
.page-hero h1 {
  letter-spacing : -2.6px
}
.gallery-grid {
  grid-template-columns : 1fr 1fr;
  grid-auto-rows : 220px
}
.gallery-tall {
  grid-row : span 1
}
.gallery-wide {
  grid-column : span 2
}
.trainer-grid {
  grid-template-columns : 1fr 1fr
}
  .trainer-card : last-child {
  grid-column : span 2
}
.schedule-intro {
  align-items : flex-start;
  flex-direction : column
}
.contact-aside {
  position : static
}
.footer-grid {
  grid-template-columns : 1fr 1fr
}
.discipline-grid {
  grid-template-columns : 1fr 1fr
}
  }@media(max-width : 540px) {
  .container{width : calc(100% - 32px)
}
    .brand {
    font-size : 19px
  }
.hero {
  min-height : 620px
}
.hero h1 {
  font-size : 44px;
  letter-spacing : -2px
}
.hero-copy {
  font-size : 14px
}
.button-row {
  align-items : stretch
}
.button-row .button {
  flex : 1 1 auto
}
.hero-footnote {
  font-size : 8px;
  letter-spacing : 1.2px;
  margin-top : 45px
}
.section-pad {
  padding : 62px 0
}
.section-title {
  font-size : 37px;
  letter-spacing : -1.8px
}
.activity-grid {
  gap : 10px
}
.activity-card {
  height : 220px;
  border-radius : 10px
}
.activity-card-info {
  left : 13px;
  bottom : 14px
}
.activity-card-info h3 {
  font-size : 18px
}
.activity-card-info span {
  font-size : 10px
}
.activity-number {
  top : 11px;
  left : 11px
}
.center-card-grid {
  grid-template-columns : 1fr;
  gap : 15px
}
  .center-card : last-child {
  grid-column : auto
}
  .center-card : last-child .center-card-image, .center-card-image {
  height : 220px
}
.center-card-body {
  padding : 20px
}
  .center-card-body>p : not(.card-kicker) {
  min-height : 0
}
.feature-band {
  padding : 62px 0
}
.cta-section {
  padding : 65px 0
}
.cta-inner h2 {
  font-size : 38px;
  letter-spacing : -1.8px
}
.page-hero {
  min-height : 355px
}
.page-hero h1 {
  font-size : 43px;
  letter-spacing : -2px
}
.page-hero-inner {
  padding-top : 50px;
  padding-bottom : 48px
}
  .page-hero-inner>p : not(.eyebrow) {
  font-size : 13px
}
.map-legend {
  flex-direction : column;
  gap : 5px
}
.leaflet-map {
  min-height : 330px
}
.card-actions {
  align-items : flex-start
}
.gallery-grid {
  grid-auto-rows : 175px;
  gap : 9px
}
.gallery-label {
  left : 12px;
  right : 12px;
  bottom : 12px;
  font-size : 11px
}
.trainer-grid {
  grid-template-columns : 1fr
}
  .trainer-card : last-child {
  grid-column : auto
}
.trainer-card>img {
  height : 260px
}
.mode-switch {
  width : 100%;
  display : grid;
  grid-template-columns : 1fr 1fr
}
.mode-tab {
  padding : 11px 8px;
  font-size : 10px
}
.schedule-panel {
  padding : 18px
}
.schedule-panel-head h3 {
  font-size : 22px
}
.schedule-panel-head p {
  font-size : 11px;
  max-width : 260px
}
.schedule-icon {
  width : 38px;
  height : 38px;
  flex-shrink : 0
}
.video-hours-grid {
  grid-template-columns : 1fr
}
.hours-card {
  padding : 20px
}
.hours-card strong {
  font-size : 21px
}
.schedule-filters {
  align-items : flex-start;
  flex-direction : column;
  gap : 7px
}
.schedule-filters select {
  width : 100%
}
.timetable thead {
  display : none
}
.timetable, .timetable tbody, .timetable tr, .timetable td {
  display : block;
  width : 100%
}
.timetable tr {
  border : 1px solid #e5e7df;
  border-radius : 8px;
  padding : 10px 13px;
  margin-bottom : 10px
}
.timetable tr[hidden] {
  display : none
}
.timetable td {
  border : 0;
  padding : 5px 0;
  font-size : 12px
}
  .timetable td : first-child {
  width : auto
}
  .timetable td : nth-child(2) : before {
  content : "Jours : ";
  font-weight : 800;
  color : #777d70
}
  .timetable td : nth-child(3) : before {
  content : "Horaires : ";
  font-weight : 800;
  color : #777d70
}
.discipline-grid {
  gap : 10px
}
.discipline-grid article {
  padding : 17px
}
.discipline-symbol {
  margin-bottom : 15px
}
.discipline-grid h3 {
  font-size : 16px
}
.contact-form-wrap {
  padding : 20px 16px
}
.form-heading {
  align-items : flex-start;
  flex-direction : column;
  gap : 5px
}
.form-row {
  grid-template-columns : 1fr;
  gap : 0
}
.footer-grid {
  grid-template-columns : repeat(2, minmax(0, 1fr));
  gap : 25px 17px
}
.footer-grid > div {
  min-width : 0
}
.footer-grid > div:first-child {
  grid-column : 1 / -1
}
.footer-grid > div:not(:first-child) > a {
  display : block;
  width : max-content;
  max-width : 100%;
  overflow-wrap : anywhere
}
.footer-bottom {
  font-size : 9px;
  flex-direction : column;
  gap : 5px
}
.lightbox {
  padding : 55px 12px 75px
}
.lightbox-prev {
  left : 8px
}
.lightbox-next {
  right : 8px
}
  }@media(prefers-reduced-motion : reduce) {
  html{scroll-behavior : auto
}
  *, * : :before, * : :after {
  animation-duration : .01ms!important;
  animation-iteration-count : 1!important;
  transition-duration : .01ms!important;
  scroll-behavior : auto!important
}
}
