@font-face {
  font-family: "Mona Sans";
  src: url("fonts/mona-sans.woff2") format("woff2");
  font-weight: 200 900;
  font-stretch: 75% 125%;
  font-display: swap;
}

:root {
  --bg: #f7f7f4;
  --ink: #141414;
  --ink-2: #5a5a55;
  --line: #e2e2dc;
  --grey: #efefea;
  --sage: #a9c79b;
  --sage-soft: #dfe9d8;
  --rose: #fbe4e6;
  --dark: #1d251e;

  --font: "Mona Sans", "Segoe UI", system-ui, sans-serif;
  --wide: 125%;   /* display width: headlines breathe out */
  --mid: 112%;    /* prices, names, numbers */
  --e-words: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --e-rise: cubic-bezier(0.22, 1, 0.36, 1);
  --e-swap: cubic-bezier(0.19, 1, 0.22, 1);
  --e-release: cubic-bezier(0.55, 0, 0.2, 1);

  --gutter: clamp(16px, 4.5vw, 80px);
  --space: clamp(80px, 10vw, 140px);
  --head: 64px;

  color-scheme: light;
  accent-color: var(--ink);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--head) + 12px); }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 400 1rem/1.55 var(--font);
  font-variant-numeric: normal; /* Mona Sans tnum brings a slashed zero; keep the friendly one */
  caret-color: var(--ink);
  overflow-x: clip;
}
::selection { background: var(--sage); color: var(--ink); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
h1, h2, h3 { margin: 0; font-weight: 500; letter-spacing: -0.03em; line-height: 1.04; text-wrap: balance; }
h1, h2:not(.h3) { font-weight: 400; font-stretch: var(--wide); letter-spacing: -0.035em; line-height: 1.02; }
h2 { font-size: clamp(2.1rem, 1.6rem + 2.2vw, 3.3rem); }
h3, .h3 { font-size: 1.35rem; letter-spacing: -0.02em; line-height: 1.2; font-weight: 500; font-stretch: var(--mid); margin: 0; }
p { margin: 0; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 6px; }
.demo-bar :focus-visible { outline-color: var(--bg); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: var(--gutter); }
.note { margin-top: 18px; font-size: 0.85rem; color: var(--ink-2); }
.lead { margin-top: 10px; color: var(--ink-2); max-width: 36ch; }

.skip { position: absolute; left: 12px; top: -60px; z-index: 50; padding: 10px 14px; background: var(--ink); color: var(--bg); border-radius: 999px; }
.skip:focus { top: 12px; }

.demo-bar {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 16px;
  padding: 6px var(--gutter); background: var(--ink); color: var(--bg); font-size: 0.8rem; text-align: center;
}
.demo-bar a { color: var(--sage); }

/* ---------- pills ---------- */
.pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 18px; border-radius: 999px; border: 0;
  font: 500 0.95rem/1 var(--font); text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: transform 160ms var(--e-rise), background-color 200ms ease;
}
.pill:active { transform: scale(0.97); }
.pill--ink { background: var(--ink); color: var(--bg); }
.pill--sage { background: var(--sage); color: var(--ink); }
.pill--soft { background: var(--bg); color: var(--ink); box-shadow: inset 0 0 0 1px #cfcfc7; }
.pill svg { transition: transform 200ms var(--e-rise); }
@media (hover: hover) and (pointer: fine) {
  .pill--ink:hover { background: #2c2c2c; }
  .pill--sage:hover { background: #9bbd8c; }
  .pill--soft:hover { background: #fff; }
  .pill:hover svg { transform: translateX(3px); }
}

/* ---------- header: clear over the photo, frosted after scrolling ---------- */
.head {
  position: sticky; top: 0; z-index: 20; height: var(--head);
  transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1), backdrop-filter 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.head.is-solid { background: rgba(247, 247, 244, 0.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.head__in { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mark { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; font-size: 1.45rem; font-weight: 500; font-stretch: var(--wide); letter-spacing: -0.04em; }
.mark__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--sage); box-shadow: 0 0 0 3px var(--ink) inset; }
.head__nav { display: flex; align-items: center; gap: clamp(4px, 2vw, 28px); }
.head__nav > a:not(.pill) { display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; text-decoration: none; font-size: 0.95rem; }
@media (hover: hover) and (pointer: fine) { .head__nav > a:not(.pill):hover { text-decoration: underline; } }
@media (max-width: 760px) { .hide-s { display: none !important; } }

/* ---------- hero ---------- */
.hero {
  position: relative; margin-top: calc(var(--head) * -1);
  min-height: clamp(620px, calc(100svh - 30px), 940px);
  display: flex; align-items: flex-end; overflow: hidden;
}
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 66% 40%; }
@media (min-width: 900px) { .hero__img { object-position: 50% 60%; } }
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(247, 247, 244, 0.96) 0%, rgba(247, 247, 244, 0.78) 30%, rgba(247, 247, 244, 0) 62%),
              linear-gradient(to bottom, rgba(247, 247, 244, 0.86) 0%, rgba(247, 247, 244, 0.6) 9%, rgba(247, 247, 244, 0) 22%);
}
.hero__in { position: relative; z-index: 1; display: grid; gap: 28px; padding-bottom: clamp(36px, 7vh, 80px); }
.hero h1 { font-size: clamp(2.2rem, 10vw, 5.4rem); }
.hero__sub { margin-top: 18px; font-size: 1.02rem; max-width: 30ch; }
.status { margin-top: 14px; display: inline-flex; align-items: baseline; gap: 8px; font-size: 0.9rem; color: var(--ink-2); }
.status strong { color: var(--ink); font-weight: 500; }
.status__dot { width: 8px; height: 8px; border-radius: 50%; background: #c9c9c2; transform: translateY(-1px); }
.status[data-state="open"] .status__dot { background: #5d9a4b; }
.hero__offer { display: grid; justify-items: start; gap: 14px; }
.hero__price { font-stretch: var(--mid); line-height: 1.15; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); letter-spacing: -0.02em; }
.fine { font-size: 0.85rem; color: var(--ink-2); max-width: 40ch; }
@media (min-width: 900px) { .hero__price { white-space: nowrap; } }
/* side by side only when the headline's first line ("Vuelve a moverte", ~8.5em wide) still fits beside the offer */
@media (min-width: 1100px) {
  .hero__in { grid-template-columns: 1fr auto; align-items: end; }
  .hero__offer { justify-self: end; max-width: 500px; }
  .hero h1 { font-size: clamp(3.3rem, calc((100vw - 2 * var(--gutter) - 560px) / 8.8), 5.4rem); }
}

/* ---------- facts ---------- */
.facts { background: var(--grey); padding-block: clamp(36px, 5vw, 56px); }
.facts__in { display: grid; gap: 28px; grid-template-columns: 1fr 1fr; }
.facts__lead { font-stretch: var(--mid); grid-column: 1 / -1; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.8rem); letter-spacing: -0.02em; line-height: 1.2; max-width: 16ch; }
.fact__big { font-stretch: var(--mid); font-size: 1.4rem; letter-spacing: -0.02em; }
.fact__small { font-size: 0.85rem; color: var(--ink-2); }
@media (min-width: 900px) { .facts__in { grid-template-columns: 1.4fr 1fr 1fr 1fr; align-items: center; } .facts__lead { grid-column: auto; } }

/* ---------- sections ---------- */
.section { padding-block: var(--space); }
.section--tight { padding-block: clamp(64px, 7vw, 100px); border-top: 1px solid var(--line); }
.section--rose { background: var(--rose); }
.section--grey { background: var(--grey); }

/* what we treat */
.list { list-style: none; margin: clamp(32px, 4vw, 56px) 0 0; padding: 0; border-top: 1px solid var(--line); }
.list li { border-bottom: 1px solid var(--line); }
.list__row { display: grid; grid-template-columns: 1fr auto; gap: 8px 24px; padding: 22px 4px; text-decoration: none; align-items: start; }
.list__name { font-stretch: var(--mid); font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem); letter-spacing: -0.02em; line-height: 1.2; }
.list__desc { grid-column: 1 / -1; font-size: 0.92rem; color: var(--ink-2); max-width: 52ch; }
.list__go { grid-row: 1; grid-column: 2; margin-top: 6px; transition: transform 250ms var(--e-rise); }
.tags { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; font-size: 0.8rem; color: var(--ink-2); }
.tags span + span::before { content: ""; display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: currentColor; margin: 0 10px 2px -8px; vertical-align: middle; }
@media (hover: hover) and (pointer: fine) { .list__row:hover .list__go { transform: translate(3px, -3px); } .list__row:hover .list__name { text-decoration: underline; text-decoration-thickness: 1px; } }
@media (min-width: 900px) {
  .list__row { grid-template-columns: minmax(220px, 1fr) minmax(0, 1.6fr) auto; align-items: baseline; }
  .list__desc { grid-column: auto; }
  .list__go { grid-column: 3; grid-row: auto; }
}
.strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(8px, 1.5vw, 20px); margin-top: clamp(32px, 4vw, 56px); }
.strip figure { margin: 0; }
.strip img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 16px; background: var(--grey); }
.strip figcaption { margin-top: 8px; font-size: 0.82rem; color: var(--ink-2); }

/* ---------- schedule ---------- */
.sched { margin-top: clamp(32px, 4vw, 56px); }
.sched__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.sched__week { display: flex; align-items: center; gap: 8px; }
.sched__range { font-stretch: var(--mid); font-size: 1.3rem; letter-spacing: -0.02em; min-width: 8.5ch; margin-right: 6px; }
.round {
  display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer;
  transition: background-color 160ms ease, transform 160ms var(--e-rise);
}
.round:active { transform: scale(0.95); }
.round:disabled { opacity: 0.35; cursor: default; }
@media (hover: hover) and (pointer: fine) { .round:not(:disabled):hover { background: var(--grey); } }
.filter select, .field select, .field input {
  min-height: 44px; padding: 10px 36px 10px 16px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--bg); color: var(--ink); font: 400 0.92rem var(--font); appearance: none;
}
.filter select, .field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23141414' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 14px;
}
.field input { padding-right: 16px; }
.days { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; padding: 6px; border-radius: 18px; background: var(--grey); }
.day {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px;
  border: 0; border-radius: 13px; background: transparent; color: var(--ink); font: inherit; cursor: pointer;
  transition: background-color 250ms var(--e-swap);
}
.day__wd { font-size: 0.75rem; color: var(--ink-2); }
.day__n { font-stretch: var(--mid); font-size: 1.35rem; letter-spacing: -0.02em; line-height: 1; }
.day[aria-checked="true"] { background: var(--sage); }
.day[aria-checked="true"] .day__wd { color: var(--ink); }
.day[data-past] { color: #75756f; text-decoration: line-through; text-decoration-thickness: 1px; }
@media (min-width: 700px) { .day { flex-direction: row; gap: 8px; } }
@media (hover: hover) and (pointer: fine) { .day[aria-checked="false"]:hover { background: rgba(255, 255, 255, 0.6); } }

.slots { margin-top: 20px; }
.slots table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.slots th { text-align: left; font-weight: 400; font-size: 0.78rem; color: var(--ink-2); padding: 10px 8px; border-bottom: 1px solid var(--line); }
.slots td { padding: 10px 8px; border-bottom: 1px solid var(--line); height: 60px; }
.slots .t-time { width: 5.5em; font-weight: 500; }
.slots .t-act { text-align: right; width: 1%; white-space: nowrap; }
.slots .t-who small { display: block; color: var(--ink-2); font-size: 0.78rem; }
.slots tbody tr { transition: opacity 350ms var(--e-swap), transform 350ms var(--e-swap); }
.slots.is-swap tbody tr { opacity: 0; transform: translateY(8px); transition: none; }
html.still .slots tbody tr { opacity: 1 !important; transform: none !important; transition: none !important; }
.slots .pill { min-height: 36px; padding: 8px 14px; font-size: 0.85rem; }
.slots .full { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: var(--grey); color: var(--ink-2); font-size: 0.85rem; }
.slots tr.is-chosen td { background: var(--sage-soft); }
.slots__empty { padding: 28px; text-align: center; color: var(--ink-2); border-bottom: 1px solid var(--line); }
@media (max-width: 699px) { .slots .t-spec, .slots .t-dur { display: none; } }
.js .nojs { display: none; }

.book { margin-top: 20px; padding: clamp(18px, 3vw, 28px); border-radius: 20px; background: var(--sage-soft); display: grid; gap: 14px; }
.book__when { font-stretch: var(--mid); font-size: 1.15rem; letter-spacing: -0.01em; }
.book__form { display: grid; gap: 10px; }
.field { display: grid; gap: 6px; font-size: 0.82rem; color: var(--ink-2); }
.field select, .field input { width: 100%; font-size: 1rem; }
@media (min-width: 760px) { .book__form { grid-template-columns: 1.3fr 1fr auto; align-items: end; } }
.book__msg { font-size: 0.88rem; color: var(--ink-2); }
.error { color: #9b2c1f; font-weight: 500; font-size: 0.92rem; }
.book__demo { padding: 10px 14px; border-radius: 12px; background: var(--bg); font-size: 0.9rem; }
.sched__note { margin-top: 14px; font-size: 0.82rem; color: var(--ink-2); }

/* ---------- prices: session cards like punch cards ---------- */
.plans { display: grid; gap: 14px; margin-top: clamp(28px, 4vw, 48px); }
@media (min-width: 900px) { .plans { grid-template-columns: repeat(3, 1fr); } }
.plan { background: var(--grey); border-radius: 22px; padding: 14px 14px 18px; display: grid; gap: 10px; align-content: start; }
.plan h3 { margin-top: 10px; padding-inline: 6px; }
.plan__price { font-stretch: var(--mid); padding-inline: 6px; font-size: 2.1rem; letter-spacing: -0.03em; }
.plan__price span { font-size: 0.85rem; color: var(--ink-2); letter-spacing: 0; }
.plan__text { padding-inline: 6px; font-size: 0.9rem; color: var(--ink-2); min-height: 2.9em; }
.plan .pill { margin-top: 8px; justify-content: space-between; }
.bono {
  position: relative; aspect-ratio: 1.7; border-radius: 16px; padding: 16px 18px;
  background: #fbfbf8; border: 1px solid var(--line); display: grid; grid-template-rows: auto 1fr auto; overflow: hidden;
}
.bono__mark { font-size: 1.15rem; font-weight: 500; font-stretch: var(--wide); letter-spacing: -0.04em; }
.bono__holes { align-self: center; display: grid; grid-template-columns: repeat(5, 16px); gap: 7px; }
.bono__holes i { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid currentColor; opacity: 0.55; }
.bono__label { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; }
.plan--sage .bono { background: var(--sage); border-color: transparent; }
.plan--dark .bono { background: var(--dark); color: #eef1ea; border-color: transparent; }
.plan--dark .bono__holes i { border-color: var(--sage); opacity: 0.9; }

/* ---------- team ---------- */
.team { display: grid; gap: 40px; margin-top: clamp(32px, 4vw, 56px); }
@media (min-width: 900px) { .team { grid-template-columns: repeat(3, 1fr); gap: 32px; } }
.person__card {
  aspect-ratio: 16 / 9; padding: 10px; background: #fff; transform: rotate(-1.2deg);
  box-shadow: 0 10px 30px rgba(20, 20, 20, 0.08);
}
.person:nth-child(2) .person__card { transform: rotate(1deg); }
.person:nth-child(3) .person__card { transform: rotate(-0.6deg); }
.person__card span {
  display: grid; place-items: center; width: 100%; height: 100%; background: var(--c);
  font-size: clamp(3rem, 2rem + 4vw, 5rem); letter-spacing: -0.05em; color: rgba(20, 20, 20, 0.82);
}
.person h3 { margin-top: 22px; }
@media (min-width: 900px) { .person__card { aspect-ratio: 4 / 3; } }
.person__role { font-size: 0.85rem; color: var(--ink-2); }
.person__text { margin-top: 12px; font-size: 0.92rem; max-width: 34ch; }
.person__meta { margin-top: 10px; font-size: 0.78rem; color: var(--ink-2); }

/* ---------- insurers + reviews ---------- */
.twocol { display: grid; gap: 48px; }
.twocol p + p, .twocol h2 + p { margin-top: 12px; }
.twocol p { max-width: 52ch; color: var(--ink-2); }
@media (min-width: 900px) { .twocol { grid-template-columns: 1fr 1fr; gap: 80px; } }
.reviews__empty { margin-top: 14px; padding: 22px; border-radius: 16px; border: 1px dashed #b8b8b0; color: var(--ink) !important; font-size: 1.05rem; }

/* ---------- where ---------- */
.where { display: grid; gap: 36px; margin-top: clamp(28px, 4vw, 48px); }
@media (min-width: 900px) { .where { grid-template-columns: 1.2fr 1fr 0.8fr; } }
.where__addr { font-size: 1.1rem; }
.where .pill { margin-top: 18px; }
.where__h { font-size: 0.95rem; font-weight: 600; letter-spacing: 0; margin-bottom: 10px; }
.hours { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.hours th, .hours td { padding: 6px 0; font-weight: 400; text-align: left; }
.hours td { text-align: right; }
.hours tr[aria-current="date"] th, .hours tr[aria-current="date"] td { font-weight: 600; }

/* ---------- faq ---------- */
.faqwrap { display: grid; gap: 36px; }
@media (min-width: 900px) { .faqwrap { grid-template-columns: 1fr 1.4fr; gap: 80px; } }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary {
  list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  min-height: 56px; padding: 14px 0; cursor: pointer; font-size: 0.98rem;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; flex: none; width: 8px; height: 8px; border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink);
  transform: rotate(-45deg); transition: transform 200ms var(--e-rise);
}
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 0 18px; color: var(--ink-2); max-width: 56ch; font-size: 0.92rem; }
.faq details[open] p { animation: open 200ms ease-out; }
@keyframes open { from { opacity: 0; transform: translateY(-4px); } }

/* ---------- cta + footer ---------- */
.cta { background: var(--sage); padding-block: clamp(56px, 7vw, 96px); }
.cta__in { display: grid; gap: 24px; align-items: end; }
.cta h2 { font-size: clamp(2.2rem, 1.6rem + 2.6vw, 3.6rem); max-width: 12ch; }
.cta p { margin-top: 12px; font-size: 1.05rem; }
@media (min-width: 900px) { .cta__in { grid-template-columns: 1fr auto; } }
.foot { padding-block: 40px 48px; }
.foot__in { display: grid; gap: 14px; }
.foot__links { display: flex; flex-wrap: wrap; gap: 0 16px; }
.foot__links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.85rem; }
.foot__text { font-size: 0.8rem; color: var(--ink-2); }

/* ---------- legal pages ---------- */
.legal { padding-block: 32px var(--space); max-width: 46rem; }
.legal h1 { font-size: clamp(2.2rem, 1.8rem + 2vw, 3rem); }
.legal h2 { font-size: 1.3rem; margin: 30px 0 8px; }
.legal p, .legal li { color: var(--ink-2); }
.legal ul { padding-left: 1.2em; }
.legal__note { margin: 16px 0 6px; padding: 12px 16px; border-radius: 14px; background: var(--grey); }
.back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-bottom: 14px; }

/* ---------- motion: words resolve from blur, blocks rise in order ---------- */
.w { display: inline-block; }
html.js:not(.still) [data-words] .w {
  opacity: 0; filter: blur(10px); transform: translateY(0.18em);
  transition: opacity var(--dur, 700ms) var(--e-words), filter var(--dur, 700ms) var(--e-words), transform var(--dur, 700ms) var(--e-words);
  transition-delay: calc(var(--d, 0ms) + var(--i, 0) * 50ms);
}
html.js:not(.still) [data-words].is-in .w { opacity: 1; filter: blur(0); transform: none; }
/* Headlines also release: condensed and heavy -> wide and light, like a muscle letting go.
   Line breaks are locked at the final width (app.js), so words never jump lines mid-move. */
html.js:not(.still) :is(h1, h2)[data-words] .w {
  font-stretch: 75%; font-weight: 640;
  transition: opacity var(--dur, 700ms) var(--e-words), filter var(--dur, 700ms) var(--e-words), transform var(--dur, 700ms) var(--e-words),
              font-stretch 1400ms var(--e-release), font-weight 1400ms var(--e-release);
  /* the word arrives tense (narrow, heavy) and only then lets go */
  --t: calc(var(--d, 0ms) + var(--i, 0) * 50ms);
  transition-delay: var(--t), var(--t), var(--t), calc(var(--t) + 380ms), calc(var(--t) + 380ms);
}
html.js:not(.still) :is(h1, h2)[data-words].is-in .w { font-stretch: inherit; font-weight: inherit; }
html.measure :is(h1, h2)[data-words] .w { font-stretch: inherit !important; font-weight: inherit !important; transition: none !important; }
html.notrans :is(h1, h2)[data-words] .w { transition: none !important; }
:is(h1, h2).is-locked { white-space: nowrap; }
.hero__sub, .fine { --dur: 1000ms; }
html.js:not(.still) [data-rise], html.js:not(.still) [data-fade] {
  opacity: 0; transform: translateY(26px);
  transition: opacity 1000ms var(--e-rise), transform 1000ms var(--e-rise);
  transition-delay: calc(var(--d, 0ms) + var(--i, 0) * 100ms);
}
html.js:not(.still) [data-fade] { transform: none; transition-duration: 600ms; }
html.js:not(.still) [data-rise].is-in, html.js:not(.still) [data-fade].is-in { opacity: 1; transform: none; }
.slots .t-spec-s { display: block; }
@media (min-width: 700px) { .slots .t-who .t-spec-s { display: none; } }
.book[hidden], .error[hidden], .book__demo[hidden] { display: none; }
