@font-face{
  font-family: "WOODY Gen Mincho";
  src: url("/assets/fonts/source-han-serif-jp/WOODY-GenMincho-ExtraLight.woff2") format("woff2");
  font-style: normal;
  font-weight: 200;
  font-display: swap;
}@font-face{
  font-family: "WOODY Gen Mincho";
  src: url("/assets/fonts/source-han-serif-jp/WOODY-GenMincho-Light.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}@font-face{
  font-family: "WOODY Gen Mincho";
  src: url("/assets/fonts/source-han-serif-jp/WOODY-GenMincho-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}:root{
  --black:      #ffffff;  
  --ink:        #000000;  
  --ink-soft:   #1a1a1a;  
  --muted:      rgba(0,0,0,0.55);  
  --muted-deep: rgba(0,0,0,0.40);  
  --line:       rgba(0,0,0,0.12);  
  --line-soft:  rgba(0,0,0,0.08);  
  --bg:         #ffffff;
  --bg-soft:    rgba(0,0,0,0.04);  
  --bg-card:    #ffffff;  
  --error:      #d96b6b;
  --success:    #b9d4a7;
  --font-sans:  "WOODY Gen Mincho", "Source Han Serif JP", "源ノ明朝 JP",
                "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  --font-serif-ja: var(--font-sans);
  --font-serif: var(--font-sans);
  --font-mono:  var(--font-sans);
  --max-w:      1200px;
  --max-text:   720px;
  --pad-x:      24px;
  --section-y:  80px;
}@media (max-width: 720px){:root{
    --pad-x:      20px;
    --section-y:  56px;
  }}#availability.availability-section,
section.availability-section{
  background: #fff !important;
  color: #000 !important;
}#availability .availability-lead,
section.availability-section .availability-lead{
  margin: 0 auto 84px !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 10px !important;
  font-weight: 200 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}#availability .availability-lead span,
section.availability-section .availability-lead span{
  display: block !important;
}#availability .availability-list.availability-calendar,
section.availability-section .availability-list.availability-calendar{
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 500px)) !important;
  gap: 84px 60px !important;
  width: min(calc(100vw - 40px), 1060px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}#availability .availability-calendar .availability-month,
section.availability-section .availability-calendar .availability-month{
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
}#availability .availability-calendar .availability-month-header,
section.availability-section .availability-calendar .availability-month-header{
  margin: 0 0 30px !important;
  display: block !important;
  text-align: center !important;
}#availability .availability-calendar .availability-month-header h3,
section.availability-section .availability-calendar .availability-month-header h3{
  margin: 0 !important;
  color: #000 !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 1 !important;
  letter-spacing: 0.26em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-weekdays,
section.availability-section .availability-calendar .availability-weekdays{
  gap: 0 !important;
  margin: 0 0 14px !important;
}#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span{
  padding: 0 0 10px !important;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 8px !important;
  font-weight: 200 !important;
  line-height: 1 !important;
  letter-spacing: 0.22em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid{
  gap: 0 !important;
  border-top: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  border-left: 0.5px solid rgba(0, 0, 0, 0.18) !important;
}#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  min-height: 112px !important;
  padding: 14px 6px !important;
  display: grid !important;
  grid-template-rows: none !important;
  align-content: center !important;
  justify-items: center !important;
  border: 0 !important;
  border-right: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: rgba(0, 0, 0, 0.45) !important;
  text-align: center !important;
}#availability .availability-calendar .availability-day.is-available,
section.availability-section .availability-calendar .availability-day.is-available{
  color: #000 !important;
}#availability .availability-calendar .availability-day-blank,
section.availability-section .availability-calendar .availability-day-blank{
  visibility: visible !important;
  color: transparent !important;
}#availability .availability-calendar .availability-day-head,
section.availability-section .availability-calendar .availability-day-head{
  display: grid !important;
  justify-items: center !important;
  gap: 0 !important;
}#availability .availability-calendar .availability-day-number,
section.availability-section .availability-calendar .availability-day-number{
  color: currentColor !important;
  font-size: 10px !important;
  font-weight: 200 !important;
  line-height: 1 !important;
  letter-spacing: 0.22em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-day-times,
section.availability-section .availability-calendar .availability-day-times{
  display: grid !important;
  gap: 7px !important;
  justify-items: center !important;
  align-content: center !important;
  margin-top: 11px !important;
  width: 100% !important;
}#availability .availability-calendar .availability-time-pill,
section.availability-section .availability-calendar .availability-time-pill{
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #000 !important;
  font-family: var(--font-sans) !important;
  font-size: 8px !important;
  font-weight: 200 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.14em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-time-pill span,
section.availability-section .availability-calendar .availability-time-pill span{
  display: inline !important;
}#availability .availability-note,
section.availability-section .availability-note{
  margin-top: 42px !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 10px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}@media (max-width: 720px){#availability .availability-list.availability-calendar,
  section.availability-section .availability-list.availability-calendar{
    width: min(calc(100vw - 32px), 390px) !important;
    max-width: min(calc(100vw - 32px), 390px) !important;
    gap: 72px !important;
  }#availability .availability-lead,
  section.availability-section .availability-lead{
    margin-bottom: 74px !important;
  }#availability .availability-calendar .availability-month-header,
  section.availability-section .availability-calendar .availability-month-header{
    margin-bottom: 24px !important;
  }#availability .availability-calendar .availability-month-header h3,
  section.availability-section .availability-calendar .availability-month-header h3{
    font-size: 10px !important;
  }#availability .availability-calendar .availability-weekdays span,
  section.availability-section .availability-calendar .availability-weekdays span{
    font-size: 7px !important;
  }#availability .availability-calendar .availability-day,
  section.availability-section .availability-calendar .availability-day{
    min-height: 88px !important;
    padding: 10px 2px !important;
  }#availability .availability-calendar .availability-day-number,
  section.availability-section .availability-calendar .availability-day-number{
    font-size: 8px !important;
  }#availability .availability-calendar .availability-day-times,
  section.availability-section .availability-calendar .availability-day-times{
    margin-top: 9px !important;
    gap: 5px !important;
  }#availability .availability-calendar .availability-time-pill,
  section.availability-section .availability-calendar .availability-time-pill{
    font-size: clamp(7px, 1.8vw, 7.5px) !important;
  }}:root{
  --woody-axis-text: min(calc(100vw - 48px), 680px);
  --woody-axis-wide: min(calc(100vw - 48px), 1160px);
  --woody-line: rgba(0, 0, 0, 0.18);
  --woody-soft: rgba(0, 0, 0, 0.45);
}body,
main,
section,
article{
  background: #fff !important;
  color: #000 !important;
}.hero .tagline,
.hero .tagline-sub,
body.city-page .city-eyebrow,
body.city-page .city-h1,
body.city-page .city-tagline,
body.city-page article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline){
  text-indent: 0 !important;
}body.city-page .city-h1{
  font-size: clamp(21px, 2.2vw, 28px) !important;
  letter-spacing: 0.18em !important;
}#availability .section-title,
section.availability-section .section-title,
#availability .availability-lead,
section.availability-section .availability-lead,
#availability .availability-note,
section.availability-section .availability-note{
  width: min(calc(100vw - 40px), var(--max-text)) !important;
  max-width: min(calc(100vw - 40px), var(--max-text)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  text-indent: 0 !important;
  transform: none !important;
  justify-self: center !important;
}body.city-page article.city-section,
body.city-page main article.city-section,
article.city-section{
  display: grid !important;
  justify-items: center !important;
  min-width: 0 !important;
  width: var(--woody-axis-text) !important;
  max-width: var(--woody-axis-text) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  transform: none !important;
}body.city-page article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline, .city-intro, .city-note, p, h1, h2),
body.city-page main article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline, .city-intro, .city-note, p, h1, h2),
article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline, .city-intro, .city-note, p, h1, h2){
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  text-indent: 0 !important;
  transform: none !important;
  justify-self: center !important;
}:where(.section-mark, .availability-section-mark){
  width: 36px !important;
  height: 36px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: #000 !important;
}:where(.section-mark, .availability-section-mark) svg{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1px !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  overflow: visible !important;
}@media (max-width: 720px){:root{
    --woody-axis-text: min(calc(100vw - 40px), 640px);
    --woody-axis-wide: min(calc(100vw - 40px), 640px);
  }.section:not(.availability-section) .section-title,
  body.city-page .section:not(.availability-section) .section-title,
  main .section:not(.availability-section) .section-title,
  body.city-page article.city-section,
  body.city-page main article.city-section,
  article.city-section{
    width: var(--woody-axis-text) !important;
    max-width: var(--woody-axis-text) !important;
  }}:root{
  --woody-axis-line: rgba(0, 0, 0, 0.18);
  --woody-axis-muted: rgba(0, 0, 0, 0.48);
  --woody-axis-text: min(calc(100vw - 48px), 680px);
  --woody-axis-wide: min(calc(100vw - 48px), 1080px);
}html,
body{
  background: #fff !important;
  color: #000 !important;
  overflow-x: hidden !important;
}body{
  text-align: center !important;
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
  letter-spacing: 0.04em;
}body *,
body *::before,
body *::after{
  box-sizing: border-box;
}[data-reveal],
.reveal,
.is-visible{
  opacity: 1 !important;
  transform: none !important;
}body.city-page > article.city-section,
body.city-page main > article.city-section,
main > article.city-section{
  width: var(--woody-axis-text) !important;
  max-width: var(--woody-axis-text) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}article.city-section :is(p, li, summary){
  color: rgba(0, 0, 0, 0.58) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.05 !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
  text-indent: 0 !important;
}article.city-section :is(ul, ol){
  padding-left: 0 !important;
  list-style-position: inside !important;
  text-align: center !important;
}:is(.section-mark, .availability-section-mark){
  width: 34px !important;
  height: 34px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 32px !important;
  color: #000 !important;
}:is(.section-mark, .availability-section-mark) svg{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1px !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  overflow: visible !important;
}:is(
  .feature-card,
  .method-item,
  .curriculum-card,
  .lesson-card,
  .trial-assurance-card,
  .price-card,
  .coupon-card,
  .location-card,
  .format-feature,
  .voice-card,
  .faq-item,
  .corporate-card,
  .payment-form,
  .drum-payment-panel,
  .pricing-trial,
  .price-common,
  .formats-common
){
  background: #fff !important;
  border-color: var(--woody-axis-line) !important;
  border-width: 0.5px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}:is(.city-cta, .hero-cta, .form-submit, .payment-submit, .material-link, .corporate-cta){
  border: 0.5px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  color: #000 !important;
  font-size: 11px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-indent: 0 !important;
  text-align: center !important;
}#availability .availability-list.availability-calendar,
section.availability-section .availability-list.availability-calendar{
  width: min(calc(100vw - 48px), 980px) !important;
  max-width: min(calc(100vw - 48px), 980px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid,
#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span,
#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  border-width: 0.5px !important;
}@media (max-width: 720px){:root{
    --woody-axis-text: min(calc(100vw - 40px), 640px);
    --woody-axis-wide: min(calc(100vw - 40px), 640px);
  }.section:not(.availability-section){
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }:is(.section-mark, .availability-section-mark){
    width: 30px !important;
    height: 30px !important;
    margin-bottom: 28px !important;
  }}:root{
  --woody-axis-line: rgba(0, 0, 0, 0.18);
  --woody-axis-muted: rgba(0, 0, 0, 0.48);
  --woody-axis-text: min(calc(100vw - 48px), 680px);
  --woody-axis-wide: min(calc(100vw - 48px), 1080px);
}html,
body{
  background: #fff !important;
  color: #000 !important;
  overflow-x: hidden !important;
}body{
  text-align: center !important;
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
  letter-spacing: 0.04em;
}body *,
body *::before,
body *::after{
  box-sizing: border-box;
}[data-reveal],
.reveal,
.is-visible{
  opacity: 1 !important;
  transform: none !important;
}body.city-page > article.city-section,
body.city-page main > article.city-section,
main > article.city-section{
  width: var(--woody-axis-text) !important;
  max-width: var(--woody-axis-text) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}article.city-section :is(p, li, summary){
  color: rgba(0, 0, 0, 0.58) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.05 !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
  text-indent: 0 !important;
}article.city-section :is(ul, ol){
  padding-left: 0 !important;
  list-style-position: inside !important;
  text-align: center !important;
}:is(.section-mark, .availability-section-mark){
  width: 34px !important;
  height: 34px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 32px !important;
  color: #000 !important;
}:is(.section-mark, .availability-section-mark) svg{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1px !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  overflow: visible !important;
}:is(
  .feature-card,
  .method-item,
  .curriculum-card,
  .lesson-card,
  .trial-assurance-card,
  .price-card,
  .coupon-card,
  .location-card,
  .format-feature,
  .voice-card,
  .faq-item,
  .corporate-card,
  .payment-form,
  .drum-payment-panel,
  .pricing-trial,
  .price-common,
  .formats-common
){
  background: #fff !important;
  border-color: var(--woody-axis-line) !important;
  border-width: 0.5px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}:is(.city-cta, .hero-cta, .form-submit, .payment-submit, .material-link, .corporate-cta){
  border: 0.5px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  color: #000 !important;
  font-size: 11px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-indent: 0 !important;
  text-align: center !important;
}#availability .availability-list.availability-calendar,
section.availability-section .availability-list.availability-calendar{
  width: min(calc(100vw - 48px), 980px) !important;
  max-width: min(calc(100vw - 48px), 980px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid,
#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span,
#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  border-width: 0.5px !important;
}@media (max-width: 720px){:root{
    --woody-axis-text: min(calc(100vw - 40px), 640px);
    --woody-axis-wide: min(calc(100vw - 40px), 640px);
  }.section:not(.availability-section){
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }:is(.section-mark, .availability-section-mark){
    width: 30px !important;
    height: 30px !important;
    margin-bottom: 28px !important;
  }}.section,
section.availability-section{
  --woody-line: rgba(0, 0, 0, 0.18);
  --woody-soft: rgba(0, 0, 0, 0.45);
  background: #fff !important;
  color: #000 !important;
  text-align: center !important;
}.section:not(.availability-section){
  padding-top: 112px !important;
  padding-bottom: 112px !important;
  border-top: 0.5px solid var(--woody-line) !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro, .contact-lead, .location-note, .location-disclaimer),
.formats-section .section-inner > p{
  width: min(calc(100vw - 48px), 620px) !important;
  max-width: min(calc(100vw - 48px), 620px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: var(--woody-soft) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.15 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro){
  margin-top: -24px !important;
  margin-bottom: 58px !important;
}.section :is(.feature-grid, .method-grid, .curriculum-grid, .lesson-grid, .trial-assurance-grid, .price-grid, .coupon-grid, .location-grid, .formats-grid, .formats-common-grid, .corporate-grid){
  gap: 0 !important;
  border-top: 0.5px solid var(--woody-line) !important;
  border-left: 0.5px solid var(--woody-line) !important;
}.section :is(.feature-card, .method-item, .curriculum-card, .lesson-card, .trial-assurance-card, .price-card, .coupon-card, .location-card, .format-card, .format-feature, .corporate-card){
  background: #fff !important;
  border: 0 !important;
  border-right: 0.5px solid var(--woody-line) !important;
  border-bottom: 0.5px solid var(--woody-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: clamp(30px, 5vw, 52px) clamp(18px, 3.5vw, 34px) !important;
  text-align: center !important;
}.section :is(.highlight, .price-card.highlight, .lesson-card.highlight, .curriculum-card.highlight){
  background: #fff !important;
  border-color: var(--woody-line) !important;
}.section :is(.feature-num, .method-num, .curriculum-level, .format-num, .timeline-step, .corporate-kicker, .price-tag-text, .price-per, .lesson-lead, .voice-meta, .formats-common-label, .price-common-label){
  color: var(--woody-soft) !important;
  font-size: 9px !important;
  font-weight: 200 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.2em !important;
  text-align: center !important;
}.section :is(.feature-title, .method-title, .curriculum-title, .lesson-title, .price-name, .pricing-trial-title, .location-name, .format-title, .voice-headline),
.corporate-card h3{
  color: #000 !important;
  font-size: clamp(14px, 2vw, 18px) !important;
  font-weight: 200 !important;
  line-height: 1.7 !important;
  letter-spacing: 0.14em !important;
  text-align: center !important;
}.section :is(.feature-card p, .method-item p, .curriculum-card li, .lesson-card p, .trial-assurance-card p, .price-list li, .coupon-card li, .location-meta, .location-studios li, .format-body, .format-feature p, .voice-card blockquote, .corporate-card li, .corporate-note, .faq-item p){
  color: rgba(0, 0, 0, 0.56) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.05 !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
}.section :is(.curriculum-card li::before, .method-item li::before, .coupon-card li::before){
  display: none !important;
}.section :is(.price-yen-num, .coupon-amount, .pricing-trial-yen){
  color: #000 !important;
  font-size: clamp(20px, 3vw, 28px) !important;
  font-weight: 100 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}.city-cta,
.hero-cta,
.form-submit,
.payment-submit,
.material-link,
.corporate-cta{
  border: 0.5px solid #000 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #000 !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span,
#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid,
#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  border-color: var(--woody-line) !important;
}#availability .availability-calendar .availability-weekdays span{
  border-bottom-width: 0.5px !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid{
  border-top-width: 0.5px !important;
  border-left-width: 0.5px !important;
}#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  border-right-width: 0.5px !important;
  border-bottom-width: 0.5px !important;
}@media (max-width: 880px){.section:not(.availability-section){
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }.section :is(.feature-grid, .method-grid, .curriculum-grid, .lesson-grid, .trial-assurance-grid, .price-grid, .coupon-grid, .location-grid, .formats-grid, .formats-common-grid, .corporate-grid),
  .timeline{
    grid-template-columns: 1fr !important;
  }}@media (max-width: 720px){.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro, .contact-lead, .location-note, .location-disclaimer),
  .formats-section .section-inner > p{
    width: min(calc(100vw - 32px), 620px) !important;
    max-width: min(calc(100vw - 32px), 620px) !important;
    font-size: 11px !important;
    line-height: 2.1 !important;
    letter-spacing: 0.07em !important;
  }}body{
  background: #fff !important;
  color: #000 !important;
}.section,
section.availability-section{
  --woody-line: rgba(0, 0, 0, 0.18);
  --woody-soft: rgba(0, 0, 0, 0.45);
  background: #fff !important;
  color: #000 !important;
  text-align: center !important;
}.section:not(.availability-section){
  padding-top: 112px !important;
  padding-bottom: 112px !important;
  border-top: 0.5px solid var(--woody-line) !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}.section :is(
  .method-intro,
  .curriculum-intro,
  .pricing-lead,
  .onboarding-intro,
  .voice-intro,
  .contact-lead,
  .location-note,
  .location-disclaimer,
  .formats-section .section-inner > p
){
  width: min(calc(100vw - 48px), 620px) !important;
  max-width: min(calc(100vw - 48px), 620px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: var(--woody-soft) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.15 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro){
  margin-top: -24px !important;
  margin-bottom: 58px !important;
}.section :is(
  .feature-grid,
  .method-grid,
  .curriculum-grid,
  .lesson-grid,
  .trial-assurance-grid,
  .price-grid,
  .coupon-grid,
  .location-grid,
  .formats-grid,
  .formats-common-grid,
  .corporate-grid
){
  gap: 0 !important;
  border-top: 0.5px solid var(--woody-line) !important;
  border-left: 0.5px solid var(--woody-line) !important;
}.section :is(
  .feature-card,
  .method-item,
  .curriculum-card,
  .lesson-card,
  .trial-assurance-card,
  .price-card,
  .coupon-card,
  .location-card,
  .format-card,
  .format-feature,
  .corporate-card
){
  background: #fff !important;
  border: 0 !important;
  border-right: 0.5px solid var(--woody-line) !important;
  border-bottom: 0.5px solid var(--woody-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}.section :is(.feature-card, .method-item, .curriculum-card, .lesson-card, .price-card, .coupon-card, .location-card, .format-card, .format-feature, .corporate-card){
  padding: clamp(30px, 5vw, 52px) clamp(18px, 3.5vw, 34px) !important;
}.section :is(.highlight, .price-card.highlight, .lesson-card.highlight, .curriculum-card.highlight){
  background: #fff !important;
  border-color: var(--woody-line) !important;
}.section :is(
  .feature-num,
  .method-num,
  .curriculum-level,
  .format-num,
  .timeline-step,
  .corporate-kicker,
  .price-tag-text,
  .price-per,
  .lesson-lead,
  .voice-meta,
  .formats-common-label,
  .price-common-label
){
  color: var(--woody-soft) !important;
  font-size: 9px !important;
  font-weight: 200 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.2em !important;
  text-align: center !important;
}.section :is(
  .feature-title,
  .method-title,
  .curriculum-title,
  .lesson-title,
  .price-name,
  .pricing-trial-title,
  .location-name,
  .format-title,
  .voice-headline,
  .corporate-card h3
){
  color: #000 !important;
  font-size: clamp(14px, 2vw, 18px) !important;
  font-weight: 200 !important;
  line-height: 1.7 !important;
  letter-spacing: 0.14em !important;
  text-align: center !important;
}.section :is(
  .feature-card p,
  .method-item p,
  .curriculum-card li,
  .lesson-card p,
  .trial-assurance-card p,
  .price-list li,
  .coupon-card li,
  .location-meta,
  .location-studios li,
  .format-body,
  .format-feature p,
  .voice-card blockquote,
  .corporate-card li,
  .corporate-note,
  .faq-item p
){
  color: rgba(0, 0, 0, 0.56) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.05 !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
}.section :is(.curriculum-card li::before, .method-item li::before, .coupon-card li::before){
  display: none !important;
}.section :is(.price-yen-num, .coupon-amount, .pricing-trial-yen){
  color: #000 !important;
  font-size: clamp(20px, 3vw, 28px) !important;
  font-weight: 100 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}.city-cta,
.hero-cta,
.form-submit,
.payment-submit,
.material-link,
.corporate-cta{
  border: 0.5px solid #000 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #000 !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span,
#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid,
#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  border-color: var(--woody-line) !important;
}#availability .availability-calendar .availability-weekdays span{
  border-bottom-width: 0.5px !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid{
  border-top-width: 0.5px !important;
  border-left-width: 0.5px !important;
}#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  border-right-width: 0.5px !important;
  border-bottom-width: 0.5px !important;
}@media (max-width: 880px){.section:not(.availability-section){
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }.section :is(
    .feature-grid,
    .method-grid,
    .curriculum-grid,
    .lesson-grid,
    .trial-assurance-grid,
    .price-grid,
    .coupon-grid,
    .location-grid,
    .formats-grid,
    .formats-common-grid,
    .corporate-grid
  ){
    grid-template-columns: 1fr !important;
  }}@media (max-width: 720px){.section :is(
    .method-intro,
    .curriculum-intro,
    .pricing-lead,
    .onboarding-intro,
    .voice-intro,
    .contact-lead,
    .location-note,
    .location-disclaimer,
    .formats-section .section-inner > p
  ){
    width: min(calc(100vw - 32px), 620px) !important;
    max-width: min(calc(100vw - 32px), 620px) !important;
    font-size: 11px !important;
    line-height: 2.1 !important;
    letter-spacing: 0.07em !important;
  }}*{ box-sizing: border-box; }html, body{
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  scroll-behavior: smooth;
}body{
  font-family: var(--font-sans);
  font-feature-settings: "palt";
  font-size: 15px;
  line-height: 1.85;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}::selection{
  background: #f5f5f5;
  color: #0a0a0a;
}img, svg{
  max-width: 100%;
  height: auto;
  display: block;
}a{
  color: inherit;
  text-decoration: none;
  transition: opacity 0.25s ease;
}a:hover{ opacity: 0.6; }a[aria-disabled="true"]{ opacity: 0.4; cursor: not-allowed; }ul, ol{ list-style: none; padding: 0; margin: 0; }button{
  appearance: none;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}[data-reveal]{
  opacity: 1;
  transform: none;
  transition: opacity 0.6s cubic-bezier(0.2, 0.7, 0.2, 1),
              transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}[data-reveal].is-visible{
  opacity: 1;
  transform: none;
}@media (prefers-reduced-motion: reduce){[data-reveal]{ opacity: 1; transform: none; transition: none; }html, body{ scroll-behavior: auto; }}.hero{
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--black);
  overflow: hidden;
}@keyframes scrollhint{
  0%   { transform: translateY(-100%); }
  60%  { transform: translateY(0%); }
  100% { transform: translateY(110%); }
}.section{
  padding: var(--section-y) var(--pad-x);
  border-top: 0.5px solid var(--line-soft);
}.location-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line-soft);
  border: 0.5px solid var(--line-soft);
}@media (max-width: 880px){.location-grid{ grid-template-columns: 1fr; }}.location-card{
  padding: 48px 36px;
  background: var(--bg);
}.field{
  margin-bottom: 36px;
}.field label{
  display: block;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--muted);
  margin-bottom: 12px;
  text-transform: uppercase;
}.req{
  display: inline-block;
  margin-left: 8px;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: var(--muted-deep);
  border: 0.5px solid var(--line);
  padding: 2px 6px;
  vertical-align: 1px;
  text-transform: none;
}.field input,
.field select,
.field textarea{
  width: 100%;
  padding: 14px 4px;
  background: transparent;
  border: none;
  border-bottom: 0.5px solid var(--line);
  color: var(--ink);
  font-family: inherit;
  font-size: 15px;
  font-weight: 300;
  letter-spacing: 0.04em;
  border-radius: 0;
  transition: border-color 0.3s ease;
}.field select{
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M0 0l6 8 6-8z' fill='%238a8a85'/></svg>");
  background-repeat: no-repeat;
  background-position: right 8px center;
  padding-right: 32px;
}.field select option{ background: var(--black); color: var(--ink); }.field textarea{ resize: vertical; min-height: 96px; line-height: 1.8; }.field input:focus,
.field select:focus,
.field textarea:focus{
  outline: none;
  border-bottom-color: var(--ink);
}@keyframes spin{ to { transform: rotate(360deg); } }.footer-copy{
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--muted-deep);
}.location-card{ position: relative; }body.city-page{ background: var(--bg); color: var(--ink); }.city-hero{
  padding: 96px var(--pad-x) 64px;
  border-bottom: 0.5px solid var(--line-soft);
}.city-hero-inner{ max-width: var(--max-text); margin: 0 auto; text-align: center; }.city-eyebrow{
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.22em;
  color: var(--muted);
  text-transform: uppercase;
  margin: 0 0 18px;
}.city-h1{
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: clamp(36px, 6vw, 56px);
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin: 0 0 16px;
}.city-tagline{
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: 18px;
  letter-spacing: 0.06em;
  line-height: 2;
  color: var(--ink-soft);
  margin: 0 0 32px;
}.city-intro{
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: 0.04em;
  color: var(--ink);
  margin: 0 0 40px;
}.city-cta{
  display: inline-block;
  padding: 14px 32px;
  border: 0.5px solid var(--ink);
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--ink);
  transition: background 0.3s, color 0.3s;
}.city-cta:hover{ background: var(--ink); color: var(--bg); }.city-section{
  max-width: var(--max-text);
  margin: 0 auto;
  padding: 64px var(--pad-x);
  border-bottom: 0.5px solid var(--line-soft);
}.city-section h2{
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 24px;
  letter-spacing: 0.06em;
  margin: 0 0 24px;
}.city-note{ font-size: 12px; color: var(--muted); margin-top: 24px; line-height: 2; }.city-bullets{ list-style: none; padding: 0; }.city-bullets li{ padding: 8px 0; border-bottom: 0.5px dashed var(--line-soft); font-size: 14px; line-height: 2; }.city-section details{
  border-bottom: 0.5px solid var(--line-soft);
  padding: 18px 0;
}.city-section details summary{
  font-size: 14px;
  font-family: var(--font-sans);
  font-weight: 400;
  cursor: pointer;
}.city-section details p{ margin-top: 12px; font-size: 13px; line-height: 2; color: var(--muted); }.city-cta-section{ text-align: center; padding-bottom: 96px; }.city-cta-section .city-cta{ margin-top: 16px; }.city-meta{ margin-top: 16px; font-size: 11px; color: var(--muted); letter-spacing: 0.18em; }.availability-section{
  text-align: center;
}.availability-lead{
  margin: 0 auto 32px;
  max-width: 560px;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.08em;
  color: var(--muted);
}.availability-lead span{
  display: block;
}.availability-list{
  display: grid;
  gap: 0;
  border-top: 0.5px solid var(--line-soft);
}.availability-empty{
  margin: 0;
  padding: 28px 0;
  border-bottom: 0.5px solid var(--line-soft);
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.08em;
  color: var(--muted);
}.availability-note{
  margin: 24px 0 0;
  font-size: 11px;
  line-height: 2;
  letter-spacing: 0.1em;
  color: var(--muted-deep);
}body{
  font-feature-settings: "palt", "kern";
  letter-spacing: 0.02em;
}a, button{
  transition: opacity 0.25s ease, color 0.25s ease, background 0.4s ease, border-color 0.3s ease;
}a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}@media (max-width: 720px){.section{ padding: 64px 0; }}section[id]{
  scroll-margin-top: 72px;
}.skip-link{
  position: absolute;
  inset-inline-start: 8px;
  inset-block-start: 8px;
  padding: 10px 16px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--font-sans);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-decoration: none;
  border-radius: 4px;
  transform: translateY(-200%);
  transition: transform 0.15s ease;
  z-index: 10000;
}.skip-link:focus{
  transform: translateY(0);
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}:focus{ outline: none; }:focus-visible{
  outline: 2px solid var(--ink);
  outline-offset: 3px;
  border-radius: 2px;
}a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}@media (prefers-reduced-motion: reduce){*,
  *::before,
  *::after{
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }[data-reveal]{ opacity: 1 !important; transform: none !important; }}@media (prefers-contrast: more){:root{
    --ink:        #000000;
    --ink-soft:   #000000;
    --muted:      #333333;
    --line:       rgba(0, 0, 0, 0.55);
    --line-soft:  rgba(0, 0, 0, 0.40);
  }}@media (forced-colors: active){.hero-cta,
  .city-cta,
  .form-submit{ forced-color-adjust: none; }}@media print{.nav, .footer, .form-submit, .hero-cta, .city-cta, .city-header nav,
  .voice-rail, .youtube-embed, [data-reveal]{ animation: none !important; }body{ background: #fff !important; color: #000 !important; }a[href]::after{ content: " (" attr(href) ")"; font-size: 10px; color: #555; }a[href^="#"]::after, a[href^="/"]::after{ content: ""; }}.trial-form{
  max-width: 580px;
  margin: 0 auto;
  display: grid;
  gap: 24px;
}.trial-form .field{ display: flex; flex-direction: column; gap: 8px; }.trial-form label{
  font-family: var(--font-sans);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--muted);
}.trial-form input,
.trial-form select,
.trial-form textarea{
  font: inherit;
  font-family: var(--font-sans);
  width: 100%;
  padding: 14px 16px;
  border: 0.5px solid var(--line);
  border-radius: 2px;
  background: transparent;
  color: var(--ink);
  transition: border-color 0.2s ease;
}.trial-form input:focus,
.trial-form select:focus,
.trial-form textarea:focus{ border-color: var(--ink); }.trial-form textarea{ min-height: 120px; resize: vertical; }.trial-form .req{
  font-size: 9px;
  color: var(--ink);
  background: var(--ink);
  color: var(--bg);
  padding: 2px 6px;
  margin-inline-start: 8px;
  border-radius: 2px;
  letter-spacing: 0.18em;
  vertical-align: 1px;
}.trial-form .row-2{ display: grid; gap: 24px; }@media (min-width: 720px){.trial-form .row-2{ grid-template-columns: 1fr 1fr; }}.trial-submit{
  font-family: var(--font-sans);
  display: inline-block;
  padding: 18px 40px;
  border: 0.5px solid var(--ink);
  background: var(--ink);
  color: var(--bg);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
  border-radius: 999px;
}.trial-submit:hover{ background: transparent; color: var(--ink); }.trial-submit:disabled{ opacity: 0.5; cursor: not-allowed; }.trial-form-status{
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.8;
  text-align: center;
  margin-top: 16px;
}.trial-form-status.is-success{ color: #2a6f2a; }.trial-form-status.is-error{ color: var(--error); }[aria-hidden="true"]{ speak: none; }.article-body{ font-size: 14px; line-height: 2; color: var(--ink); }.article-body h2{
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 22px;
  letter-spacing: 0.06em;
  margin: 48px 0 16px;
}.article-body h3{
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 18px;
  letter-spacing: 0.06em;
  margin: 32px 0 12px;
}.article-body p{ margin: 0 0 16px; color: var(--ink-soft); letter-spacing: 0.04em; }.article-body ul, .article-body ol{ padding-inline-start: 20px; }.article-body li{ margin-bottom: 8px; line-height: 2; }.article-body blockquote{
  border-inline-start: 2px solid var(--line);
  padding-inline-start: 16px;
  margin: 24px 0;
  color: var(--muted);
  font-family: var(--font-sans);
}h1, h2, h3,
.hero-title, .hero-lead, .hero-eyebrow,
.section-title, .section-lead,
.article-body h2, .article-body h3,
.heading-jp{
  line-break: strict;
  word-break: keep-all;
  hanging-punctuation: allow-end;
  text-wrap: balance;
  font-feature-settings: "palt" on;
  overflow-wrap: anywhere;
}@supports not (hanging-punctuation: allow-end){h1, h2, .hero-title{ padding-inline-end: 0.5em; }}.city-eyebrow,
.city-h1,
.city-h2,
.city-section > h2,
article.city-section > h2{
  text-align: center;
}.city-section > .city-eyebrow,
article.city-section > .city-eyebrow{
  text-align: center;
}:root{
  --section-y: 64px;
}@media (max-width: 768px){:root{ --section-y: 48px; }}.hero{
  min-height: auto;
  padding: 56px var(--pad-x) 64px;
}.section{ padding: 56px var(--pad-x); }.about{ padding-top: 56px; padding-bottom: 56px; }@media (max-width: 768px){.section{ padding: 40px var(--pad-x); }.hero{ padding: 40px var(--pad-x) 48px; }}:root{
  --section-y: 48px;
}@media (max-width: 768px){:root{ --section-y: 36px; }}.section{ padding: 48px var(--pad-x); }@media (max-width: 768px){.section{ padding: 32px var(--pad-x); }}.hero{ padding: 40px var(--pad-x) 48px !important; }footer, .site-footer{ padding-top: 32px; padding-bottom: 32px; }body, main{ text-align: center; }html, body, main, header, footer, nav,
section, article, aside, div, span,
h1, h2, h3, h4, h5, h6,
p, blockquote, figure, figcaption,
ul, ol, li, dl, dt, dd,
form, fieldset, legend, label,
table, thead, tbody, tr, th, td{
  text-align: center !important;
}.section-inner,
.hero-inner,
.about-inner,
.about-text,
.about-image,
.features-grid,
.method-grid,
.curriculum-grid,
.lessons-grid,
.pricing-grid,
.onboarding-grid,
.locations-grid,
.formats-grid,
.voices-grid,
.testimonials-grid,
.faq-grid,
.cta-inner,
.footer-inner,
.contact-form,
.curriculum-card,
.method-item,
.feature-item,
.pricing-card,
.formats-item,
.voice-card,
.testimonial,
.location-card{
  margin-left: auto !important;
  margin-right: auto !important;
}.hero,
.hero-inner,
.section,
.section-inner,
.features-grid,
.method-grid,
.curriculum-grid,
.pricing-grid,
.onboarding-grid,
.lessons-grid,
.locations-grid,
.formats-grid,
.voices-grid,
.testimonials-grid{
  justify-items: center !important;
  align-items: start;
}ul, ol{
  list-style-position: inside !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}li{
  text-align: center !important;
  list-style-position: inside !important;
}th, td{ text-align: center !important; vertical-align: middle !important; }input, select, textarea, button{
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}nav,
.site-nav,
.nav{
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}footer,
.site-footer,
.footer-inner{
  text-align: center !important;
}img, svg, iframe, video, picture{
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
}picture img{ display: block; }.btn,
.button,
.cta,
.hero-cta,
.card-cta{
  margin-left: auto !important;
  margin-right: auto !important;
}dl, dt, dd{ text-align: center !important; margin-left: auto; margin-right: auto; }fieldset{ border: none !important; text-align: center !important; }legend{
  width: 100%;
  text-align: center !important;
}article, .post, .blog-post, .post-body, .article-body, .legal-body{
  text-align: center !important;
}.wordmark,
.wordmark-main,
.wordmark-sub,
.tagline,
.tagline-sub,
.hero-meta,
.hero-meta-en,
.section-title,
.section-label,
.section-lead,
.section-intro,
.hero-title,
.hero-lead,
.hero-eyebrow,
.city-eyebrow,
.city-h1,
.city-h2,
.heading-jp,
.feature-num,
.feature-title,
.lesson-title,
.lesson-lead,
.price-name,
.price-num,
.about-name,
.about-name-en,
.about-name-ja,
.about-text > p,
.method-intro,
.curriculum-intro,
.onboarding-intro{
  margin-inline: auto !important;
}html, body{
  overflow-x: hidden;
}.payment-section{
  text-align: center !important;
}.payment-status{
  min-height: 2.2em;
  margin: 0 auto 28px;
  max-width: 560px;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.06em;
  color: var(--muted);
}.payment-status[data-status="ready"]{
  color: var(--ink);
}.payment-status[data-status="error"]{
  color: #9d1d1d;
}.site-mark span,
.site-nav a span{
  display: block;
  min-width: 0;
  text-align: center;
}.site-nav{
  width: min(100%, 430px) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-items: stretch;
  gap: clamp(24px, 4vw, 44px) !important;
}.site-nav a{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  justify-items: center;
  width: 100%;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
}.availability-list{
  width: min(100%, var(--max-w));
  margin: 0 auto !important;
  display: flex !important;
  gap: 12px !important;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0 20px;
  border-top: 0 !important;
  scrollbar-width: thin;
}.availability-list::-webkit-scrollbar{
  height: 5px;
}.availability-list::-webkit-scrollbar-thumb{
  background: rgba(0, 0, 0, 0.22);
}.availability-empty{
  flex: 0 0 100%;
  border: 0.5px solid var(--line-soft);
}.availability-note{
  margin-top: 12px !important;
  text-align: center;
}@media (max-width: 760px){.site-mark,
  .site-nav{
    width: min(100%, 330px) !important;
  }.site-nav{
    gap: clamp(18px, 6vw, 28px) !important;
  }.availability-list{
    width: calc(100vw - (var(--pad-x) * 2));
  }}html{
  background: #fff;
}body,
.city-page{
  background: #fff !important;
  color: #000;
}.site-header{
  width: 100%;
  padding: 20px var(--pad-x) 0;
  background: transparent;
  color: var(--ink);
  position: relative;
  z-index: 20;
}.site-nav{
  width: min(100%, 330px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-content: center;
  align-items: center;
  gap: 8px;
}.site-nav a{
  color: var(--ink);
  text-decoration: none;
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: 0.18em;
  text-indent: 0.18em;
  border-bottom: 0.5px solid transparent;
}.site-nav a:hover{
  border-bottom-color: var(--ink);
}.hero .site-header{
  position: absolute;
  inset: 0 0 auto 0;
}.hero{
  display: grid;
  align-items: center;
  min-height: 100svh;
}.city-hero{
  min-height: min(72svh, 720px);
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  padding-block: clamp(76px, 12vh, 140px);
}.city-hero-inner{
  width: min(100%, 940px);
  margin-inline: auto;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
}.city-section,
.section{
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
}.section-inner,
.city-section > *{
  margin-left: auto;
  margin-right: auto;
}.hero-cta,
.city-cta,
.card-cta,
.form-submit,
.payment-submit,
.trial-submit,
.nav-links a[href="/trial/"],
.city-header nav a[href="/trial/"]{
  background: transparent !important;
  color: var(--ink) !important;
  border: 0.5px solid var(--ink) !important;
}.hero-cta:hover,
.city-cta:hover,
.card-cta:hover,
.form-submit:hover,
.payment-submit:hover,
.trial-submit:hover,
.nav-links a[href="/trial/"]:hover,
.city-header nav a[href="/trial/"]:hover{
  background: transparent !important;
  color: var(--ink) !important;
  opacity: 0.68;
}@media (max-width: 760px){.site-header{
    padding-top: 16px;
  }.site-nav{
    width: min(100%, 300px);
    gap: 6px;
  }.site-nav a{
    font-size: 11px;
    letter-spacing: 0.14em;
    text-indent: 0.14em;
  }}body,
button,
input,
select,
textarea{
  font-family: var(--font-sans) !important;
  font-weight: 300;
}h1,
h2,
h3,
h4,
h5,
h6,
strong,
b,
.wordmark,
.tagline,
.section-title,
.city-h1,
.city-section h2,
.price-yen-num,
.stat-num,
.trust-num,
.genre-index h2{
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
}strong,
b{
  font-weight: 350 !important;
}.site-nav{
  width: min(100%, 300px);
}.site-nav a{
  font-family: var(--font-sans) !important;
  font-weight: 300;
  font-size: 11px;
  min-height: 28px;
  letter-spacing: 0.16em;
  text-indent: 0.16em;
}@media (max-width: 760px){.site-nav{
    width: min(100%, 270px);
  }.site-nav a{
    font-size: 10.5px;
  }}.site-header{
  padding: clamp(24px, 4vw, 42px) var(--pad-x) 0;
}.site-nav{
  width: min(100%, 430px);
  gap: 10px;
}.site-nav a{
  font-size: clamp(12px, 1.05vw, 14px);
  min-height: 38px;
  letter-spacing: 0.18em;
  text-indent: 0.18em;
}.hero .site-header{
  position: absolute;
  inset: 0 0 auto 0;
}@media (max-width: 760px){.site-header{
    padding-top: 22px;
  }.site-nav{
    width: min(100%, 330px);
  }.site-nav a{
    font-size: 12px;
    min-height: 36px;
  }}.hero-eyebrow,
.city-eyebrow{
  font-family: var(--font-sans) !important;
  font-size: 12px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 clamp(22px, 3vw, 30px);
}.wordmark,
.city-h1{
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
  font-size: clamp(36px, 5.7vw, 72px) !important;
  line-height: 1.16 !important;
  letter-spacing: 0.1em !important;
  text-indent: 0.1em !important;
  margin: 0 0 clamp(22px, 3vw, 30px) !important;
  text-transform: uppercase;
}.tagline,
.city-tagline{
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
  font-size: clamp(14px, 1.35vw, 17px) !important;
  line-height: 2 !important;
  letter-spacing: 0.08em !important;
  text-indent: 0 !important;
  color: var(--ink-soft);
  margin: 0 0 clamp(28px, 4vw, 42px) !important;
}.city-hero{
  min-height: 74svh;
  display: grid;
  place-items: center;
  padding: clamp(128px, 18vh, 190px) var(--pad-x) clamp(72px, 12vh, 118px);
}.city-hero-inner{
  width: min(100%, 760px);
}@media (max-width: 760px){.hero-eyebrow,
.city-eyebrow{
    font-size: 11px;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
    margin-bottom: 20px;
  }.wordmark,
.city-h1{
    font-size: clamp(32px, 9.5vw, 42px) !important;
    line-height: 1.24 !important;
    letter-spacing: 0.08em !important;
    text-indent: 0.08em !important;
  }.tagline,
.city-tagline{
    font-size: 13px !important;
    line-height: 2 !important;
  }.city-hero{
    min-height: 72svh;
    padding: 132px var(--pad-x) 76px;
  }}.site-mark span,
.site-nav a span{
  display: block;
  min-width: 0;
  text-align: center;
}.site-nav{
  width: min(100%, 500px) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-items: stretch;
  gap: clamp(30px, 5vw, 60px) !important;
}.site-nav a{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  justify-items: center;
  width: 100%;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
}.availability-list{
  width: min(100%, var(--max-w));
  margin: 0 auto !important;
  display: flex !important;
  gap: 12px !important;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0 20px;
  border-top: 0 !important;
  scrollbar-width: thin;
}.availability-list::-webkit-scrollbar{
  height: 5px;
}.availability-list::-webkit-scrollbar-thumb{
  background: rgba(0, 0, 0, 0.22);
}.availability-empty{
  flex: 0 0 100%;
  border: 0.5px solid var(--line-soft);
}.availability-note{
  margin-top: 12px !important;
  text-align: center;
}@media (max-width: 760px){.site-mark,
  .site-nav{
    width: min(100%, 330px) !important;
  }.site-nav{
    gap: clamp(18px, 6vw, 32px) !important;
  }.availability-list{
    width: calc(100vw - (var(--pad-x) * 2));
  }}body,
.section,
.locations,
.locations .section-inner,
.locations .location-grid,
.locations .location-card{
  background: #fff !important;
}.availability-list{
  width: 100% !important;
}@media (max-width: 760px){.availability-list{
    width: 100% !important;
  }}.site-mark span,
.site-nav a span{
  display: inline-block;
  width: 1em;
  min-width: 1em;
  text-align: center;
}.site-nav{
  width: min(100%, 500px) !important;
  gap: clamp(32px, 5vw, 64px) !important;
}.site-nav a{
  display: flex !important;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
}@media (max-width: 760px){.site-mark,
  .site-nav{
    width: min(100%, 350px) !important;
  }.site-nav{
    gap: clamp(20px, 6vw, 34px) !important;
  }}body{
  letter-spacing: 0.035em;
}.site-nav{
  width: min(100%, 620px) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(108px, 1fr)) !important;
  justify-items: center !important;
  gap: clamp(34px, 5vw, 76px) !important;
}.site-nav a{
  width: 100%;
  min-height: 42px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  grid-template-columns: none !important;
  font-size: clamp(12px, 1.05vw, 14px) !important;
  font-weight: 300 !important;
  letter-spacing: 0.24em !important;
  text-indent: 0.24em !important;
  line-height: 1;
}.site-nav a span{
  width: auto !important;
  min-width: 0 !important;
  display: inline-block !important;
  letter-spacing: inherit !important;
  text-indent: inherit !important;
}.hero-eyebrow,
.genre-eyebrow,
.city-eyebrow,
.section-label,
.format-num,
.formats-common-label{
  letter-spacing: 0.28em !important;
  text-indent: 0.28em !important;
  font-weight: 300 !important;
}@media (max-width: 760px){.site-nav{
    grid-template-columns: repeat(3, minmax(76px, 1fr)) !important;
    gap: clamp(14px, 4.8vw, 28px) !important;
  }.site-nav a{
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    text-indent: 0.18em !important;
  }}:root{
  --font-serif-ja: var(--font-sans);
}body,
button,
input,
select,
textarea{
  font-family: var(--font-serif-ja) !important;
  letter-spacing: 0.11em !important;
}.site-mark,
.site-nav,
.site-nav a,
.hero-wordmark,
.wordmark-main,
.wordmark-sub,
.hero-eyebrow,
.genre-eyebrow,
.city-eyebrow,
.section-label,
.format-num,
.formats-common-label,
.payment-plan-name,
.payment-plan-price,
.payment-plan-unit,
.payment-plan-state{
  font-family: var(--font-sans) !important;
}.tagline,
.section-title,
.genre-lead,
.city-tagline,
.city-intro,
.pricing-lead,
.availability-lead,
.format-title,
.format-body,
.onboarding-intro,
.timeline-title,
.timeline-item p{
  font-family: var(--font-serif-ja) !important;
  letter-spacing: clamp(0.12em, 0.55vw, 0.22em) !important;
}.field input,
.field select,
.field textarea,
.trial-form input,
.trial-form select,
.trial-form textarea,
.payment-field input,
.payment-field select,
.pricing-simulator-form input,
.pricing-simulator-form select,
.pricing-simulator-form textarea{
  text-align: center !important;
  letter-spacing: 0.12em !important;
}.field select,
.trial-form select,
.payment-field select,
.pricing-simulator-form select{
  text-align-last: center !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  background-color: #fff !important;
}.field select option,
.trial-form select option,
.payment-field select option,
.pricing-simulator-form select option{
  background: #fff !important;
  color: #000 !important;
  text-align: center;
}:root{
  --font-sans: "WOODY Gen Mincho", "Source Han Serif JP", "源ノ明朝 JP",
               "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  --font-serif-ja: var(--font-sans);
  --font-serif: var(--font-sans);
  --font-mono: var(--font-sans);
}html,
body,
body *,
button,
input,
select,
textarea{
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
  letter-spacing: 0.13em !important;
}strong,
b{
  font-weight: 400 !important;
}.site-mark,
.site-footer-mark,
.wordmark-main,
.wordmark-sub,
.hero-wordmark,
.section-title,
.section-label,
.city-h1,
.city-h2,
.price-name,
.price-yen-num,
.payment-plan-price{
  font-weight: 200 !important;
  letter-spacing: clamp(0.18em, 0.45vw, 0.34em) !important;
  text-indent: clamp(0.18em, 0.45vw, 0.34em) !important;
}p,
li,
label,
summary,
.city-intro,
.pricing-lead,
.availability-lead,
.format-body{
  line-height: 2.05 !important;
  letter-spacing: 0.12em !important;
}.coupon-card,
.price-card,
.lesson-card,
.curriculum-card,
.format-card,
.location-card,
.voice-card,
.pricing-trial,
.pricing-simulator-form,
.pricing-simulator-result,
.payment-plan-card,
.payment-form,
.payment-total-box,
.faq-item,
.city-section{
  text-align: center !important;
  justify-items: center !important;
  align-items: center !important;
}.field,
.payment-field,
.trial-form .field{
  align-items: center !important;
  justify-items: center !important;
  text-align: center !important;
}.field input,
.field select,
.field textarea,
.trial-form input,
.trial-form select,
.trial-form textarea,
.payment-field input,
.payment-field select,
.pricing-simulator-form input,
.pricing-simulator-form select,
.pricing-simulator-form textarea{
  width: min(100%, 440px) !important;
  text-align: center !important;
  text-align-last: center !important;
}.curriculum-card li,
.price-list li,
.coupon-card li,
.lesson-list li,
.city-bullets li{
  padding-left: 0 !important;
}.curriculum-card li::before,
.price-list li::before,
.coupon-card li::before,
.lesson-list li::before,
.city-bullets li::before,
.method-item li::before{
  content: none !important;
  display: none !important;
}html,
body,
main,
header,
footer,
section,
article,
nav,
form,
fieldset,
.hero,
.site-header,
.site-header-inner,
.site-footer-loop,
.site-footer-inner,
.genre-index,
.genre-index-inner,
.stats-strip,
.trust-strip,
.section,
.section-inner,
.city-section,
.city-hero,
.city-hero-inner,
.lesson-card,
.curriculum-card,
.price-card,
.format-card,
.format-feature,
.location-card,
.voice-card,
.coupon-card,
.payment-plan-card,
.payment-form,
.payment-total-box,
.pricing-simulator-form,
.pricing-simulator-result,
.pricing-trial,
.faq-item{
  background: #fff !important;
  background-color: #fff !important;
}.hero-cta,
.city-cta,
.payment-submit,
.form-submit,
.card-cta{
  background: #fff !important;
  color: var(--ink) !important;
  border-color: var(--ink) !important;
}.hero-cta:hover,
.city-cta:hover,
.payment-submit:hover,
.form-submit:hover{
  background: #fff !important;
  color: var(--ink) !important;
}@media (max-width: 1180px){:root{
    --pad-x: clamp(18px, 4vw, 40px);
    --section-y: clamp(56px, 8vw, 88px);
  }html,
  body{
    background: #fff !important;
    color: var(--ink) !important;
  }.site-header{
    background: #fff !important;
    border-bottom: 0.5px solid var(--line-soft) !important;
  }.site-nav{
    width: min(100%, 760px) !important;
    justify-content: center !important;
    gap: clamp(34px, 10vw, 148px) !important;
  }.site-nav a{
    color: var(--ink) !important;
    font-size: clamp(12px, 1.9vw, 15px) !important;
    letter-spacing: 0.26em !important;
    text-indent: 0.26em !important;
  }.hero{
    min-height: auto !important;
    background: #fff !important;
  }.hero-cta,
  .city-cta,
  .payment-submit,
  .form-submit,
  .card-cta{
    width: min(100%, 440px) !important;
    min-height: 50px !important;
    padding: 14px 24px !important;
    border: 0.5px solid var(--ink) !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: var(--ink) !important;
    box-shadow: none !important;
  }.section{
    padding-top: var(--section-y) !important;
    padding-bottom: var(--section-y) !important;
    background: #fff !important;
  }.section-inner,
  .city-hero-inner{
    width: min(100%, 980px) !important;
  }.section-title,
  .city-h1{
    font-size: clamp(34px, 7.4vw, 58px) !important;
    line-height: 1.22 !important;
    letter-spacing: clamp(0.12em, 0.72vw, 0.24em) !important;
    text-indent: clamp(0.12em, 0.72vw, 0.24em) !important;
  }.section-label,
  .city-eyebrow,
  .genre-eyebrow{
    font-size: 10px !important;
    letter-spacing: 0.34em !important;
    text-indent: 0.34em !important;
  }.genre-action-grid,
  .price-grid,
  .curriculum-grid,
  .lesson-grid,
  .formats-grid,
  .location-grid,
  .coupon-grid,
  .payment-plan-grid,
  .materials-grid{
    gap: 0 !important;
    background: #fff !important;
    border: 0.5px solid var(--line-soft) !important;
  }.genre-action-grid a,
  .price-card,
  .curriculum-card,
  .lesson-card,
  .format-card,
  .location-card,
  .coupon-card,
  .payment-plan-card,
  .material-card,
  .voice-card,
  .faq-item{
    min-height: auto !important;
    padding: clamp(34px, 5vw, 54px) clamp(18px, 4vw, 34px) !important;
    border: 0 !important;
    border-right: 0.5px solid var(--line-soft) !important;
    border-bottom: 0.5px solid var(--line-soft) !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: var(--ink) !important;
    box-shadow: none !important;
  }}@media (max-width: 720px){body{
    font-size: 14px !important;
  }.site-nav{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    width: 100% !important;
    gap: 0 !important;
    margin-top: 10px !important;
  }.site-nav a{
    padding: 12px 0 !important;
    font-size: 12px !important;
    letter-spacing: 0.22em !important;
    text-indent: 0.22em !important;
    text-align: center !important;
  }.hero-cta,
.city-cta,
.payment-submit,
.form-submit,
.card-cta{
    width: min(100%, 320px) !important;
    min-height: 50px !important;
    font-size: 13px !important;
    letter-spacing: 0.16em !important;
    text-indent: 0.16em !important;
  }.section{
    padding: 58px 20px !important;
  }.section-title,
.city-h1{
    font-size: clamp(30px, 9vw, 40px) !important;
    line-height: 1.24 !important;
    letter-spacing: 0.11em !important;
    text-indent: 0.11em !important;
  }p,
  li,
  label,
  summary,
  .format-body,
  .pricing-lead,
  .curriculum-intro{
    font-size: 13px !important;
    line-height: 1.95 !important;
    letter-spacing: 0.08em !important;
    text-indent: 0 !important;
  }.genre-action-grid,
  .lesson-grid,
  .curriculum-grid,
  .formats-grid,
  .coupon-grid,
  .payment-plan-grid,
  .materials-grid,
  .location-grid{
    grid-template-columns: 1fr !important;
    width: 100% !important;
    border-bottom: 0 !important;
  }.genre-action-grid a,
  .lesson-card,
  .curriculum-card,
  .format-card,
  .coupon-card,
  .material-card,
  .payment-plan-card,
  .location-card,
  .price-card,
  .voice-card,
  .faq-item{
    width: 100% !important;
    padding: 34px 22px !important;
    border-right: 0 !important;
  }.material-card p,
  .lesson-card p,
  .format-card p,
  .location-card p{
    max-width: 28em !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }.payment-field input,
  .payment-field select,
  .field input,
  .field select,
  .field textarea,
  .trial-form input,
  .trial-form select,
  .trial-form textarea,
  .pricing-simulator-form input,
  .pricing-simulator-form select{
    width: 100% !important;
    max-width: 340px !important;
    min-height: 50px !important;
    font-size: 13px !important;
    letter-spacing: 0.08em !important;
    text-align: center !important;
    text-align-last: center !important;
  }}.req,
.trial-form .req{
  background: #fff !important;
  color: var(--ink) !important;
  border: 0.5px solid var(--line) !important;
  font-weight: 300 !important;
}.skip-link{
  background: #fff !important;
  color: var(--ink) !important;
  border: 0.5px solid var(--ink) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}.skip-link:focus{
  outline: 0.5px solid var(--ink) !important;
  outline-offset: 4px !important;
}.city-hero{
  min-height: auto !important;
  padding-top: clamp(72px, 9vw, 118px) !important;
  padding-bottom: clamp(72px, 9vw, 118px) !important;
  align-content: center !important;
  place-items: center !important;
}@media (max-width: 720px){.city-hero{
    min-height: auto !important;
    padding-top: 58px !important;
    padding-bottom: 64px !important;
  }}.availability-section{
  padding-bottom: clamp(36px, 5vw, 56px) !important;
}@media (max-width: 720px){.availability-note{
    max-width: min(100%, 330px) !important;
    margin: 10px auto 0 !important;
    font-size: 10px !important;
    line-height: 1.8 !important;
    letter-spacing: 0.08em !important;
  }.availability-section{
    padding-bottom: 34px !important;
  }}:root{
  --mode-hero-top: clamp(52px, 6.1vw, 78px);
  --mode-hero-bottom: clamp(62px, 7.2vw, 96px);
  --mode-hero-title-size: clamp(38px, 5vw, 72px);
  --mode-hero-title-track: clamp(0.11em, 0.36vw, 0.2em);
  --mode-hero-label-track: 0.34em;
}@media (max-width: 720px){:root{
    --mode-hero-top: 42px;
    --mode-hero-bottom: 56px;
    --mode-hero-title-size: clamp(34px, 9.4vw, 38px);
    --mode-hero-title-track: 0.1em;
    --mode-hero-label-track: 0.28em;
  }}.voice-rail,
.availability-list{
  --center-card-width: min(78vw, 440px);
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: 0 !important;
  transform: none !important;
  justify-self: start !important;
}.availability-list{
  --availability-card-width: min(72vw, 260px);
  gap: clamp(12px, 3vw, 18px) !important;
  padding-left: max(24px, calc((100vw - var(--availability-card-width)) / 2)) !important;
  padding-right: max(24px, calc((100vw - var(--availability-card-width)) / 2)) !important;
  scroll-padding-left: max(24px, calc((100vw - var(--availability-card-width)) / 2)) !important;
  scroll-padding-right: max(24px, calc((100vw - var(--availability-card-width)) / 2)) !important;
  scroll-snap-type: x mandatory !important;
}@media (max-width: 720px){.availability-list{
    --availability-card-width: min(72vw, 252px);
  }}.availability-section.city-section,
.voices .section-inner,
.availability-section .section-inner{
  width: 100% !important;
  max-width: 100% !important;
}.availability-section.city-section{
  padding-left: 0 !important;
  padding-right: 0 !important;
}.voices .section-inner > :not(.voice-rail),
.availability-section.city-section > :not(.availability-list),
.availability-section .section-inner > :not(.availability-list){
  width: min(calc(100% - (var(--pad-x) * 2)), var(--max-w)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}.about{
  padding-bottom: clamp(42px, 5vw, 68px) !important;
}[data-reveal]{
  opacity: 0;
  transform: translateY(12px) scale(0.996);
  transition:
    opacity 760ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 760ms cubic-bezier(0.22, 1, 0.36, 1);
}[data-reveal].is-visible{
  opacity: 1;
  transform: none;
}@media (prefers-reduced-motion: reduce){[data-reveal]{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }}.is-paged-rail{
  scroll-behavior: smooth !important;
  overscroll-behavior-x: contain !important;
}.availability-list{
  --availability-card-width: min(72vw, 320px) !important;
}.voice-track,
.faq .faq-list,
.availability-list{
  scroll-snap-type: x mandatory !important;
}@media (max-width: 720px){.availability-list{
    --availability-card-width: min(304px, calc(100vw - 86px)) !important;
  }}@media (prefers-reduced-motion: reduce){.is-paged-rail{
    scroll-behavior: auto !important;
  }}.availability-section{
  --availability-axis-offset: var(--pad-x);
}@media (max-width: 720px){.availability-section{
    --availability-axis-offset: 20px;
  }}.city-hero-inner{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: var(--pad-x) !important;
  text-align: center !important;
}.city-h1{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  margin-bottom: clamp(22px, 3vw, 30px) !important;
  padding-inline: 0 !important;
  position: static !important;
  transform: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-wrap: nowrap !important;
  word-break: keep-all !important;
  hyphens: none !important;
  text-align: center !important;
  
  font-size: min(
    clamp(28px, 5vw, 64px),
    calc((100vw - (var(--pad-x) * 2)) / 17)
  ) !important;
  line-height: 1.16 !important;
  letter-spacing: 0.18em !important;
  
  text-indent: 0.18em !important;
}@media (max-width: 720px){.city-h1{
    font-size: min(
      clamp(20px, 7vw, 34px),
      calc((100vw - (var(--pad-x) * 2)) / 16)
    ) !important;
    line-height: 1.22 !important;
    letter-spacing: 0.08em !important;
    text-indent: 0.08em !important;
  }}.city-eyebrow{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  margin-bottom: clamp(22px, 3vw, 30px) !important;
  padding-inline: 0 !important;
  position: static !important;
  transform: none !important;
  text-align: center !important;
  letter-spacing: 0.24em !important;
  text-indent: 0.24em !important;
}.city-tagline{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  margin-bottom: clamp(28px, 4vw, 42px) !important;
  padding-inline: 0 !important;
  position: static !important;
  transform: none !important;
  text-align: center !important;
  letter-spacing: 0.1em !important;
  text-indent: 0.1em !important;
}.city-section > h2,
.payment-section > h2,
.city-h2{
  display: block !important;
  width: 100% !important;
  margin-inline: auto !important;
  text-align: center !important;
  letter-spacing: 0.16em !important;
  text-indent: 0.16em !important;
}.site-nav{
  justify-self: center !important;
  margin-inline: auto !important;
  width: min(100%, 620px) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  justify-items: center !important;
  align-items: center !important;
}.site-nav a{
  display: inline-flex !important;
  width: auto !important;
  margin-inline: auto !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  
  letter-spacing: 0.24em !important;
  text-indent: 0.24em !important;
}@media (max-width: 720px){.site-nav{
    width: calc(100vw - (var(--pad-x) * 2)) !important;
    max-width: 360px !important;
  }.site-nav a{
    letter-spacing: 0.14em !important;
    text-indent: 0.14em !important;
    font-size: 11px !important;
  }}@media (max-width: 400px){.site-nav a{
    letter-spacing: 0.08em !important;
    text-indent: 0.08em !important;
    font-size: 10.5px !important;
  }}.payment-section,
.payment-section > *{
  margin-left: auto !important;
  margin-right: auto !important;
}.city-h1{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  font-size: min(
    clamp(18px, 4.0vw, 56px),
    calc((100vw - (var(--pad-x) * 2)) / 22)
  ) !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-wrap: nowrap !important;
  word-break: keep-all !important;
  hyphens: none !important;
  text-align: center !important;
  letter-spacing: 0.14em !important;
  text-indent: 0 !important;
  padding-inline: 0 !important;
  line-height: 1.18 !important;
}@media (max-width: 720px){.city-h1{
    font-size: min(
      clamp(13px, 4.4vw, 26px),
      calc((100vw - (var(--pad-x) * 2)) / 22)
    ) !important;
    letter-spacing: 0.10em !important;
    text-indent: 0 !important;
    line-height: 1.24 !important;
  }}@media (max-width: 380px){.city-h1{
    font-size: min(
      clamp(10px, 3.8vw, 18px),
      calc((100vw - (var(--pad-x) * 2)) / 20)
    ) !important;
    letter-spacing: 0.06em !important;
    text-indent: 0 !important;
  }}.site-nav{
  width: 100% !important;
  max-width: 560px !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 4px !important;
  justify-items: center !important;
  align-items: center !important;
}.site-nav a{
  min-width: 0 !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  overflow: visible !important;
  letter-spacing: 0.14em !important;
  text-indent: 0 !important;
  padding-inline: 0 !important;
}.site-nav a span{
  display: inline-block !important;
  white-space: nowrap !important;
  text-indent: 0 !important;
}@media (max-width: 720px){.site-nav a{
    font-size: 11px !important;
    letter-spacing: 0.10em !important;
  }}@media (max-width: 380px){.site-nav a{
    font-size: 10px !important;
    letter-spacing: 0.06em !important;
  }}.availability-section .availability-list.availability-calendar,
#availability .availability-list.availability-calendar{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 500px)) !important;
  justify-content: center !important;
  gap: clamp(18px, 3vw, 28px) !important;
  width: min(calc(100vw - (var(--pad-x) * 2)), 1060px) !important;
  max-width: 1060px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  transform: none !important;
  scroll-snap-type: none !important;
  scroll-padding: 0 !important;
  scrollbar-width: none !important;
}.availability-list.availability-calendar::-webkit-scrollbar{
  display: none !important;
}.availability-calendar .availability-month{
  min-width: 0;
  padding: clamp(18px, 2.4vw, 28px);
  border: 0.5px solid var(--line-soft);
  border-radius: 8px;
  background: var(--bg-card);
}.availability-calendar .availability-month-header{
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0;
  margin-bottom: clamp(16px, 2vw, 22px);
  text-align: center;
}.availability-calendar .availability-month-header h3{
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
}.availability-calendar .availability-month-header h3 span{
  margin: 0 0.15em;
  font-size: 0.45em;
  color: var(--muted);
  letter-spacing: 0.12em;
}.availability-calendar .availability-weekdays,
.availability-calendar .availability-calendar-grid{
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}.availability-calendar .availability-weekdays{
  gap: 6px;
  margin-bottom: 6px;
}.availability-calendar .availability-weekdays span{
  min-width: 0;
  text-align: center;
  font-size: 10px;
  line-height: 1.6;
  color: var(--muted-deep);
  letter-spacing: 0.12em;
}.availability-calendar .availability-calendar-grid{
  gap: 6px;
}.availability-calendar .availability-day{
  min-width: 0;
  min-height: clamp(76px, 7vw, 92px);
  padding: 8px 6px;
  display: grid;
  grid-template-rows: auto 1fr;
  align-content: start;
  border: 0.5px solid transparent;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.018);
  color: var(--muted-deep);
}.availability-calendar .availability-day-blank{
  visibility: hidden;
}.availability-calendar .availability-day.is-available{
  border-color: var(--ink);
  background: #ffffff;
  color: var(--ink);
}.availability-calendar .availability-day.is-today{
  border-color: rgba(0, 0, 0, 0.34);
}.availability-calendar .availability-day-head{
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px;
}.availability-calendar .availability-day-number{
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0;
}.availability-calendar .availability-day-times{
  min-width: 0;
  width: 100%;
  display: grid;
  align-content: end;
  justify-items: center;
  gap: 3px;
  margin-top: 8px;
}.availability-calendar .availability-time-pill{
  max-width: 100%;
  min-width: 0;
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 4px 3px;
  border: 0.5px solid var(--line);
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: 9px;
  line-height: 1.08;
  letter-spacing: 0;
  text-align: center;
  overflow: hidden;
}.availability-calendar .availability-time-pill > span{
  min-width: 0;
}@media (max-width: 720px){.availability-section .availability-list.availability-calendar,
  #availability .availability-list.availability-calendar{
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100%, calc(100vw - 40px), 390px) !important;
    max-width: min(100%, calc(100vw - 40px), 390px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 16px !important;
  }.availability-calendar .availability-month{
    padding: 14px 10px;
  }.availability-calendar .availability-month-header{
    gap: 10px;
    margin-bottom: 14px;
  }.availability-calendar .availability-month-header h3{
    font-size: 24px;
  }.availability-calendar .availability-weekdays,
  .availability-calendar .availability-calendar-grid{
    gap: 3px;
  }.availability-calendar .availability-day{
    min-height: 62px;
    padding: 6px 3px;
    border-radius: 4px;
  }.availability-calendar .availability-day-number{
    font-size: 11px;
  }.availability-calendar .availability-day-times{
    gap: 2px;
    margin-top: 4px;
  }.availability-calendar .availability-time-pill{
    padding: 3px 2px;
    border-radius: 3px;
    font-size: 8px;
  }}.section{
  --woody-line: rgba(0, 0, 0, 0.18);
  --woody-soft: rgba(0, 0, 0, 0.45);
  background: #fff !important;
  color: #000 !important;
  text-align: center !important;
}[data-reveal]{
  opacity: 1 !important;
  transform: none !important;
}.section:not(.availability-section){
  padding-top: 112px !important;
  padding-bottom: 112px !important;
  border-top: 0.5px solid var(--woody-line) !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro, .contact-lead, .location-note, .location-disclaimer),
.formats-section .section-inner > p{
  width: min(calc(100vw - 48px), 620px) !important;
  max-width: min(calc(100vw - 48px), 620px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: var(--woody-soft) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.15 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro){
  margin-top: -24px !important;
  margin-bottom: 58px !important;
}.section :is(.feature-grid, .method-grid, .curriculum-grid, .lesson-grid, .trial-assurance-grid, .price-grid, .coupon-grid, .location-grid, .formats-grid, .formats-common-grid, .corporate-grid){
  gap: 0 !important;
  border-top: 0.5px solid var(--woody-line) !important;
  border-left: 0.5px solid var(--woody-line) !important;
}.section :is(.feature-card, .method-item, .curriculum-card, .lesson-card, .trial-assurance-card, .price-card, .coupon-card, .location-card, .format-card, .format-feature, .corporate-card){
  background: #fff !important;
  border: 0 !important;
  border-right: 0.5px solid var(--woody-line) !important;
  border-bottom: 0.5px solid var(--woody-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: clamp(30px, 5vw, 52px) clamp(18px, 3.5vw, 34px) !important;
  text-align: center !important;
}.section :is(.highlight, .price-card.highlight, .lesson-card.highlight, .curriculum-card.highlight){
  background: #fff !important;
  border-color: var(--woody-line) !important;
}.section :is(.feature-num, .method-num, .curriculum-level, .format-num, .timeline-step, .corporate-kicker, .price-tag-text, .price-per, .lesson-lead, .voice-meta, .formats-common-label, .price-common-label){
  color: var(--woody-soft) !important;
  font-size: 9px !important;
  font-weight: 200 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.2em !important;
  text-align: center !important;
}.section :is(.feature-title, .method-title, .curriculum-title, .lesson-title, .price-name, .pricing-trial-title, .location-name, .format-title, .voice-headline),
.corporate-card h3{
  color: #000 !important;
  font-size: clamp(14px, 2vw, 18px) !important;
  font-weight: 200 !important;
  line-height: 1.7 !important;
  letter-spacing: 0.14em !important;
  text-align: center !important;
}.section :is(.feature-card p, .method-item p, .curriculum-card li, .lesson-card p, .trial-assurance-card p, .price-list li, .coupon-card li, .location-meta, .location-studios li, .format-body, .format-feature p, .voice-card blockquote, .corporate-card li, .corporate-note, .faq-item p){
  color: rgba(0, 0, 0, 0.56) !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 2.05 !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
}.section :is(.price-yen-num, .coupon-amount, .pricing-trial-yen){
  color: #000 !important;
  font-size: clamp(20px, 3vw, 28px) !important;
  font-weight: 100 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}.city-cta,
.hero-cta,
.form-submit,
.payment-submit,
.material-link,
.corporate-cta{
  border: 0.5px solid #000 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #000 !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}@media (max-width: 880px){.section:not(.availability-section){
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }.section :is(.feature-grid, .method-grid, .curriculum-grid, .lesson-grid, .trial-assurance-grid, .price-grid, .coupon-grid, .location-grid, .formats-grid, .formats-common-grid, .corporate-grid),
  .timeline{
    grid-template-columns: 1fr !important;
  }}@media (max-width: 720px){.section :is(.method-intro, .curriculum-intro, .pricing-lead, .onboarding-intro, .voice-intro, .contact-lead, .location-note, .location-disclaimer),
  .formats-section .section-inner > p{
    width: min(calc(100vw - 32px), 620px) !important;
    max-width: min(calc(100vw - 32px), 620px) !important;
    font-size: 11px !important;
    line-height: 2.1 !important;
    letter-spacing: 0.07em !important;
  }}section.availability-section,
#availability.availability-section,
.city-page section.availability-section{
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  display: block !important;
  text-align: center !important;
}.city-page .city-hero:has(+ section.availability-section){
  border-bottom: 0 !important;
}section.availability-section + section,
#availability.availability-section + section,
#availability.availability-section + .payment-section,
#availability.availability-section + .one-page-payment{
  border-top: 0 !important;
}section.availability-section .section-label,
section.availability-section .section-title,
section.availability-section .city-eyebrow,
section.availability-section h2,
section.availability-section .availability-lead,
section.availability-section .availability-note{
  width: min(calc(100vw - 40px), var(--max-text)) !important;
  max-width: min(calc(100vw - 40px), var(--max-text)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  transform: none !important;
  text-align: center !important;
}section.availability-section .availability-list.availability-calendar,
#availability.availability-section .availability-list.availability-calendar{
  width: min(calc(100vw - 40px), 1060px) !important;
  max-width: min(calc(100vw - 40px), 1060px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
}section.availability-section .availability-month{
  margin-left: auto !important;
  margin-right: auto !important;
}@media (max-width: 720px){section.availability-section .availability-list.availability-calendar,
  #availability.availability-section .availability-list.availability-calendar{
    width: min(calc(100vw - 40px), 390px) !important;
    max-width: min(calc(100vw - 40px), 390px) !important;
  }}:root{
  --woody-axis-text: min(calc(100vw - 48px), 680px);
  --woody-axis-wide: min(calc(100vw - 48px), 1160px);
  --woody-line: rgba(0, 0, 0, 0.18);
  --woody-soft: rgba(0, 0, 0, 0.45);
}body,
main,
section,
article{
  background: #fff !important;
  color: #000 !important;
}#availability .section-title,
section.availability-section .section-title,
#availability .availability-lead,
section.availability-section .availability-lead,
#availability .availability-note,
section.availability-section .availability-note{
  width: min(calc(100vw - 40px), var(--max-text)) !important;
  max-width: min(calc(100vw - 40px), var(--max-text)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  text-indent: 0 !important;
  transform: none !important;
  justify-self: center !important;
}body.city-page article.city-section,
body.city-page main article.city-section,
article.city-section{
  display: grid !important;
  justify-items: center !important;
  width: var(--woody-axis-text) !important;
  max-width: var(--woody-axis-text) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  transform: none !important;
}body.city-page article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline, .city-intro, .city-note, p, h1, h2),
body.city-page main article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline, .city-intro, .city-note, p, h1, h2),
article.city-section > :is(.city-eyebrow, .city-h1, .city-tagline, .city-intro, .city-note, p, h1, h2){
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  text-indent: 0 !important;
  transform: none !important;
  justify-self: center !important;
}:where(.section-mark, .availability-section-mark){
  width: 36px !important;
  height: 36px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: #000 !important;
}:where(.section-mark, .availability-section-mark) svg{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1px !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  overflow: visible !important;
}@media (max-width: 720px){:root{
    --woody-axis-text: min(calc(100vw - 40px), 640px);
    --woody-axis-wide: min(calc(100vw - 40px), 640px);
  }.section:not(.availability-section) .section-title,
  body.city-page .section:not(.availability-section) .section-title,
  main .section:not(.availability-section) .section-title,
  body.city-page article.city-section,
  body.city-page main article.city-section,
  article.city-section{
    width: var(--woody-axis-text) !important;
    max-width: var(--woody-axis-text) !important;
  }}body .hero .hero-inner > .tagline,
body .hero .hero-inner > .tagline-sub,
body.city-page article.city-section > .city-eyebrow,
body.city-page article.city-section > .city-h1,
body.city-page article.city-section > .city-tagline{
  text-indent: 0 !important;
}body.city-page article.city-section > .city-h1{
  font-size: clamp(21px, 2.2vw, 28px) !important;
  letter-spacing: 0.18em !important;
  min-width: 0 !important;
}#availability.availability-section,
section.availability-section{
  background: #fff !important;
  color: #000 !important;
}#availability .availability-lead,
section.availability-section .availability-lead{
  width: min(calc(100vw - 40px), var(--max-text)) !important;
  max-width: min(calc(100vw - 40px), var(--max-text)) !important;
  margin: 0 auto 84px !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 10px !important;
  font-weight: 200 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}#availability .availability-lead span,
section.availability-section .availability-lead span{
  display: block !important;
}#availability .availability-list.availability-calendar,
section.availability-section .availability-list.availability-calendar{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 500px)) !important;
  justify-content: center !important;
  gap: 84px 60px !important;
  width: min(calc(100vw - 40px), 1060px) !important;
  max-width: min(calc(100vw - 40px), 1060px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
}#availability .availability-calendar .availability-month,
section.availability-section .availability-calendar .availability-month{
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
}#availability .availability-calendar .availability-month-header,
section.availability-section .availability-calendar .availability-month-header{
  margin: 0 0 30px !important;
  display: block !important;
  text-align: center !important;
}#availability .availability-calendar .availability-month-header h3,
section.availability-section .availability-calendar .availability-month-header h3{
  margin: 0 !important;
  color: #000 !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 1 !important;
  letter-spacing: 0.26em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-weekdays,
section.availability-section .availability-calendar .availability-weekdays{
  gap: 0 !important;
  margin: 0 0 14px !important;
}#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span{
  padding: 0 0 10px !important;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 8px !important;
  font-weight: 200 !important;
  line-height: 1 !important;
  letter-spacing: 0.22em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid{
  gap: 0 !important;
  border-top: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  border-left: 0.5px solid rgba(0, 0, 0, 0.18) !important;
}#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  min-height: 112px !important;
  padding: 14px 6px !important;
  display: grid !important;
  grid-template-rows: none !important;
  align-content: center !important;
  justify-items: center !important;
  border: 0 !important;
  border-right: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.18) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: rgba(0, 0, 0, 0.45) !important;
  text-align: center !important;
}#availability .availability-calendar .availability-day.is-available,
section.availability-section .availability-calendar .availability-day.is-available{
  color: #000 !important;
}#availability .availability-calendar .availability-day-blank,
section.availability-section .availability-calendar .availability-day-blank{
  visibility: visible !important;
  color: transparent !important;
}#availability .availability-calendar .availability-day-head,
section.availability-section .availability-calendar .availability-day-head{
  display: grid !important;
  justify-items: center !important;
  gap: 0 !important;
}#availability .availability-calendar .availability-day-number,
section.availability-section .availability-calendar .availability-day-number{
  color: currentColor !important;
  font-size: 10px !important;
  font-weight: 200 !important;
  line-height: 1 !important;
  letter-spacing: 0.22em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-day-times,
section.availability-section .availability-calendar .availability-day-times{
  display: grid !important;
  gap: 7px !important;
  justify-items: center !important;
  align-content: center !important;
  margin-top: 11px !important;
  width: 100% !important;
}#availability .availability-calendar .availability-time-pill,
section.availability-section .availability-calendar .availability-time-pill{
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #000 !important;
  font-family: var(--font-sans) !important;
  font-size: 8px !important;
  font-weight: 200 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.14em !important;
  text-align: center !important;
}#availability .availability-calendar .availability-time-pill span,
section.availability-section .availability-calendar .availability-time-pill span{
  display: inline !important;
}#availability .availability-note,
section.availability-section .availability-note{
  width: min(calc(100vw - 40px), var(--max-text)) !important;
  max-width: min(calc(100vw - 40px), var(--max-text)) !important;
  margin: 42px auto 0 !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 10px !important;
  font-weight: 200 !important;
  letter-spacing: 0.18em !important;
  text-align: center !important;
}@media (max-width: 720px){#availability .availability-list.availability-calendar,
  section.availability-section .availability-list.availability-calendar{
    width: min(calc(100vw - 32px), 390px) !important;
    max-width: min(calc(100vw - 32px), 390px) !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 72px !important;
  }#availability .availability-lead,
  section.availability-section .availability-lead{
    margin-bottom: 74px !important;
  }#availability .availability-calendar .availability-month-header,
  section.availability-section .availability-calendar .availability-month-header{
    margin-bottom: 24px !important;
  }#availability .availability-calendar .availability-month-header h3,
  section.availability-section .availability-calendar .availability-month-header h3{
    font-size: 10px !important;
  }#availability .availability-calendar .availability-weekdays span,
  section.availability-section .availability-calendar .availability-weekdays span{
    font-size: 7px !important;
  }#availability .availability-calendar .availability-day,
  section.availability-section .availability-calendar .availability-day{
    min-height: 88px !important;
    padding: 10px 2px !important;
  }#availability .availability-calendar .availability-day-number,
  section.availability-section .availability-calendar .availability-day-number{
    font-size: 8px !important;
  }#availability .availability-calendar .availability-day-times,
  section.availability-section .availability-calendar .availability-day-times{
    margin-top: 9px !important;
    gap: 5px !important;
  }#availability .availability-calendar .availability-time-pill,
  section.availability-section .availability-calendar .availability-time-pill{
    font-size: clamp(7px, 1.8vw, 7.5px) !important;
  }}#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{aspect-ratio:1/1!important;min-height:0!important;height:auto!important;padding:6px 4px!important;overflow:hidden!important;}#availability .availability-calendar .availability-day-symbol,
section.availability-section .availability-calendar .availability-day-symbol{
  margin-top: 3px;
  color: rgba(0, 0, 0, 0.76);
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 300;
  line-height: 1;
}#availability .availability-calendar .availability-day-status-label,
section.availability-section .availability-calendar .availability-day-status-label{
  margin-top: 3px;
  color: rgba(0, 0, 0, 0.54);
  font-family: var(--font-sans);
  font-size: 8px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.02em;
}#availability .availability-calendar .availability-day.is-closed .availability-day-symbol,
section.availability-section .availability-calendar .availability-day.is-closed .availability-day-symbol{
  color: rgba(0, 0, 0, 0.28);
}#availability .availability-lead,
section.availability-section .availability-lead{
  margin-bottom: clamp(36px, 5vw, 52px) !important;
  color: rgba(0, 0, 0, 0.58) !important;
  font-size: 12px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.08em !important;
}#availability .availability-lead span + span,
section.availability-section .availability-lead span + span{
  margin-top: 8px !important;
  color: rgba(0, 0, 0, 0.72) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
}#availability .availability-list.availability-calendar,
section.availability-section .availability-list.availability-calendar{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: start !important;
  justify-content: center !important;
  gap: clamp(22px, 3vw, 32px) !important;
  width: min(calc(100vw - 48px), 980px) !important;
  max-width: 980px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: visible !important;
}#availability .availability-calendar .availability-month,
section.availability-section .availability-calendar .availability-month{
  width: 100% !important;
  min-width: 0 !important;
  padding: clamp(20px, 2.3vw, 28px) !important;
  border: 0.5px solid rgba(0, 0, 0, 0.14) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.035) !important;
}#availability .availability-calendar .availability-month-header,
section.availability-section .availability-calendar .availability-month-header{
  margin: 0 0 18px !important;
}#availability .availability-calendar .availability-month-header h3,
section.availability-section .availability-calendar .availability-month-header h3{
  font-size: 17px !important;
  line-height: 1.3 !important;
  letter-spacing: 0.14em !important;
}#availability .availability-calendar .availability-weekdays,
section.availability-section .availability-calendar .availability-weekdays{
  gap: 5px !important;
  margin: 0 0 6px !important;
}#availability .availability-calendar .availability-weekdays span,
section.availability-section .availability-calendar .availability-weekdays span{
  padding: 7px 2px 9px !important;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.14) !important;
  font-size: 10px !important;
  line-height: 1 !important;
  letter-spacing: 0.08em !important;
}#availability .availability-calendar .availability-calendar-grid,
section.availability-section .availability-calendar .availability-calendar-grid{
  gap: 5px !important;
  border: 0 !important;
}#availability .availability-calendar .availability-day,
section.availability-section .availability-calendar .availability-day{
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 7px 5px 6px !important;
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  align-content: stretch !important;
  justify-items: center !important;
  border: 0.5px solid rgba(0, 0, 0, 0.11) !important;
  border-radius: 7px !important;
  background: rgba(0, 0, 0, 0.018) !important;
  overflow: hidden !important;
}#availability .availability-calendar .availability-day.is-available,
section.availability-section .availability-calendar .availability-day.is-available{
  border-color: rgba(0, 0, 0, 0.22) !important;
  background: #fff !important;
}#availability .availability-calendar .availability-day-blank,
section.availability-section .availability-calendar .availability-day-blank{
  visibility: hidden !important;
  border-color: transparent !important;
  background: transparent !important;
}#availability .availability-calendar .availability-day-head,
section.availability-section .availability-calendar .availability-day-head{
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}#availability .availability-calendar .availability-day-number,
section.availability-section .availability-calendar .availability-day-number{
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}#availability .availability-calendar .availability-day-symbol,
section.availability-section .availability-calendar .availability-day-symbol{
  align-self: center !important;
  margin: 0 !important;
  font-size: clamp(19px, 2vw, 23px) !important;
  line-height: 1 !important;
}#availability .availability-calendar .availability-day-status-label,
section.availability-section .availability-calendar .availability-day-status-label{
  align-self: end !important;
  margin-top: 0 !important;
  font-size: 8px !important;
  line-height: 1.2 !important;
}#availability .availability-calendar .availability-day-status-label:empty,
section.availability-section .availability-calendar .availability-day-status-label:empty{
  display: none !important;
}#availability .availability-calendar .availability-day-times,
section.availability-section .availability-calendar .availability-day-times{
  align-self: center !important;
  margin-top: 4px !important;
}#availability .availability-note,
section.availability-section .availability-note{
  margin-top: 32px !important;
}@media (max-width: 900px){#availability .availability-list.availability-calendar,
  section.availability-section .availability-list.availability-calendar{
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(calc(100vw - 40px), 560px) !important;
    max-width: 560px !important;
    gap: 24px !important;
  }}@media (max-width: 480px){#availability .availability-lead,
  section.availability-section .availability-lead{
    width: min(calc(100vw - 32px), var(--max-text)) !important;
    max-width: min(calc(100vw - 32px), var(--max-text)) !important;
    margin-bottom: 32px !important;
    font-size: 11px !important;
    line-height: 1.85 !important;
  }#availability .availability-lead span + span,
  section.availability-section .availability-lead span + span{
    margin-top: 10px !important;
    font-size: 10px !important;
  }#availability .availability-list.availability-calendar,
  section.availability-section .availability-list.availability-calendar{
    width: min(calc(100vw - 32px), 366px) !important;
    max-width: 366px !important;
    gap: 18px !important;
  }#availability .availability-calendar .availability-month,
  section.availability-section .availability-calendar .availability-month{
    padding: 16px 14px !important;
    border-radius: 12px !important;
  }#availability .availability-calendar .availability-month-header,
  section.availability-section .availability-calendar .availability-month-header{
    margin-bottom: 12px !important;
  }#availability .availability-calendar .availability-month-header h3,
  section.availability-section .availability-calendar .availability-month-header h3{
    font-size: 15px !important;
  }#availability .availability-calendar .availability-weekdays,
  #availability .availability-calendar .availability-calendar-grid,
  section.availability-section .availability-calendar .availability-weekdays,
  section.availability-section .availability-calendar .availability-calendar-grid{
    gap: 3px !important;
  }#availability .availability-calendar .availability-weekdays span,
  section.availability-section .availability-calendar .availability-weekdays span{
    padding: 6px 1px 8px !important;
    font-size: 9px !important;
  }#availability .availability-calendar .availability-day,
  section.availability-section .availability-calendar .availability-day{
    aspect-ratio: auto !important;
    min-height: 56px !important;
    padding: 5px 3px 4px !important;
    border-radius: 6px !important;
  }#availability .availability-calendar .availability-day-number,
  section.availability-section .availability-calendar .availability-day-number{
    font-size: 10px !important;
  }#availability .availability-calendar .availability-day-symbol,
  section.availability-section .availability-calendar .availability-day-symbol{
    font-size: 19px !important;
  }#availability .availability-note,
  section.availability-section .availability-note{
    margin-top: 24px !important;
  }}html body.trial-area-page main#main > section.availability-section > .availability-list.availability-calendar{
  width: min(calc(100vw - 48px), 980px) !important;
  max-width: 980px !important;
}@media (max-width: 900px){html body.trial-area-page main#main > section.availability-section > .availability-list.availability-calendar{
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(calc(100vw - 40px), 560px) !important;
    max-width: 560px !important;
  }}@media (max-width: 480px){html body.trial-area-page main#main > section.availability-section > .availability-list.availability-calendar{
    width: min(calc(100vw - 32px), 366px) !important;
    max-width: 366px !important;
  }}.payment-section{ padding: 80px 24px; }.payment-section + .payment-section{ border-top: 0.5px solid #000; }.payment-section h2{
  text-align: center;
  font-size: 18px;
  letter-spacing: 0.3em;
  font-weight: 300;
  margin: 0 0 16px;
}.payment-section-lead{
  text-align: center;
  font-size: 13px;
  color: #333;
  margin: 0 auto 40px;
  max-width: 560px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}.payment-card-cta{
  font-size: 10px;
  letter-spacing: 0.3em;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 0.5px solid currentColor;
  width: 60%;
}.payment-status{
  color: #666;
  margin: 32px auto 0;
  font-size: 12px;
  text-align: center;
  letter-spacing: 0.05em;
}.payment-status[data-status="ready"]:empty{ display: none; }.payment-status[data-status="pending"]{ color: #666; }.payment-status[data-status="partial"]{ color: #444; }body.city-page main .city-h1,
body.city-page .city-hero .city-h1{
  white-space: normal !important;
  text-wrap: balance !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  overflow: visible !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  text-indent: 0 !important;
  letter-spacing: 0.04em !important;
  font-size: clamp(27px, 4.4vw, 50px) !important;
  line-height: 1.5 !important;
}@media (max-width: 720px){body.city-page main .city-h1,
  body.city-page .city-hero .city-h1{
    font-size: clamp(22px, 6.2vw, 30px) !important;
    line-height: 1.6 !important;
    letter-spacing: 0.02em !important;
    text-indent: 0 !important;
  }}body.city-page main .city-intro{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  position: static !important;
  transform: none !important;
  color: rgba(0, 0, 0, 0.72) !important;
  font-size: clamp(13px, 3.5vw, 15px) !important;
  line-height: 2.0 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  text-indent: 0 !important;
}.woody-icon{display:block;margin:0 auto 18px;color:var(--ink,#111);width:48px;height:48px;flex:none}.city-hero-inner > .woody-icon{margin-bottom:22px}@media (max-width:720px){.woody-icon{width:42px;height:42px;margin-bottom:16px}}body.luxe .reveal{
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 600ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}body.luxe .reveal.in-view{
  opacity: 1;
  transform: none;
}@media (prefers-reduced-motion: reduce){body.luxe .reveal{ opacity: 1 !important; transform: none !important; transition: none !important; }}body.luxe .city-hero{
  position: relative;
  overflow: hidden;
  padding-top: 132px;
  padding-bottom: 96px;
}body.luxe .city-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to right,  transparent calc(50% - 0.25px), rgba(0,0,0,0.045) calc(50% - 0.25px), rgba(0,0,0,0.045) calc(50% + 0.25px), transparent calc(50% + 0.25px)),
    linear-gradient(to bottom, transparent calc(80% - 0.25px), rgba(0,0,0,0.035) calc(80% - 0.25px), rgba(0,0,0,0.035) calc(80% + 0.25px), transparent calc(80% + 0.25px));
  pointer-events: none;
  z-index: 0;
}body.luxe .city-hero-inner{ position: relative; z-index: 1; }@media (max-width: 720px){body.luxe .city-hero{ padding-top: 96px; padding-bottom: 72px; }}body.luxe.city-page main .city-hero .city-h1{
  font-size: clamp(34px, 6.6vw, 64px) !important;
  letter-spacing: 0.06em !important;
  font-weight: 200 !important;
  line-height: 1.42 !important;
}@media (max-width: 720px){body.luxe.city-page main .city-hero .city-h1{
    font-size: clamp(26px, 7.2vw, 36px) !important;
    line-height: 1.5 !important;
    letter-spacing: 0.04em !important;
  }}body.luxe .city-eyebrow{
  font-size: 11px !important;
  letter-spacing: 0.34em !important;
  color: rgba(0,0,0,0.45) !important;
  text-transform: uppercase;
}body.luxe .city-section{
  padding-top: 96px;
  padding-bottom: 96px;
  border-bottom: 0.5px solid rgba(0,0,0,0.08);
}body.luxe .city-section:last-of-type{ border-bottom: 0; }@media (max-width: 720px){body.luxe .city-section{ padding-top: 64px; padding-bottom: 64px; }}body.luxe .luxe-card{
  border: 0.5px solid rgba(0,0,0,0.12);
  background: var(--bg, #fff);
  padding: 72px 36px;
  margin-left: auto;
  margin-right: auto;
  max-width: 760px;
  transition: border-color 520ms cubic-bezier(0.16, 1, 0.3, 1);
}body.luxe .luxe-card:hover{
  border-color: rgba(0,0,0,0.28);
}@media (max-width: 720px){body.luxe .luxe-card{ padding: 48px 22px; }}body.luxe .city-cta{
  transition:
    border-color 320ms cubic-bezier(0.16, 1, 0.3, 1),
    background 320ms cubic-bezier(0.16, 1, 0.3, 1),
    color 320ms cubic-bezier(0.16, 1, 0.3, 1);
}body.luxe .city-cta:hover{
  background: #fff;
  color: #0a0a0a;
  border-color: rgba(0,0,0,0.45);
}body.luxe a:not(.city-cta):not(.site-mark){
  transition: color 280ms cubic-bezier(0.16, 1, 0.3, 1), border-color 280ms cubic-bezier(0.16, 1, 0.3, 1);
}body.luxe a:not(.city-cta):not(.site-mark):hover{
  color: #000;
  border-bottom-color: rgba(0,0,0,0.6);
}body.luxe .city-hero-inner > .woody-icon{
  width: 56px;
  height: 56px;
  margin-bottom: 28px;
}@media (max-width: 720px){body.luxe .city-hero-inner > .woody-icon{ width: 48px; height: 48px; margin-bottom: 22px; }}body:not(.v3-page),
body:not(.v3-page) *,
body:not(.v3-page) button,
body:not(.v3-page) input,
body:not(.v3-page) select,
body:not(.v3-page) textarea{
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
}body:not(.v3-page){
  font-size: 13px !important;
  line-height: 2.05 !important;
  letter-spacing: 0.14em !important;
}body:not(.v3-page) h1,
body:not(.v3-page) .city-h1,
body:not(.v3-page) .hero-title,
body:not(.v3-page) .wordmark-main{
  font-size: 40px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.16em !important;
  font-weight: 100 !important;
}body:not(.v3-page) h2,
body:not(.v3-page) .section-title,
body:not(.v3-page) .city-h2{
  font-size: 26px !important;
  line-height: 1.65 !important;
  letter-spacing: 0.18em !important;
  font-weight: 100 !important;
}body:not(.v3-page) p,
body:not(.v3-page) li,
body:not(.v3-page) .city-lead,
body:not(.v3-page) .city-tagline,
body:not(.v3-page) .lead{
  font-size: 12px !important;
  line-height: 2.15 !important;
  letter-spacing: 0.13em !important;
}body:not(.v3-page) .site-mark,
body:not(.v3-page) .site-nav a,
body:not(.v3-page) .city-eyebrow,
body:not(.v3-page) .section-label,
body:not(.v3-page) .eyebrow{
  font-size: 9px !important;
  letter-spacing: 0.42em !important;
}body:not(.v3-page) .city-cta,
body:not(.v3-page) .cta,
body:not(.v3-page) button,
body:not(.v3-page) input,
body:not(.v3-page) select,
body:not(.v3-page) textarea{
  font-size: 10px !important;
  letter-spacing: 0.36em !important;
}body:not(.v3-page) .site-header{
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 15px 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255,255,255,0.9) !important;
  border: 0 !important;
  border-bottom: 0.5px solid rgba(0,0,0,0.08) !important;
  box-shadow: none !important;
  backdrop-filter: saturate(140%) blur(12px) !important;
  -webkit-backdrop-filter: saturate(140%) blur(12px) !important;
  z-index: 1000 !important;
}body:not(.v3-page) .site-nav{
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}body:not(.v3-page) .site-nav a{
  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 13px !important;
  display: block !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #0a0a0a !important;
  font-family: var(--font-sans) !important;
  font-size: 9.5px !important;
  font-weight: 100 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.22em !important;
  text-indent: 0.22em !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap !important;
}body:not(.v3-page) .site-nav a span{
  display: inline !important;
  font: inherit !important;
  letter-spacing: inherit !important;
}@media (max-width: 720px){body:not(.v3-page){
    font-size: 12px !important;
  }body:not(.v3-page) h1,
  body:not(.v3-page) .city-h1,
  body:not(.v3-page) .hero-title,
  body:not(.v3-page) .wordmark-main{
    font-size: 28px !important;
    line-height: 1.65 !important;
    letter-spacing: 0.1em !important;
  }body:not(.v3-page) h2,
  body:not(.v3-page) .section-title,
  body:not(.v3-page) .city-h2{
    font-size: 22px !important;
    line-height: 1.75 !important;
    letter-spacing: 0.12em !important;
  }body:not(.v3-page) p,
  body:not(.v3-page) li,
  body:not(.v3-page) .city-lead,
  body:not(.v3-page) .city-tagline,
  body:not(.v3-page) .lead{
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
  }body:not(.v3-page) .site-header{
    padding: 12px 14px !important;
  }body:not(.v3-page) .site-nav a{
    padding: 0 9px !important;
    font-size: 9px !important;
    letter-spacing: 0.18em !important;
    text-indent: 0.18em !important;
  }}