
/*
 * Tramontana climbing gym — single-file prototype.
 * Final production classes only; historical variants and dead selectors removed.
 * Hero artwork is embedded as WebP; typography is loaded from Google Fonts.
 */
:root {
  --red: #9e1317;
  --black: #0c0c0c;
  --paper: #f5efe6;
  --container: 1180px;

  --radius-card: 12px;
  --radius-control: 10px;
  --radius-pill: 999px;

  --control-height: 48px;
  --control-padding-x: 18px;

  --text-body: 16px;
  --text-meta: 10px;
  --text-button: 13px;
  --weight-strong: 800;

  --motion-fast: .18s ease;
  --font: "Manrope","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--black);
}

body {
  margin: 0;
  font-family: var(--font);
  background: var(--paper);
  color: var(--black);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
  text-decoration: none;
}

.tramontana-home {
  overflow: hidden;
  background: var(--paper);
}

.container {
  width: min(var(--container),calc(100% - 48px));
  margin-inline: auto;
}

.btn {
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-control);
  border: 1px solid transparent;
  font-weight: var(--weight-strong);
  font-size: var(--text-button);
  transition: transform .18s ease,background .18s ease,color .18s ease;
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.btn:hover {
  transform: translateY(-2px);
}

.btn--red {
  background: var(--red);
  color: #fff;
  box-shadow: none;
}

.btn--light {
  background: #fff;
  color: var(--black);
  border-color: rgba(255,255,255,.58);
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--red);
  font-size: 11px;
  font-weight: var(--weight-strong);
  text-transform: uppercase;
  letter-spacing: .14em;
}

.title {
  letter-spacing: -.065em;
  text-wrap: balance;
}

.hero {
  color: #fff;
  isolation: isolate;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: linear-gradient(130deg,rgba(255,255,255,.06) 0 1px,transparent 1px 22px),radial-gradient(circle,rgba(255,255,255,.10) 0 1px,transparent 2px);
  background-size: 52px 52px,20px 20px;
  mask-image: linear-gradient(#000 0%,#000 76%,transparent 100%);
}

.hero__grid {
  grid-template-columns: minmax(0,1fr) minmax(360px,.95fr);
  gap: clamp(42px,6vw,84px);
}

.hero__label {
  align-items: center;
  gap: 12px;
  color: var(--red);
  font-size: 12px;
  font-weight: var(--weight-strong);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hero__label::before {
  content: "";
  width: 36px;
  height: 3px;
  background: var(--red);
}

.hero h1 {
  text-transform: uppercase;
}

.hero h1 .red {
  color: var(--red);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.hero__nav {
  border-top: 1px solid rgba(255,255,255,.14);
  border-left: 1px solid rgba(255,255,255,.14);
}

@media (max-width:1100px) {
  .hero__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width:700px) {
  .container {
    width: min(100% - 28px,var(--container));
  }

  .hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    width: 100%;
    min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}
}

@media (prefers-reduced-motion:reduce) {
  *,
*::before,
*::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}

.hero__nav {
  display: grid;
  box-shadow: 0 22px 60px rgba(0,0,0,.30);
  overflow: hidden;
}

.hero__nav a {
  border-right: 1px solid rgba(255,255,255,.13);
  border-bottom: 0;
  color: #fff;
  flex-direction: column;
  border-radius: var(--radius-card);
}

.hero__nav a:last-child {
  border-right: 0;
}

.hero__nav strong {
  max-width: 220px;
  color: #fff;
  letter-spacing: -.04em;
}

@media (max-width:700px) {
  .hero__nav a {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.13);
    border-radius: var(--radius-card);
}

  .hero__nav a:last-child {
    border-bottom: 0;
  }
}

.hero::before {
  mix-blend-mode: soft-light;
}

.hero__content {
  position: relative;
  z-index: 4;
}

.hero h1 span {
  display: block;
  white-space: nowrap;
}

.hero__nav {
  backdrop-filter: blur(8px);
}

.hero {
  padding: 118px 0 38px;
  display: flex;
  align-items: flex-start;
}

.hero__content {
  padding-top: 10px;
}

@media (max-width: 1100px) {
  .hero {
    padding: 108px 0 34px;
  }
}

@media (max-width: 760px) {
  .hero {
    padding: 92px 0 28px;
  }

  .hero h1 span {
    white-space: normal;
  }
}

.first-path {
  overflow: hidden;
  color: #fff;
}


.first-path .container {
  position: relative;
  z-index: 1;
}

.first-path__head .title {
  color: #fff;
}

.first-path__steps {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.first-step {
  position: relative;
  border-radius: var(--radius-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}

.first-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
}

.first-step--red {
  background: var(--red);
  color: #fff;
}

.first-step--dark {
  background: #151313;
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
}

.first-step--light {
  background: #eee5da;
  color: #0a0a0a;
}

.first-step__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.first-step__num {
  line-height: .8;
  font-weight: var(--weight-strong);
  letter-spacing: -.075em;
}

.first-step--dark .first-step__num {
  color: var(--red);
}

.first-step--light .first-step__num {
  color: var(--red);
}

.first-step__status {
  margin-top: 2px;
  border: 1px solid currentColor;
  border-radius: var(--radius-pill);
  opacity: .58;
  line-height: 1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.first-step h3 {
  margin: 0 0 14px;
  max-width: 330px;
  letter-spacing: -.06em;
}

.first-step p {
  margin: 0;
  letter-spacing: -.01em;
  opacity: .72;
}

.first-step__link {
  display: block;
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: 0;
  text-transform: none;
  font-size: 11px;
}

.first-path__rail {
  display: grid;
  grid-template-columns: 1fr 32px 1fr 32px 1fr;
  align-items: center;
  gap: 8px;
  margin: 22px 18px 0;
  color: var(--red);
}

.first-path__rail span {
  height: 2px;
  background: linear-gradient(90deg,var(--red),rgba(158,19,23,.2));
}

.first-path__rail i {
  font-style: normal;
  text-align: center;
  font-size: 18px;
  font-weight: var(--weight-strong);
}

@media (max-width:980px) {
  .first-path__steps {
    grid-template-columns: 1fr;
  }

  .first-path__rail {
    display: none;
  }
}

.first-path__head {
  grid-template-columns: minmax(0,.72fr) minmax(420px,1.28fr);
  column-gap: 36px;
  align-items: stretch;
}

.first-path__head .title {
  align-self: end;
}

@media (max-width:980px) {
  .first-path__head {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.first-path__head {
  display: block;
}

.first-path__head .title {
  margin: 0;
  max-width: 760px;
}

.first-path {
  padding: 72px 0 78px;
}

.first-path__head .title {
  font-size: clamp(48px,4.4vw,72px);
  line-height: .92;
}

.first-path__steps {
  gap: 12px;
}

.first-step {
  min-height: 320px;
  padding: 24px 26px 22px;
  border-radius: var(--radius-card);
}

.first-step__num {
  font-size: 58px;
}

.first-step__status {
  padding: 6px 8px 5px;
  font-size: 9px;
  border-radius: var(--radius-pill);
}

.first-step__body {
  margin-top: 54px;
  padding-top: 0;
}

.first-step h3 {
  margin-bottom: 10px;
  font-size: clamp(32px,2.5vw,42px);
  line-height: .94;
}

.first-step p {
  max-width: 330px;
  font-size: 15px;
  line-height: 1.42;
}

.first-step__link {
  margin-top: 22px;
  font-size: 11px;
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: 0;
  text-transform: none;
}

.first-path__rail {
  margin-top: 16px;
}

@media (max-width:980px) {
  .first-step {
    min-height: 270px;
    border-radius: var(--radius-card);
}

  .first-step__body {
    margin-top: 38px;
  }
}

@media (max-width:680px) {
  .first-path {
    padding: 58px 0 64px;
  }

  .first-step {
    min-height: 250px;
    padding: 22px 20px 20px;
    border-radius: var(--radius-card);
}

  .first-step__num {
    font-size: 50px;
  }

  .first-step__body {
    margin-top: 34px;
  }

  .first-step h3 {
    font-size: 30px;
  }
}

.sauna__poster {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.sauna__top {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.sauna__top .eyebrow {
  margin: 0;
}

.sauna__top .eyebrow::before {
  background: #fff;
}

.sauna__hero {
  position: relative;
  z-index: 2;
  margin: auto 0 58px;
}

.sauna h2 {
  margin: 0;
  font-size: clamp(120px,13vw,220px);
  line-height: .74;
  text-transform: uppercase;
}

.sauna__lead {
  margin: 30px 0 0;
}

.sauna__bottom {
  position: relative;
  z-index: 2;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.16);
  display: grid;
}

.sauna__main {
  padding: 0 0 8px;
}

.sauna__main p {
  margin: 0;
}

.sauna__rings {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.sauna__rings i {
  position: absolute;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 50%;
}

.sauna__rings i:nth-child(1) {
  width: 440px;
  height: 440px;
  right: -70px;
  top: 110px;
}

.sauna__rings i:nth-child(2) {
  width: 240px;
  height: 240px;
  right: 180px;
  bottom: 140px;
}

.sauna__rings i:nth-child(3) {
  width: 120px;
  height: 120px;
  left: 54px;
  bottom: 180px;
}

@media (max-width:950px) {
  .sauna__hero {
    margin: 72px 0 44px;
  }
}

@media (max-width:680px) {
  .sauna__top {
    display: block;
  }

  .sauna__hero {
    margin: 52px 0 34px;
  }

  .sauna h2 {
    font-size: 72px;
  }

  .sauna__lead {
    margin-top: 18px;
  }

  .sauna__rings i:nth-child(1) {
    width: 240px;
    height: 240px;
    right: -60px;
    top: 120px;
  }

  .sauna__rings i:nth-child(2) {
    width: 120px;
    height: 120px;
    right: 80px;
    bottom: 110px;
  }

  .sauna__rings i:nth-child(3) {
    width: 64px;
    height: 64px;
    left: 18px;
    bottom: 130px;
  }
}

.sauna__hero {
  max-width: 1040px;
}

.sauna__lead {
  max-width: 760px;
  font-size: 34px;
  line-height: 1.14;
  letter-spacing: -.045em;
}

.sauna__main p {
  max-width: 560px;
  font-size: 18px;
  line-height: 1.52;
}

@media (max-width:680px) {
  .sauna__lead {
    font-size: 24px;
  }

  .sauna__main p {
    font-size: 16px;
  }
}

.sauna__top {
  justify-content: flex-start;
}

.sauna__bottom {
  grid-template-columns: minmax(0,1fr) minmax(280px,.48fr);
  gap: 28px;
  align-items: end;
}

.sauna__cta {
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease;
  border-radius: var(--radius-control);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.sauna .sauna__cta:hover {
  transform: translateY(-2px);
}

.sauna__cta span {
  font-size: 15px;
  line-height: 1;
  font-weight: var(--weight-strong);
  letter-spacing: -.01em;
  text-transform: uppercase;
}

.sauna__cta b {
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
}

@media (max-width:950px) {
  .sauna__bottom {
    grid-template-columns: 1fr;
  }

  .sauna__cta {
    max-width: 420px;
    min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}
}

@media (max-width:680px) {
  .sauna__cta {
    min-height: var(--control-height);
    padding: 0 var(--control-padding-x);
    max-width: none;
    border-radius: var(--radius-control);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

  .sauna__cta span {
    font-size: 13px;
  }

  .sauna__cta b {
    font-size: 16px;
    font-weight: 700;
  line-height: 1;
}
}

.about {
  padding: 120px 0;
  background: #eee5da;
  color: #0a0a0a;
}

.about__head {
  margin-bottom: 40px;
}

.about__head h2 {
  margin: 0;
  font-size: clamp(80px,8vw,132px);
  line-height: .78;
}

.about__grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  grid-template-rows: 260px 260px;
  gap: 14px;
}

.about__card {
  padding: 26px;
  border-radius: var(--radius-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.about__card small {
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  text-transform: uppercase;
  letter-spacing: .12em;
  opacity: .6;
  line-height: 1.1;
}

.about__card h3 {
  margin: auto 0 18px;
  font-size: 46px;
  line-height: .9;
  letter-spacing: -.06em;
}

.about__card span {
  font-size: 11px;
  font-weight: var(--weight-strong);
  text-transform: uppercase;
}

.about__card--trainers {
  grid-row: 1/3;
  background: var(--red);
  color: #fff;
}

.about__card--trainers h3 {
  font-size: 72px;
}

.about__card--gallery {
  background: #0a0a0a;
  color: #fff;
}

.about__card--routes {
  background: #fff;
}

.about__card--guide {
  display: none;
}

@media (max-width:1100px) {
  .about__grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .about__card--trainers {
    grid-row: auto;
  }
}

@media (max-width:700px) {
  .about__head h2 {
    font-size: 62px;
  }
}

.hero {
  background: linear-gradient(90deg, rgba(4,4,4,.14) 0%, rgba(4,4,4,.04) 45%, rgba(4,4,4,0) 100%),
    url("../img/hero.webp") center center / cover no-repeat;
}

.hero::before {
  opacity: .05;
}

@media (max-width:1100px) {
  .hero {
    background-position: 58% center;
  }
}

.hero {
  padding-bottom: 42px;
}

.hero__grid--background {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.hero__content {
  width: min(760px,58vw);
  max-width: none;
  margin: 0;
  padding: clamp(36px,6vh,86px) 0 22px;
}

.hero__label {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  margin-bottom: 34px;
  text-align: right;
}

.hero h1 {
  max-width: 760px;
  margin: 0 0 0 auto;
  font-size: clamp(76px,8.4vw,138px);
  line-height: .78;
  text-align: right;
}

.hero__actions {
  margin-top: 46px;
  justify-content: flex-end;
}

.first-path {
  padding-bottom: 120px;
}

.extras {
  padding: 118px 0 126px;
  background: #090909;
  color: #fff;
}

.extras__head h2 {
  margin: 0;
  font-size: clamp(82px,9vw,148px);
  line-height: .76;
  text-transform: uppercase;
}

.extras__grid {
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  grid-template-rows: 280px 260px;
  gap: 14px;
}

.extras-card {
  position: relative;
  padding: 26px;
  border-radius: var(--radius-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.extras-card small {
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .58;
  line-height: 1.1;
}

.extras-card h3 {
  margin: auto 0 16px;
  font-size: clamp(52px,5.2vw,82px);
  line-height: .82;
  letter-spacing: -.075em;
  text-transform: uppercase;
}

.extras-card p {
  margin: 0 0 20px;
  max-width: 360px;
  font-size: var(--text-body);
  line-height: 1.5;
  opacity: .72;
}

.extras-card span {
  font-size: 10px;
  font-weight: var(--weight-strong);
  text-transform: uppercase;
}

.extras-card--ofp {
  grid-column: 1 / span 5;
  grid-row: 1 / span 2;
  background: var(--red);
  color: #fff;
}

.extras-card--ofp h3 {
  font-size: clamp(92px,9vw,144px);
}

.extras-card--trx {
  grid-column: 6 / span 4;
  grid-row: 1;
  background: #181818;
  color: #fff;
  border: 1px solid rgba(255,255,255,.10);
}

.extras-card--trx h3 {
  font-size: clamp(48px,4.5vw,70px);
}

.extras-card--yoga {
  grid-column: 10 / span 3;
  grid-row: 1;
  background: #eee5da;
  color: #0a0a0a;
}

.extras-card--massage {
  grid-column: 6 / span 7;
  grid-row: 2;
  background: #fff;
  color: #0a0a0a;
}

.extras-card--massage h3 {
  font-size: clamp(62px,6.5vw,98px);
}

@media (max-width:1050px) {
  .hero__content {
    width: min(680px,66vw);
  }

  .extras__grid {
    grid-template-rows: auto;
  }

  .extras-card--ofp {
    grid-column: 1 / span 7;
    grid-row: auto;
    min-height: 420px;
  }

  .extras-card--trx {
    grid-column: 8 / span 5;
    grid-row: auto;
    min-height: 260px;
  }

  .extras-card--yoga {
    grid-column: 8 / span 5;
    grid-row: auto;
    min-height: 260px;
  }

  .extras-card--massage {
    grid-column: 1 / span 12;
    grid-row: auto;
    min-height: 250px;
  }
}

@media (max-width:760px) {
  .hero {
    padding-bottom: 28px;
    background-position: 67% center;
  }

  .hero__grid--background {
    padding-top: 48px;
  }

  .hero__content {
    width: 100%;
    max-width: 590px;
    padding: 0;
  }

  .hero h1 {
    font-size: clamp(58px,15vw,86px);
    line-height: .8;
  }

  .hero__actions {
    margin-top: 34px;
  }

  .extras {
    padding: 82px 0 88px;
  }

  .extras__head h2 {
    font-size: 68px;
  }

  .extras__grid {
    grid-template-columns: 1fr;
  }

  .extras-card--ofp,
.extras-card--trx,
.extras-card--yoga,
.extras-card--massage {
    grid-column: auto;
    grid-row: auto;
    min-height: 250px;
  }

  .extras-card--ofp {
    min-height: 330px;
  }

  .extras-card--ofp h3,
.extras-card h3,
.extras-card--massage h3 {
    font-size: 58px;
  }
}

.hero {
  padding-top: 42px;
  min-height: 100vh;
  height: auto;
}

.hero > .container {
  width: min(var(--container),calc(100% - 48px));
  max-width: none;
}

.hero__nav {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  grid-template-columns: repeat(5,minmax(0,1fr));
  margin-top: clamp(48px,7vh,88px);
}

.hero__nav a {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  border-radius: var(--radius-card);
}

.hero__nav strong {
  width: 100%;
  font-size: 14px;
  line-height: 1.08;
  text-align: left;
}

.first-path__head {
  margin-bottom: 44px;
}

.first-path__head .title {
  grid-column: 1 / -1;
}

@media (max-width:900px) {
  .hero__nav {
    grid-template-columns: repeat(3,1fr);
  }
}

@media (max-width:700px) {
  .hero {
    padding-top: 28px;
  }

  .hero__grid--background {
    min-height: auto;
  }

  .hero > .container {
    width: min(100% - 28px,var(--container));
  }

  .hero__nav {
    grid-template-columns: repeat(2,1fr);
  }

  .hero__nav strong {
    font-size: 13px;
  }
}

h1,
h2,
h3,
.title,
.hero h1,
.first-step h3,
.about__head h2,
.sauna h2,
.extras__head h2,
.extras-card h3 {
  font-family: var(--font-display);
  font-weight: 400;
}

.hero h1 {
  letter-spacing: -.055em;
}

.about__head h2,
.sauna h2,
.extras__head h2 {
  letter-spacing: -.045em;
}

.hero__nav {
  gap: 14px;
  background: transparent;
  border: 0;
}

.hero__nav a {
  min-height: 88px;
  padding: 20px 18px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius-card);
  background: rgba(10,10,10,.82);
  backdrop-filter: blur(6px);
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.hero .hero__nav a:hover {
  transform: translateY(-3px);
  background: rgba(22,22,22,.95);
  border-color: rgba(255,255,255,.26);
}

.hero__nav a + a {
  border-left: 1px solid rgba(255,255,255,.14);
}

.formats {
  padding: 118px 0 132px;
  background: #eee5da;
  color: #0a0a0a;
}

.formats__group + .formats__group {
  margin-top: 88px;
}

.formats__group-label {
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-display);
  font-size: clamp(30px,3vw,44px);
  line-height: .95;
  font-weight: 400;
  text-transform: uppercase;
}

.formats__group-label::before {
  content: "";
  width: 48px;
  height: 4px;
  background: var(--red);
  flex: 0 0 auto;
}

.formats small {
  display: block;
  margin-bottom: 20px;
  font-size: var(--text-meta);
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .55;
}

.formats h3 {
  margin: 0;
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.025em;
}

.formats p {
  margin: 12px 0 0;
  max-width: 440px;
  font-size: var(--text-body);
  line-height: 1.5;
  opacity: .66;
}

.formats span {
  display: block;
  margin-top: 24px;
  font-size: 10px;
  line-height: 1;
  font-weight: var(--weight-strong);
  text-transform: uppercase;
}

.formats__experienced {
  display: grid;
  grid-template-columns: 1.14fr .86fr;
  gap: 14px;
}

.formats__experienced-main {
  min-height: 440px;
  padding: 30px;
  border-radius: var(--radius-card);
  background-color: #080808;
  background-image:
    linear-gradient(
      90deg,
      rgba(0,0,0,.94) 0%,
      rgba(0,0,0,.88) 28%,
      rgba(0,0,0,.70) 52%,
      rgba(0,0,0,.38) 72%,
      rgba(0,0,0,.10) 90%,
      rgba(0,0,0,0) 100%
    ),
    url("../img/formats-experienced.webp");
  background-size: 100% 100%, cover;
  background-position: center center, 72% center;
  background-repeat: no-repeat, no-repeat;
  color: #fff;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

.formats__experienced-main > div {
  margin-top: auto;
}

.formats__experienced-main h3 {
  color: var(--red);
}

.formats__experienced-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 14px;
}

.formats__experienced-side a {
  min-height: 213px;
  padding: 26px;
  border-radius: var(--radius-card);
  display: flex;
  flex-direction: column;
}

.formats__experienced-side a:first-child {
  background: #fff;
  color: #0a0a0a;
}

.formats__experienced-side a:last-child {
  background: var(--red);
  color: #fff;
}

.formats__experienced-side h3 {
  margin-top: auto;
  max-width: 390px;
  font-size: clamp(32px,2.8vw,44px);
}

.formats__kids {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 14px;
  align-items: stretch;
}

.formats__kids-main {
  min-height: 610px;
  padding: 30px;
  border-radius: var(--radius-card);
  background-color: #080808;
  background-image:
    linear-gradient(
      90deg,
      rgba(0,0,0,.90) 0%,
      rgba(0,0,0,.80) 24%,
      rgba(0,0,0,.58) 44%,
      rgba(0,0,0,.32) 62%,
      rgba(0,0,0,.12) 80%,
      rgba(0,0,0,0) 100%
    ),
    url("../img/formats-kids.webp");
  background-size: 100% 100%, cover;
  background-position: center center, 62% center;
  background-repeat: no-repeat, no-repeat;
color: #fff;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

.formats__kids-main > div {
  margin-top: auto;
}

.formats__kids-main h3 {
  max-width: 540px;
  font-size: clamp(56px,5.2vw,82px);
}

.formats__kids-panel {
  min-height: 610px;
  padding: 10px 28px;
  border-radius: var(--radius-card);
  background: #fff;
  color: #0a0a0a;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.formats__kids-panel a {
  min-height: 106px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(0,0,0,.14);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.formats__kids-panel a:last-child {
  border-bottom: 0;
}

.formats__kids-panel small {
  margin-bottom: 8px;
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.formats__kids-panel h3 {
  max-width: 600px;
  font-size: clamp(23px,2vw,31px);
  line-height: 1.02;
}

.formats__kids-panel a > span {
  margin: 0;
  color: var(--red);
  font-family: var(--font-display);
  font-size: 23px;
  line-height: 1;
  opacity: .9;
}

.formats__corporate {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.formats__corporate a {
  min-height: 330px;
  padding: 30px;
  border-radius: var(--radius-card);
  background: #fff;
  color: #0a0a0a;
  display: flex;
  flex-direction: column;
}

.formats .formats__corporate-team {
  background: #0a0a0a;
  color: #fff;
  border-top: 7px solid var(--red);
}

.formats__corporate h3 {
  margin-top: auto;
  max-width: 520px;
  font-size: clamp(40px,3.8vw,58px);
}

@media (max-width:920px) {
  .formats__experienced,
.formats__kids {
    grid-template-columns: 1fr;
  }

  .formats__kids-main,
.formats__kids-panel {
    min-height: auto;
  }

  .formats__kids-main {
    min-height: 400px;
    border-radius: var(--radius-card);
}
}

@media (max-width:680px) {
  .hero__nav {
    gap: 10px;
  }

  .hero__nav a {
    min-height: 72px;
    padding: 16px;
    border-radius: var(--radius-card);
  }

  .formats {
    padding: 82px 0 94px;
  }

  .formats__group + .formats__group {
    margin-top: 58px;
  }

  .formats__group-label {
    font-size: 28px;
  }

  .formats__experienced-main {
    min-height: 320px;
    padding: 23px;
    border-radius: var(--radius-card);
}

  .formats__experienced-side {
    display: block;
  }

  .formats__experienced-side a {
    min-height: 200px;
    margin-top: 14px;
    padding: 22px;
    border-radius: var(--radius-card);
}

  .formats__experienced-side h3 {
    font-size: 36px;
  }

  .formats__kids-main {
    min-height: 340px;
    padding: 23px;
    border-radius: var(--radius-card);
}

  .formats__kids-main h3 {
    font-size: 50px;
  }

  .formats__kids-panel {
    padding: 6px 20px;
    border-radius: var(--radius-card);
}

  .formats__kids-panel a {
    min-height: 94px;
    padding: 18px 0;
  }

  .formats__kids-panel h3 {
    font-size: 25px;
  }

  .formats__corporate {
    grid-template-columns: 1fr;
  }

  .formats__corporate a {
    min-height: 240px;
    padding: 22px;
    border-radius: var(--radius-card);
}

  .formats__corporate h3 {
    font-size: 40px;
  }
}

.hero__nav {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(var(--container),calc(100% - 48px));
  margin: 0;
  transform: translate(-50%,50%);
}

.first-path {
  padding-top: 176px;
}

.formats__experienced-main {
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-card);
}

.formats__experienced-main > div {
  min-width: 0;
  width: 100%;
}

.formats__experienced-main h3 {
  width: 100%;
  max-width: 100%;
  font-size: clamp(52px,4.9vw,76px);
  line-height: .92;
  letter-spacing: -.035em;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width:700px) {
  .hero__nav {
    position: relative;
    left: auto;
    bottom: auto;
    width: 100%;
    margin-top: 50px;
    transform: none;
  }

  .first-path {
    padding-top: 92px;
  }

  .formats__experienced-main h3 {
    font-size: 48px;
  }
}

.hero {
  position: relative;
  z-index: 10;
  overflow: visible;
}

.hero__nav {
  z-index: 50;
}


.extras__head {
  margin-bottom: 38px;
}

.schedule__layout {
  display: grid;
  grid-template-columns: 1.42fr .58fr;
  align-items: stretch;
}

.schedule__main {
  min-height: 560px;
  padding: 30px;
  border-radius: var(--radius-card);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.schedule__main > small,
.schedule__note > small {
  display: block;
  font-size: var(--text-meta);
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.schedule h2 {
  margin: auto 0 40px;
  text-transform: uppercase;
}

.schedule__bottom {
  padding-top: 24px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 26px;
  align-items: end;
}

.schedule__bottom p {
  margin: 0;
  max-width: 500px;
  font-size: var(--text-body);
  line-height: 1.5;
}

.schedule__bottom a {
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  text-transform: none;
  white-space: nowrap;
  line-height: 1;
  letter-spacing: -.01em;
  box-shadow: none;
}

.schedule__note {
  min-height: 560px;
  padding: 28px;
  border-radius: var(--radius-card);
  display: flex;
  flex-direction: column;
}

.schedule__note > small {
  opacity: 1;
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.schedule__note > div {
  margin-top: auto;
}

.schedule__note h3 {
  margin: 0 0 16px;
  max-width: 320px;
  font-size: clamp(34px,3vw,48px);
  line-height: .94;
  letter-spacing: -.025em;
}

.schedule__note p {
  margin: 0;
  max-width: 360px;
  font-size: var(--text-body);
  line-height: 1.5;
}

@media (max-width:900px) {
  .schedule__layout {
    grid-template-columns: 1fr;
  }

  .schedule__main {
    min-height: 470px;
    border-radius: var(--radius-card);
}

  .schedule__note {
    min-height: 300px;
    border-radius: var(--radius-card);
}
}

@media (max-width:700px) {
  .schedule__main {
    min-height: 420px;
    padding: 22px;
    border-radius: var(--radius-card);
}

  .schedule__bottom {
    grid-template-columns: 1fr;
  }

  .schedule__bottom a {
    width: max-content;
    min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

  .schedule__note {
    min-height: 260px;
    padding: 22px;
    border-radius: var(--radius-card);
}

  .schedule__note h3 {
    font-size: 36px;
  }
}

.schedule h2 {
  width: 100%;
  max-width: 100%;
  font-size: clamp(62px,5.9vw,94px);
  line-height: .84;
  letter-spacing: -.055em;
  white-space: nowrap;
  overflow: visible;
}

@media (max-width:1100px) {
  .schedule h2 {
    font-size: clamp(58px,7.2vw,82px);
  }
}

@media (max-width:700px) {
  .schedule h2 {
    font-size: clamp(42px,11vw,58px);
    white-space: normal;
  }
}

.schedule__socials {
  display: flex;
  align-items: center;
  gap: 10px;
}

.schedule__socials a {
  width: 44px;
  height: 44px;
  margin: 0;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: var(--radius-control);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

.schedule .schedule__socials a:hover {
  transform: translateY(-2px);
}

.schedule__socials i {
  display: block;
  line-height: 1;
}

.prices {
  padding: 126px 0 138px;
  background: #eee5da;
  color: #0a0a0a;
}

.prices__head {
  margin-bottom: 30px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}

.prices__head small {
  display: block;
  margin-bottom: 18px;
  color: var(--red);
  font-size: var(--text-meta);
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.prices__head h2 {
  margin: 0;
  font-size: clamp(104px,11vw,180px);
  line-height: .72;
  letter-spacing: -.055em;
  text-transform: uppercase;
}

.prices__all {
  flex: 0 0 auto;
  background: var(--red);
  color: #fff;
  font-size: var(--text-button);
  line-height: 1;
  font-weight: var(--weight-strong);
  text-transform: none;
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  letter-spacing: -.01em;
  box-shadow: none;
}

.prices__all b {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}

.prices__index {
  padding: 0 30px;
  border-radius: var(--radius-card);
  background: #0a0a0a;
  color: #fff;
  overflow: hidden;
}

.prices__row {
  min-height: 150px;
  padding: 26px 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
  display: grid;
  grid-template-columns: minmax(280px,.86fr) minmax(320px,1fr) 155px;
  gap: 34px;
  align-items: center;
  color: #fff;
  position: relative;
}

.prices__row:last-child {
  border-bottom: 0;
}

.prices__row::before {
  content: "";
  position: absolute;
  left: -30px;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--red);
  transition: width .18s ease;
}

.prices__row:hover::before {
  width: 7px;
}

.prices__row-name {
  position: relative;
  z-index: 1;
  max-width: 470px;
  font-family: var(--font-display);
  font-size: clamp(34px,3.1vw,50px);
  line-height: .9;
  letter-spacing: -.025em;
  font-weight: 400;
}

.prices__row p {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: 470px;
  color: rgba(255,255,255,.58);
  font-size: var(--text-body);
  line-height: 1.5;
}

.prices__row > span {
  position: relative;
  z-index: 1;
  justify-self: end;
  color: rgba(255,255,255,.72);
  font-size: 11px;
  line-height: 1.1;
  font-weight: var(--weight-strong);
  text-transform: none;
  white-space: nowrap;
  letter-spacing: 0;
}

.prices__row:hover .prices__row-name,
.prices__row:hover > span {
  color: var(--red);
}

@media (max-width:900px) {
  .prices__head {
    align-items: stretch;
    flex-direction: column;
  }

  .prices__row {
    grid-template-columns: minmax(220px,.8fr) 1fr auto;
  }
}

@media (max-width:700px) {
  .prices {
    padding: 84px 0 94px;
  }

  .prices__head {
    margin-bottom: 20px;
    gap: 22px;
  }

  .prices__head h2 {
    font-size: 78px;
  }

  .prices__index {
    padding: 0 20px;
    border-radius: var(--radius-card);
}

  .prices__row {
    min-height: 0;
    padding: 24px 0;
    grid-template-columns: 1fr auto;
    gap: 12px 18px;
  }

  .prices__row-name {
    font-size: 31px;
  }

  .prices__row p {
    grid-column: 1 / -1;
    grid-row: 2;
    padding-right: 18px;
    font-size: var(--text-body);
  line-height: 1.5;
}

  .prices__row > span {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    font-size: 11px;
    font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: 0;
  text-transform: none;
}

  .prices__row > span::after {
    content: "→";
    color: var(--red);
    font-family: var(--font-display);
    font-size: 22px;
  }
}

.prices__all {
  min-width: 0;
  width: auto;
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  align-self: flex-end;
  white-space: nowrap;
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.prices__all span {
  display: block;
  line-height: 1;
}

.prices__all b {
  display: block;
  margin: 0;
  line-height: 1;
  font-size: 16px;
  font-weight: 700;
}

.sauna {
  padding: 0;
  background: #eee5da;
  color: #0a0a0a;
}

.sauna > .container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.sauna__poster {
  min-height: 760px;
  padding: 54px max(36px,calc((100vw - 1180px)/2)) 48px;
  border-radius: 0;
  background: #eee5da;
  color: #0a0a0a;
  border-top: 1px solid rgba(0,0,0,.08);
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.sauna .eyebrow,
.sauna .eyebrow--white {
  color: var(--red);
  opacity: 1;
}

.sauna h2 {
  color: #0a0a0a;
}

.sauna__lead {
  color: rgba(0,0,0,.72);
}

.sauna__main {
  color: #0a0a0a;
}

.sauna__main p {
  color: rgba(0,0,0,.7);
}

.sauna__cta {
  background: var(--red);
  color: #fff;
  border-radius: var(--radius-control);
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.sauna__cta span,
.sauna__cta b {
  color: #fff;
}

.sauna__rings {
  opacity: .32;
}

.sauna__rings i {
  border-color: rgba(0,0,0,.18);
}

.sauna__rings i:nth-child(2) {
  border-color: rgba(237,28,36,.35);
}

.schedule {
  color: #fff;
}

.schedule__note h3 {
  color: #0a0a0a;
}

.schedule__note p {
  color: rgba(0,0,0,.66);
  font-size: var(--text-body);
  line-height: 1.5;
}

.schedule .schedule__socials a:hover {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}

@media (max-width:700px) {
  .sauna__poster {
    min-height: 620px;
    padding: 40px 24px 34px;
  }
}

.schedule {
  background: #0a0a0a;
  padding: 126px 0 136px;
}

.schedule__layout {
  gap: 16px;
}

.schedule__main {
  background: var(--red);
  color: #fff;
  border: 0;
  box-shadow: none;
  border-radius: var(--radius-card);
}

.schedule__main > small {
  color: #fff;
  opacity: .72;
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.schedule h2 {
  color: #fff;
}

.schedule__bottom {
  border-top: 1px solid rgba(255,255,255,.34);
}

.schedule__bottom p {
  color: rgba(255,255,255,.82);
  font-size: var(--text-body);
  line-height: 1.5;
}

.schedule__bottom a {
  background: #fff;
  color: #0a0a0a;
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  font-size: var(--text-button);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.schedule .schedule__bottom a:hover {
  background: #0a0a0a;
  color: #fff;
}

.schedule__note {
  background: #eee5da;
  color: #0a0a0a;
  border: 0;
  border-radius: var(--radius-card);
}

.schedule__note > small {
  color: var(--red);
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.schedule__socials a {
  background: #fff;
  color: #0a0a0a;
  border-color: rgba(0,0,0,.12);
  width: 44px;
  height: 44px;
  border-radius: var(--radius-control);
}

.contacts {
  padding: 128px 0 140px;
  background: #eee5da;
  color: #0a0a0a;
}

.contacts__head > small {
  margin-bottom: 18px;
  color: var(--red);
  font-size: var(--text-meta);
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contacts__head h2 {
  font-size: clamp(76px,8.2vw,134px);
  line-height: .78;
  letter-spacing: -.05em;
  text-transform: uppercase;
}

.contacts__layout {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 14px;
  align-items: stretch;
}

.contacts__map {
  position: relative;
  min-height: 720px;
  border-radius: var(--radius-card);
  overflow: hidden;
  background: #d8d2ca;
}

.contacts__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1) contrast(1.04);
}

.contacts__route {
  position: absolute;
  left: 22px;
  bottom: 22px;
  z-index: 2;
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  background: var(--red);
  color: #fff;
  display: inline-flex;
  align-items: center;
  font-size: var(--text-button);
  line-height: 1;
  font-weight: var(--weight-strong);
  text-transform: none;
  box-shadow: none;
  letter-spacing: -.01em;
}

.contacts__info {
  min-height: 720px;
  padding: 0 30px;
  border-radius: var(--radius-card);
  background: #0a0a0a;
  color: #fff;
  overflow: hidden;
}

.contacts__row {
  min-height: 140px;
  padding: 26px 0;
  border-bottom: 1px solid rgba(255,255,255,.15);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contacts__row small,
.contacts__entry small {
  display: block;
  margin-bottom: 12px;
  color: var(--red);
  font-size: var(--text-meta);
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contacts__row strong {
  font-family: var(--font-display);
  font-size: clamp(24px,2vw,31px);
  line-height: 1.08;
  letter-spacing: -.025em;
  font-weight: 400;
}

.contacts__row p {
  margin: 10px 0 0;
  color: rgba(255,255,255,.55);
  font-size: 14px;
}

.contacts__big-link {
  width: max-content;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(24px,2.15vw,34px);
  line-height: 1;
  letter-spacing: -.025em;
}

.contacts__row--compact {
  min-height: 124px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
}

.contacts__row--compact > div {
  min-width: 0;
}

.contacts__row--compact a {
  color: #fff;
  font-size: 14px;
  line-height: 1.35;
  word-break: break-word;
}

.contacts__entry {
  margin: 26px 0 0;
  padding: 24px;
  border-radius: var(--radius-card);
  background: var(--red);
  color: #fff;
}

.contacts__entry small {
  color: #fff;
  opacity: .72;
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contacts__entry p {
  margin: 0;
  max-width: 590px;
  font-size: var(--text-body);
  line-height: 1.5;
}

.contacts__social {
  min-height: 90px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.contacts__social > span {
  margin-right: auto;
  color: rgba(255,255,255,.48);
  font-size: 9px;
  font-weight: var(--weight-strong);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.contacts__social a {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-control);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 21px;
}

.contacts__social a:hover {
  background: var(--red);
  border-color: var(--red);
}

@media (max-width:960px) {
  .contacts__layout {
    grid-template-columns: 1fr;
  }

  .contacts__map {
    min-height: 520px;
    border-radius: var(--radius-card);
}

  .contacts__info {
    min-height: 0;
    border-radius: var(--radius-card);
}
}

@media (max-width:700px) {
  .contacts {
    padding: 84px 0 94px;
  }

  .contacts__head h2 {
    font-size: 54px;
  }

  .contacts__map {
    min-height: 430px;
    border-radius: var(--radius-card);
}

  .contacts__info {
    padding: 0 20px;
    border-radius: var(--radius-card);
}

  .contacts__row--compact {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .contacts__big-link {
    font-size: 25px;
  }
}

.tramontana-portal {
  padding: 112px 0 122px;
  background: var(--milk);
  color: #0a0a0a;
}

.tramontana-portal__head {
  margin-bottom: 42px;
}

.tramontana-portal__eyebrow {
  margin: 0 0 18px;
  color: var(--red);
  font-size: 12px;
  font-weight: var(--weight-strong);
  letter-spacing: .18em;
  text-transform: uppercase;
}

.tramontana-portal__head h2 {
  margin: 0;
  max-width: 820px;
  font-size: clamp(54px,5.8vw,88px);
  line-height: .92;
  letter-spacing: -.065em;
}

.tramontana-portal__grid {
  display: grid;
  grid-template-columns: 1.02fr 1fr 1fr;
  grid-template-areas: "store climb climb"
    "store workshop camp";
  grid-template-rows: 290px 260px;
  gap: 18px;
}

.tramontana-portal__card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-card);
  padding: 24px 24px 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.tramontana-portal__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0,0,0,.12);
}

.tramontana-portal__card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.tramontana-portal__card > * {
  position: relative;
  z-index: 1;
}

.tramontana-portal__card--store {
  grid-area: store;
  background: var(--red);
  color: #fff;
}

.tramontana-portal__card--climb {
  grid-area: climb;
  background: #090909;
  color: #fff;
}

.tramontana-portal__card--workshop {
  grid-area: workshop;
  background: #f1ece3;
  color: #0a0a0a;
  border: 1px solid rgba(10,10,10,.09);
}

.tramontana-portal__card--camp {
  grid-area: camp;
  background: #1a120f;
  color: #fff;
}

.tramontana-portal__card--store::before {
  background: linear-gradient(180deg,rgba(255,255,255,.08),transparent 42%),
    radial-gradient(circle at 100% 0%,rgba(255,255,255,.12),transparent 28%);
}

.tramontana-portal__card--climb::before {
  background: linear-gradient(0deg,rgba(158,19,23,.28),transparent 42%),
    linear-gradient(135deg,rgba(255,255,255,.06),transparent 34%);
}

.tramontana-portal__card--workshop::before {
  background: linear-gradient(180deg,rgba(255,255,255,.55),transparent 55%),
    linear-gradient(135deg,rgba(158,19,23,.08),transparent 50%);
}

.tramontana-portal__card--camp::before {
  background: radial-gradient(circle at 100% 100%,rgba(158,19,23,.22),transparent 35%),
    linear-gradient(180deg,rgba(255,255,255,.06),transparent 42%);
}

.tramontana-portal__badge {
  align-self: flex-start;
  padding: 9px 15px;
  border-radius: var(--radius-pill);
  background: rgba(247,244,239,.96);
  color: #0a0a0a;
  font-size: 12px;
  font-weight: var(--weight-strong);
  line-height: 1;
  letter-spacing: .03em;
}

.tramontana-portal__card--store .tramontana-portal__badge,
.tramontana-portal__card--climb .tramontana-portal__badge,
.tramontana-portal__card--camp .tramontana-portal__badge {
  background: #f7f4ef;
}

.tramontana-portal__content h3 {
  margin: 0 0 18px;
  font-size: clamp(34px,3.4vw,56px);
  line-height: .92;
  letter-spacing: -.06em;
}

.tramontana-portal__card--climb .tramontana-portal__content h3 {
  max-width: 540px;
  font-size: clamp(42px,4vw,64px);
}

.tramontana-portal__card--workshop .tramontana-portal__content h3,
.tramontana-portal__card--camp .tramontana-portal__content h3 {
  font-size: clamp(28px,2.5vw,42px);
}

.tramontana-portal__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  background: #fff;
  color: #0a0a0a;
  font-size: var(--text-button);
  line-height: 1;
  font-weight: var(--weight-strong);
  min-height: var(--control-height);
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.tramontana-portal__cta::after {
  content: "→";
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
}

.tramontana-portal__card--workshop .tramontana-portal__cta {
  background: #0a0a0a;
  color: #fff;
}

.tramontana-portal__card--camp .tramontana-portal__cta,
.tramontana-portal__card--climb .tramontana-portal__cta {
  background: #f7f4ef;
  color: #0a0a0a;
}

@media (max-width:1100px) {
  .tramontana-portal__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "store climb"
      "workshop camp";
    grid-template-rows: 280px 240px;
  }
}

@media (max-width:760px) {
  .tramontana-portal {
    padding: 82px 0;
  }

  .tramontana-portal__head h2 {
    font-size: 50px;
  }

  .tramontana-portal__grid {
    grid-template-columns: 1fr;
    grid-template-areas: "store"
      "climb"
      "workshop"
      "camp";
    grid-template-rows: auto;
  }

  .tramontana-portal__card {
    min-height: 220px;
    border-radius: var(--radius-card);
  }

  .tramontana-portal__card--store {
    min-height: 280px;
  }
}

.faq details {
  background: transparent;
  color: #fff;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  overflow: visible;
}

.faq summary {
  background: transparent;
  color: #fff;
}

.faq .faq__list summary::before {
  content: none;
  display: none;
}

.faq details p {
  display: block;
  background: transparent;
  font-size: var(--text-body);
  line-height: 1.5;
}

.tramontana-portal h2,
.tramontana-portal h3,
.faq h2 {
  font-family: var(--font-display);
  font-weight: 400;
}

.gift {
  background: #eee5da;
  color: #0a0a0a;
}

.gift__layout {
  display: grid;
  grid-template-columns: minmax(0,1.55fr) minmax(300px,.62fr);
  gap: 34px;
}

.gift__card {
  position: relative;
  width: 100%;
  aspect-ratio: 1.92/1;
  padding: 26px 28px 24px;
  border-radius: var(--radius-card);
  background: var(--red);
  color: #fff;
  overflow: hidden;
  box-shadow: 0 20px 44px rgba(0,0,0,.12);
  display: flex;
  flex-direction: column;
}

.gift__stripe {
  position: absolute;
  inset: 0 0 0 auto;
  width: 29%;
  background: #0a0a0a;
}

.gift__card-top,
.gift__card-mid,
.gift__card-bottom {
  position: relative;
  z-index: 2;
}

.gift__card-top,
.gift__card-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.gift__card-top span,
.gift__card-bottom span {
  font-size: 9px;
  line-height: 1;
  font-weight: var(--weight-strong);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.gift__card-top span:last-child,
.gift__card-bottom span:last-child {
  min-width: 120px;
  text-align: right;
}

.gift__card-mid {
  margin: auto 0;
  width: 72%;
  display: grid;
  grid-template-columns: 68px minmax(0,1fr);
  gap: 18px;
  align-items: center;
}

.gift__mark {
  width: 68px;
  height: 68px;
  border-radius: var(--radius-control);
  background: #eee5da;
  color: var(--red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 38px;
  line-height: 1;
  font-weight: 400;
}

.gift__card-mid strong {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(38px,4vw,66px);
  line-height: .9;
  letter-spacing: -.035em;
  font-weight: 400;
  text-transform: uppercase;
}

.gift__card-bottom {
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.3);
}

.gift__info {
  max-width: 340px;
}

.gift__info h2 {
  margin: 0 0 20px;
  font-size: clamp(44px,4.4vw,68px);
  line-height: .9;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.gift__info p {
  margin: 0 0 26px;
  color: rgba(0,0,0,.68);
  font-size: var(--text-body);
  line-height: 1.5;
}

.gift__info a {
  display: inline-flex;
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  background: #0a0a0a;
  color: #fff;
  align-items: center;
  font-size: var(--text-button);
  line-height: 1;
  font-weight: var(--weight-strong);
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

.gift__info a:hover {
  background: var(--red);
}

@media (max-width:900px) {
  .gift__layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .gift__info {
    max-width: 520px;
  }
}

@media (max-width:700px) {
  .gift__card {
    aspect-ratio: auto;
    min-height: 230px;
    padding: 18px;
    border-radius: var(--radius-card);
  }

  .gift__stripe {
    width: 29%;
  }

  .gift__card-mid {
    width: 72%;
    grid-template-columns: 48px minmax(0,1fr);
    gap: 12px;
  }

  .gift__mark {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-control);
    font-size: 26px;
  }

  .gift__card-mid strong {
    font-size: 25px;
  }

  .gift__card-top span,
.gift__card-bottom span {
    font-size: 7px;
  }

  .gift__card-top span:last-child,
.gift__card-bottom span:last-child {
    min-width: 74px;
  }

  .gift__info h2 {
    font-size: 42px;
  }
}

.mobile-wall {
  background: #0a0a0a;
  color: #fff;
}

.mobile-wall__shell {
  display: grid;
  gap: 54px;
  align-items: center;
}

.mobile-wall__copy > small {
  display: block;
  margin-bottom: 22px;
  color: var(--red);
  font-size: var(--text-meta);
  line-height: 1.1;
  font-weight: var(--weight-strong);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.mobile-wall__copy h2 {
  margin: 0;
  font-size: clamp(64px,6.2vw,102px);
  line-height: .84;
  letter-spacing: -.045em;
  text-transform: uppercase;
}

.mobile-wall__copy p {
  max-width: 470px;
  margin: 28px 0 30px;
  color: rgba(255,255,255,.68);
  font-size: var(--text-body);
  line-height: 1.5;
}

.mobile-wall__copy a {
  display: inline-flex;
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
  border-radius: var(--radius-control);
  background: var(--red);
  color: #fff;
  align-items: center;
  font-size: var(--text-button);
  line-height: 1;
  font-weight: var(--weight-strong);
  text-transform: none;
  letter-spacing: -.01em;
  box-shadow: none;
}

@media (max-width:980px) {
  .mobile-wall__shell {
    gap: 40px;
  }
}

@media (max-width:700px) {
  .mobile-wall__shell {
    gap: 30px;
  }

  .mobile-wall__copy h2 {
    font-size: 52px;
  }

  .mobile-wall__copy p {
    font-size: var(--text-body);
    line-height: 1.5;
}
}

.mobile-wall {
  padding: 148px 0 158px;
}

.mobile-wall__copy {
  align-self: center;
}

.gift {
  padding: 132px 0 144px;
}

.gift__layout {
  min-height: 520px;
  align-items: center;
}

.gift__card {
  align-self: center;
  border-radius: var(--radius-card);
}

.gift__info {
  align-self: center;
}

@media (max-width:980px) {
  .mobile-wall {
    padding: 118px 0 128px;
  }

  .gift {
    padding: 108px 0 118px;
  }

  .gift__layout {
    min-height: 0;
  }
}

@media (max-width:700px) {
  .mobile-wall {
    padding: 96px 0 104px;
  }

  .gift {
    padding: 94px 0 102px;
  }
}

.mobile-wall__shell {
  grid-template-columns: minmax(0,760px);
  justify-content: start;
  min-height: 520px;
}

.mobile-wall__copy {
  max-width: 760px;
}

@media (max-width:980px) {
  .mobile-wall__shell {
    min-height: 0;
  }
}

.faq {
  padding: 118px 0 132px;
  background: #090909;
  color: #fff;
}

.faq__layout {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 72px;
  align-items: start;
}

.faq__head {
  position: sticky;
  top: 96px;
}

.faq__eyebrow-line {
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--red);
  font-size: 12px;
  font-weight: var(--weight-strong);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.faq__eyebrow-line::before {
  content: "";
  width: 48px;
  height: 3px;
  border-radius: var(--radius-pill);
  background: var(--red);
  flex: 0 0 auto;
}

.faq__head h2 {
  margin: 0;
  font-size: clamp(66px,6.5vw,106px);
  line-height: .82;
  letter-spacing: -.08em;
  text-transform: uppercase;
}

.faq__sub {
  margin: 20px 0 0;
  max-width: 360px;
  color: rgba(255,255,255,.62);
  font-size: 16px;
  line-height: 1.55;
}

.faq__useful {
  margin-bottom: 34px;
}

.faq__useful-title {
  margin: 0 0 14px;
  color: rgba(255,255,255,.68);
  font-size: 12px;
  font-weight: var(--weight-strong);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.faq__links {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}

.faq__links a {
  min-height: 92px;
  padding: 22px 20px;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(247,244,239,.96);
  color: #0a0a0a;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 16px;
  line-height: 1.2;
  font-weight: var(--weight-strong);
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.faq__links a:hover {
  transform: translateY(-2px);
  background: #fff;
  border-color: rgba(255,255,255,.24);
}

.faq__links a::after {
  content: "→";
  color: var(--red);
  font-size: 18px;
  line-height: 1;
  flex: 0 0 auto;
}

.faq__list {
  border-top: 1px solid rgba(255,255,255,.18);
}

.faq details {
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.faq summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 26px 52px 26px 0;
  font-size: 21px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: -.025em;
}

.faq summary::-webkit-details-marker {
  display: none;
}

.faq summary::after {
  content: "+";
  position: absolute;
  right: 3px;
  top: 21px;
  color: var(--red);
  font-size: 30px;
  font-weight: 500;
}

.faq details[open] summary::after {
  content: "−";
}

.faq details p {
  margin: 0;
  padding: 0 54px 26px 0;
  max-width: 700px;
  color: rgba(255,255,255,.62);
  font-size: var(--text-body);
  line-height: 1.5;
}

@media (max-width:1100px) {
  .faq__links {
    grid-template-columns: repeat(2,1fr);
  }
}

@media (max-width:950px) {
  .faq__layout {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .faq__head {
    position: static;
  }
}

@media (max-width:680px) {
  .faq {
    padding: 82px 0;
  }

  .faq__head h2 {
    font-size: 58px;
  }

  .faq__links {
    grid-template-columns: 1fr;
  }

  .faq summary {
    font-size: 18px;
  }
}

.contacts__head {
  margin-bottom: 32px;
}

.contacts__head > small {
  display: none;
  font-size: var(--text-meta);
  font-weight: var(--weight-strong);
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contacts__head h2 {
  margin: 0;
}

@media (min-width:701px) {
  .hero {
    min-height: calc(100svh - 76px);
  }

  .hero__grid--background {
    min-height: calc(100svh - 321px);
  }
}

@media (min-width:701px) {
  .hero__nav a {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-card);
}

  .hero__nav a::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 18px;
    width: 18px;
    height: 2px;
    border-radius: var(--radius-pill);
    background: var(--red);
  }

  .hero__nav a strong {
    display: block;
    padding-top: 10px;
  }
}

/* Shared UI interaction rules */
:is(.btn,.sauna__cta,.schedule__bottom a,.prices__all,.mobile-wall__copy a,.gift__info a,.contacts__route,.tramontana-portal__cta) {
  transition: transform var(--motion-fast), background var(--motion-fast), color var(--motion-fast), border-color var(--motion-fast);
}

:is(.btn,.sauna__cta,.schedule__bottom a,.prices__all,.mobile-wall__copy a,.gift__info a,.contacts__route,.tramontana-portal__cta):hover {
  transform: translateY(-2px);
}

/* Mobile climbing wall — supplied photo */
.mobile-wall {
  position: relative;
  min-height: 620px;
  padding: 0;
  background:
    url("../img/mobile-wall.webp") center center / cover no-repeat;
  color: #fff;
  overflow: hidden;
}

.mobile-wall .container {
  position: relative;
  z-index: 1;
}

.mobile-wall__shell {
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.mobile-wall__copy {
  width: min(520px, 48vw);
  max-width: 520px;
}

.mobile-wall__copy > small {
  color: var(--red);
}

.mobile-wall__copy p {
  color: rgba(255,255,255,.76);
}

@media (max-width: 980px) {
  .mobile-wall {
    min-height: 560px;
    background-position: 58% center;
  }

  .mobile-wall__shell {
    min-height: 560px;
  }

  .mobile-wall__copy {
    width: min(500px, 56vw);
  }
}

@media (max-width: 700px) {
  .mobile-wall {
    min-height: 620px;
    background-position: 67% center;
  }

  .mobile-wall::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.70) 48%, rgba(0,0,0,.18) 100%);
    pointer-events: none;
  }

  .mobile-wall__shell {
    min-height: 620px;
    align-items: flex-end;
    padding: 64px 0;
  }

  .mobile-wall__copy {
    width: min(100%, 460px);
    max-width: 460px;
  }
}


/* =========================================================
   HERO — split editorial layout
   ========================================================= */
.hero.hero-split {
  position: relative;
  min-height: 100svh;
  padding: 30px;
  background: #eee5da;
  display: block;
  color: #fff;
  overflow: hidden;
}

.hero.hero-split::before {
  display: none;
}

.hero-split__frame {
  position: relative;
  min-height: calc(100svh - 60px);
  display: grid;
  grid-template-columns: 54% 46%;
  grid-template-rows: 1fr 112px;
  background: #0a0a0a;
  overflow: hidden;
}

.hero-split__media {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  background-image:
    linear-gradient(90deg, rgba(0,0,0,.08), rgba(0,0,0,0) 38%),
    url("../img/hero.webp");
  background-size: cover;
  background-position: 69% center;
  filter: saturate(.93) contrast(1.06) brightness(.94);
}

.hero-split__panel {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  padding: clamp(54px,6vw,92px) clamp(48px,5vw,82px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.06)),
    var(--red);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hero-split__label {
  margin-bottom: 34px;
  display: flex;
  align-items: center;
  gap: 18px;
  color: rgba(255,255,255,.92);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .32em;
  text-transform: uppercase;
}

.hero-split__label-line {
  width: 48px;
  height: 3px;
  flex: 0 0 auto;
  background: #fff;
}

.hero-split h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(74px,7vw,128px);
  line-height: .94;
  font-weight: 600;
  letter-spacing: -.045em;
  text-align: left;
  text-transform: uppercase;
  color: #fff;
}

.hero-split h1 span {
  display: block;
  white-space: nowrap;
  color: #fff;
}

.hero-split__nav {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  min-height: 112px;
  background: #f5efe6;
  color: #0a0a0a;
  border-top: 1px solid rgba(0,0,0,.10);
}

.hero-split__nav a {
  position: relative;
  min-width: 0;
  padding: 22px 24px 20px;
  border-right: 1px solid rgba(0,0,0,.12);
  color: #0a0a0a;
  display: flex;
  align-items: center;
  gap: 22px;
  background: transparent;
  transition: background var(--motion-fast), color var(--motion-fast);
}

.hero-split__nav a:last-child {
  border-right: 0;
}

.hero-split__nav a > span {
  color: var(--red);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .08em;
}

.hero-split__nav a strong {
  font-size: 15px;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -.02em;
}

.hero-split__nav a::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 0;
  height: 4px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--motion-fast);
}

.hero-split__nav a:hover {
  background: #fff;
}

.hero-split__nav a:hover::after {
  transform: scaleX(1);
}

@media (max-width: 1100px) {
  .hero.hero-split {
    padding: 20px;
  }

  .hero-split__frame {
    min-height: calc(100svh - 40px);
    grid-template-columns: 50% 50%;
    grid-template-rows: 1fr 108px;
  }

  .hero-split__panel {
    padding: 50px 38px;
  }

  .hero-split h1 {
    font-size: clamp(62px,7.3vw,96px);
  }
}

@media (max-width: 760px) {
  .hero.hero-split {
    min-height: auto;
    padding: 0;
    background: #0a0a0a;
  }

  .hero-split__frame {
    min-height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: 52svh auto auto;
  }

  .hero-split__media {
    grid-column: 1;
    grid-row: 1;
    background-position: 67% center;
  }

  .hero-split__panel {
    grid-column: 1;
    grid-row: 2;
    padding: 36px 22px 40px;
  }

  .hero-split__label {
    margin-bottom: 22px;
    font-size: 9px;
    letter-spacing: .24em;
  }

  .hero-split__label-line {
    width: 36px;
    height: 2px;
  }

  .hero-split h1 {
    font-size: clamp(54px,16vw,82px);
    line-height: .92;
  }

  .hero-split h1 span {
    white-space: normal;
  }

  .hero-split__nav {
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .hero-split__nav a {
    min-height: 58px;
    padding: 14px 18px;
    border-right: 0;
    border-bottom: 1px solid rgba(0,0,0,.10);
  }

  .hero-split__nav a:last-child {
    border-bottom: 0;
  }

  .hero-split__nav a::after {
    display: none;
  }
}


/* =========================================================
   HERO — full-width 1:1 split
   ========================================================= */
.hero.hero-split {
  width: 100%;
  min-height: auto;
  padding: 0;
  background: #eee5da;
}

.hero-split__frame {
  width: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 50vw 112px;
  background: #0a0a0a;
  overflow: hidden;
}

.hero-split__media {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  background-size: auto 125%;
  background-position: 100% center;
  background-repeat: no-repeat;
}

.hero-split__panel {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  padding: clamp(56px, 5.2vw, 100px);
  background: #9e1317;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hero-split__label {
  margin-bottom: clamp(28px, 2.4vw, 46px);
  gap: 18px;
  font-size: clamp(10px, .72vw, 14px);
  letter-spacing: .34em;
}

.hero-split__label-line {
  width: clamp(42px, 3vw, 58px);
  height: 3px;
}

.hero-split h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(92px, 9vw, 174px);
  line-height: .77;
  font-weight: 800;
  letter-spacing: -.035em;
  text-align: left;
  text-transform: uppercase;
  color: #fff;
}

.hero-split h1 span {
  display: block;
  white-space: nowrap;
  color: #fff;
}

.hero-split__nav {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  min-height: 112px;
}

@media (max-width: 1100px) {
  .hero-split__frame {
    grid-template-rows: 50vw 104px;
  }

  .hero-split__panel {
    padding: clamp(40px, 4.3vw, 64px);
  }

  .hero-split h1 {
    font-size: clamp(70px, 9vw, 112px);
  }
}

@media (max-width: 760px) {
  .hero-split__frame {
    grid-template-columns: 1fr;
    grid-template-rows: 100vw 100vw auto;
  }

  .hero-split__media {
    grid-column: 1;
    grid-row: 1;
    aspect-ratio: 1 / 1;
    background-size: auto 125%;
    background-position: 100% center;
  }

  .hero-split__panel {
    grid-column: 1;
    grid-row: 2;
    aspect-ratio: 1 / 1;
    padding: 34px 24px;
  }

  .hero-split h1 {
    font-size: clamp(72px, 21vw, 104px);
    line-height: .78;
  }

  .hero-split__label {
    font-size: 9px;
    letter-spacing: .28em;
  }

  .hero-split__nav {
    grid-column: 1;
    grid-row: 3;
  }
}


/* =========================================================
   TYPOGRAPHY SYSTEM — Alumni Sans + Manrope
   ========================================================= */
:root {
  --font-display: "Alumni Sans","Arial Narrow",Arial,sans-serif;
  --font-body: "Manrope","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
}

html,
body {
  font-family: var(--font-body);
}

/* All display headings use the same family */
h1,
h2,
h3,
h4,
h5,
h6,
.title,
.extras__head h2,
.first-path__head .title,
.formats h2,
.formats h3,
.extras-card h3,
.schedule h2,
.schedule h3,
.prices h2,
.prices h3,
.about h2,
.about h3,
.sauna h2,
.mobile-wall h2,
.gift h2,
.faq h2,
.contacts h2,
.tramontana-portal h2,
.tramontana-portal h3,
.hero-split h1 {
  font-family: var(--font-display);
  font-weight: 800;
}

/* Keep section typography expressive but consistent */
h2,
.title,
.extras__head h2,
.first-path__head .title,
.formats h2,
.schedule h2,
.prices h2,
.about h2,
.sauna h2,
.mobile-wall h2,
.gift h2,
.faq h2,
.contacts h2,
.tramontana-portal h2 {
  letter-spacing: -.045em;
}

h3,
.formats h3,
.extras-card h3,
.schedule h3,
.prices h3,
.about h3,
.tramontana-portal h3 {
  letter-spacing: -.035em;
}

/* Body/UI text */
p,
li,
a,
button,
input,
textarea,
select,
summary,
strong,
small,
label,
.hero-split__nav,
.first-step__link,
.contacts__row,
.faq__links {
  font-family: var(--font-body);
}

/* Metadata labels stay compact and crisp */
small,
.eyebrow,
.hero-split__label,
.faq__eyebrow-line,
.contacts__row small,
.contacts__entry small {
  font-family: var(--font-body);
  font-weight: 800;
}

/* CTA/nav text uses body font for readability */
.hero-split__nav a strong,
.btn,
.sauna__cta,
.schedule__bottom a,
.prices__all,
.mobile-wall__copy a,
.gift__info a,
.contacts__route,
.tramontana-portal__cta {
  font-family: var(--font-body);
  font-weight: 800;
}

/* Preserve the intentionally tall display treatment in the hero */
.hero-split h1 {
  font-family: var(--font-display);
  font-weight: 800;
}


/* =========================================================
   TYPOGRAPHY AUDIT — exhaustive final pass
   ========================================================= */

/* Display / heading roles */
:is(
  h1,h2,h3,h4,h5,h6,
  .title,
  .formats__group-label,
  .formats__kids-panel a > span,
  .prices__row-name,
  .contacts__row strong,
  .contacts__big-link,
  .gift__mark,
  .gift__card-mid strong
) {
  font-family: var(--font-display);
}

/* Body / UI roles */
body,
p,
li,
a,
button,
input,
textarea,
select,
summary,
label,
small,
.hero-split__nav,
.first-step__link,
.faq__links,
.contacts__row {
  font-family: var(--font-body);
}

/* Icon / arrow glyphs should inherit rather than pull in an old display face */
.prices__all b,
.prices__row > span::after {
  font-family: inherit;
}


/* =========================================================
   HEADING TRACKING — zero everywhere except hero
   ========================================================= */

h2,
h3,
h4,
h5,
h6,
.title,
.formats__group-label,
.formats__kids-panel a > span,
.prices__row-name,
.contacts__row strong,
.contacts__big-link,
.gift__mark,
.gift__card-mid strong,
.extras__head h2,
.first-path__head .title,
.formats h2,
.formats h3,
.extras-card h3,
.schedule h2,
.schedule h3,
.prices h2,
.prices h3,
.about h2,
.about h3,
.sauna h2,
.mobile-wall h2,
.gift h2,
.faq h2,
.contacts h2,
.tramontana-portal h2,
.tramontana-portal h3 {
  letter-spacing: 0;
}


/* =========================================================
   FINAL HEADING TRACKING AUDIT
   Zero tracking everywhere except hero
   ========================================================= */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .title,
body .formats__group-label,
body .prices__row-name,
body .contacts__row strong,
body .contacts__big-link,
body .gift__mark,
body .gift__card-mid strong,
body .formats__kids-panel a > span {
  letter-spacing: 0 !important;
}

body .hero-split h1 {
  letter-spacing: -.035em !important;
}


.formats__kids-main h3 { color:#fff; }
.formats__kids-main p { color:#fff; opacity:.72; }
.formats__kids-main small,
.formats__kids-main > div,
.formats__kids-main > span,
.formats__experienced-main small,
.formats__experienced-main > div,
.formats__experienced-main > span { position:relative; z-index:1; }


.formats__kids-main h3,
.formats__kids-main p,
.formats__kids-main small,
.formats__kids-main .card-chip,
.formats__kids-main .card-link {
  text-shadow: 0 2px 16px rgba(0,0,0,.35);
}

/* ===== С чего начать: чистый единый фон ===== */
.first-path {
    position: relative;
    z-index: 1;
    overflow: hidden;
    color: #fff;
    background-color: #090909;
    background-image: linear-gradient(rgb(0 0 0 / 45%), rgb(0 0 0 / 5%)), url(../img/first-path.webp);
    background-size: 100% 100%, cover;
    background-position: center center, center center;
    background-repeat: no-repeat, no-repeat;
}
.first-path .container {
  position: relative;
  z-index: 1;
}
