:root {
  --st-hero-overlay: linear-gradient(90deg, rgba(8,8,12,.92), rgba(8,8,12,.7) 50%, rgba(8,8,12,.45));
  --st-store-overlay: rgba(10,6,8,.5);
  --st-photo-border: rgba(243,242,237,.28);
  --st-photo-card: rgba(14,14,17,.45);
  --st-photo-tag: rgba(255,255,255,.14);
  --st-card-border: #2c2c34;
  --st-coming-ground: #141418;
  --st-coming-border: #3a3a43;
  --st-hero-mobile-overlay: linear-gradient(0deg,rgba(8,8,12,.94),rgba(8,8,12,.65) 60%,rgba(8,8,12,.3));
  --st-store-mobile-overlay: linear-gradient(0deg,rgba(10,6,8,.9),rgba(10,6,8,.35) 70%);
}
.st-home h1,.st-home h2,.st-home h3,.st-home p,.st-home figure,.st-home blockquote { margin: 0; }
.st-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.st-review-meta .st-stars svg { width: 14px; height: 14px; }
.st-plan-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.st-plan-card { border: 1px solid var(--st-line); border-radius: 8px; padding: 24px; }
.st-plan-card-premium { border: 2px solid var(--st-accent); }
.st-plan-badge { background: var(--st-accent); color: var(--st-accent-text); padding: 8px; font-weight: 700; }
.st-home-section { padding: 64px max(32px, calc((100% - 1248px) / 2)); }
.st-section-heading { display: flex; align-items: baseline; gap: 16px; min-width: 0; }
.st-section-heading h2 { font: 800 52px/1.2 var(--st-font-en); letter-spacing: .03em; }
.st-section-heading > span { font: 700 15px/1.5 var(--st-font-heading); color: var(--st-ink-2); }
.st-home h3 { font: 900 22px/1.5 var(--st-font-heading); }
.st-home p { line-height: 1.8; }
.st-home .st-small { font-size: 13px; color: var(--st-ink-2); }
.st-text-link { display: inline-flex; align-items: center; min-height: 44px; padding-block: 11px; font-size: 14px; font-weight: 700; }
.st-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 4px; padding: 11px 24px; color: var(--st-ink); background: var(--st-paper); text-decoration: none; font-weight: 700; font-size: 15px; text-align: center; }
.st-button-accent { background: var(--st-accent); color: var(--st-accent-text); }
.st-button-line { background: var(--st-line-green); color: var(--st-paper); }
.st-button-line svg { width: 22px; height: 22px; }
.st-button-outline { border: 2px solid var(--st-accent); color: var(--st-paper); background: transparent; }
.st-mobile-only,.st-mobile-br { display: none; }
.st-hero-booking { position: relative; }
.st-hero { min-height: 700px; position: relative; color: var(--st-on-dark); padding: 84px max(32px, calc((100% - 1248px)/2)); background: var(--st-dark); }
.st-hero-image,.st-hero::after { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.st-hero::after { content: ''; background: var(--st-hero-overlay); }
.st-hero-copy { position: relative; z-index: 1; width: 56%; display: flex; flex-direction: column; gap: 22px; }
.st-eyebrow { font: 700 22px/1.4 var(--st-font-en); letter-spacing: .2em; }
.st-hero h1 { font: 800 clamp(74px,7.23vw,104px)/.9 var(--st-font-en); letter-spacing: .01em; }
.st-hero .st-hero-title { font: 900 clamp(23px,2.23vw,32px)/1.4 var(--st-font-heading); }
.st-hero-description { color: var(--st-on-dark-light); font-size: 16px; }
.st-benefits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.st-benefits li { display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--st-photo-border); border-radius: 6px; padding: 14px 16px; background: var(--st-photo-card); }
.st-benefits strong { font: 900 18px/1.5 var(--st-font-heading); color: var(--st-accent); }
.st-benefits span { font-size: 13px; color: var(--st-on-dark-light); }
.st-booking-panel { position: absolute; right: max(32px,calc((100% - 1248px)/2)); top: 84px; width: 31%; max-width: 440px; background: var(--st-paper); border-radius: 8px; padding: 28px; box-shadow: 0 20px 50px var(--st-shadow); scroll-margin-top: calc(var(--st-header-height) + 20px); }
.st-booking-panel h2 { font-size: 40px; }
.st-booking-panel .st-section-heading { gap: 12px; margin-bottom: 16px; }
.st-booking-panel .st-section-heading > span { font-size: 14px; }
.st-booking-fallback { display: flex; flex-direction: column; gap: 16px; }
.st-booking-fallback .st-button { min-height: 54px; }
.st-audience { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.st-audience-card { display: flex; flex-direction: column; gap: 14px; border: 1px solid var(--st-line); border-radius: 8px; padding: 28px 30px; }
.st-audience-card .st-section-heading h2 { font-size: 30px; }
.st-audience-card .st-text-link,.st-audience-card > .st-button { margin-top: auto; }
.st-price-number { font: 800 40px/1 var(--st-font-en); color: var(--st-accent-ink); }
.st-student-table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.st-student-table th,.st-student-table td { padding: 10px 0; border-bottom: 1px solid var(--st-line); text-align: right; white-space: nowrap; }
.st-student-table th:first-child { text-align: left; }
.st-student-table thead th { font-size: 12px; color: var(--st-ink-2); }
.st-student-table tbody th { font-weight: 400; }
.st-student-table td:last-child { font-weight: 700; }
.st-teachers { background: var(--st-dark); color: var(--st-on-dark); border-color: var(--st-dark); }
.st-teachers .st-section-heading > span { color: var(--st-on-dark-2); }
.st-teachers .st-small { color: var(--st-on-dark-light); }
.st-plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.st-plan-mini { border: 1px solid var(--st-card-border); border-radius: 6px; padding: 12px 14px; display: flex; flex-direction: column; }
.st-plan-mini > span { font-size: 12px; color: var(--st-on-dark-2); }
.st-plan-mini strong { font: 800 32px/1.3 var(--st-font-en); color: var(--st-accent); }
.st-plan-mini small { font: 700 13px var(--st-font-body); color: var(--st-on-dark); }
.st-studios { background: var(--st-dark); color: var(--st-on-dark); padding-top: 84px; position: relative; }
.st-studios .st-section-heading > span,.st-features .st-section-heading > span { color: var(--st-on-dark-2); }
.st-studio-note { position: absolute; top: 108px; right: max(32px,calc((100% - 1248px)/2)); color: var(--st-on-dark-2); font-size: 14px; }
.st-store-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 28px; }
.st-store-card { min-height: 480px; position: relative; border-radius: 6px; overflow: hidden; display: flex; }
.st-store-card > img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; }
.st-store-copy { position: relative; width: 100%; background: var(--st-store-overlay); padding: 40px; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; }
.st-store-copy .st-eyebrow { font-size: 16px; color: var(--st-accent); }
.st-store-copy h3 { font: 800 clamp(42px,5vw,72px)/.9 var(--st-font-en); }
.st-store-copy > strong { font: 700 20px var(--st-font-heading); }
.st-store-tags { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; }
.st-store-tags span { padding: 3px 10px; background: var(--st-photo-tag); border-radius: 3px; }
.st-store-actions { display: flex; gap: 10px; margin-top: 6px; }
.st-store-coming { background: var(--st-coming-ground); border: 1px dashed var(--st-coming-border); }
.st-store-coming .st-store-copy { background: none; }
.st-store-coming .st-eyebrow { color: var(--st-disabled); }
.st-store-coming h3 { color: var(--st-badge-border); }
.st-store-coming p { color: var(--st-on-dark-2); font-size: 14px; max-width: 390px; }
.st-features { background: var(--st-dark-2); color: var(--st-on-dark); padding-block: 60px 24px; }
.st-features h2 { font-size: 40px; }
.st-feature-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid var(--st-card-border); margin-top: 24px; }
.st-feature { text-align: center; padding: 24px 12px; border-right: 1px solid var(--st-card-border); }
.st-feature svg { color: var(--st-accent); }
.st-feature strong { display: block; font: 800 20px var(--st-font-en); letter-spacing: .06em; }
.st-feature div > span { font-size: 12px; color: var(--st-on-dark-2); }
.st-price-layout { display: grid; grid-template-columns: 1.6fr 1fr; gap: 32px; margin-top: 24px; }
.st-price-table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.st-price-table caption { padding-bottom: 10px; text-align: left; font-size: 13px; line-height: 23px; font-weight: 700; }
.st-price-table .st-price-unit { margin-left: 1px; font: 400 10px var(--st-font-body); }
.st-price-table th,.st-price-table td { padding: 16px 14px; border-bottom: 1px solid var(--st-line); text-align: right; }
.st-price-table th:first-child { text-align: left; }
.st-price-table thead { background: var(--st-dark); color: var(--st-on-dark); font-size: 12px; }
.st-price-table tbody th { line-height: 1.4; }
.st-price-table td { font: 700 24px var(--st-font-en); }
.st-price-table td:last-child { color: var(--st-accent-ink); font-weight: 800; }
.st-price-table thead th:last-child { color: var(--st-accent); }
.st-price-table caption { font-size: 14px; font-weight: 400; color: var(--st-ink-2); }
.st-price-table thead { font-size: 13px; }
/* Price columns sit evenly under their headings; the time-band column takes only the width it needs. */
.st-price-table:not(.st-price-table-special) th:first-child { width: 30%; }
.st-price-table:not(.st-price-table-special) :is(thead th, td):not(:first-child) { text-align: center; }
.st-holiday { color: var(--st-red); }
.st-price-notes { display: flex; flex-direction: column; gap: 14px; }
@media (min-width:1200px) {
  .st-price-layout > div:first-child { display: flex; flex-direction: column; }
  .st-price-layout .st-price-table { flex: 1; }
  .st-price-notes { margin-top: 33px; }
  .st-price-notes article { flex: 1; }
}
.st-price-notes article { padding: 22px 24px; border-radius: 6px; }
.st-price-notes h3 { font-size: 18px; }
.st-price-notes p { font-size: 14px; color: var(--st-ink-2); }
.st-price-notes .st-eyebrow { font-size: 18px; color: var(--st-accent-ink); }
.st-long-use { background: var(--st-dark); color: var(--st-on-dark); }
.st-long-use .st-eyebrow { color: var(--st-accent); }
.st-long-use p { color: var(--st-on-dark-light); }
.st-regular { background: var(--st-ground); }
.st-voice { background: var(--st-ground); position: relative; display: grid; grid-template-columns: 1fr auto auto; gap: 24px; align-items: baseline; }
.st-rating { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.st-stars { display: inline-flex; gap: 2px; color: var(--st-accent); letter-spacing: .1em; white-space: nowrap; }
.st-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; grid-column: 1/-1; }
.st-review { background: var(--st-paper); border-radius: 6px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.st-review-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.st-review-tag { font-size: 12px; font-weight: 700; background: var(--st-accent-soft); color: var(--st-accent-ink); border-radius: 3px; padding: 2px 8px; }
.st-review-meta .st-stars { font-size: 14px; }
.st-review h3 { font-size: 18px; }
.st-review blockquote { font-size: 15px; line-height: 1.8; }
.st-review figcaption { font-size: 12px; color: var(--st-muted); }
.st-review blockquote p + p { margin-top: 1em; }
.st-review figcaption { font-size: 16px; font-weight: 700; color: var(--st-ink); }
.st-review-link { grid-column: 3; grid-row: 1; }
.st-guide ol { list-style: none; padding: 0; margin: 26px 0 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.st-guide li { padding: 24px; border-radius: 6px; background: var(--st-ground); }
.st-step { font: 800 44px/1 var(--st-font-en); }
.st-guide h3 { font-size: 19px; margin-block: 10px; }
.st-guide p { font-size: 14px; color: var(--st-ink-2); }
.st-faq { background: var(--st-ground); }
.st-faq dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 48px; margin: 24px 0 0; }
.st-faq dl > div { border-top: 1px solid var(--st-line); padding: 18px 0; }
.st-faq dt { font-size: 16px; font-weight: 700; }
.st-faq dd { margin: 8px 0 0; font-size: 14px; line-height: 1.8; color: var(--st-ink-2); }
.st-column { position: relative; padding-bottom: 90px; }
.st-column-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 24px; }
.st-column-card { text-decoration: none; color: var(--st-ink); display: flex; flex-direction: column; gap: 12px; }
.st-column-card img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: 6px; }
.st-column-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.st-category { font-size: 12px; font-weight: 700; color: var(--st-paper); background: var(--st-dark); border-radius: 3px; padding: 2px 8px; }
.st-category-teacher { background: var(--st-accent); color: var(--st-accent-text); }
.st-column h3 { font-size: 17px; font-weight: 700; }
.st-column-link { position: absolute; top: 74px; right: max(32px,calc((100% - 1248px)/2)); }
@media (min-width:768px) and (max-width:1199px) {
  .st-hero-copy { width: 54%; }
  .st-booking-panel { width: 36%; padding: 20px; }
  .st-benefits li { padding: 10px 8px; }
  .st-benefits strong { font-size: 15px; }
  .st-audience-card { padding: 22px; }
  .st-plan-mini { padding: 10px 6px; }
  .st-store-copy { padding: 24px; }
  .st-store-actions { flex-wrap: wrap; }
  .st-price-layout { grid-template-columns: 1fr; }
  .st-voice { grid-template-columns: 1fr auto; }
  .st-review-link { grid-column: 1/-1; grid-row: 3; }
}
@media (max-width:767px) {
  .st-plan-cards { grid-template-columns: 1fr; }
  .st-desktop-only { display: none !important; }
  .st-mobile-only { display: inline; }
  .st-mobile-br { display: initial; }
  .st-home-section { padding: 48px 20px; }
  .st-section-heading { gap: 10px; }
  .st-section-heading h2 { font-size: 40px; }
  .st-section-heading > span { font-size: 13px; }
  .st-home .st-small { font-size: 12px; }
  .st-hero { min-height: 440px; padding: 32px 20px 22px; display: flex; align-items: flex-end; }
  .st-hero-image { object-position: 30% center; }
  .st-hero::after { background: var(--st-hero-mobile-overlay); }
  .st-hero-copy { width: 100%; gap: 12px; }
  .st-hero .st-eyebrow { font-size: 14px; letter-spacing: .18em; }
  .st-hero h1 { font-size: 58px; }
  .st-hero .st-hero-title { font-size: clamp(20px,6.15vw,24px); }
  .st-hero-description { font-size: 13px; }
  .st-benefits { gap: 6px; }
  .st-benefits li { padding: 8px 6px; gap: 2px; }
  .st-benefits strong { font-size: clamp(11px,3.3vw,14px); white-space: nowrap; }
  .st-benefits span { font-size: 12px; }
  .st-booking-panel { position: static; width: 100%; max-width: none; border-radius: 0; box-shadow: none; padding: 28px 20px 36px; }
  .st-booking-panel h2 { font-size: 36px; }
  .st-booking-switch { padding: 18px 16px; border: 1px solid var(--st-line); border-radius: 6px; background: var(--st-ground); }
  .st-audience { grid-template-columns: 1fr; gap: 16px; background: var(--st-ground); padding-block: 36px 52px; }
  .st-audience-card { padding: 22px 20px; gap: 12px; background: var(--st-paper); }
  .st-audience-card .st-section-heading h2 { font-size: 26px; }
  .st-audience-card h3 { font-size: 19px; }
  .st-price-number { font-size: 36px; }
  .st-student-table { font-size: 12px; }
  .st-student-table .st-student-four { display: none; }
  .st-teachers { background: var(--st-dark); }
  .st-plan-grid { gap: 6px; }
  .st-plan-mini { padding: 10px 6px; }
  .st-plan-mini strong { font-size: 26px; }
  .st-studios { padding-top: 52px; }
  .st-studio-note { display: none; }
  .st-store-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 18px; }
  .st-store-card { min-height: 430px; }
  .st-store-copy { padding: 22px; gap: 10px; background: var(--st-store-mobile-overlay); }
  .st-store-copy h3 { font-size: clamp(36px,12.8vw,50px); }
  .st-store-copy .st-eyebrow { font-size: 14px; }
  .st-store-copy > strong { font-size: 17px; }
  .st-store-tags { font-size: 12px; gap: 6px; }
  .st-store-tags span { padding: 2px 8px; }
  .st-store-tags span:last-child { display: none; }
  .st-store-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .st-store-actions .st-button { padding-inline: 6px; }
  .st-store-coming { min-height: 250px; }
  .st-features { padding-block: 44px; }
  .st-features h2 { font-size: 32px; }
  .st-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 18px; }
  .st-feature { text-align: left; display: flex; align-items: center; gap: 10px; padding: 16px 10px; border-bottom: 1px solid var(--st-card-border); }
  .st-feature svg { flex-shrink: 0; width: 26px; }
  .st-feature strong { font-size: 16px; }
  .st-feature div > span { line-height: 1.3; }
  .st-feature-3 { order: 5; grid-column: 1/-1; }
  .st-price > .st-small { display: block; margin-top: 14px; }
  .st-price-layout { grid-template-columns: 1fr; gap: 18px; margin-top: 14px; }
  .st-price-table { font-size: 12px; }
  .st-price-table th,.st-price-table td { padding: 12px 4px; }
  .st-price-table thead th { font-size: 11px; padding-block: 8px; }
  .st-price-table td { font: 400 13px var(--st-font-body); }
  .st-time-band { display: block; font-size: 11px; }
  .st-price-table + .st-small { display: block; margin-top: 14px; }
  .st-price-notes .st-long-use { display: none; }
  .st-price-notes article { padding: 18px; }
  .st-price-notes h3 { font-size: 16px; }
  .st-price-notes p { font-size: 13px; }
  .st-voice { display: flex; flex-direction: column; align-items: stretch; gap: 14px; padding-block: 44px; }
  .st-rating { font-size: 14px; gap: 10px; }
  .st-review-grid { grid-template-columns: 1fr; gap: 14px; }
  .st-review:nth-child(n+3) { display: flex; }
  .st-review { padding: 18px; gap: 10px; }
  .st-review h3 { font-size: 16px; }
  .st-review blockquote { font-size: 14px; }
  .st-review-link { align-self: center; }
  .st-guide ol { grid-template-columns: 1fr; gap: 12px; margin-top: 16px; }
  .st-guide li { display: flex; gap: 14px; padding: 18px; }
  .st-step { font-size: 34px; }
  .st-guide h3 { font-size: 17px; margin-block: 0 4px; }
  .st-guide p { line-height: 1.7; }
  .st-faq dl { grid-template-columns: 1fr; margin-top: 16px; }
  .st-faq dl > div { padding-block: 14px; }
  .st-faq dt { font-size: 15px; }
  .st-faq dd { line-height: 1.7; margin-top: 6px; }
  .st-column { padding-block: 44px 90px; }
  .st-column-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
  .st-column-card { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 12px; align-items: center; }
  .st-column-card img { height: 76px; border-radius: 4px; }
  .st-column-copy { gap: 4px; }
  .st-category { background: none; padding: 0; color: var(--st-muted); }
  .st-category-teacher { color: var(--st-accent-ink); }
  .st-column h3 { font-size: 15px; }
  .st-column-link { position: static; display: flex; justify-content: center; margin-top: 14px; }
}
