@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("assets/final/fonts/plus-jakarta-sans-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: "DM Sans";
  src: url("assets/final/fonts/dm-sans-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("assets/final/fonts/plus-jakarta-sans-variable-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("assets/final/fonts/barlow-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("assets/final/fonts/montserrat-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("assets/final/fonts/barlow-medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("assets/final/fonts/barlow-semibold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("assets/final/fonts/barlow-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("assets/final/fonts/barlow-extrabold.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("assets/final/fonts/barlow-semibold-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Good Brush";
  src: url("assets/final/fonts/good-brush.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --ts-dark: #30353b;
  --ts-dark-2: #252b31;
  --ts-teal: #249da9;
  --ts-teal-hover: #168894;
  --ts-paper: #f7f7f6;
  --ts-white: #fff;
  --ts-beige: #e9dfda;
  --ts-ink: #30353b;
  --ts-muted: #73767a;
  --ts-pale: #f1f3f4;
  --ts-line: #d9dde0;
  --ts-radius: 24px;
  --ts-shadow: 0 18px 46px rgb(28 35 41 / 9%);
  --ts-container: 1260px;
  --ts-gutter: 90px;
  --ts-heading: "Plus Jakarta Sans", Arial, sans-serif;
  --ts-body: "Barlow", Arial, sans-serif;
  --ts-brush: "Good Brush", "Arial Narrow", sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 108px;
  overflow-x: clip;
  background: var(--ts-dark);
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  color: var(--ts-ink);
  background: var(--ts-dark);
  font-family: var(--ts-body);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.48;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  color: inherit;
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

p,
h1,
h2,
h3,
h4,
blockquote,
figure {
  margin-top: 0;
}

h1,
h2,
h3,
h4 {
  font-family: var(--ts-heading);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.08;
}

h2 {
  margin-bottom: 28px;
  font-size: clamp(2.5rem, 4vw, 3.75rem);
  text-transform: uppercase;
}

h2 em,
h3 em {
  color: var(--ts-teal);
  font-family: var(--ts-brush);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
}

::selection {
  color: var(--ts-white);
  background: var(--ts-teal);
}

:focus-visible {
  outline: 3px solid #5ed4dd;
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 10000;
  padding: 12px 18px;
  border-radius: 999px;
  color: var(--ts-dark);
  background: var(--ts-white);
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.container {
  position: relative;
  z-index: 2;
  width: min(var(--ts-container), calc(100% - (var(--ts-gutter) * 2)));
  margin-inline: auto;
}

main > section {
  position: relative;
  isolation: isolate;
  overflow: clip;
}

.dark {
  color: var(--ts-white);
  background-color: var(--ts-dark);
}

.paper {
  color: var(--ts-ink);
  background-color: var(--ts-paper);
}

.torn-top {
  overflow: visible;
}

.torn-top::before {
  position: absolute;
  top: -72px;
  right: -2%;
  left: -2%;
  z-index: 1;
  height: 78px;
  background: url("assets/final/vectors/brush/div-shape-top-center.svg") center bottom / 104% 100% no-repeat;
  content: "";
  pointer-events: none;
}

.btn {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 14px 30px;
  border: 1px solid var(--ts-teal);
  border-radius: 999px;
  color: var(--ts-white);
  background: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1;
  text-transform: uppercase;
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.cta-arrow {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin-left: 6px;
  background: url("assets/final/icons/arrow-right.svg") center / contain no-repeat;
  vertical-align: -3px;
  transition: transform 180ms ease;
}

.btn .cta-arrow {
  margin-left: 0;
}

.btn-outline .cta-arrow,
.program-track a .cta-arrow,
.gastro-track a .cta-arrow {
  background-image: url("assets/final/icons/arrow-right-1.svg");
}

.btn:hover {
  border-color: var(--ts-teal-hover);
  background: var(--ts-teal-hover);
  transform: none;
}

.btn:hover .cta-arrow,
a:hover .cta-arrow {
  transform: translate(2px, -2px);
}

.btn-outline {
  color: var(--ts-teal);
  background: transparent;
}

.dark .btn-outline {
  color: var(--ts-teal);
}

.btn-outline:hover {
  color: var(--ts-white);
  background: var(--ts-teal);
}

.btn-outline:hover .cta-arrow {
  background-image: url("assets/final/icons/arrow-right.svg");
}

.brush-label {
  display: inline-flex;
  min-width: 190px;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  padding: 5px 24px 6px;
  color: var(--ts-dark);
  background-color: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1;
  text-transform: uppercase;
  -webkit-mask: url("assets/final/vectors/brush/brush-9.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brush-9.svg") center / 100% 100% no-repeat;
}

.section-heading h2 {
  margin-bottom: 0;
}

.section-heading.centered {
  text-align: center;
}

.checks {
  display: grid;
  gap: 15px;
  padding: 0;
  margin: 28px 0;
  list-style: none;
}

.checks li {
  position: relative;
  min-height: 24px;
  padding-left: 40px;
}

.checks li::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  background: url("assets/final/icons/tick-circle.svg") center / contain no-repeat;
  content: "";
}

.carousel-controls {
  display: flex;
  align-items: center;
  gap: 14px;
}

.carousel-controls button {
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: transparent;
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 40px 40px;
  font-size: 0;
  transition: transform 180ms ease;
}

.paper .carousel-controls button {
  border: 0;
  color: transparent;
}

.carousel-controls button:hover {
  border: 0;
  color: transparent;
  background-color: transparent;
  transform: scale(1.06);
}

.carousel-controls [data-carousel-prev] {
  background-image: url("assets/final/icons/carousel-arrow-left.svg");
}

.carousel-controls [data-carousel-next],
.carousel-controls [data-testimonial-next] {
  background-image: url("assets/final/icons/carousel-arrow-right.svg");
}

.carousel-controls[hidden] {
  display: none !important;
}

.carousel-controls [data-carousel-prev]:hover,
.carousel-controls [data-carousel-prev]:focus-visible {
  background-image: url("assets/final/icons/carousel-arrow-left-hover.svg");
}

.carousel-controls [data-carousel-next]:hover,
.carousel-controls [data-carousel-next]:focus-visible,
.carousel-controls [data-testimonial-next]:hover,
.carousel-controls [data-testimonial-next]:focus-visible {
  background-image: url("assets/final/icons/carousel-arrow-right-hover.svg");
}

.carousel-viewport {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
}

.carousel-viewport::-webkit-scrollbar {
  display: none;
}

/* Header */
.contact-strip,
.header-top,
.topbar {
  min-height: 42px;
  color: var(--ts-white);
  background: #247e87;
  font-family: var(--ts-heading);
  font-size: 13px;
  font-weight: 600;
}

.contact-strip .container,
.header-top .container,
.topbar .container {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 28px;
}

.site-header {
  position: relative;
  z-index: 1000;
  color: var(--ts-white);
  background: var(--ts-dark);
}

.site-header .nav-wrap {
  display: flex;
  min-height: 96px;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.site-header .brand {
  display: block;
  flex: 0 0 76px;
}

.site-header .brand img {
  width: 76px;
  height: 76px;
  object-fit: contain;
}

.site-header nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 3.4vw, 54px);
  margin-left: auto;
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

.site-header nav a {
  position: relative;
  padding-block: 12px;
}

.site-header nav a::after {
  position: absolute;
  right: 0;
  bottom: 4px;
  left: 0;
  height: 2px;
  background: var(--ts-teal);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms ease;
}

.site-header nav a:hover::after,
.site-header nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-tools {
  display: flex;
  align-items: center;
  gap: 20px;
}

.nav-tools > a:not(.btn) {
  display: grid;
  width: 26px;
  height: 36px;
  place-items: center;
}

.nav-tools svg,
.site-header .icon {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.site-header .btn {
  min-height: 52px;
  padding-inline: 27px;
  border-color: rgb(255 255 255 / 78%);
  color: var(--ts-white);
}

.site-header .menu,
.menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  border: 1px solid rgb(255 255 255 / 38%);
  border-radius: 50%;
  color: var(--ts-white);
  background: transparent;
  font-size: 21px;
}

/* Hero */
.hero {
  min-height: 900px;
  background: var(--ts-dark);
}

.hero::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--ts-teal);
  content: "";
  -webkit-mask: url("assets/final/vectors/brush/brushdots.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brushdots.svg") center / 100% 100% no-repeat;
}

.hero::after {
  display: none;
}

.hero-wash {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--ts-teal);
  pointer-events: none;
  -webkit-mask: url("assets/final/vectors/brush/brush-2.svg") -60px -70px / 710px 760px no-repeat;
  mask: url("assets/final/vectors/brush/brush-2.svg") -60px -70px / 710px 760px no-repeat;
}

.hero-media {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.hero-media img {
  position: absolute;
  bottom: 280px;
  left: 6.2%;
  width: min(63vw, 900px);
  height: auto;
  object-fit: contain;
  object-position: left bottom;
}

.hero-copy {
  z-index: 3;
  display: flex;
  min-height: 750px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding-top: 96px;
  padding-left: 41.5%;
}

.hero-copy h1 {
  max-width: none;
  margin: 0 0 6px;
  color: var(--ts-white);
  font-family: var(--ts-brush);
  font-size: clamp(3.45rem, 4.25vw, 3.9rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: .98;
  text-transform: uppercase;
  white-space: nowrap;
}

.hero-copy .brush-note {
  position: relative;
  min-width: min(100%, 430px);
  margin: 0 0 28px;
  padding: 7px 28px 10px;
  color: var(--ts-dark);
  background: none;
  font-size: 20px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.1;
  -webkit-mask: none;
  mask: none;
}

.hero-copy .brush-note::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: transparent url("assets/final/vectors/hero/subtitle-brush.svg") center / 100% 100% no-repeat;
  content: "";
}

.hero-copy > .hero-description {
  max-width: 680px;
  margin: 0;
  color: var(--ts-white);
  font-family: var(--ts-heading);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
}

.hero-copy > .hero-description strong {
  color: var(--ts-teal);
}

.scroll-hint {
  position: absolute;
  bottom: 52px;
  left: 50%;
  z-index: 5;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 8px;
  color: var(--ts-white);
  font-size: 13px;
  transform: translateX(-50%);
}

.mouse-icon {
  display: block;
  width: 64px;
  height: 64px;
  background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMxLjg4MDQgNjMuMjk2N0MzMS42MDA2IDYzLjI5NjcgMzEuMzMyMyA2My4xODU2IDMxLjEzNDQgNjIuOTg3N0MzMC45MzY2IDYyLjc4OTkgMzAuODI1NCA2Mi41MjE2IDMwLjgyNTQgNjIuMjQxOFY0Ny45NjQ5QzMwLjgyNTQgNDcuNjg1MSAzMC45MzY2IDQ3LjQxNjcgMzEuMTM0NCA0Ny4yMTg5QzMxLjMzMjMgNDcuMDIxMSAzMS42MDA2IDQ2LjkwOTkgMzEuODgwNCA0Ni45MDk5QzMyLjE2MDIgNDYuOTA5OSAzMi40Mjg1IDQ3LjAyMTEgMzIuNjI2MyA0Ny4yMTg5QzMyLjgyNDIgNDcuNDE2NyAzMi45MzUzIDQ3LjY4NTEgMzIuOTM1MyA0Ny45NjQ5VjYyLjIxMzdDMzIuOTM5MSA2Mi4zNTQ1IDMyLjkxNDYgNjIuNDk0OCAzMi44NjMyIDYyLjYyNkMzMi44MTE5IDYyLjc1NzMgMzIuNzM0OCA2Mi44NzY5IDMyLjYzNjUgNjIuOTc3OUMzMi41MzgxIDYzLjA3ODggMzIuNDIwNiA2My4xNTkxIDMyLjI5MDcgNjMuMjEzOEMzMi4xNjA4IDYzLjI2ODYgMzIuMDIxMyA2My4yOTY4IDMxLjg4MDQgNjMuMjk2N1oiIGZpbGw9IiNFOURGREEiLz4KPHBhdGggZD0iTTMxLjg4MDUgNjMuMjk2N0MzMS42MjEyIDYzLjI5NzEgMzEuMzcwOCA2My4yMDIgMzEuMTc3MiA2My4wMjk1TDI0Ljg0NzUgNTcuNDg3NUMyNC43NDM2IDU3LjM5NTEgMjQuNjU4OSA1Ny4yODMyIDI0LjU5ODIgNTcuMTU4MUMyNC41Mzc2IDU3LjAzMzEgMjQuNTAyMiA1Ni44OTcyIDI0LjQ5NCA1Ni43NTg1QzI0LjQ4NTkgNTYuNjE5NyAyNC41MDUxIDU2LjQ4MDcgMjQuNTUwNyA1Ni4zNDkzQzI0LjU5NjIgNTYuMjE4IDI0LjY2NzIgNTYuMDk2OSAyNC43NTk2IDU1Ljk5M0MyNC44NTE5IDU1Ljg4OTEgMjQuOTYzOSA1NS44MDQ0IDI1LjA4OSA1NS43NDM4QzI1LjIxNCA1NS42ODMxIDI1LjM0OTggNTUuNjQ3NyAyNS40ODg2IDU1LjYzOTVDMjUuNjI3NCA1NS42MzE0IDI1Ljc2NjQgNTUuNjUwNiAyNS44OTc4IDU1LjY5NjJDMjYuMDI5MSA1NS43NDE3IDI2LjE1MDIgNTUuODEyNyAyNi4yNTQxIDU1LjkwNTFMMzIuNTgzOCA2MS40NDcxQzMyLjY4ODYgNjEuNTM3MyAzMi43NzQ1IDYxLjY0NzMgMzIuODM2NiA2MS43NzA5QzMyLjg5ODcgNjEuODk0NSAzMi45MzU3IDYyLjAyOTEgMzIuOTQ1NSA2Mi4xNjcxQzMyLjk1NTMgNjIuMzA1IDMyLjkzNzcgNjIuNDQzNiAzMi44OTM4IDYyLjU3NDdDMzIuODQ5OCA2Mi43MDU4IDMyLjc4MDMgNjIuODI2OSAzMi42ODkzIDYyLjkzMUMzMi41ODg1IDYzLjA0NjQgMzIuNDY0MSA2My4xMzg3IDMyLjMyNDYgNjMuMjAxOEMzMi4xODUxIDYzLjI2NDkgMzIuMDMzNiA2My4yOTczIDMxLjg4MDUgNjMuMjk2N1oiIGZpbGw9IiNFOURGREEiLz4KPHBhdGggZD0iTTMxLjg4MDQgNjMuMjk2N0MzMS42NjQ5IDYzLjI5ODcgMzEuNDUzOSA2My4yMzQ2IDMxLjI3NTkgNjMuMTEzQzMxLjA5NzkgNjIuOTkxNCAzMC45NjE0IDYyLjgxODMgMzAuODg0OCA2Mi42MTY4QzMwLjgwODIgNjIuNDE1MyAzMC43OTUxIDYyLjE5NTIgMzAuODQ3NCA2MS45ODZDMzAuODk5NyA2MS43NzY5IDMxLjAxNDcgNjEuNTg4OCAzMS4xNzcxIDYxLjQ0NzFMMzcuNTA2OCA1NS45MDUxQzM3LjYxMDcgNTUuODEyNyAzNy43MzE4IDU1Ljc0MTcgMzcuODYzMSA1NS42OTYyQzM3Ljk5NDUgNTUuNjUwNiAzOC4xMzM1IDU1LjYzMTQgMzguMjcyMyA1NS42Mzk1QzM4LjQxMSA1NS42NDc3IDM4LjU0NjkgNTUuNjgzMSAzOC42NzE5IDU1Ljc0MzhDMzguNzk3IDU1LjgwNDQgMzguOTA5IDU1Ljg4OTEgMzkuMDAxMyA1NS45OTNDMzkuMDkzNyA1Ni4wOTY5IDM5LjE2NDcgNTYuMjE4IDM5LjIxMDIgNTYuMzQ5M0MzOS4yNTU4IDU2LjQ4MDcgMzkuMjc1IDU2LjYxOTcgMzkuMjY2OSA1Ni43NTg1QzM5LjI1ODcgNTYuODk3MiAzOS4yMjMzIDU3LjAzMzEgMzkuMTYyNyA1Ny4xNTgxQzM5LjEwMiA1Ny4yODMyIDM5LjAxNzMgNTcuMzk1MSAzOC45MTM0IDU3LjQ4NzVMMzIuNTgzNyA2My4wMjk1QzMyLjM5MTIgNjMuMjAzNyAzMi4xNDAxIDYzLjI5OTEgMzEuODgwNCA2My4yOTY3WiIgZmlsbD0iI0U5REZEQSIvPgo8cGF0aCBkPSJNMzUuNzY5OCA0Mi43MTEzSDI3Ljk4NDNDMjUuMTY3IDQyLjcwNzUgMjIuNDY2MiA0MS41ODY3IDIwLjQ3NDEgMzkuNTk0NkMxOC40ODIgMzcuNjAyNSAxNy4zNjEyIDM0LjkwMTcgMTcuMzU3NCAzMi4wODQ0VjExLjY4ODhDMTcuMzU0NyAxMC4yOTA5IDE3LjYyNzQgOC45MDYwNSAxOC4xNiA3LjYxMzUyQzE4LjY5MjcgNi4zMjA5OSAxOS40NzQ4IDUuMTQ2MDggMjAuNDYxNiA0LjE1NTk0QzIxLjQ0ODUgMy4xNjU3OSAyMi42MjA4IDIuMzc5ODEgMjMuOTExNiAxLjg0MjkxQzI1LjIwMjQgMS4zMDYwMSAyNi41ODYzIDEuMDI4NzEgMjcuOTg0MyAxLjAyNjg2SDM1Ljc2OThDMzcuMTY2OCAxLjAyNTAyIDM4LjU1MDUgMS4yOTg0NyAzOS44NDE4IDEuODMxNjFDNDEuMTMzMiAyLjM2NDc0IDQyLjMwNjggMy4xNDcxIDQzLjI5NTYgNC4xMzM5OEM0NC4yODQ1IDUuMTIwODcgNDUuMDY5MiA2LjI5MjkzIDQ1LjYwNDggNy41ODMxOUM0Ni4xNDA1IDguODczNDUgNDYuNDE2NyAxMC4yNTY2IDQ2LjQxNzcgMTEuNjUzN1YzMi4wODQ0QzQ2LjQxNjcgMzMuNDgxNSA0Ni4xNDA1IDM0Ljg2NDcgNDUuNjA0OCAzNi4xNTQ5QzQ1LjA2OTIgMzcuNDQ1MiA0NC4yODQ1IDM4LjYxNzMgNDMuMjk1NiAzOS42MDQxQzQyLjMwNjggNDAuNTkxIDQxLjEzMzIgNDEuMzczNCAzOS44NDE4IDQxLjkwNjVDMzguNTUwNSA0Mi40Mzk2IDM3LjE2NjggNDIuNzEzMSAzNS43Njk4IDQyLjcxMTNaTTI3Ljk4NDMgMy4xMzY3NUMyNS43MjYgMy4xMzg2MiAyMy41NjA4IDQuMDM2NTMgMjEuOTYzOSA1LjYzMzM2QzIwLjM2NzEgNy4yMzAxOSAxOS40NjkyIDkuMzk1NDIgMTkuNDY3MyAxMS42NTM3VjMyLjA4NDRDMTkuNDcxMSAzNC4zNDIxIDIwLjM2OTYgMzYuNTA2MyAyMS45NjYgMzguMTAyN0MyMy41NjI0IDM5LjY5OTEgMjUuNzI2NiA0MC41OTc2IDI3Ljk4NDMgNDAuNjAxNEgzNS43Njk4QzM2Ljg4OTcgNDAuNjAzMiAzNy45OTkxIDQwLjM4NDMgMzkuMDM0NCAzOS45NTcyQzQwLjA2OTggMzkuNTMwMSA0MS4wMTA4IDM4LjkwMzIgNDEuODAzNyAzOC4xMTIyQzQyLjU5NjYgMzcuMzIxMyA0My4yMjU5IDM2LjM4MTggNDMuNjU1NiAzNS4zNDc1QzQ0LjA4NTIgMzQuMzEzMiA0NC4zMDY5IDMzLjIwNDQgNDQuMzA3OCAzMi4wODQ0VjExLjY4ODhDNDQuMzExNSAxMC41NjU5IDQ0LjA5MzMgOS40NTMzMSA0My42NjU3IDguNDE0OTdDNDMuMjM4MSA3LjM3NjYzIDQyLjYwOTYgNi40MzMgNDEuODE2MiA1LjYzODMxQzQxLjAyMjggNC44NDM2MiA0MC4wODAyIDQuMjEzNTMgMzkuMDQyNiAzLjc4NDIzQzM4LjAwNDkgMy4zNTQ5NCAzNi44OTI3IDMuMTM0OSAzNS43Njk4IDMuMTM2NzVIMjcuOTg0M1oiIGZpbGw9IiNFOURGREEiLz4KPHBhdGggZD0iTTMxLjg4MDQgMTguNTQ1OUMzMS42MDA2IDE4LjU0NTkgMzEuMzMyMyAxOC40MzQ3IDMxLjEzNDQgMTguMjM2OUMzMC45MzY2IDE4LjAzOSAzMC44MjU0IDE3Ljc3MDcgMzAuODI1NCAxNy40OTA5VjEyLjE5NTFDMzAuODI1NCAxMS45MTUzIDMwLjkzNjYgMTEuNjQ3IDMxLjEzNDQgMTEuNDQ5MUMzMS4zMzIzIDExLjI1MTMgMzEuNjAwNiAxMS4xNDAxIDMxLjg4MDQgMTEuMTQwMUMzMi4xNjAyIDExLjE0MDEgMzIuNDI4NSAxMS4yNTEzIDMyLjYyNjMgMTEuNDQ5MUMzMi44MjQyIDExLjY0NyAzMi45MzUzIDExLjkxNTMgMzIuOTM1MyAxMi4xOTUxVjE3LjQ5MDlDMzIuOTM1MyAxNy43NzA3IDMyLjgyNDIgMTguMDM5IDMyLjYyNjMgMTguMjM2OUMzMi40Mjg1IDE4LjQzNDcgMzIuMTYwMiAxOC41NDU5IDMxLjg4MDQgMTguNTQ1OVoiIGZpbGw9IiNFOURGREEiLz4KPC9zdmc+Cg==") center / contain no-repeat;
  transition: width 180ms ease, height 180ms ease, background-image 180ms ease, transform 180ms ease;
}

.mouse-icon::before,
.mouse-icon::after {
  content: none;
}

.scroll-hint:hover .mouse-icon,
.scroll-hint:focus-visible .mouse-icon {
  width: 64px;
  height: 75px;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNzUiIHZpZXdCb3g9IjAgMCA2NCA3NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83OTYwXzIyOTQpIj4KPHBhdGggZD0iTTMxLjg4MDUgNjYuMjY5OUMzMS42MDA3IDY2LjI2OTkgMzEuMzMyNCA2Ni4xNTg4IDMxLjEzNDYgNjUuOTYwOUMzMC45MzY3IDY1Ljc2MzEgMzAuODI1NiA2NS40OTQ3IDMwLjgyNTYgNjUuMjE1VjUwLjkzOEMzMC44MjU2IDUwLjY1ODIgMzAuOTM2NyA1MC4zODk5IDMxLjEzNDYgNTAuMTkyMUMzMS4zMzI0IDQ5Ljk5NDIgMzEuNjAwNyA0OS44ODMxIDMxLjg4MDUgNDkuODgzMUMzMi4xNjAzIDQ5Ljg4MzEgMzIuNDI4NiA0OS45OTQyIDMyLjYyNjUgNTAuMTkyMUMzMi44MjQzIDUwLjM4OTkgMzIuOTM1NSA1MC42NTgyIDMyLjkzNTUgNTAuOTM4VjY1LjE4NjhDMzIuOTM5MiA2NS4zMjc3IDMyLjkxNDcgNjUuNDY3OSAzMi44NjM0IDY1LjU5OTJDMzIuODEyMSA2NS43MzA0IDMyLjczNDkgNjUuODUwMSAzMi42MzY2IDY1Ljk1MUMzMi41MzgzIDY2LjA1MiAzMi40MjA3IDY2LjEzMjIgMzIuMjkwOCA2Ni4xODdDMzIuMTYxIDY2LjI0MTggMzIuMDIxNSA2Ni4yNyAzMS44ODA1IDY2LjI2OTlaIiBmaWxsPSIjRjZGNkY2Ii8+CjxwYXRoIGQ9Ik0zMS44ODA1IDY2LjI2OTlDMzEuNjIxMiA2Ni4yNzAzIDMxLjM3MDggNjYuMTc1MSAzMS4xNzcyIDY2LjAwMjdMMjQuODQ3NiA2MC40NjA3QzI0Ljc0MzcgNjAuMzY4MyAyNC42NTkgNjAuMjU2NCAyNC41OTgzIDYwLjEzMTNDMjQuNTM3NyA2MC4wMDYyIDI0LjUwMjIgNTkuODcwNCAyNC40OTQxIDU5LjczMTZDMjQuNDg1OSA1OS41OTI5IDI0LjUwNTIgNTkuNDUzOCAyNC41NTA3IDU5LjMyMjVDMjQuNTk2MyA1OS4xOTEyIDI0LjY2NzMgNTkuMDcwMSAyNC43NTk2IDU4Ljk2NjJDMjQuODUyIDU4Ljg2MjMgMjQuOTYzOSA1OC43Nzc2IDI1LjA4OSA1OC43MTY5QzI1LjIxNDEgNTguNjU2MyAyNS4zNDk5IDU4LjYyMDkgMjUuNDg4NyA1OC42MTI3QzI1LjYyNzUgNTguNjA0NSAyNS43NjY1IDU4LjYyMzggMjUuODk3OCA1OC42NjkzQzI2LjAyOTIgNTguNzE0OSAyNi4xNTAyIDU4Ljc4NTkgMjYuMjU0MSA1OC44NzgzTDMyLjU4MzggNjQuNDIwMkMzMi42ODg2IDY0LjUxMDQgMzIuNzc0NiA2NC42MjA1IDMyLjgzNjcgNjQuNzQ0MUMzMi44OTg4IDY0Ljg2NzcgMzIuOTM1OCA2NS4wMDIzIDMyLjk0NTYgNjUuMTQwMkMzMi45NTU0IDY1LjI3ODIgMzIuOTM3OCA2NS40MTY3IDMyLjg5MzggNjUuNTQ3OEMzMi44NDk4IDY1LjY3ODkgMzIuNzgwMyA2NS44MDAxIDMyLjY4OTMgNjUuOTA0MkMzMi41ODg2IDY2LjAxOTUgMzIuNDY0MiA2Ni4xMTE5IDMyLjMyNDcgNjYuMTc1QzMyLjE4NTEgNjYuMjM4MSAzMi4wMzM3IDY2LjI3MDQgMzEuODgwNSA2Ni4yNjk5WiIgZmlsbD0iI0Y2RjZGNiIvPgo8cGF0aCBkPSJNMzEuODgwNSA2Ni4yNjk5QzMxLjY2NSA2Ni4yNzE5IDMxLjQ1NCA2Ni4yMDc3IDMxLjI3NiA2Ni4wODYyQzMxLjA5OCA2NS45NjQ2IDMwLjk2MTUgNjUuNzkxNCAzMC44ODQ5IDY1LjU4OTlDMzAuODA4MyA2NS4zODg0IDMwLjc5NTIgNjUuMTY4MyAzMC44NDc1IDY0Ljk1OTJDMzAuODk5OCA2NC43NTAxIDMxLjAxNDggNjQuNTYyIDMxLjE3NzIgNjQuNDIwMkwzNy41MDY5IDU4Ljg3ODNDMzcuNjEwOCA1OC43ODU5IDM3LjczMTkgNTguNzE0OSAzNy44NjMyIDU4LjY2OTNDMzcuOTk0NiA1OC42MjM4IDM4LjEzMzYgNTguNjA0NSAzOC4yNzI0IDU4LjYxMjdDMzguNDExMSA1OC42MjA5IDM4LjU0NjkgNTguNjU2MyAzOC42NzIgNTguNzE2OUMzOC43OTcxIDU4Ljc3NzYgMzguOTA5IDU4Ljg2MjMgMzkuMDAxNCA1OC45NjYyQzM5LjA5MzggNTkuMDcwMSAzOS4xNjQ3IDU5LjE5MTIgMzkuMjEwMyA1OS4zMjI1QzM5LjI1NTkgNTkuNDUzOCAzOS4yNzUxIDU5LjU5MjkgMzkuMjY3IDU5LjczMTZDMzkuMjU4OCA1OS44NzA0IDM5LjIyMzQgNjAuMDA2MiAzOS4xNjI3IDYwLjEzMTNDMzkuMTAyMSA2MC4yNTY0IDM5LjAxNzQgNjAuMzY4MyAzOC45MTM1IDYwLjQ2MDdMMzIuNTgzOCA2Ni4wMDI3QzMyLjM5MTMgNjYuMTc2OSAzMi4xNDAyIDY2LjI3MjMgMzEuODgwNSA2Ni4yNjk5WiIgZmlsbD0iI0Y2RjZGNiIvPgo8cGF0aCBkPSJNMzUuNzY5OCA0NS42ODQ0SDI3Ljk4NDNDMjUuMTY3IDQ1LjY4MDcgMjIuNDY2MiA0NC41NTk5IDIwLjQ3NDEgNDIuNTY3OEMxOC40ODIgNDAuNTc1NyAxNy4zNjEyIDM3Ljg3NDkgMTcuMzU3NCAzNS4wNTc2VjE0LjY2MkMxNy4zNTQ3IDEzLjI2NCAxNy42Mjc0IDExLjg3OTIgMTguMTYgMTAuNTg2N0MxOC42OTI3IDkuMjk0MTQgMTkuNDc0OCA4LjExOTIzIDIwLjQ2MTYgNy4xMjkwOEMyMS40NDg1IDYuMTM4OTMgMjIuNjIwOCA1LjM1Mjk1IDIzLjkxMTYgNC44MTYwNUMyNS4yMDI0IDQuMjc5MTUgMjYuNTg2MyA0LjAwMTg1IDI3Ljk4NDMgNC4wMDAwMUgzNS43Njk4QzM3LjE2NjggMy45OTgxNiAzOC41NTA1IDQuMjcxNjIgMzkuODQxOCA0LjgwNDc1QzQxLjEzMzIgNS4zMzc4OCA0Mi4zMDY4IDYuMTIwMjQgNDMuMjk1NiA3LjEwNzEzQzQ0LjI4NDUgOC4wOTQwMSA0NS4wNjkyIDkuMjY2MDcgNDUuNjA0OCAxMC41NTYzQzQ2LjE0MDUgMTEuODQ2NiA0Ni40MTY3IDEzLjIyOTggNDYuNDE3NyAxNC42MjY4VjM1LjA1NzZDNDYuNDE2NyAzNi40NTQ2IDQ2LjE0MDUgMzcuODM3OCA0NS42MDQ4IDM5LjEyODFDNDUuMDY5MiA0MC40MTgzIDQ0LjI4NDUgNDEuNTkwNCA0My4yOTU2IDQyLjU3NzNDNDIuMzA2OCA0My41NjQyIDQxLjEzMzIgNDQuMzQ2NSAzOS44NDE4IDQ0Ljg3OTdDMzguNTUwNSA0NS40MTI4IDM3LjE2NjggNDUuNjg2MyAzNS43Njk4IDQ1LjY4NDRaTTI3Ljk4NDMgNi4xMDk5QzI1LjcyNiA2LjExMTc2IDIzLjU2MDggNy4wMDk2OCAyMS45NjM5IDguNjA2NTFDMjAuMzY3MSAxMC4yMDMzIDE5LjQ2OTIgMTIuMzY4NiAxOS40NjczIDE0LjYyNjhWMzUuMDU3NkMxOS40NzExIDM3LjMxNTMgMjAuMzY5NiAzOS40Nzk0IDIxLjk2NiA0MS4wNzU5QzIzLjU2MjQgNDIuNjcyMyAyNS43MjY2IDQzLjU3MDggMjcuOTg0MyA0My41NzQ1SDM1Ljc2OThDMzYuODg5NyA0My41NzY0IDM3Ljk5OTEgNDMuMzU3NSAzOS4wMzQ0IDQyLjkzMDRDNDAuMDY5OCA0Mi41MDMzIDQxLjAxMDggNDEuODc2MyA0MS44MDM3IDQxLjA4NTRDNDIuNTk2NiA0MC4yOTQ0IDQzLjIyNTkgMzkuMzU0OSA0My42NTU2IDM4LjMyMDdDNDQuMDg1MiAzNy4yODY0IDQ0LjMwNjkgMzYuMTc3NiA0NC4zMDc4IDM1LjA1NzZWMTQuNjYyQzQ0LjMxMTUgMTMuNTM5MSA0NC4wOTMzIDEyLjQyNjUgNDMuNjY1NyAxMS4zODgxQzQzLjIzODEgMTAuMzQ5OCA0Mi42MDk2IDkuNDA2MTUgNDEuODE2MiA4LjYxMTQ2QzQxLjAyMjggNy44MTY3NyA0MC4wODAyIDcuMTg2NjggMzkuMDQyNiA2Ljc1NzM4QzM4LjAwNDkgNi4zMjgwOCAzNi44OTI3IDYuMTA4MDQgMzUuNzY5OCA2LjEwOTlIMjcuOTg0M1oiIGZpbGw9IiNGNkY2RjYiLz4KPHBhdGggZD0iTTMxLjg4MDUgMjEuNTE5MUMzMS42MDA3IDIxLjUxOTEgMzEuMzMyNCAyMS40MDggMzEuMTM0NiAyMS4yMTAxQzMwLjkzNjcgMjEuMDEyMyAzMC44MjU2IDIwLjc0NCAzMC44MjU2IDIwLjQ2NDJWMTUuMTY4NEMzMC44MjU2IDE0Ljg4ODYgMzAuOTM2NyAxNC42MjAyIDMxLjEzNDYgMTQuNDIyNEMzMS4zMzI0IDE0LjIyNDYgMzEuNjAwNyAxNC4xMTM0IDMxLjg4MDUgMTQuMTEzNEMzMi4xNjAzIDE0LjExMzQgMzIuNDI4NiAxNC4yMjQ2IDMyLjYyNjUgMTQuNDIyNEMzMi44MjQzIDE0LjYyMDIgMzIuOTM1NSAxNC44ODg2IDMyLjkzNTUgMTUuMTY4NFYyMC40NjQyQzMyLjkzNTUgMjAuNzQ0IDMyLjgyNDMgMjEuMDEyMyAzMi42MjY1IDIxLjIxMDFDMzIuNDI4NiAyMS40MDggMzIuMTYwMyAyMS41MTkxIDMxLjg4MDUgMjEuNTE5MVoiIGZpbGw9IiNGNkY2RjYiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kXzc5NjBfMjI5NCIgeD0iMTEuMzU3NCIgeT0iMCIgd2lkdGg9IjQxLjA2MDMiIGhlaWdodD0iNzQuMjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CjxmZU9mZnNldCBkeT0iMiIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIi8+CjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPgo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwLjA3ODg3NSAwIDAgMCAwIDAuMDc3MDgzMyAwIDAgMCAwIDAuMTY2NjY3IDAgMCAwIDAuMDYgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd183OTYwXzIyOTQiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzk2MF8yMjk0IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=");
  transform: translateY(-2px);
}

/* Service selector */
.service-choice {
  min-height: 1260px;
  padding: 100px 0 250px;
  background-image:
    url("assets/final/vectors/brush/dots-2.svg"),
    url("assets/final/vectors/brush/dots-1.svg");
  background-position: -70px 150px, calc(100% + 80px) 70px;
  background-repeat: no-repeat;
  background-size: 330px, 330px;
}

.service-choice .section-heading h2 {
  color: var(--ts-white);
}

.choice-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin-top: -5px;
}

.choice-cards,
.carousel-viewport,
.business-space-grid {
  scrollbar-width: none;
}

.choice-cards::-webkit-scrollbar,
.carousel-viewport::-webkit-scrollbar,
.business-space-grid::-webkit-scrollbar {
  display: none;
}

.choice-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--ts-radius);
  color: var(--ts-ink);
  background: var(--ts-white);
  box-shadow: 0 12px 28px rgb(0 0 0 / 9%);
  text-align: center;
  transition: transform 240ms ease, box-shadow 240ms ease;
}

.choice-card:nth-child(1) { transform: translateY(195px); }
.choice-card:nth-child(2) { transform: translateY(130px); }
.choice-card:nth-child(3) { transform: translateY(65px); }

.choice-card:hover {
  box-shadow: 0 22px 46px rgb(0 0 0 / 18%);
}

.choice-card:nth-child(1):hover { transform: translateY(187px); }
.choice-card:nth-child(2):hover { transform: translateY(122px); }
.choice-card:nth-child(3):hover { transform: translateY(57px); }
.choice-card:nth-child(4):hover { transform: translateY(-8px); }

.choice-card > img:first-child {
  width: 100%;
  height: 300px;
  object-fit: cover;
}

.choice-card .card-pictogram {
  position: relative;
  z-index: 2;
  width: 86px;
  height: 86px;
  padding: 18px;
  margin: -43px auto 29px;
  border: 5px solid var(--ts-white);
  border-radius: 50%;
  background: var(--ts-teal);
  object-fit: contain;
}

.choice-card h3 {
  margin: 0 20px 10px;
  font-size: 27px;
  text-transform: uppercase;
}

.choice-card p {
  min-height: 49px;
  margin: 0 24px 25px;
  color: #66696d;
  font-weight: 600;
}

.choice-card .btn {
  min-height: 48px;
  margin: 0 20px 34px;
  padding: 12px 24px;
}

/* Introduction */
.intro {
  min-height: 1420px;
  padding: 135px 0 210px;
  background-image:
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: -180px 680px, calc(100% + 170px) 900px;
  background-repeat: no-repeat;
  background-size: 360px;
}

.intro-grid {
  display: grid;
  min-height: 575px;
  align-items: center;
  grid-template-columns: .92fr 1.08fr;
  gap: 70px;
}

.intro-copy h2 {
  margin-bottom: 34px;
  font-size: clamp(3rem, 5vw, 4.7rem);
  line-height: 1.05;
  text-transform: none;
}

.intro-copy h2 em {
  font-family: var(--ts-heading);
  font-weight: 700;
  letter-spacing: -.035em;
}

.intro-copy h3 {
  margin-bottom: 8px;
  font-size: 26px;
  letter-spacing: -.025em;
}

.intro-copy > p:not(.brush-label) {
  max-width: 650px;
  margin-bottom: 24px;
  color: #4b4e52;
  font-size: 19px;
}

.intro-action {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 28px;
}

.signature {
  display: inline-block;
  font-family: var(--ts-brush);
  font-size: 28px;
  transform: rotate(-3deg);
}

.intro-photo {
  position: relative;
  align-self: stretch;
}

.intro-photo::before {
  position: absolute;
  inset: 4% 0 4% 2%;
  border-radius: 52% 48% 47% 53%;
  background: var(--ts-beige);
  content: "";
  -webkit-mask: url("assets/final/vectors/brush/brush-2.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brush-2.svg") center / 100% 100% no-repeat;
  transform: scale(1.5);
}

.intro-photo img {
  position: absolute;
  right: 2%;
  bottom: 0;
  z-index: 1;
  width: 92%;
  height: 108%;
  object-fit: contain;
  object-position: right bottom;
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 100px;
  text-align: center;
}

.trust-grid article {
  position: relative;
  padding: 8px 42px;
}

.trust-grid article + article::before {
  position: absolute;
  top: 88px;
  bottom: 20px;
  left: 0;
  width: 1px;
  background: #dde0e2;
  content: "";
}

.trust-grid img {
  width: 66px;
  height: 66px;
  margin: 0 auto 22px;
  object-fit: contain;
}

.trust-grid h3 {
  margin-bottom: 16px;
  font-size: 24px;
}

.trust-grid p {
  margin: 0;
  color: #696c70;
  font-size: 16px;
}

.trust-grid strong {
  color: var(--ts-teal);
  font-weight: 700;
}

/* Arrival and venue */
.arrival {
  min-height: 465px;
  display: grid;
  place-items: center;
  background: #202a34;
}

.arrival::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgb(18 29 39 / 78%), rgb(18 29 39 / 55%));
  content: "";
}

.arrival-bg {
  position: absolute;
  inset: -16% 0 -16% 0;
  width: 100%;
  height: 132%;
  object-fit: cover;
  object-position: center 45%;
  filter: saturate(.75);
}

.arrival h2 {
  position: relative;
  z-index: 2;
  margin: 0;
  color: var(--ts-white);
  font-size: clamp(3rem, 4.4vw, 4.3rem);
  text-align: center;
}

.arrival h2 em {
  font-size: 1.15em;
}

.venue {
  padding: 180px 0 100px;
  background-image: url("assets/final/vectors/brush/dots-2.svg");
  background-position: calc(100% + 150px) 80px;
  background-repeat: no-repeat;
  background-size: 360px;
}

.venue-grid {
  display: grid;
  align-items: center;
  grid-template-columns: 1.03fr .97fr;
  gap: 54px;
}

.venue-copy h2,
.split-feature h2 {
  margin-bottom: 12px;
  color: var(--ts-white);
  font-size: clamp(2.15rem, 3vw, 3rem);
}

.venue-copy > h3,
.split-feature > div > h3 {
  margin-bottom: 28px;
  color: var(--ts-teal);
  font-size: 25px;
  letter-spacing: -.02em;
}

.venue-copy > p,
.split-feature > div > p {
  max-width: 650px;
  color: #eef0f1;
}

.venue-copy .checks,
.split-feature .checks {
  color: #cfd2d4;
  font-size: 16px;
}

.venue-info {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 35px;
  margin: 32px 0;
  color: #cfd2d4;
  font-size: 15px;
}

.venue-info > div {
  min-width: 0;
}

.venue-info img {
  width: 58px;
  height: 58px;
  margin-bottom: 12px;
  object-fit: contain;
}

.venue-info strong {
  display: block;
  color: var(--ts-white);
}

.venue-info ul {
  padding: 0;
  margin: 4px 0 0;
  list-style: none;
}

.venue-info p {
  margin: 0;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 30px;
}

.venue-photo {
  width: 116%;
  max-width: none;
  height: 640px;
  overflow: hidden;
  border-radius: var(--ts-radius);
}

.venue-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Space cards */
.spaces,
.business-spaces {
  padding: 70px 0 30px;
  background-image: url("assets/final/vectors/brush/dots-1.svg");
  background-position: -190px 80%;
  background-repeat: no-repeat;
  background-size: 390px;
}

.space-grid,
.business-space-grid {
  display: grid;
  overflow: hidden;
  border-radius: var(--ts-radius);
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.space-grid article,
.business-space-grid article {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 440px;
  flex-direction: column;
  padding: 46px 24px 25px;
  background-image:
    linear-gradient(to bottom, rgb(26 33 40 / 72%), rgb(26 33 40 / 87%)),
    var(--space-image, none);
  background-position: center;
  background-size: cover;
}

.space-grid article:nth-child(even),
.business-space-grid article:nth-child(even) {
  background-image:
    linear-gradient(to bottom, rgb(23 139 150 / 72%), rgb(18 100 110 / 85%)),
    var(--space-image, none);
}

.space-grid article > img,
.business-space-grid article > img {
  width: 48px;
  height: 48px;
  margin-bottom: 38px;
  object-fit: contain;
}

.space-grid h3,
.business-space-grid h3 {
  margin-bottom: 10px;
  color: var(--ts-white);
  font-size: 26px;
}

.space-grid p,
.business-space-grid p {
  margin: 0;
  color: #e1e3e4;
  font-size: 16px;
}

.space-grid article > strong,
.business-space-grid article > strong {
  margin-top: auto;
  color: var(--ts-teal);
  font-family: var(--ts-brush);
  font-size: 39px;
  font-weight: 400;
}

.space-grid article:nth-child(even) > strong,
.business-space-grid article:nth-child(even) > strong {
  color: var(--ts-white);
}

/* Programs */
.programs {
  padding: 120px 0 190px;
  background-image:
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: -190px 66%, calc(100% + 130px) 14%;
  background-repeat: no-repeat;
  background-size: 380px, 330px;
}

.programs-lead,
.carousel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 60px;
}

.programs-lead > p,
.carousel-heading > p {
  max-width: 830px;
  margin: 0;
  color: var(--ts-white);
  font-family: var(--ts-heading);
  font-size: 27px;
  line-height: 1.35;
}

.programs > .carousel-controls {
  justify-content: flex-end;
  margin-top: 36px;
  margin-bottom: 28px;
}

.edge-carousel,
.gastro-carousel {
  padding-inline: max(var(--ts-gutter), calc((100vw - var(--ts-container)) / 2));
}

.program-track,
.gastro-track {
  display: flex;
  width: max-content;
  gap: 24px;
}

.program-track article,
.gastro-track article {
  position: relative;
  display: flex;
  width: 340px;
  min-height: 420px;
  overflow: hidden;
  flex: 0 0 340px;
  flex-direction: column;
  padding: 52px 24px 30px;
  border-radius: var(--ts-radius);
  background-image:
    linear-gradient(to bottom, rgb(22 28 34 / 12%) 10%, rgb(22 28 34 / 89%) 90%),
    var(--program-image, none);
  background-position: center;
  background-size: cover;
  scroll-snap-align: start;
}

.program-track article::before,
.gastro-track article::before,
.system-cards article::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(to bottom, transparent 32%, rgb(15 22 29 / 76%) 100%);
  content: "";
  pointer-events: none;
}

.program-track article > *,
.gastro-track article > *,
.system-cards article > * {
  position: relative;
  z-index: 1;
}

.program-track img,
.gastro-track img {
  width: 54px;
  height: 54px;
  margin-bottom: auto;
  object-fit: contain;
}

.program-track h3,
.gastro-track h3 {
  margin: 42px 0 12px;
  color: var(--ts-white);
  font-size: 26px;
  text-transform: uppercase;
}

.program-track p,
.gastro-track p {
  min-height: 72px;
  margin: 0 0 20px;
  color: #eef0f1;
  font-size: 14px;
  line-height: 1.45;
}

.program-track a,
.gastro-track a {
  color: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

/* Timetable */
.timetable {
  min-height: 1110px;
  padding: 160px 0 190px;
  background-image:
    url("assets/final/vectors/hero/dots.svg"),
    url("assets/final/vectors/hero/dots-dark.svg");
  background-position: -210px 68%, calc(100% + 50px) 88%;
  background-repeat: no-repeat;
  background-size: 370px, 220px;
}

@media (min-width: 769px) and (max-width: 1280px) {
  .timetable {
    /* Proportional projection of the same 1440 px Figma coordinates. */
    background-position: calc(50% - 29.289861vw) 38.933495vw, calc(50% + 32.1875vw) 47.336273vw;
    background-size: 31.667415vw 19.00045vw, 56.875vw 34.166667vw;
  }
}

.timetable-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 50px;
}

.timetable-heading h2 {
  margin-bottom: 25px;
}

.timetable-heading > div > p:last-child {
  margin: 0;
  color: #5d6064;
  font-size: 18px;
}

.timetable-scroll {
  overflow-x: auto;
  margin-top: 60px;
  padding: 44px 42px;
  border-radius: var(--ts-radius);
  background: var(--ts-white);
  box-shadow: var(--ts-shadow);
  scrollbar-color: var(--ts-teal) transparent;
}

.timetable-table {
  width: 100%;
  min-width: 1040px;
  border-spacing: 9px;
  border-collapse: separate;
  table-layout: fixed;
}

.timetable-table thead th {
  padding: 0 10px 7px;
  color: #6d7074;
  font-size: 17px;
  font-weight: 400;
  text-align: left;
}

.timetable-table thead th:first-child,
.timetable-table tbody th {
  display: none;
}

.timetable-table td {
  position: relative;
  height: 108px;
  padding: 39px 12px 12px;
  border-radius: 7px;
  background: var(--ts-pale);
  text-align: center;
  vertical-align: middle;
}

.timetable-table td:empty {
  background: transparent;
}

.timetable-table td:not(:empty)::before {
  position: absolute;
  top: 0;
  left: 50%;
  min-width: 78px;
  padding: 4px 12px 5px;
  border-radius: 999px;
  color: var(--ts-white);
  background: var(--ts-teal);
  content: "";
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  transform: translate(-50%, -1px);
}

.timetable-table tbody tr:nth-child(1) td:not(:empty)::before { content: "08:15"; }
.timetable-table tbody tr:nth-child(2) td:not(:empty)::before { content: "16:50"; }
.timetable-table tbody tr:nth-child(3) td:not(:empty)::before { content: "18:00"; }
.timetable-table tbody tr:nth-child(4) td:not(:empty)::before { content: "19:10"; }

.timetable-table td strong,
.timetable-table td span {
  display: block;
}

.timetable-table td strong {
  color: var(--ts-ink);
  font-family: var(--ts-heading);
  font-size: 18px;
}

.timetable-table td span {
  margin-top: 4px;
  color: #777a7e;
  font-size: 15px;
}

/* Gastro venue and services */
.gastro {
  padding: 180px 0 90px;
  background-image: url("assets/final/vectors/brush/dots-2.svg");
  background-position: calc(100% + 140px) 20px;
  background-repeat: no-repeat;
  background-size: 360px;
}

.split-feature {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}

.split-feature > img {
  width: calc(100% + 90px);
  max-width: none;
  height: 690px;
  margin-left: -90px;
  border-radius: 0 var(--ts-radius) var(--ts-radius) 0;
  object-fit: cover;
}

.business-spaces {
  padding-top: 60px;
}

.business-space-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.business-space-grid article {
  min-height: 420px;
}

.gastro-services {
  padding: 120px 0 210px;
  background-image:
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: -200px 80%, calc(100% + 130px) 10%;
  background-repeat: no-repeat;
  background-size: 380px, 320px;
}

.gastro-services .carousel-heading {
  align-items: flex-end;
  margin-bottom: 58px;
}

/* Partners and values */
.partners {
  min-height: 980px;
  padding: 155px 0 0;
}

.partners-copy {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 110px;
  align-items: start;
}

.partners-copy h2 {
  margin: 0;
  font-size: 30px;
  line-height: 1.2;
  text-transform: none;
}

.partners-copy p {
  margin: 0;
  color: #6e7175;
}

.partner-grid {
  display: grid;
  align-items: center;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 25px;
  margin-top: 65px;
}

.partner-grid img {
  width: 100%;
  max-width: 145px;
  max-height: 62px;
  margin-inline: auto;
  object-fit: contain;
  filter: grayscale(1) contrast(1.2);
}

.partners-photo {
  width: 100%;
  height: 560px;
  margin-top: 85px;
  object-fit: cover;
  object-position: center 48%;
  filter: saturate(.72);
}

.values {
  min-height: 750px;
  padding: 85px 0 160px;
  margin-top: -235px;
  background: linear-gradient(to bottom, transparent, var(--ts-dark) 29%);
}

.values-heading {
  text-align: center;
}

.values-heading h2 {
  margin-bottom: 18px;
}

.values-heading > p {
  font-family: var(--ts-heading);
  font-size: 22px;
  font-style: italic;
  font-weight: 500;
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 40px;
  margin-top: 90px;
  text-align: center;
}

.values-grid img {
  width: 92px;
  height: 92px;
  margin: 0 auto 28px;
  object-fit: contain;
}

.values-grid p {
  margin: 0;
  color: #d8dade;
  font-size: 15px;
}

/* Testimonials */
.testimonials {
  min-height: 640px;
  padding: 160px 0 150px;
  background-image:
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: 25% 24%, calc(100% + 100px) 65%;
  background-repeat: no-repeat;
  background-size: 180px, 300px;
}

.testimonial-layout {
  display: grid;
  align-items: center;
  grid-template-columns: .75fr 1.25fr auto;
  gap: 70px;
}

.testimonial-layout > h2 {
  margin: 0;
  font-size: 38px;
  text-transform: none;
}

.testimonial-slider {
  min-width: 0;
}

.testimonial {
  margin: 0;
  padding: 55px 65px 40px;
  border-radius: var(--ts-radius);
  background: var(--ts-white);
  box-shadow: var(--ts-shadow);
}

.testimonial p {
  position: relative;
  margin-bottom: 25px;
  font-family: var(--ts-heading);
  font-size: 22px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.55;
}

.testimonial p::before {
  position: absolute;
  top: -28px;
  left: -24px;
  color: #dfe3e5;
  content: "“";
  font-family: Georgia, serif;
  font-size: 76px;
  font-style: normal;
  line-height: 1;
}

.testimonial footer {
  font-family: var(--ts-heading);
  font-weight: 700;
}

/* Business solutions */
.business-solutions {
  min-height: 1110px;
  padding: 160px 0 190px;
  background-image: url("assets/final/vectors/brush/dots-2.svg");
  background-position: -170px 72%;
  background-repeat: no-repeat;
  background-size: 330px;
}

.systems-copy {
  max-width: 920px;
  text-align: center;
}

.systems-copy h2 {
  margin-bottom: 28px;
  font-size: 56px;
}

.systems-copy .lead {
  margin: 0 0 25px;
  font-family: var(--ts-heading);
  font-size: 22px;
  font-style: italic;
  font-weight: 600;
}

.systems-copy > p:last-child {
  margin: 0;
  color: #777a7e;
  font-size: 17px;
}

.system-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin-top: 70px;
}

.system-cards article {
  position: relative;
  display: flex;
  min-height: 420px;
  overflow: hidden;
  flex-direction: column;
  justify-content: flex-end;
  padding: 32px 24px;
  border-radius: var(--ts-radius);
  background-image: var(--system-image, none);
  background-position: center;
  background-size: cover;
}

.system-cards article > img {
  position: absolute;
  top: 48px;
  left: 24px;
  width: 58px;
  height: 58px;
  object-fit: contain;
}

.system-cards h3 {
  min-height: 58px;
  margin: 0 0 22px;
  color: var(--ts-white);
  font-size: 25px;
  text-transform: uppercase;
}

.system-cards .btn {
  align-self: flex-start;
  min-height: 44px;
  padding: 10px 23px;
}

/* Motivation */
.motivation {
  min-height: 845px;
  display: grid;
  place-items: center;
  background: #101318;
}

.motivation::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgb(18 23 28 / 25%);
  content: "";
}

.motivation-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(1) contrast(1.08);
}

.motivation-card {
  position: relative;
  z-index: 2;
  width: min(530px, calc(100% - 40px));
  padding: 50px 42px 35px;
  border-radius: var(--ts-radius);
  background: rgb(39 45 51 / 96%);
  text-align: center;
}

.motivation-card h2 {
  margin-bottom: 35px;
  font-family: var(--ts-brush);
  font-size: 52px;
  font-weight: 400;
}

.motivation-card p {
  margin: 0 0 25px;
  color: #e1e3e5;
  font-size: 15px;
}

.motivation-card .brush-banner {
  margin: 28px -12px;
  padding: 12px 26px;
  color: var(--ts-white);
  background: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 22px;
  font-style: normal;
  font-weight: 700;
  text-transform: uppercase;
  -webkit-mask: url("assets/final/vectors/brush/brush-1.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brush-1.svg") center / 100% 100% no-repeat;
}

.motivation-card strong {
  color: var(--ts-teal);
}

.social-links {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 24px;
}

.social-links a {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: #d7dadc;
  font-family: var(--ts-heading);
  font-size: 24px;
  font-weight: 700;
}

/* Careers */
.careers {
  min-height: 1560px;
  padding: 155px 0 180px;
  background-image:
    url("assets/final/vectors/brush/dots-2.svg"),
    url("assets/final/vectors/brush/dots-1.svg");
  background-position: -150px 10%, calc(100% + 120px) 67%;
  background-repeat: no-repeat;
  background-size: 320px;
}

.careers .section-heading h2 {
  font-size: 61px;
}

.career-intro {
  display: grid;
  align-items: center;
  grid-template-columns: 1.05fr .95fr;
  gap: 70px;
  margin-top: 100px;
}

.career-intro > img {
  width: 100%;
  height: 460px;
  border-radius: var(--ts-radius);
  object-fit: cover;
}

.career-intro > div > p {
  color: #505357;
  font-size: 19px;
}

.career-intro h3 {
  margin: 28px 0 20px;
  color: var(--ts-teal);
  font-size: 27px;
}

.career-intro .checks {
  gap: 8px;
  color: #606367;
}

.career-openings {
  margin-top: 140px;
  text-align: center;
}

.career-openings > h3 {
  margin-bottom: 72px;
  font-size: 34px;
}

.career-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

.career-grid article {
  position: relative;
  padding: 0 50px 45px;
}

.career-grid article + article::before {
  position: absolute;
  top: 45px;
  bottom: 20px;
  left: 0;
  width: 1px;
  background: var(--ts-line);
  content: "";
}

.career-grid img {
  width: 68px;
  height: 68px;
  margin: 0 auto 22px;
  object-fit: contain;
}

.career-grid h4 {
  margin-bottom: 15px;
  font-size: 24px;
}

.career-grid p {
  margin: 0;
  color: #777a7e;
  font-size: 15px;
}

.career-openings > .btn {
  margin-top: 42px;
}

/* Rental */
.rental {
  min-height: 2560px;
  padding: 150px 0 185px;
  background-image:
    url("assets/final/vectors/brush/dots-2.svg"),
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: -180px 33%, calc(100% + 160px) 55%, -170px 82%;
  background-repeat: no-repeat;
  background-size: 360px;
}

.rental-head {
  max-width: 820px;
  text-align: center;
}

.rental-head h2 {
  margin-bottom: 34px;
  color: var(--ts-teal);
  font-family: var(--ts-brush);
  font-size: 64px;
  font-weight: 400;
}

.rental-head > p {
  margin-bottom: 28px;
  font-family: var(--ts-heading);
  font-size: 20px;
  font-weight: 600;
}

.rental-head h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0;
  font-size: 30px;
}

.rental-head h3 img,
.rental-location img {
  width: 26px;
  height: 32px;
  object-fit: contain;
}

.rental-list {
  display: grid;
  gap: 130px;
  margin-top: 95px;
}

.rental-list > article {
  display: grid;
  align-items: center;
  grid-template-columns: 1.55fr .75fr;
  gap: 48px;
}

.rental-list > article.reverse {
  grid-template-columns: .75fr 1.55fr;
}

.rental-list > article.reverse > img {
  grid-column: 2;
  grid-row: 1;
}

.rental-list > article.reverse > div {
  grid-column: 1;
  grid-row: 1;
}

.rental-list > article > img {
  width: 100%;
  height: 500px;
  border-radius: var(--ts-radius);
  object-fit: cover;
}

.rental-list article h3 {
  margin-bottom: 25px;
  color: var(--ts-white);
  font-size: 50px;
  text-transform: uppercase;
}

.rental-list article > div > p:not(.brush-label) {
  color: #cfd2d4;
}

.rental-list .brush-label {
  min-width: 315px;
}

.rental-list .checks {
  color: #d2d5d7;
}

.rental-location {
  margin: -45px 0 -45px;
  font-family: var(--ts-heading);
  font-size: 20px;
  font-weight: 600;
  text-align: right;
}

.rental-location strong {
  color: var(--ts-teal);
}

.rental-location span {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 22px;
  font-size: 31px;
}

/* People */
.people {
  min-height: 1280px;
  padding: 155px 0 180px;
  background-image:
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: -155px 11%, calc(100% + 100px) 78%;
  background-repeat: no-repeat;
  background-size: 320px;
}

.people .section-heading h2 {
  color: var(--ts-teal);
  font-family: var(--ts-brush);
  font-size: 68px;
  font-weight: 400;
}

.people-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  margin-top: 100px;
}

.people-grid article {
  position: relative;
  padding-top: 300px;
}

.person-visual {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 420px;
}

.person-visual::before {
  position: absolute;
  inset: 18% 15% 0;
  background: #bfc4cc;
  content: "";
  -webkit-mask: url("assets/final/vectors/brush/brush-2.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brush-2.svg") center / 100% 100% no-repeat;
  transform: rotate(-5deg) scale(1.2);
}

.person-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

.person-card {
  position: relative;
  z-index: 2;
  min-height: 300px;
  padding: 48px 42px 36px;
  border-radius: var(--ts-radius);
  background: var(--ts-white);
  box-shadow: 0 8px 22px rgb(21 28 34 / 5%);
  text-align: center;
}

.person-card h3 {
  margin-bottom: 9px;
  font-size: 25px;
}

.person-card > strong {
  display: block;
  margin-bottom: 8px;
  color: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 15px;
  text-transform: uppercase;
}

.person-card p {
  min-height: 60px;
  margin-bottom: 22px;
  color: #66696d;
  font-size: 14px;
}

.person-card a {
  display: block;
  margin-top: 7px;
  color: #44474b;
}

.person-card a::before {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  margin-right: 9px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  vertical-align: -7px;
}

.person-card a[href^="mailto:"]::before { background-image: url("assets/final/icons/email-icon.svg"); }
.person-card a[href^="tel:"]::before { background-image: url("assets/final/icons/phone-icon.svg"); }

/* Map */
.map-section {
  min-height: 850px;
  padding: 125px 0 150px;
}

.map-section .section-heading > h2 {
  color: var(--ts-teal);
  font-size: 49px;
}

.map-section .section-heading > p:last-child {
  text-transform: uppercase;
}

.map-grid {
  display: grid;
  align-items: start;
  grid-template-columns: .92fr 1.2fr .92fr;
  gap: 45px;
  margin-top: 58px;
}

.map-grid > article > img:first-child,
.location-map {
  width: 100%;
  height: 295px;
  border-radius: var(--ts-radius);
  object-fit: cover;
}

.map-photo {
  position: relative;
  display: block;
  width: 100%;
  height: 295px;
  overflow: hidden;
  border-radius: var(--ts-radius);
}

.map-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.location-map {
  height: 480px;
  border-radius: 0;
  object-fit: contain;
}

.map-grid article h3 {
  margin: 36px 0 18px;
  font-size: 30px;
  text-transform: uppercase;
}

.map-grid article p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: var(--ts-heading);
  font-weight: 700;
}

.map-grid article p img {
  width: 25px;
  height: 31px;
}

/* Contact form */
.contact-form {
  min-height: 970px;
  padding: 140px max(var(--ts-gutter), calc((100vw - var(--ts-container)) / 2));
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  background: var(--ts-beige);
}

.contact-form::before,
.contact-form::after {
  position: absolute;
  right: -3%;
  left: -3%;
  z-index: 2;
  height: 75px;
  background: url("assets/final/vectors/brush/div-shape-top-center.svg") center / 104% 100% no-repeat;
  content: "";
  pointer-events: none;
}

.contact-form::before {
  top: -2px;
}

.contact-form::after {
  bottom: -2px;
  filter: brightness(.34) saturate(.4);
  transform: rotate(180deg);
}

.contact-form > img {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 0;
  width: 57%;
  height: 100%;
  object-fit: cover;
  object-position: 56% center;
}

.contact-form form {
  position: relative;
  z-index: 3;
  width: min(720px, 100%);
  padding: 55px 46px 48px;
  border-radius: var(--ts-radius);
  background: rgb(247 247 247 / 97%);
  box-shadow: var(--ts-shadow);
}

.contact-form h2 {
  margin-bottom: 17px;
  font-size: 57px;
  text-transform: none;
}

.contact-form form > p:first-of-type {
  margin-bottom: 30px;
  color: #66696d;
  font-size: 18px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 22px;
}

.contact-form label {
  display: block;
  margin: 0 0 8px;
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 700;
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 22px;
  color: var(--ts-ink);
  background: var(--ts-white);
  outline: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.contact-form input {
  height: 70px;
  padding: 0 25px;
  margin: 8px 0 22px;
}

.contact-form textarea {
  min-height: 145px;
  resize: vertical;
  padding: 20px 25px;
  margin-top: 8px;
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-color: var(--ts-teal);
  box-shadow: 0 0 0 4px rgb(36 157 169 / 12%);
}

.contact-form ::placeholder {
  color: #c1c5c8;
  opacity: 1;
}

.contact-form .btn {
  margin-top: 27px;
}

.form-status {
  min-height: 24px;
  margin: 14px 0 0;
}

/* Footer */
.site-footer,
body > footer {
  position: relative;
  overflow: hidden;
  padding: 120px 0 45px;
  color: #d7dadd;
  background-color: var(--ts-dark);
  background-image:
    url("assets/final/vectors/brush/dots-1.svg"),
    url("assets/final/vectors/brush/dots-2.svg");
  background-position: -125px calc(100% + 50px), calc(100% + 150px) 80px;
  background-repeat: no-repeat;
  background-size: 320px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.55fr 1fr .8fr 1fr;
  gap: 65px;
}

.footer-grid > div {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 10px;
}

.footer-grid .brand img {
  width: 68px;
  height: 68px;
}

.footer-grid > div:first-child > b {
  margin-top: 12px;
  color: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 22px;
}

.footer-grid > div > b:not(:first-child),
.footer-grid > div:not(:first-child) > b {
  min-width: 140px;
  padding: 6px 18px;
  margin-bottom: 14px;
  color: var(--ts-dark);
  background: var(--ts-teal);
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  -webkit-mask: url("assets/final/vectors/brush/brush-9.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brush-9.svg") center / 100% 100% no-repeat;
}

.footer-grid a:hover {
  color: var(--ts-teal);
}

.footer-grid .footer-feature-link {
  display: flex;
  align-items: center;
  gap: 9px;
}

.footer-grid .footer-feature-link img {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  object-fit: contain;
}

.form-success-icon {
  width: 20px;
  height: 20px;
  padding: 1px;
  border-radius: 50%;
  background: var(--ts-white);
  object-fit: contain;
}

.socials {
  display: flex;
  gap: 18px;
  margin-top: 8px;
  font-family: var(--ts-heading);
  font-size: 24px;
  font-weight: 700;
}

.legal {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 30px;
  align-items: center;
  padding-top: 38px;
  margin-top: 85px;
  border-top: 1px solid rgb(255 255 255 / 30%);
  color: #aeb2b6;
  font-size: 13px;
}

.legal .legal-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

/* Entrance effects used by the existing script */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms ease, transform 700ms cubic-bezier(.2, .7, .2, 1);
}

.reveal.visible,
.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 1280px) {
  :root {
    --ts-container: 1100px;
    --ts-gutter: 48px;
  }

  body { font-size: 16px; }
  h2 { font-size: 48px; }

  .site-header nav { gap: 25px; }
  .nav-tools { gap: 14px; }
  .site-header .btn { padding-inline: 20px; }

  .hero { min-height: 790px; }
  .hero-copy { min-height: 660px; padding-top: 80px; }
  .hero-copy h1 { font-size: 60px; }
  .hero-media img { bottom: 55px; }

  .service-choice { min-height: 1120px; }
  .choice-card > img:first-child { height: 255px; }
  .choice-card h3 { font-size: 23px; }
  .choice-card p { font-size: 15px; }

  .intro { min-height: 1300px; }
  .intro-grid { gap: 35px; }
  .trust-grid article { padding-inline: 25px; }

  .venue-grid { grid-template-columns: 1.08fr .92fr; }
  .venue-photo { width: 122%; height: 560px; }

  .space-grid h3,
  .business-space-grid h3 { font-size: 22px; }
  .space-grid p,
  .business-space-grid p { font-size: 14px; }

  .program-track article,
  .gastro-track article { width: 310px; flex-basis: 310px; }

  .partner-grid { gap: 16px; }

  .rental-list > article { grid-template-columns: 1.45fr .8fr; }
  .rental-list > article.reverse { grid-template-columns: .8fr 1.45fr; }

  .person-card { padding-inline: 28px; }
  .map-grid { gap: 28px; }
}

@media (max-width: 1024px) {
  :root {
    --ts-gutter: 32px;
  }

  html { scroll-padding-top: 84px; }

  .site-header .nav-wrap { min-height: 82px; }
  .site-header nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1001;
    width: min(390px, 88vw);
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    padding: 100px 40px 40px;
    background: var(--ts-dark-2);
    box-shadow: -20px 0 50px rgb(0 0 0 / 25%);
    transform: translateX(110%);
    transition: transform 260ms ease;
  }

  .site-header nav.open,
  .site-header nav.is-open,
  .menu-open .site-header nav {
    transform: translateX(0);
  }

  .site-header nav a { padding: 15px 0; font-size: 18px; }
  .site-header .menu,
  .menu-toggle { position: relative; z-index: 1002; display: block; }
  .nav-tools > a:not(.btn) { display: none; }

  .hero { min-height: 760px; }
  .hero::after { left: 18%; }
  .hero-copy { min-height: 630px; padding-left: 47%; }
  .hero-copy h1 { font-size: 48px; }
  .hero-copy .brush-note { min-width: 360px; font-size: 17px; }
  .hero-copy > .hero-description { font-size: 17px; }
  .hero-media img { left: -7%; width: 67vw; }

  .service-choice { min-height: auto; padding-bottom: 190px; }
  .choice-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .choice-card:nth-child(n) { transform: none; }
  .choice-card:nth-child(n):hover { transform: translateY(-6px); }
  .choice-card > img:first-child { height: 310px; }

  .intro { min-height: auto; padding-bottom: 160px; }
  .intro-grid { min-height: 540px; grid-template-columns: 1fr 1fr; }
  .intro-copy h2 { font-size: 55px; }
  .intro-photo img { height: 100%; }
  .trust-grid { margin-top: 80px; }

  .venue { padding-top: 130px; }
  .venue-grid { grid-template-columns: 1fr; }
  .venue-copy { max-width: 760px; }
  .venue-photo { width: 100%; height: 520px; object-position: center; }

  .space-grid {
    overflow-x: auto;
    grid-template-columns: repeat(5, 270px);
    scroll-snap-type: x mandatory;
  }
  .space-grid article { scroll-snap-align: start; }

  .programs-lead > p,
  .carousel-heading > p { font-size: 23px; }

  .timetable { min-height: auto; }
  .timetable-heading { align-items: flex-start; }
  .timetable-scroll { width: calc(100% - 64px); }

  .split-feature { grid-template-columns: 1fr; }
  .split-feature > img { width: 100%; height: 560px; margin: 0; border-radius: var(--ts-radius); }
  .split-feature > div { max-width: 760px; }

  .business-space-grid article { min-height: 380px; }

  .partners-copy { gap: 50px; }
  .partner-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 36px; }

  .values { min-height: auto; }
  .values-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 60px; }

  .testimonial-layout { grid-template-columns: 1fr 1.7fr; gap: 40px; }
  .testimonial-layout > .carousel-controls { grid-column: 2; justify-content: flex-end; }

  .system-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .careers { min-height: auto; }
  .career-intro { gap: 40px; }
  .career-grid article { padding-inline: 25px; }

  .rental { min-height: auto; }
  .rental-list > article,
  .rental-list > article.reverse { grid-template-columns: 1.3fr .9fr; }
  .rental-list > article.reverse > img { grid-column: 1; }
  .rental-list > article.reverse > div { grid-column: 2; }
  .rental-list > article > img { height: 420px; }
  .rental-list article h3 { font-size: 41px; }

  .people { min-height: auto; }
  .people-grid { gap: 25px; }

  .map-grid { grid-template-columns: 1fr 1fr; }
  .location-map { grid-column: 1 / -1; grid-row: 1; width: min(650px, 100%); margin-inline: auto; }

  .contact-form { padding-inline: 32px; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .contact-form > img { width: 55%; }

  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal { grid-template-columns: 1fr 1fr; }
  .legal > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  :root {
    --ts-gutter: 24px;
    --ts-radius: 20px;
  }

  body { font-size: 16px; }
  h2 { font-size: 39px; }

  .contact-strip .container,
  .header-top .container,
  .topbar .container { gap: 14px; overflow-x: auto; white-space: nowrap; }
  .site-header .brand,
  .site-header .brand img { width: 62px; height: 62px; flex-basis: 62px; }
  .site-header .btn { display: none; }

  .hero { min-height: 780px; }
  .hero::before {
    inset: 0;
    width: auto;
    height: auto;
    transform: none;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
  }
  .hero-wash { display: none; }
  .hero::after { top: 2%; left: -20%; width: 280px; }
  .hero-copy { min-height: auto; padding-top: 70px; padding-left: 0; text-align: center; align-items: center; }
  .hero-copy h1 { max-width: 610px; font-size: 49px; white-space: normal; }
  .hero-copy .brush-note { min-width: 0; width: min(390px, 100%); font-size: 16px; }
  .hero-copy > .hero-description { max-width: 520px; font-size: 16px; }
  .hero-media img { bottom: 26px; left: 50%; width: 94vw; height: 59%; transform: translateX(-55%); }
  .scroll-hint { display: none; }

  .service-choice { padding: 85px 0 140px; }
  .choice-cards {
    width: 100%;
    overflow-x: auto;
    padding-inline: 24px;
    grid-template-columns: repeat(4, min(78vw, 320px));
    scroll-padding-inline: 24px;
    scroll-snap-type: x mandatory;
  }
  .choice-card { scroll-snap-align: center; }
  .choice-card > img:first-child { height: 260px; }

  .intro { padding: 100px 0 130px; }
  .intro-grid { grid-template-columns: 1fr; }
  .intro-copy h2 { font-size: 48px; }
  .intro-photo { min-height: 500px; }
  .trust-grid { grid-template-columns: 1fr; gap: 45px; }
  .trust-grid article { padding-inline: 25px; }
  .trust-grid article + article::before { top: -22px; right: 20%; bottom: auto; left: 20%; width: auto; height: 1px; }

  .arrival { min-height: 390px; }
  .arrival h2 { font-size: 43px; }

  .venue { padding: 110px 0 55px; }
  .venue { background-position: calc(100% + 160px) 90px; background-size: 260px; }
  .venue-info { gap: 25px; }
  .venue-photo { height: 390px; }

  .spaces { padding-top: 40px; }
  .space-grid { width: 100%; padding-inline: 24px; border-radius: 0; }
  .space-grid article { min-height: 410px; }

  .programs { padding: 95px 0 140px; }
  .programs-lead,
  .carousel-heading { align-items: flex-start; flex-direction: column; gap: 28px; }
  .programs > .carousel-controls { justify-content: flex-start; }
  .edge-carousel,
  .gastro-carousel { padding-inline: 24px; }
  .program-track article,
  .gastro-track article { width: min(82vw, 330px); flex-basis: min(82vw, 330px); }

  .timetable { padding: 120px 0 140px; }
  .timetable-heading { align-items: flex-start; flex-direction: column; }
  .timetable-scroll { width: calc(100% - 48px); margin-top: 45px; padding: 28px 22px; }

  .gastro { padding: 120px 0 60px; }
  .split-feature > img { height: 460px; }
  .business-spaces { width: 100%; }
  .business-space-grid { width: 100%; overflow-x: auto; padding-inline: 24px; border-radius: 0; grid-template-columns: repeat(3, min(78vw, 330px)); scroll-snap-type: x mandatory; }
  .business-space-grid article { scroll-snap-align: center; }
  .gastro-services { padding: 95px 0 150px; }

  .partners { min-height: auto; padding-top: 120px; }
  .partners-copy { grid-template-columns: 1fr; gap: 28px; }
  .partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partners-photo { height: 430px; }
  .values { margin-top: -150px; padding-top: 230px; }
  .values-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px 30px; }

  .testimonials { padding: 125px 0; }
  .testimonial-layout { grid-template-columns: 1fr; }
  .testimonial-layout > .carousel-controls { grid-column: auto; justify-content: flex-start; }
  .testimonial { padding: 45px 34px 35px; }
  .testimonial p { font-size: 19px; }

  .business-solutions { min-height: auto; padding: 125px 0 145px; }
  .systems-copy h2 { font-size: 48px; }
  .system-cards { grid-template-columns: 1fr 1fr; }

  .motivation { min-height: 780px; }

  .careers { padding: 120px 0 150px; }
  .careers .section-heading h2 { font-size: 50px; }
  .career-intro { grid-template-columns: 1fr; margin-top: 75px; }
  .career-openings { margin-top: 100px; }
  .career-grid { grid-template-columns: 1fr; gap: 46px; }
  .career-grid article { padding-inline: 25px; }
  .career-grid article + article::before { top: -24px; right: 20%; bottom: auto; left: 20%; width: auto; height: 1px; }

  .rental { padding: 120px 0 150px; }
  .rental-head h2 { font-size: 56px; }
  .rental-head h3 { font-size: 24px; }
  .rental-list { gap: 100px; }
  .rental-list > article,
  .rental-list > article.reverse { grid-template-columns: 1fr; gap: 35px; }
  .rental-list > article.reverse > img,
  .rental-list > article.reverse > div { grid-column: 1; }
  .rental-list > article.reverse > img { grid-row: 1; }
  .rental-list > article.reverse > div { grid-row: 2; }
  .rental-list > article > img { height: 430px; }
  .rental-location { margin: -20px 0; text-align: left; }
  .rental-location span { justify-content: flex-start; font-size: 25px; }

  .people { padding: 120px 0 140px; }
  .people-grid { grid-template-columns: 1fr; gap: 70px; }

  .map-section { padding: 100px 0 120px; }
  .map-grid { grid-template-columns: 1fr; gap: 45px; }
  .location-map { grid-column: auto; grid-row: auto; order: -1; }

  .contact-form { min-height: auto; padding: 125px 24px; grid-template-columns: 1fr; }
  .contact-form > img { width: 100%; opacity: .35; }
  .contact-form form { width: 100%; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 55px 35px; }
  .legal { grid-template-columns: 1fr; }
  .legal > :last-child { grid-column: auto; }
}

@media (max-width: 480px) {
  :root { --ts-gutter: 16px; --ts-radius: 18px; }

  body { font-size: 15px; }
  h2 { font-size: 33px; }
  .brush-label { min-width: 155px; font-size: 12px; }
  .btn { min-height: 50px; padding: 13px 22px; font-size: 12px; }

  .contact-strip,
  .header-top,
  .topbar { display: none; }
  .site-header .nav-wrap { width: calc(100% - 32px); min-height: 74px; }
  .site-header .brand,
  .site-header .brand img { width: 54px; height: 54px; flex-basis: 54px; }

  .hero { min-height: 690px; }
  .hero-copy { width: calc(100% - 32px); padding-top: 48px; }
  .hero-copy h1 { width: 100%; font-size: clamp(2.1rem, 10.5vw, 2.65rem); line-height: .96; white-space: normal; }
  .hero-copy .brush-note { padding-inline: 14px; font-size: 14px; }
  .hero-copy > .hero-description { font-size: 14px; }
  .hero-copy br { display: none; }
  .hero-media img { width: 116vw; height: 54%; transform: translateX(-57%); }

  .service-choice .section-heading { width: calc(100% - 32px); }
  .choice-cards { padding-inline: 16px; grid-template-columns: repeat(4, 84vw); }
  .choice-card > img:first-child { height: 235px; }
  .choice-card .card-pictogram { width: 76px; height: 76px; margin-top: -38px; }

  .intro-copy h2 { font-size: 43px; }
  .intro-copy h3 { font-size: 21px; }
  .intro-copy > p:not(.brush-label) { font-size: 16px; }
  .intro-action { align-items: flex-start; flex-direction: column; gap: 18px; }
  .intro-photo { min-height: 410px; }

  .arrival { min-height: 330px; }
  .arrival h2 { font-size: 34px; }

  .venue-copy h2,
  .split-feature h2 { font-size: 31px; }
  .venue-copy > h3,
  .split-feature > div > h3 { font-size: 20px; }
  .venue-info { grid-template-columns: 1fr; }
  .venue-photo { height: 310px; }

  .space-grid { padding-inline: 16px; grid-template-columns: repeat(5, 82vw); }
  .space-grid article { min-height: 390px; }

  .programs-lead > p,
  .carousel-heading > p { font-size: 20px; }
  .edge-carousel,
  .gastro-carousel { padding-inline: 16px; }
  .program-track,
  .gastro-track { gap: 16px; }
  .program-track article,
  .gastro-track article { width: 84vw; min-height: 400px; flex-basis: 84vw; }

  .timetable-scroll { width: calc(100% - 32px); }

  .split-feature > img { height: 350px; }
  .business-space-grid { padding-inline: 16px; grid-template-columns: repeat(3, 84vw); }

  .partner-grid { gap: 34px 22px; }
  .partners-photo { height: 350px; }
  .values-grid { grid-template-columns: 1fr; }
  .values-grid article { max-width: 330px; margin-inline: auto; }

  .testimonial-layout > h2 { font-size: 33px; }
  .testimonial { padding-inline: 25px; }

  .systems-copy h2 { font-size: 40px; }
  .systems-copy .lead { font-size: 19px; }
  .system-cards { grid-template-columns: 1fr; }
  .system-cards article { min-height: 410px; }

  .motivation-card { padding: 42px 24px 30px; }
  .motivation-card h2 { font-size: 45px; }
  .motivation-card .brush-banner { font-size: 18px; }

  .careers .section-heading h2 { font-size: 40px; }
  .career-intro > img { height: 320px; }
  .career-openings > h3 { font-size: 27px; }

  .rental-head h2 { font-size: 48px; }
  .rental-head > p { font-size: 17px; }
  .rental-head h3 { align-items: flex-start; font-size: 19px; }
  .rental-list > article > img { height: 300px; }
  .rental-list article h3 { font-size: 37px; }
  .rental-list .brush-label { width: min(315px, 100%); min-width: 0; font-size: 11px; }
  .rental-location { font-size: 16px; }
  .rental-location span { align-items: flex-start; font-size: 20px; }

  .people .section-heading h2 { font-size: 56px; }
  .people-grid article { padding-top: 260px; }
  .person-visual { height: 360px; }
  .person-card { min-height: 0; padding: 42px 20px 30px; }
  .person-card a { overflow-wrap: anywhere; }

  .map-section .section-heading > h2 { font-size: 37px; }
  .location-map { height: 350px; }
  .map-grid > article > img:first-child { height: 240px; }
  .map-grid article h3 { font-size: 27px; }

  .contact-form { padding-inline: 16px; }
  .contact-form form { padding: 42px 20px 36px; }
  .contact-form h2 { font-size: 43px; }
  .form-grid { grid-template-columns: 1fr; }
  .contact-form input { height: 62px; }

  .site-footer,
  body > footer { padding-top: 95px; }
  .footer-grid { grid-template-columns: 1fr; }
  .legal { margin-top: 65px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}

/* Static and WordPress shell compatibility */
.topline{min-height:42px;color:var(--ts-white);background:#247e87;font-family:var(--ts-heading);font-size:13px;font-weight:600}
.topline .container{display:flex;min-height:42px;align-items:center;gap:22px}
.topline a{display:inline-flex;align-items:center;gap:8px}
.topline img{width:18px;height:18px;filter:brightness(0) invert(1)}
.topline a:first-child img{width:16px;height:16px;filter:none}
.site-header{position:sticky;top:0}
.site-header.scrolled{box-shadow:0 14px 35px rgb(0 0 0 / 16%);background:rgb(43 49 55 / 97%);backdrop-filter:blur(12px)}
.nav-icon img{width:24px;height:24px;object-fit:contain;filter:brightness(0) invert(1)}
.menu{padding:11px}
.menu span{display:block;height:2px;margin:5px 0;background:#fff;transition:transform 180ms ease,opacity 180ms ease}
.menu.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu.open span:nth-child(2){opacity:0}
.menu.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.footer-grid h2{min-width:140px;padding:6px 18px;margin:0 0 14px;color:var(--ts-dark);background:var(--ts-teal);font-family:var(--ts-heading);font-size:14px;font-weight:700;text-transform:uppercase;-webkit-mask:url("assets/final/vectors/brush/brush-9.svg") center/100% 100% no-repeat;mask:url("assets/final/vectors/brush/brush-9.svg") center/100% 100% no-repeat}
.footer-brand>strong{margin-top:12px;color:var(--ts-teal);font-family:var(--ts-heading);font-size:22px}
.footer-brand .social-links{display:flex;gap:18px;margin-top:8px}
.footer-brand .social-links img{width:24px;height:24px;filter:brightness(0) invert(1)}
.footer-grid>div:last-child a,.footer-grid>div:last-child span{display:flex;align-items:center;gap:9px}
.footer-grid>div:last-child img{width:22px;height:22px}
.legal a{color:var(--ts-teal);font-weight:700;text-transform:uppercase}
.form-honeypot{position:absolute!important;left:-9999px!important}
.contact-notice.success{color:#167863}.contact-notice.error{color:#a13f3f}
@media(max-width:768px){.topline{display:none}.site-header nav.open{display:flex}.footer-grid h2{margin-top:8px}}

/* Designer final — reference-calibrated geometry and component fixes */
:root {
  --ts-teal: #2196a2;
  --ts-paper: #f6f6f6;
  --ts-pale: #f6f7f9;
}

.topline,
.contact-strip,
.header-top,
.topbar { background: #20747e; }

.torn-top::before {
  top: -98px;
  height: 104px;
}

.choice-card {
  --choice-rise: 0px;
  transform: translateY(var(--choice-rise));
}

.choice-card:nth-child(1) { --choice-rise: 190px; }
.choice-card:nth-child(2) { --choice-rise: 128px; }
.choice-card:nth-child(3) { --choice-rise: 63px; }

.choice-card.reveal {
  transform: translateY(calc(var(--choice-rise) + 24px));
}

.choice-card.reveal.visible,
.choice-card.reveal.is-visible {
  transform: translateY(var(--choice-rise));
}

.choice-card:hover,
.choice-card:nth-child(n):hover {
  transform: translateY(calc(var(--choice-rise) - 8px));
}

.motivation-card .social-links img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.form-grid .form-field {
  min-width: 0;
}

.form-grid .form-field input {
  margin-top: 0;
}

.people-grid article:nth-child(2) .person-visual::before {
  display: none;
}

.gastro-services .carousel-controls {
  display: none;
}

@media (min-width: 1281px) {
  .hero {
    overflow: visible;
    z-index: 1;
  }

  .hero { height: 900px; min-height: 900px; }

  .service-choice {
    height: 1342px;
    min-height: 1342px;
    padding: 50px 0 250px;
  }

  .choice-cards { margin-top: 50px; }

  .intro {
    height: 1320px;
    min-height: 1320px;
    padding: 155px 0 170px;
  }

  .intro.torn-top::before {
    top: -310px;
    height: 310px;
  }

  .trust-grid { margin-top: 90px; }

  .arrival {
    height: 400px;
    min-height: 400px;
  }

  .arrival::before,
  .gastro::before,
  .motivation::before,
  .rental::before {
    position: absolute;
    top: -2px;
    right: -2%;
    left: -2%;
    z-index: 4;
    height: 104px;
    background: url("assets/final/vectors/brush/div-shape-top-center.svg") center bottom / 104% 100% no-repeat;
    content: "";
    pointer-events: none;
  }

  .venue {
    height: 900px;
    padding: 170px 0 20px;
  }

  .spaces {
    height: 570px;
    padding: 80px 0 65px;
  }

  .space-grid article { min-height: 425px; }

  .programs {
    height: 1048px;
    padding: 125px 0 190px;
  }

  .edge-carousel,
  .gastro-carousel {
    padding-inline: 0;
    scroll-padding-inline: max(var(--ts-gutter), calc((100vw - var(--ts-container)) / 2));
  }

  .program-track,
  .gastro-track {
    padding-inline: max(var(--ts-gutter), calc((100vw - var(--ts-container)) / 2));
  }

  .timetable {
    height: 1210px;
    min-height: 1210px;
    padding: 235px 0 120px;
  }

  .timetable.torn-top::before {
    top: -160px;
    height: 166px;
  }

  .timetable-scroll {
    margin-top: 31px;
    padding: 17px 42px;
  }

  .timetable-table td:not(:empty) {
    background-image:
      linear-gradient(rgb(246 247 249 / 88%), rgb(246 247 249 / 88%)),
      url("assets/final/pictograms/teal/trx.svg");
    background-position: center, 12px 10px;
    background-repeat: no-repeat;
    background-size: auto, 42px 42px;
  }

  .timetable-table tbody tr:nth-child(1) td:nth-child(4),
  .timetable-table tbody tr:nth-child(2) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(5),
  .timetable-table tbody tr:nth-child(3) td:nth-child(6) {
    background-image:
      linear-gradient(rgb(246 247 249 / 88%), rgb(246 247 249 / 88%)),
      url("assets/final/pictograms/teal/core-power.svg");
  }

  .timetable-table tbody tr:nth-child(3) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(4) {
    background-image:
      linear-gradient(rgb(246 247 249 / 88%), rgb(246 247 249 / 88%)),
      url("assets/final/pictograms/teal/bosu-core.svg");
  }

  .timetable-table tbody tr:nth-child(4) td:nth-child(5) {
    background-image:
      linear-gradient(rgb(246 247 249 / 88%), rgb(246 247 249 / 88%)),
      url("assets/final/pictograms/teal/smr.svg");
  }

  .gastro {
    height: 990px;
    padding: 225px 0 50px;
  }

  .gastro::before { height: 160px; }
  .split-feature,
  .split-feature > img { height: 715px; }

  .business-spaces {
    height: 550px;
    padding: 40px 0 60px;
  }

  .business-space-grid article { min-height: 450px; }

  .gastro-services {
    height: 983px;
    padding: 65px 0 200px;
  }

  .gastro-services .carousel-heading { margin-bottom: 85px; }

  .gastro-track article {
    width: 297px;
    flex-basis: 297px;
  }

  .partners {
    height: 1163px;
    min-height: 1163px;
    padding: 155px 0 0;
    background: linear-gradient(to bottom, var(--ts-paper) 0 72%, var(--ts-dark) 100%);
  }

  .partners-copy h2 { font-size: 27px; }
  .partners-photo {
    height: 571px;
    margin-top: 235px;
    object-position: center 15%;
    filter: saturate(.72) brightness(.84);
    clip-path: polygon(0 4%, 7% 1%, 14% 3%, 22% 0, 31% 4%, 40% 1%, 51% 3%, 62% 0, 73% 3%, 84% 1%, 93% 4%, 100% 2%, 100% 100%, 0 100%);
    -webkit-mask-image: linear-gradient(to bottom, #000 0 58%, rgb(0 0 0 / 78%) 78%, rgb(0 0 0 / 20%) 100%);
    mask-image: linear-gradient(to bottom, #000 0 58%, rgb(0 0 0 / 78%) 78%, rgb(0 0 0 / 20%) 100%);
  }

  .values {
    height: 751px;
    min-height: 751px;
    padding: 130px 0;
    margin-top: 0;
    background: var(--ts-dark);
  }

  .values-heading h2 { font-size: 50px; }
  .values-grid { margin-top: 70px; }

  .testimonials {
    height: 773px;
    min-height: 773px;
    padding: 195px 0 194px;
  }

  .business-solutions {
    height: 1167px;
    min-height: 1167px;
    padding: 160px 0 190px;
  }

  .motivation {
    height: 794px;
    min-height: 794px;
  }

  .careers {
    height: 1690px;
    min-height: 1690px;
    padding: 155px 0 180px;
  }

  .career-intro {
    grid-template-columns: 615px minmax(0, 1fr);
    gap: 52px;
  }

  .career-intro > img { width: 615px; height: 460px; }

  .rental {
    height: 2845px;
    min-height: 2845px;
    padding: 150px 0 180px;
  }

  .rental-list {
    gap: 160px;
    margin-top: 220px;
  }

  .rental-list > article {
    grid-template-columns: 840px minmax(0, 1fr);
    gap: 48px;
  }

  .rental-list > article.reverse {
    grid-template-columns: minmax(0, 1fr) 840px;
  }

  .rental-location { margin: -43px 0 8px; }

  .rental-list .checks {
    gap: 9px;
    margin: 18px 0;
  }

  .people {
    height: 1040px;
    min-height: 1040px;
    padding: 155px 0 112px;
  }

  .people-grid {
    width: 857px;
    gap: 49px;
    margin-top: 100px;
  }

  .map-section {
    height: 1024px;
    min-height: 1024px;
    padding: 150px 0 200px;
  }

  .map-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 44px;
  }

  .location-map { height: 460px; }

  .contact-form {
    height: 1237px;
    min-height: 1237px;
    align-items: start;
    grid-template-columns: 752px minmax(0, 1fr);
    padding-top: 286px;
    padding-bottom: 83px;
  }

  .contact-form form {
    width: 752px;
    min-height: 868px;
  }

  .site-footer,
  body > footer {
    height: 775px;
    min-height: 775px;
    padding: 190px 0 45px;
  }
}

@media (max-width: 1280px) {
  .choice-cards { margin-top: 55px; }

  .choice-card:nth-child(n),
  .choice-card:nth-child(n).reveal,
  .choice-card:nth-child(n).reveal.visible,
  .choice-card:nth-child(n).reveal.is-visible {
    --choice-rise: 0px;
  }
}

@media (max-width: 768px) {
  .gastro-services .carousel-controls { display: flex; }
  .values { margin-top: 0; padding-top: 145px; background: var(--ts-dark); }
  .choice-cards { margin-top: 45px; }
  .form-grid { grid-template-columns: 1fr; }
}

/* Figma source calibration — decoded from the supplied 2026-08-19 .fig file */
.visual-shot {
  scrollbar-width: none;
}

.visual-shot::-webkit-scrollbar {
  display: none;
}

.visual-shot .site-header.scrolled {
  position: absolute;
  top: 42px;
}

@media (min-width: 1281px) {
  :root {
    --ts-dark: #2f353b;
    --ts-ink: #2f353b;
  }

  .topline,
  .contact-strip,
  .header-top,
  .topbar,
  .topline .container,
  .contact-strip .container,
  .header-top .container,
  .topbar .container {
    height: 44px;
    min-height: 44px;
  }

  .site-header {
    position: absolute;
    top: 42px;
    right: 0;
    left: 0;
    background: rgb(47 53 59 / 80%);
    backdrop-filter: blur(4px);
  }

  .site-header.scrolled {
    position: fixed;
    top: 0;
  }

  .hero {
    height: 964px;
    min-height: 964px;
  }

  .hero-media img {
    top: 195px;
    bottom: auto;
    left: 90px;
    width: 892px;
    height: 517px;
  }

  .hero-copy {
    position: absolute;
    top: 94px;
    right: 90px;
    left: 90px;
    width: auto;
    height: 618px;
    min-height: 618px;
    padding: 80px 0 0 590px;
    margin: 0;
  }

  .hero-copy h1 {
    width: 670px;
    height: 81px;
    margin: 0;
    font-size: 66px;
    letter-spacing: .01em;
    line-height: 81px;
  }

  .hero-copy .brush-note {
    width: 422px;
    min-width: 422px;
    height: 45px;
    padding: 4px 29px 5px;
    margin: 0 0 24px;
    font-size: 22px;
    line-height: 36px;
  }

  .hero-copy > .hero-description {
    width: 670px;
    max-width: 670px;
    min-height: 64px;
    font-family: var(--ts-body);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: .44px;
    line-height: 32px;
  }

  .hero-copy > .hero-description strong { font-weight: 800; }

  .scroll-hint {
    top: 812px;
    bottom: auto;
  }

  .service-choice {
    height: 1422px;
    min-height: 1422px;
    padding: 80px 0 250px;
  }

  .choice-cards { margin-top: 47px; }
  .choice-card { height: 552px; min-height: 552px; }
  .choice-card:nth-child(1) { --choice-rise: 192px; }
  .choice-card:nth-child(2) { --choice-rise: 128px; }
  .choice-card:nth-child(3) { --choice-rise: 64px; }

  .intro {
    height: 1132px;
    min-height: 1132px;
    padding: 80px 0;
  }

  .intro.torn-top::before {
    top: -400px;
    height: 400px;
  }

  .intro-grid {
    min-height: 650px;
    grid-template-columns: repeat(2, 618px);
    gap: 24px;
  }

  .trust-grid {
    min-height: 298px;
    grid-template-columns: repeat(3, 328px);
    gap: 48px;
    padding: 32px 90px;
    margin-top: 24px;
  }

  .trust-grid article { padding: 0; }
  .trust-grid img { width: 48px; height: 48px; margin-bottom: 16px; }
  .trust-grid h3 { margin-bottom: 16px; font-size: 22px; }
  .trust-grid p { font-size: 16px; line-height: 24px; }
  .trust-grid article + article::before {
    top: 77px;
    bottom: auto;
    left: -72px;
    width: 80px;
    height: 1px;
  }

  .arrival { height: 550px; min-height: 550px; }

  .venue {
    height: 969px;
    min-height: 969px;
    padding: 160px 0 80px;
  }

  .venue-grid { min-height: 729px; }

  .spaces {
    height: 528.358px;
    min-height: 528.358px;
    padding: 0 0 80px;
  }

  .space-grid,
  .space-grid article { height: 448.358px; min-height: 448.358px; }

  .programs {
    height: 1008px;
    min-height: 1008px;
    padding: 80px 0 200px;
  }

  .timetable {
    height: 1086px;
    min-height: 1086px;
    padding: 40px 0 200px;
  }

  .timetable.torn-top::before {
    top: -200px;
    height: 200px;
  }

  .gastro {
    height: 953px;
    min-height: 953px;
    padding: 160px 0 80px;
  }

  .gastro::before { height: 200px; }
  .split-feature,
  .split-feature > img { height: 713px; }

  .business-spaces {
    height: 528.358px;
    min-height: 528.358px;
    padding: 0 0 80px;
  }

  .business-space-grid,
  .business-space-grid article { height: 448.358px; min-height: 448.358px; }

  .gastro-services {
    height: 965px;
    min-height: 965px;
    padding: 80px 0 213px;
  }

  .gastro-services .carousel-heading { margin-bottom: 64px; }

  .partners {
    height: 956px;
    min-height: 956px;
    padding: 40px 0 0;
    background: var(--ts-paper);
  }

  .partners-copy { min-height: 72px; }
  .partner-grid { height: 60px; min-height: 60px; margin-top: 64px; }
  .partners-photo {
    height: 680px;
    margin-top: 40px;
    object-position: center 40%;
  }

  .values {
    height: 842.719px;
    min-height: 842.719px;
    padding: 80px 0 200px;
  }

  .values-grid { margin-top: 64px; }

  .testimonials {
    height: 777.5px;
    min-height: 777.5px;
    padding: 80px 0 200px;
  }

  .testimonial-layout {
    min-height: 417.5px;
    grid-template-columns: 441px 683px 40px;
    gap: 48px;
  }

  .testimonial { min-height: 417.5px; padding: 48px; }

  .business-solutions {
    height: 961px;
    min-height: 961px;
    padding: 80px 0;
  }

  .motivation { height: 1000px; min-height: 1000px; }
  .motivation::before { height: 200px; }

  .careers {
    height: 1387px;
    min-height: 1387px;
    padding: 80px 0 0;
  }

  .career-intro { margin-top: 64px; }
  .career-openings { margin-top: 80px; }

  .rental { height: 2945px; min-height: 2945px; }
  .rental::before { height: 200px; }

  .people {
    height: 1020px;
    min-height: 1020px;
    padding: 80px 0;
  }

  .map-section {
    height: 1047px;
    min-height: 1047px;
    padding: 80px 0 200px;
  }

  .map-grid { margin-top: 0; }

  .contact-form {
    height: 1234px;
    min-height: 1234px;
    padding-top: 286px;
    padding-bottom: 80px;
  }

  .contact-form::before,
  .contact-form::after { height: 200px; }

  .site-footer,
  body > footer {
    height: 675px;
    min-height: 675px;
    padding: 120px 0 45px;
  }
}

/* Final Figma fidelity pass — exact 1440 px source-frame internals */
@media (min-width: 1281px) {
  /* Header: 1260 px source grid, including the authored link hit areas. */
  .site-header .nav-wrap {
    display: flex;
    min-height: 96px;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
  }

  .site-header .brand {
    display: grid;
    width: 96px;
    height: 96px;
    flex: 0 0 96px;
    place-items: center;
  }

  .site-header .brand img {
    width: 96px;
    height: 96px;
  }

  .site-header nav {
    width: 528px;
    height: 96px;
    flex: 0 0 528px;
    justify-content: flex-start;
    gap: 0;
    margin-left: 139px;
  }

  .site-header nav a {
    display: grid;
    height: 96px;
    padding: 0;
    place-items: center;
  }

  .site-header nav a:nth-child(1) { width: 112px; flex: 0 0 112px; }
  .site-header nav a:nth-child(2) { width: 183px; flex: 0 0 183px; }
  .site-header nav a:nth-child(3) { width: 101px; flex: 0 0 101px; }
  .site-header nav a:nth-child(4) { width: 132px; flex: 0 0 132px; }

  .nav-tools {
    width: 358px;
    height: 96px;
    flex: 0 0 358px;
    gap: 0;
    margin-left: 139px;
  }

  .nav-tools > a:not(.btn) {
    width: 50px;
    height: 96px;
  }

  .site-header .header-cta {
    width: 238px;
    min-width: 238px;
    min-height: 53px;
    margin-left: 20px;
    padding-inline: 24px;
  }

  /* The large paper dividers are 200/400 px source components, not thin strips. */
  .intro.torn-top::before,
  .timetable.torn-top::before,
  .testimonials.torn-top::before,
  .careers.torn-top::before,
  .people.torn-top::before {
    right: 0;
    left: 0;
    background: var(--ts-paper);
    -webkit-mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
  }

  .intro.torn-top::before { top: -400px; height: 400px; }
  .timetable.torn-top::before,
  .testimonials.torn-top::before,
  .careers.torn-top::before,
  .people.torn-top::before { top: -200px; height: 200px; }

  .arrival::before,
  .motivation::before,
  .rental::before,
  .contact-form::before {
    top: 0;
    right: 0;
    left: 0;
    height: 200px;
    background: var(--ts-paper);
    -webkit-mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    transform: rotate(180deg);
  }

  .contact-form::after {
    right: 0;
    bottom: 0;
    left: 0;
    height: 200px;
    background: var(--ts-dark);
    filter: none;
    -webkit-mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    transform: none;
  }

  /* Service selector. */
  .service-choice .section-heading .brush-label {
    width: 225px;
    min-width: 225px;
    height: 33px;
    min-height: 33px;
    margin: 0 0 16px;
  }

  .service-choice .section-heading h2 {
    height: 69px;
    font-size: 48px;
    line-height: 69px;
  }

  .service-choice .section-heading h2 em {
    font-size: 56px;
    font-weight: 400;
  }

  .choice-cards { margin-top: 56px; }

  .choice-card > img:first-child { height: 303px; }

  .choice-card .card-pictogram {
    width: 100px;
    height: 100px;
    padding: 21px;
    margin: -50px auto 24px;
    border-width: 5px;
  }

  .choice-card h3 {
    min-height: 38px;
    margin: 0 20px 8px;
    font-size: 28px;
    line-height: 38px;
  }

  .choice-card p {
    min-height: 22px;
    margin: 0 24px 24px;
    font-size: 16px;
    line-height: 22px;
  }

  .choice-card .btn {
    width: 197px;
    min-height: 53px;
    padding: 14px 20px;
    margin: 0 auto;
  }

  /* Introduction. */
  .intro-grid { align-items: start; }

  .intro-copy {
    height: 449px;
    padding-top: 100.5px;
  }

  .intro-copy > .brush-label {
    width: 225px;
    min-width: 225px;
    height: 33px;
    min-height: 33px;
    margin: 0 0 16px;
  }

  .intro-copy h2 {
    height: 162px;
    margin: 0 0 24px;
    font-size: 60px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 66px;
  }

  .intro-copy h2 em {
    color: var(--ts-teal);
    font-family: var(--ts-brush);
    font-size: 66px;
    font-weight: 400;
    letter-spacing: 1px;
  }

  .intro-copy h3 {
    height: 38px;
    margin: 0 0 7px;
    font-size: 30px;
    font-weight: 800;
    line-height: 38px;
  }

  .intro-copy > p:not(.brush-label) {
    height: 90px;
    margin: 0 0 24px;
    color: var(--ts-ink);
    font-size: 18px;
    line-height: 30px;
  }

  .intro-action {
    height: 55px;
    gap: 16px;
    margin: 0;
  }

  .signature {
    width: 261px;
    height: 49px;
    flex: 0 0 261px;
    overflow: hidden;
    color: transparent;
    background: transparent url("assets/final/extracted/signature-anita-transparent.png") center / contain no-repeat;
    font-size: 0;
    transform: none;
  }

  .intro-action .btn {
    width: 180px;
    min-height: 53px;
  }

  .intro-photo {
    height: 650px;
    align-self: start;
  }

  .intro-photo::before { content: none; }

  .intro-photo img {
    position: absolute;
    top: 16px;
    right: -15px;
    bottom: auto;
    width: 749px;
    max-width: none;
    height: 618px;
    object-fit: fill;
    object-position: center;
  }

  .trust-grid h3 {
    min-height: 34px;
    margin: 0 0 16px;
    font-size: 22px;
    line-height: 28px;
  }

  /* Arrival uses the authored close crop of the same source photograph. */
  .arrival-bg {
    inset: 0;
    width: 100%;
    height: 100%;
    object-position: center;
    transform: none;
  }

  .arrival::after {
    background: linear-gradient(180deg, rgb(20 26 31 / 18%), rgb(20 26 31 / 72%));
  }

  .venue-grid::before {
    position: absolute;
    top: 170px;
    right: -190px;
    z-index: 0;
    width: 820px;
    height: 390px;
    background: var(--ts-teal);
    content: "";
    -webkit-mask: url("assets/final/vectors/brush/brush-2.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/brush-2.svg") center / 100% 100% no-repeat;
    transform: rotate(-5deg);
  }

  .venue-grid > * { position: relative; z-index: 1; }

  /* Programs and service cards use the exact 297 px component width and brush swatch. */
  .program-track article,
  .gastro-track article {
    width: 297px;
    min-height: 448px;
    flex-basis: 297px;
  }

  .program-track article::after,
  .gastro-track article::after,
  .system-cards article::after {
    position: absolute;
    top: 26px;
    left: -10px;
    z-index: 1;
    width: 120px;
    height: 82px;
    background: var(--ts-teal);
    content: "";
    pointer-events: none;
    -webkit-mask: url("assets/final/vectors/brush/brush-1.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/brush-1.svg") center / 100% 100% no-repeat;
  }

  .program-track img,
  .gastro-track img {
    position: absolute;
    top: 43px;
    left: 24px;
    z-index: 2;
    width: 48px;
    height: 48px;
    margin: 0;
  }

  .program-track h3,
  .gastro-track h3 { margin-top: auto; }

  .system-cards article::after {
    top: 28px;
    left: -8px;
    width: 126px;
    height: 86px;
  }

  .system-cards article > img {
    top: 47px;
    left: 24px;
    z-index: 2;
    width: 48px;
    height: 48px;
  }

  /* Partner photograph: organic upper edge and designer dark lower fade. */
  .partners { position: relative; }

  .partners-photo {
    position: relative;
    z-index: 0;
    height: 680px;
    margin-top: 40px;
    clip-path: none;
    filter: saturate(.72) brightness(.86);
    -webkit-mask-image: none;
    mask-image: none;
    object-position: center 36%;
  }

  .partners::before {
    position: absolute;
    top: 276px;
    right: 0;
    left: 0;
    z-index: 1;
    height: 150px;
    background: var(--ts-paper);
    content: "";
    pointer-events: none;
    -webkit-mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/rajztabla-1.svg") center / 100% 100% no-repeat;
    transform: rotate(180deg);
  }

  .partners::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    height: 680px;
    background: linear-gradient(to bottom, transparent 46%, rgb(47 53 59 / 22%) 68%, var(--ts-dark) 100%);
    content: "";
    pointer-events: none;
  }

  .values-grid img {
    width: 80px;
    height: 80px;
    padding: 18px;
    border-radius: 50%;
    background: var(--ts-teal);
    filter: brightness(0) invert(1);
  }

  /* Keep the motivation CTA fully readable instead of masking its text. */
  .motivation-card .brush-banner {
    min-height: 56px;
    padding: 14px 26px;
    background: transparent url("assets/final/vectors/brush/brush-1.svg") center / 100% 100% no-repeat;
    white-space: nowrap;
    -webkit-mask: none;
    mask: none;
  }

  /* Rental header and rows follow the independent source frames. */
  .rental-head { transform: translateY(130px); }

  /* Contact people cards. */
  .people .section-heading {
    width: 830px;
    height: 81px;
  }

  .people .section-heading h2 {
    height: 81px;
    font-size: 66px;
    line-height: 81px;
  }

  .people-grid {
    width: 856px;
    height: 699px;
    gap: 48px;
    margin-top: 80px;
  }

  .people-grid article {
    height: 699px;
    padding-top: 401px;
  }

  .person-visual { height: 425px; }

  .people-grid article:nth-child(2) .person-visual::before { display: block; }

  .person-card {
    height: 298px;
    min-height: 298px;
    padding: 42px 24px 20px;
  }

  .person-card h3 {
    height: 34px;
    margin: 0 0 8px;
    font-size: 24px;
    line-height: 34px;
  }

  .person-card > strong {
    height: 24px;
    margin: 0 0 8px;
    font-size: 15px;
    line-height: 24px;
  }

  .person-card p {
    height: 60px;
    min-height: 60px;
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 20px;
  }

  .person-card a {
    height: 24px;
    margin: 0;
    font-size: 18px;
    line-height: 24px;
  }

  .person-card a + a { margin-top: 8px; }

  /* Map title frame and three exact 388 px columns. */
  .map-section { padding: 0 0 200px; }

  .map-section > .section-heading {
    width: 100%;
    height: 287px;
    padding-top: 80px;
  }

  .map-section .section-heading > .brush-label {
    width: 113px;
    min-width: 113px;
    height: 33px;
    min-height: 33px;
    margin-bottom: 23px;
    padding-inline: 12px;
  }

  .map-section .section-heading > h2 {
    height: 56px;
    margin: 0 0 23px;
    font-size: 48px;
    line-height: 56px;
  }

  .map-section .section-heading > p:last-child {
    height: 24px;
    font-size: 18px;
    line-height: 24px;
  }

  .map-grid {
    grid-template-columns: repeat(3, 388px);
    gap: 48px;
    margin-top: 0;
  }

  .map-grid > article > img:first-child {
    height: 293px;
  }

  .location-map { height: 480px; }

  .map-grid article h3 {
    min-height: 90px;
    margin: 48px 0 16px;
    font-size: 30px;
    line-height: 42px;
  }

  .map-grid article p {
    min-height: 28px;
    font-size: 17px;
    line-height: 28px;
  }

  /* Contact source frame. */
  .contact-form {
    display: block;
    padding: 0;
  }

  .contact-form > img {
    inset: 0 0 0 auto;
    width: 914px;
    height: 1234px;
    object-position: center;
  }

  .contact-form form {
    position: absolute;
    top: 183px;
    left: 90px;
    width: 752px;
    height: 868px;
    min-height: 868px;
    padding: 63.5px 78px 48px;
  }

  .contact-form h2 {
    height: 72px;
    margin: 0 0 24px;
    font-size: 60px;
    line-height: 72px;
  }

  .contact-form form > p:first-of-type {
    height: 64px;
    margin: 0 0 32px;
    font-size: 22px;
    line-height: 32px;
  }

  .form-grid {
    grid-template-columns: repeat(2, 286px);
    column-gap: 24px;
    row-gap: 32px;
  }

  .form-grid .form-field { height: 108px; }

  .contact-form label {
    height: 24px;
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 24px;
  }

  .contact-form input {
    height: 72px;
    padding: 0 24px;
    margin: 0;
    border-radius: 24px;
  }

  .contact-form form > label {
    margin-top: 32px;
  }

  .contact-form textarea {
    height: 148px;
    min-height: 148px;
    padding: 24px;
    margin: 0;
    border-radius: 24px;
  }

  .contact-form .btn {
    width: 147px;
    min-height: 53px;
    margin-top: 32px;
  }

  .contact-form .form-status { display: none; }

  /* Footer source grid and two-row legal block. */
  .site-footer,
  body > footer { padding: 0; }

  .footer-grid {
    height: 317px;
    padding-top: 80px;
    grid-template-columns: 486px 302px 272px 200px;
    gap: 0;
  }

  .footer-grid > div { gap: 10px; }

  .footer-grid .brand img {
    width: 64px;
    height: 64px;
  }

  .footer-brand > strong {
    height: 34px;
    margin-top: 6px;
    font-size: 24px;
    line-height: 34px;
  }

  .footer-brand .social-links {
    height: 24px;
    margin-top: 6px;
  }

  .footer-grid h2 {
    height: 33px;
    min-height: 33px;
    margin: 0 0 6px;
    line-height: 21px;
  }

  .footer-grid > div > a,
  .footer-grid > div > span {
    min-height: 24px;
    line-height: 24px;
  }

  .legal {
    height: 178px;
    padding-top: 29px;
    margin-top: 100px;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: 24px 24px;
    gap: 16px 30px;
    align-items: center;
  }

  .legal span:nth-child(1) { grid-column: 1; grid-row: 1; }
  .legal span:nth-child(2) { grid-column: 1; grid-row: 2; }
  .legal span:nth-child(3) { grid-column: 2; grid-row: 2; }
}

/* Pixel audit pass 2 — decoded Figma internals and original image paints. */
@media (min-width: 1281px) {
  .topline .container { gap: 0; }
  .topline a { position: absolute; top: 10px; height: 24px; gap: 10px; font-size: 12px; line-height: 24px; }
  .topline a:nth-child(1) { left: 0; }
  .topline a:nth-child(2) { left: 147px; font-size: 14px; }
  .topline a:nth-child(3) { left: 290px; }
  .topline img { width: 16px; height: 16px; }

  .site-header .brand img { width: 70px; height: 70px; }
  .site-header nav { font-size: 16px; font-weight: 500; letter-spacing: 1.3px; }
  .nav-tools > a:not(.btn) { position: relative; display: block; }
  .nav-tools > a:not(.btn) img { position: absolute; top: 31px; left: 12px; width: 26px; height: 26px; }
  .nav-tools > a:not(.btn) span { position: absolute; top: 68px; right: 0; left: 0; height: 12px; color: var(--ts-white); font-family: var(--ts-heading); font-size: 9px; font-weight: 600; letter-spacing: .35px; line-height: 12px; text-align: center; text-transform: uppercase; }
  .site-header .header-cta { font-size: 16px; font-weight: 700; letter-spacing: .32px; }
  .hero-copy .brush-note { padding-right: 11px; padding-left: 11px; white-space: nowrap; }

  /* Exact 1440×152 torn geometry in the authored 200/213 px frames. */
  .timetable.torn-top::before,
  .testimonials.torn-top::before,
  .careers.torn-top::before,
  .people.torn-top::before,
  .partners.torn-top::before {
    right: 0; left: 0; background: var(--ts-paper);
    -webkit-mask-image: url("assets/final/vectors/brush/torn-1440x152.svg");
    mask-image: url("assets/final/vectors/brush/torn-1440x152.svg");
    -webkit-mask-position: center top; mask-position: center top;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  }
  .timetable.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before { top: -200px; height: 200px; -webkit-mask-size: 100% 152px; mask-size: 100% 152px; transform: scaleX(-1); }
  .careers.torn-top::before { top: -200px; height: 200px; -webkit-mask-size: 100% 152px; mask-size: 100% 152px; transform: rotate(180deg); }
  .partners.torn-top::before { top: -213px; height: 213px; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; transform: scaleX(-1); }

  .arrival::before,
  .gastro::before,
  .motivation::before,
  .rental::before,
  .contact-form::before,
  .contact-form::after {
    right: 0; left: 0; height: 200px; background: var(--ts-paper);
    -webkit-mask: url("assets/final/vectors/brush/torn-1440x152.svg") center top / 100% 152px no-repeat;
    mask: url("assets/final/vectors/brush/torn-1440x152.svg") center top / 100% 152px no-repeat;
  }
  .arrival::before, .gastro::before, .motivation::before, .rental::before, .contact-form::before { top: 0; transform: none; }
  .contact-form::after { bottom: 0; background: var(--ts-dark); transform: rotate(180deg); }

  .arrival-bg { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; filter: none; }
  .arrival::after { background: linear-gradient(180deg, rgb(47 53 59 / 10%) 0%, rgb(47 53 59) 100%); }
  .arrival h2 { position: absolute; top: 238px; left: 305px; width: 830px; height: 135px; font-size: 56px; line-height: 70px; }
  .arrival h2 em { font-size: 58px; line-height: 71px; }

  .venue-grid { align-items: start; grid-template-columns: 615px 687px; gap: 48px; }
  .venue-grid::before { top: -50px; right: auto; left: 663px; width: 839px; height: 300px; transform: none; }
  .venue-copy .brush-label { width: 113px; min-width: 113px; height: 33px; margin-bottom: 32px; }
  .venue-copy h2 { height: 49px; margin: 0 0 8px; font-size: 36px; line-height: 44px; }
  .venue-copy > h3 { height: 34px; margin: 0 0 24px; font-size: 24px; line-height: 34px; }
  .venue-copy > p { height: 72px; margin: 0 0 24px; font-size: 18px; line-height: 24px; }
  .venue-copy .checks { height: 168px; gap: 16px; margin: 0 0 32px; }
  .venue-copy .checks li { min-height: 48px; font-size: 16px; line-height: 24px; }
  .venue-copy .venue-info { height: 160px; grid-template-columns: repeat(2, 295.5px); gap: 24px; margin: 0 0 32px; }
  .venue-copy .venue-info img { width: 48px; height: 48px; margin-bottom: 16px; }
  .venue-copy .actions { height: 53px; gap: 32px; margin: 0; }
  .venue-copy .actions .btn:first-child { width: 266px; }
  .venue-copy .actions .btn:last-child { width: 142px; }
  .venue-photo { position: relative; width: 687px; max-width: none; height: 628px; margin-top: 50.5px; }
  .venue-photo img { position: absolute; top: 37.695px; left: -64.904px; width: 812.27px; max-width: none; height: 583.23px; object-fit: fill; }

  .space-grid { grid-template-columns: repeat(5, 252px); }
  .space-grid article, .business-space-grid article { padding: 48px 24px 24px; }
  .space-grid article > img, .business-space-grid article > img { width: 40px; height: 40px; margin: 0 0 20px; }
  .space-grid h3, .business-space-grid h3 { min-height: 38px; margin: 0 0 8px; font-size: 28px; line-height: 38px; }
  .space-grid p, .business-space-grid p { margin: 0; font-size: 18px; line-height: 30px; }
  .space-grid article > strong, .business-space-grid article > strong { height: 49px; font-size: 48px; line-height: 46px; }
  .business-space-grid { grid-template-columns: repeat(3, 420px); }

  .programs-lead { height: 140px; }
  .programs-lead > p { width: 797px; max-width: 797px; height: 108px; font-size: 28px; letter-spacing: 1px; line-height: 36px; }
  .programs-lead > .btn { width: 215px; min-height: 53px; }
  .programs > .carousel-controls { height: 64px; align-items: flex-end; margin: 0; }
  .program-track { gap: 24px; padding-top: 24px; }
  .program-track article { width: 340px; height: 420px; min-height: 420px; flex-basis: 340px; padding: 0; background-position: center; }
  .program-track article::before { background: linear-gradient(180deg, rgb(33 38 43 / 0%) 9.6875%, rgb(33 38 43 / 90%) 59.9106%); }
  .program-track article::after, .gastro-track article::after, .system-cards article::after { top: 55px; left: -12px; width: 125px; height: 64px; transform: rotate(-4deg); }
  .program-track img, .gastro-track img, .system-cards article > img { top: 87.53px; left: 29px; width: 40px; height: 40px; }
  .program-track h3 { position: absolute; top: 204px; left: 24px; width: 292px; max-height: 68px; margin: 0; overflow: hidden; font-size: 24px; line-height: 34px; }
  .program-track p { position: absolute; top: 280px; left: 24px; width: 292px; height: 56px; min-height: 0; margin: 0; overflow: hidden; font-size: 16px; line-height: 24px; }
  .program-track a { position: absolute; top: 356px; left: 24px; min-width: 118px; height: 40px; font-size: 14px; line-height: 40px; }

  .timetable-heading { height: 190px; align-items: start; }
  .timetable-heading > div { width: 832px; }
  .timetable-heading .brush-label { width: 225px; min-width: 225px; height: 33px; margin-bottom: 16px; }
  .timetable-heading h2 { height: 69px; margin: 0; font-size: 48px; line-height: 69px; }
  .timetable-heading > div > p:last-child { height: 24px; margin-top: 16px; line-height: 24px; }
  .timetable-heading > .btn { width: 151px; min-height: 53px; margin-top: 105px; }
  .timetable-scroll { width: 1260px; height: 592px; padding: 40px; margin-top: 24px; }
  .timetable-table { width: 1180px; min-width: 1180px; border-spacing: 8px; }
  .timetable-table thead th { height: 24px; padding: 0; font-size: 18px; line-height: 24px; }
  .timetable-table td { width: 226.4px; height: 108px; }

  .split-feature { align-items: start; grid-template-columns: 686px 616px; gap: 48px; }
  .split-feature > img { width: 686px; height: 713px; margin-left: -90px; border-radius: 0 24px 24px 0; object-fit: cover; object-position: center; }

  .gastro-track article { width: 297px; height: 420px; min-height: 420px; flex-basis: 297px; padding: 0; }
  .gastro-track article::before { background: linear-gradient(180deg, rgb(33 38 43 / 0%) 21.9894%, rgb(33 38 43 / 90%) 84.7586%); }
  .gastro-track h3 { position: absolute; top: 199.285px; left: 24px; width: 249px; max-height: 68px; margin: 0; overflow: hidden; font-size: 24px; line-height: 34px; }
  .gastro-track p { position: absolute; top: 275.285px; left: 24px; width: 249px; height: 60px; min-height: 0; margin: 0; overflow: hidden; font-size: 14px; line-height: 20px; }
  .gastro-track a { position: absolute; top: 351.285px; left: 24px; height: 37px; line-height: 37px; }

  .partners-copy { height: 72px; grid-template-columns: 509px 487px; justify-content: space-between; gap: 0; }
  .partners-copy h2 { width: 509px; height: 68px; font-size: 36px; line-height: 34px; }
  .partners-copy p { width: 487px; height: 72px; font-size: 18px; line-height: 24px; }
  .partner-grid { position: relative; display: block; margin-top: 64px; }
  .partner-grid img { position: absolute; top: 0; width: auto; max-width: none; height: 60px; max-height: none; margin: 0; }
  .partner-grid img:nth-child(1) { left: 0; width: 50.824px; }
  .partner-grid img:nth-child(2) { left: 111.679px; width: 60px; }
  .partner-grid img:nth-child(3) { left: 232.535px; width: 60px; }
  .partner-grid img:nth-child(4) { top: 5px; left: 353.391px; width: 192.308px; height: 50px; }
  .partner-grid img:nth-child(5) { top: 5px; left: 606.554px; width: 192.308px; height: 50px; }
  .partner-grid img:nth-child(6) { left: 859.717px; width: 60px; }
  .partner-grid img:nth-child(7) { top: 15px; left: 980.573px; width: 158.571px; height: 30px; }
  .partner-grid img:nth-child(8) { left: 1200px; width: 60px; }
  .partner-grid::after { position: absolute; top: 100px; left: -90px; z-index: 3; width: 1440px; height: 152px; background: var(--ts-paper); content: ""; -webkit-mask: url("assets/final/vectors/brush/torn-1440x152.svg") center / 100% 100% no-repeat; mask: url("assets/final/vectors/brush/torn-1440x152.svg") center / 100% 100% no-repeat; }
  .partners-photo { z-index: 0; height: 680px; margin-top: 40px; object-fit: cover; object-position: center 11%; filter: none; }
  .partners::after { z-index: 1; height: 680px; background: linear-gradient(180deg, rgb(47 53 59 / 10%) 0%, rgb(47 53 59) 100%); }

  .values-heading { width: 831px; height: 131px; }
  .values-heading h2 { height: 69px; margin: 0; font-size: 48px; line-height: 69px; }
  .values-heading > p { height: 38px; margin: 24px 0 0; font-size: 24px; line-height: 38px; }
  .values-grid { grid-template-columns: repeat(5, 232.8px); gap: 24px; margin-top: 100px; }
  .values-grid article { position: relative; min-height: 251.719px; }
  .values-grid article::before { position: absolute; top: 0; left: 58.541px; width: 115.719px; height: 115.719px; border-radius: 46% 54% 49% 51% / 52% 45% 55% 48%; background: var(--ts-teal); content: ""; transform: rotate(-5deg); }
  .values-grid img { position: relative; z-index: 1; width: 68px; height: 68px; padding: 0; margin: 24px auto 39px; border-radius: 0; background: transparent; filter: brightness(0) invert(1); }
  .values-grid p { font-size: 16px; line-height: 24px; }

  .testimonial-layout > h2 { height: 46px; font-size: 36px; line-height: 46px; }
  .testimonial { height: 417.5px; min-height: 417.5px; padding: 48px; border: 1px solid #edf0f2; box-shadow: none; }
  .testimonial p { height: 266px; padding-left: 23.381px; margin: 7.5px 0 24px; font-size: 24px; font-style: italic; font-weight: 500; line-height: 38px; }
  .testimonial p::before { top: -7.5px; left: -23.381px; font-size: 76px; }
  .testimonial footer { height: 24px; font-size: 18px; line-height: 24px; }

  .systems-copy { width: 824px; max-width: 824px; height: 357px; }
  .systems-copy h2 { height: 81px; margin: 0 0 24px; font-size: 60px; line-height: 81px; }
  .systems-copy h2 em { font-size: 66px; font-weight: 400; }
  .systems-copy .lead { width: 686px; height: 76px; margin: 0 auto 24px; font-size: 22px; line-height: 32px; }
  .systems-copy > p:last-child { width: 824px; height: 120px; overflow: hidden; font-size: 16px; line-height: 24px; }
  .system-cards { margin-top: 24px; }
  .system-cards article { height: 420px; min-height: 420px; padding: 0; }
  .system-cards article::before { background: linear-gradient(180deg, rgb(33 38 43 / 0%) 31.613%, rgb(33 38 43 / 90%) 61.5788%); }
  .system-cards h3 { position: absolute; top: 267px; left: 24px; width: 249px; height: 68px; margin: 0; font-size: 28px; line-height: 36px; }
  .system-cards .btn { position: absolute; top: 359px; left: 24px; width: 154px; min-height: 37px; padding: 9px 18px; }

  .motivation-bg { object-fit: cover; object-position: center; filter: none; }
  .motivation::after { background: rgb(47 53 59 / 20%); }
  .motivation-card { position: absolute; top: 280px; left: 455px; width: 530px; height: 559px; padding: 0; background: rgb(33 38 43 / 90%); }
  .motivation-card h2 { position: absolute; top: 32px; left: 129px; width: 272px; height: 69px; margin: 0; font-size: 58px; line-height: 66px; }
  .motivation-card > p:nth-of-type(1) { position: absolute; top: 125px; left: 32px; width: 466px; height: 72px; margin: 0; font-size: 16px; line-height: 24px; }
  .motivation-card .brush-banner { position: absolute; top: 221px; left: 51px; width: 428px; height: 66px; min-height: 66px; padding: 4px 32px; margin: 0; background: transparent url("assets/final/vectors/brush/motivation-cta.svg") center / 100% 100% no-repeat; font-size: 24px; line-height: 58px; }
  .motivation-card > p:nth-of-type(3) { position: absolute; top: 311px; left: 32px; width: 466px; height: 72px; margin: 0; font-size: 16px; line-height: 24px; }
  .motivation-card > p:nth-of-type(4) { position: absolute; top: 407px; left: 32px; width: 466px; height: 81px; margin: 0; font-size: 19px; line-height: 27px; }
  .motivation-card .social-links { position: absolute; top: 503px; left: 206px; width: 118px; height: 24px; gap: 23px; margin: 0; }
  .motivation-card .social-links a, .motivation-card .social-links img { width: 24px; height: 24px; }

  .careers > .section-heading { width: 830px; height: 220px; }
  .careers > .section-heading .brush-label { width: 225px; min-width: 225px; height: 33px; margin: 0 auto 24px; }
  .careers > .section-heading h2 { height: 163px; margin: 0; font-size: 60px; line-height: 76px; }
  .careers > .section-heading h2 em { font-size: 66px; line-height: 81px; }
  .career-intro { align-items: start; grid-template-columns: 618px 618px; gap: 24px; height: 460px; }
  .career-intro > img { width: 618px; height: 460px; }
  .career-intro > div { padding-left: 24px; }
  .career-intro > div > p { height: 128px; margin: 0 0 24px; font-size: 22px; line-height: 36px; }
  .career-intro h3 { height: 36px; margin: 0 0 24px; font-size: 27px; line-height: 36px; }
  .career-intro .checks { height: 248px; gap: 0; }
  .career-intro .checks li { height: 32px; font-size: 16px; line-height: 24px; }
  .career-openings { height: 403px; margin-top: 160px; }
  .career-openings > h3 { width: 754px; height: 44px; margin: 0 auto 48px; font-size: 36px; line-height: 44px; }
  .career-grid { grid-template-columns: repeat(3, 388px); gap: 48px; height: 226px; }
  .career-grid article { height: 226px; padding: 32px 0 0; }
  .career-grid article + article::before { top: 73px; bottom: auto; left: -24px; width: 80px; height: 1px; }
  .career-grid img { width: 48px; height: 48px; margin: 0 auto 16px; }
  .career-grid h4 { height: 34px; margin: 0 0 16px; font-size: 22px; line-height: 32px; }
  .career-grid p { height: 48px; margin: 0; font-size: 16px; line-height: 24px; }
  .career-openings > .btn { width: 200px; min-height: 53px; margin-top: 32px; }
}

/* Pixel audit pass 3 — exact Figma hero, divider polarity and map artwork. */
@media (min-width: 1281px) {
  .hero::before {
    top: 0;
    right: auto;
    bottom: auto;
    left: 0;
    width: 1867.165161px;
    height: 1027.783325px;
    background: transparent url("assets/final/vectors/hero/paca.svg") 0 0 / 100% 100% no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: matrix(.90280813, .430043608, .430043608, -.90280813, -443.999964, 501.891136);
    transform-origin: 0 0;
  }

  .hero::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: block;
    width: 620.131897px;
    height: 372.079163px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform: matrix(-.896378696, -.443289161, .443289161, -.896378696, 855.164001, 367.008728);
    transform-origin: 0 0;
  }

  .hero-wash { display: none; }

  .hero-media img {
    object-fit: cover;
    object-position: center;
    filter: drop-shadow(0 24px 65px rgb(20 20 43 / 16%));
  }

  .hero-copy .brush-note {
    width: 422px;
    min-width: 422px;
    height: 45px;
    padding: 3.712px 29px 5.288px;
    margin-bottom: 24px;
    line-height: 36px;
  }

  .hero-copy .brush-note::before {
    top: -4px;
    right: auto;
    bottom: auto;
    left: 5px;
    width: 422px;
    height: 52px;
  }

  .intro.torn-top::before {
    top: -400px;
    right: 0;
    left: 0;
    height: 400px;
    background: var(--ts-paper);
    -webkit-mask: url("assets/final/vectors/brush/rajztabla-1-masolat.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/rajztabla-1-masolat.svg") center / 100% 100% no-repeat;
    transform: none;
  }

  .timetable.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before {
    top: -200px;
    height: 200px;
    background: var(--ts-paper);
    -webkit-mask-image: linear-gradient(#000 0 0), url("assets/final/vectors/brush/torn-1440x152.svg");
    mask-image: linear-gradient(#000 0 0), url("assets/final/vectors/brush/torn-1440x152.svg");
    -webkit-mask-position: center, center top;
    mask-position: center, center top;
    -webkit-mask-size: 100% 100%, 100% 152px;
    mask-size: 100% 100%, 100% 152px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    transform: scaleX(-1);
  }

  .partners.torn-top::before {
    top: -213px;
    height: 213px;
    background: var(--ts-paper);
    -webkit-mask-image: linear-gradient(#000 0 0), url("assets/final/vectors/brush/torn-1440x152.svg");
    mask-image: linear-gradient(#000 0 0), url("assets/final/vectors/brush/torn-1440x152.svg");
    -webkit-mask-position: center, center top;
    mask-position: center, center top;
    -webkit-mask-size: 100% 100%, 100% 162px;
    mask-size: 100% 100%, 100% 162px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    transform: scaleX(-1);
  }

  .gastro::before,
  .contact-form::before { display: none; }

  .timetable::after,
  .map-section::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 4;
    height: 200px;
    content: "";
    pointer-events: none;
    -webkit-mask: url("assets/final/vectors/brush/torn-1440x152.svg") center top / 100% 152px no-repeat;
    mask: url("assets/final/vectors/brush/torn-1440x152.svg") center top / 100% 152px no-repeat;
    transform: rotate(180deg);
  }

  .timetable::after {
    background: var(--ts-dark);
    transform: scaleY(-1);
  }

  .map-section::after { background: var(--ts-beige); }

  .rental::before { transform: scaleX(-1); }

  .contact-form::after {
    bottom: 0;
    height: 152px;
    -webkit-mask-size: 100% 152px;
    mask-size: 100% 152px;
    filter: none;
  }

  .location-map {
    position: relative;
    width: 388px;
    height: 480px;
    overflow: hidden;
    border-radius: 24px;
  }

  .location-map > img {
    position: absolute;
    top: -.131px;
    left: -262.071px;
    width: 911.867px;
    max-width: none;
    height: 480.012px;
    object-fit: fill;
    filter: grayscale(1);
    transform: none;
  }

  .location-map > strong {
    position: absolute;
    top: 39.066px;
    left: 25px;
    width: 205px;
    height: 38px;
    color: #2f353b;
    font-family: var(--ts-heading);
    font-size: 30px;
    font-style: normal;
    font-weight: 800;
    font-variant-ligatures: none;
    letter-spacing: 1px;
    line-height: 38px;
    white-space: nowrap;
  }

  .map-pin {
    position: absolute;
    width: 65px;
    height: 65px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 65px 65px;
  }

  .map-pin-one { top: 114.066px; left: 31px; background-image: url("assets/final/vectors/map/map-pin-cutout.svg"); }
  .map-pin-two { top: 351.066px; left: 276px; background-image: url("assets/final/vectors/map/map-pin.svg"); }
}

/* Keep the exact Figma hero artwork on laptop widths as well. */
@media (min-width: 769px) and (max-width: 1280px) {
  .hero {
    --hero-art-scale: .75;
    overflow: visible;
    z-index: 1;
  }

  .hero::before {
    top: 0;
    right: auto;
    bottom: auto;
    left: 0;
    width: 1867.165161px;
    height: 1027.783325px;
    background: transparent url("assets/final/vectors/hero/paca.svg") 0 0 / 100% 100% no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: scale(var(--hero-art-scale)) matrix(.90280813, .430043608, .430043608, -.90280813, -443.999964, 501.891136);
    transform-origin: 0 0;
  }

  .hero::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: block;
    width: 620.131897px;
    height: 372.079163px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform: scale(var(--hero-art-scale)) matrix(-.896378696, -.443289161, .443289161, -.896378696, 855.164001, 367.008728);
    transform-origin: 0 0;
  }

  .hero-wash { display: none; }
}

@supports (transform: scale(calc(1px / 1px))) {
  @media (min-width: 769px) and (max-width: 1280px) {
    .hero { --hero-art-scale: calc(100vw / 1440px); }
  }
}

@media (max-width: 1280px) {
  .location-map {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
  }

  .location-map > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1);
  }

  .location-map > strong {
    position: absolute;
    top: 8%;
    left: 7%;
    color: var(--ts-dark);
    font-family: var(--ts-heading);
    font-size: clamp(1.3rem, 4vw, 2rem);
  }

  .map-pin {
    position: absolute;
    width: clamp(42px, 9vw, 65px);
    height: clamp(42px, 9vw, 65px);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }

  .map-pin-one { top: 24%; left: 8%; background-image: url("assets/final/vectors/map/map-pin-cutout.svg"); }
  .map-pin-two { right: 8%; bottom: 13%; background-image: url("assets/final/vectors/map/map-pin.svg"); }
}

/* Pixel audit pass 4 — exact Figma middle-section internals. */
.gastro-photo,
.partners-photo {
  position: relative;
  overflow: hidden;
}

.gastro-photo > img,
.partners-photo > img {
  display: block;
  max-width: none;
}

@media (min-width: 1281px) {
  .venue,
  .spaces,
  .programs,
  .gastro,
  .business-spaces,
  .gastro-services {
    background-color: #2f353b;
  }

  /* Venue */
  .venue-grid::before {
    top: -50px;
    right: auto;
    left: 663px;
    width: 839px;
    height: 300px;
    background: transparent url("assets/final/vectors/venue-brush.svg") 0 5.008px / 839px 294.992px no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: none;
  }

  .venue-copy .brush-label,
  .split-feature .brush-label {
    color: #2f353b;
    background-color: #2196a2;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .72px;
    line-height: 24px;
  }

  .venue-copy .brush-label { min-height: 33px; }

  .venue-copy h2,
  .split-feature h2 {
    color: #f6f6f6;
    font-family: var(--ts-heading);
    font-weight: 800;
    letter-spacing: .36px;
  }

  .venue-copy h2 em,
  .split-feature h2 em {
    color: #22b1b8;
    font-family: var(--ts-brush);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: .4px;
    line-height: 44px;
  }

  .venue-copy > h3,
  .split-feature > div > h3 {
    color: #22b1b8;
    font-family: var(--ts-heading);
    font-weight: 800;
    letter-spacing: 1px;
  }

  .venue-copy > p,
  .split-feature > div > p {
    color: #f6f6f6;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .72px;
    line-height: 24px;
  }

  .venue-copy .checks li,
  .split-feature .checks li {
    color: #cacfd7;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: .36px;
    line-height: 24px;
  }

  .venue-copy .venue-info,
  .split-feature .venue-info {
    color: #cacfd7;
    font-family: var(--ts-body);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .16px;
    line-height: 24px;
  }

  .venue-copy .venue-info strong,
  .split-feature .venue-info strong {
    color: #cacfd7;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .32px;
    line-height: 24px;
  }

  .venue-copy .actions .btn,
  .split-feature .actions .btn,
  .programs-lead > .btn,
  .timetable-heading > .btn {
    font-size: 16px;
    letter-spacing: .32px;
    line-height: 1.3;
  }

  /* Space cards */
  .spaces {
    background-position: -186px 477.793px;
    background-size: 427px 256px;
  }

  .space-grid article {
    background-position: center;
    background-size: cover;
  }

  .space-grid article:nth-child(1) {
    background-image: linear-gradient(rgb(33 38 43 / 80%), rgb(33 38 43 / 80%)), var(--space-image, none);
  }

  .space-grid article:nth-child(2) {
    background-image: linear-gradient(rgb(34 94 104 / 85%), rgb(34 94 104 / 85%)), var(--space-image, none);
  }

  .space-grid article:nth-child(3),
  .space-grid article:nth-child(5) {
    background-image: linear-gradient(rgb(47 53 59 / 85%), rgb(47 53 59 / 85%)), var(--space-image, none);
  }

  .space-grid article:nth-child(4) {
    background-image: linear-gradient(rgb(34 94 104 / 85%), rgb(34 94 104 / 85%)), var(--space-image, none);
    background-position: 0 0, -322.401px 0;
    background-size: 100% 100%, 266.826195% 100%;
  }

  .space-grid h3 {
    font-weight: 700;
    letter-spacing: 0;
  }

  .space-grid p {
    color: #cacfd7;
    font-weight: 500;
  }

  .space-grid article > strong { color: #22b1b8; }
  .space-grid article:nth-child(even) > strong { color: #d9d9d9; }

  /* Programs */
  .programs {
    background-position: -214px 538.22px, 1095px -112px;
    background-size: 470.375px 298.284px, 470.375px 298.284px;
  }

  .programs-lead > p {
    color: #f6f6f6;
    font-weight: 500;
  }

  .program-track article::before {
    background: linear-gradient(179.949853deg, rgb(47 53 59 / 0%) 22.025%, rgb(47 53 59 / 90%) 84.794%);
  }

  .program-track article::after,
  .gastro-track article::after {
    top: 40.127px;
    left: -98.128px;
    width: 205.988px;
    height: 80.135px;
    background-color: #2196a2;
    transform: rotate(-146.62deg);
    transform-origin: center;
  }

  .program-track h3,
  .gastro-track h3 {
    font-weight: 800;
    letter-spacing: 1px;
  }

  .program-track p,
  .gastro-track p {
    color: #f5f7f8;
    font-family: var(--ts-body);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
  }

  .program-track p { height: 60px; }

  .program-track a,
  .gastro-track a {
    color: #2196a2;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .32px;
    line-height: 1.3;
  }

  .program-track article[data-service="kineziologia"] { background-position: -69.220px 0; background-size: 196.835630% 100%; }
  .program-track article[data-service="sportagspecifikus"] { background-position: -31.983px -.102px; background-size: 185.257075% 100%; }
  .program-track article[data-service="trx"] { background-position: -66.401px 0; background-size: 196.835630% 100%; }
  .program-track article[data-service="bosu-core"] { background-position: -49.252px 0; background-size: 196.835630% 100%; }
  .program-track article[data-service="smr"] { background-position: -251.160px 0; background-size: 196.835630% 100%; }
  .program-track article[data-service="gasztro-termekek"] { background-position: -267.414px 0; background-size: 233.374827% 100%; }

  /* Timetable */
  .timetable {
    /* Figma coordinates live on a centred 1440 px artboard. Keep both dot
       layers locked to that artboard instead of the browser's left edge. */
    /* Background-position percentages are measured on the remaining space
       after the image width, hence the half-image compensation below. */
    background-position: calc(50% - 421.774px) 560.642px, calc(50% + 463.5px) 681.642px;
    background-size: 456.011px 273.606px, 819px 492px;
  }

  .timetable-heading h2 {
    color: #2f353b;
    font-weight: 800;
    letter-spacing: .48px;
    line-height: 56px;
  }

  .timetable-heading h2 em { color: #22b1b8; }

  .timetable-heading > div > p:last-child {
    color: #2f353b;
    font-family: var(--ts-body);
    font-size: 18px;
    letter-spacing: .36px;
    line-height: 24px;
  }

  .timetable-scroll {
    width: 1260px;
    height: 592px;
    padding: 48px;
    border: 0;
    border-radius: 24px;
    margin-top: 24px;
    background: #fff;
    box-shadow: inset 0 0 0 1px #edf0f2, 0 8px 28px rgb(20 20 43 / 10%);
  }

  .timetable-table {
    display: block;
    width: 1164px;
    min-width: 1164px;
    border-spacing: 0;
  }

  .timetable-table thead,
  .timetable-table tbody { display: block; }

  .timetable-table thead tr,
  .timetable-table tbody tr {
    display: grid;
    grid-template-columns: repeat(5, 226.4px);
    column-gap: 8px;
  }

  .timetable-table tbody { margin-top: 16px; }
  .timetable-table tbody tr + tr { margin-top: 8px; }

  .timetable-table thead th {
    width: 226.4px;
    height: 24px;
    padding: 0;
    color: #616572;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: .36px;
    line-height: 24px;
  }

  .timetable-table td {
    width: 226.4px;
    height: 108px;
    padding: 36px 16px 16px;
    border-radius: 8px;
    background-color: #f5f7f8;
  }

  .timetable-table td:empty { background: #fff; }

  .timetable-table td:not(:empty) {
    background-image: url("assets/final/pictograms/teal/trx.svg");
    background-position: 4px 4px;
    background-repeat: no-repeat;
    background-size: 40px 40px;
  }

  .timetable-table tbody tr:nth-child(1) td:nth-child(4),
  .timetable-table tbody tr:nth-child(2) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(5),
  .timetable-table tbody tr:nth-child(3) td:nth-child(6) {
    background-image: url("assets/final/pictograms/teal/core-power.svg");
  }

  .timetable-table tbody tr:nth-child(3) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(4) {
    background-image: url("assets/final/pictograms/teal/bosu-core.svg");
  }

  .timetable-table tbody tr:nth-child(4) td:nth-child(5) {
    background-image: url("assets/final/pictograms/teal/smr.svg");
  }

  .timetable-table td:not(:empty)::before {
    top: 0;
    width: 77px;
    min-width: 77px;
    height: 28px;
    padding: 6px 0;
    border-radius: 40px;
    color: #fff;
    background: #22b1b8;
    font-family: var(--ts-heading);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .32px;
    line-height: 16px;
    transform: translateX(-50%);
  }

  .timetable-table td strong {
    color: #2f353b;
    font-family: var(--ts-body);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: .44px;
    line-height: 32px;
  }

  .timetable-table td span {
    margin-top: 0;
    color: #616572;
    font-family: var(--ts-body);
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
  }

  /* Gastro venue */
  .gastro {
    background-position: 1123.011px -116.357px;
    background-size: 466.947px 280.541px;
  }

  .split-feature {
    align-items: start;
    grid-template-columns: 686px 616px;
    gap: 48px;
    width: 1350px;
    max-width: 1350px;
    margin-right: auto;
    margin-left: 0;
  }

  .gastro-photo {
    width: 686px;
    height: 713px;
    margin-left: 0;
    border-radius: 0 24px 24px 0;
  }

  .gastro-photo > img {
    position: absolute;
    top: 0;
    left: -141.282px;
    width: 1001.685px;
    height: 713px;
    object-fit: fill;
  }

  .split-feature > div:not(.gastro-photo) {
    width: 616px;
    height: 713px;
  }

  .split-feature .brush-label {
    width: 113px;
    min-width: 113px;
    height: 33px;
    min-height: 33px;
    padding: 5px 18px 4px;
    margin: 0 0 24px;
  }

  .split-feature h2 {
    width: 616px;
    height: 49px;
    margin: 0 0 8px;
    font-size: 36px;
    line-height: 44px;
  }

  .split-feature > div > h3 {
    width: 616px;
    height: 34px;
    margin: 0 0 24px;
    font-size: 24px;
    line-height: 34px;
  }

  .split-feature > div > p {
    width: 616px;
    height: 96px;
    margin: 0 0 24px;
  }

  .split-feature .checks {
    display: grid;
    height: 144px;
    gap: 24px;
    margin: 0 0 32px;
  }

  .split-feature .checks li { min-height: 24px; }

  .split-feature .venue-info {
    width: 616px;
    height: 160px;
    grid-template-columns: repeat(2, 296px);
    gap: 24px;
    margin: 0 0 32px;
  }

  .split-feature .venue-info img {
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
  }

  .split-feature .actions {
    height: 53px;
    gap: 32px;
    margin: 0;
  }

  .split-feature .actions .btn:first-child { width: 266px; }
  .split-feature .actions .btn:last-child { width: 142px; }

  /* Business spaces */
  .business-spaces {
    background-position: -186px 477.793px;
    background-size: 427px 256px;
  }

  .business-space-grid article:nth-child(1),
  .business-space-grid article:nth-child(3) {
    background-image: linear-gradient(rgb(47 53 59 / 85%), rgb(47 53 59 / 85%)), var(--space-image, none);
  }

  .business-space-grid article:nth-child(2) {
    background-image: linear-gradient(rgb(34 94 104 / 85%), rgb(34 94 104 / 85%)), var(--space-image, none);
  }

  .business-space-grid h3 {
    font-weight: 700;
    letter-spacing: 0;
  }

  .business-space-grid article:nth-child(1) h3 {
    font-size: 30px;
    font-weight: 800;
    letter-spacing: 1px;
  }

  .business-space-grid p {
    color: #cacfd7;
    font-weight: 400;
    letter-spacing: .36px;
    line-height: 24px;
  }

  .business-space-grid article > strong {
    height: 40px;
    color: #22b1b8;
    font-size: 40px;
    letter-spacing: .4px;
    line-height: 40px;
  }

  .business-space-grid article:nth-child(2) > strong { color: #d9d9d9; }

  /* Gastro services */
  .gastro-services {
    background-position: -214px 538.22px, 1095px -112px;
    background-size: 470.375px 298.284px, 470.375px 298.284px;
  }

  .gastro-services .carousel-heading > p {
    width: 832px;
    max-width: 832px;
    height: 108px;
    color: #cacfd7;
    font-size: 28px;
    font-weight: 500;
    letter-spacing: 1px;
    line-height: 36px;
  }

  /* Partners */
  .partners { background: #fff; }

  .partners-copy h2 {
    color: #2f353b;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .48px;
    line-height: 34px;
  }

  .partners-copy p {
    color: #616572;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 500;
    line-height: 24px;
  }

  .partner-grid img { filter: none; }

  .partner-separator {
    position: absolute;
    top: 10px;
    display: block;
    width: 40px;
    height: 1px;
    background: #dee2e7;
  }

  .partner-separator:nth-of-type(1) { left: 81.2514px; }
  .partner-separator:nth-of-type(2) { left: 202.1070px; }
  .partner-separator:nth-of-type(3) { left: 322.9627px; }
  .partner-separator:nth-of-type(4) { left: 576.1260px; }
  .partner-separator:nth-of-type(5) { left: 829.2894px; }
  .partner-separator:nth-of-type(6) { left: 950.1451px; }
  .partner-separator:nth-of-type(7) { left: 1169.5723px; }

  .partner-grid::after { background: #f6f6f6; }

  .partners-photo {
    z-index: 0;
    width: 1440px;
    height: 680px;
    margin-top: 40px;
    filter: none;
  }

  .partners-photo > img {
    position: absolute;
    top: 29.651px;
    left: 0;
    width: 1440px;
    height: 960.192px;
    object-fit: fill;
    filter: none;
  }

  .partners::after {
    z-index: 1;
    height: 680px;
    background: linear-gradient(180deg, rgb(47 53 59 / 10%) 0%, rgb(47 53 59) 100%);
  }
}

@media (max-width: 1280px) {
  .split-feature > .gastro-photo {
    width: 100%;
    max-width: none;
    height: 560px;
    margin: 0;
    border-radius: var(--ts-radius);
  }

  .gastro-photo > img,
  .partners-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .partners-photo > img { object-position: center 48%; }
  .partner-separator { display: none; }
}

@media (max-width: 768px) {
  .gastro-photo { height: 460px; }
}

@media (max-width: 480px) {
  .gastro-photo { height: 350px; }
}

/* Figma audit pass 4 — verified top-section type and component details. */
.intro { background-image: none; }

@media (min-width: 1281px) {
  .topline {
    box-shadow: 8px 16px 40px rgb(0 0 0 / 8%);
  }

  .scroll-hint {
    gap: 0;
    font-family: var(--ts-body);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
  }

  .service-choice .section-heading h2 {
    font-weight: 800;
    letter-spacing: .48px;
    line-height: 56px;
  }

  .service-choice .section-heading h2 em {
    color: #22b1b8;
    letter-spacing: .56px;
    line-height: 56px;
    text-transform: none;
  }

  .choice-card {
    border: 1px solid #edf0f2;
    box-shadow: 0 2px 6px rgb(20 20 43 / 6%);
  }

  .choice-card .card-pictogram {
    padding: 20px;
    border-width: 6px;
  }

  .choice-card h3 {
    font-weight: 700;
    letter-spacing: 0;
  }

  .choice-card p {
    color: #616572;
    font-family: var(--ts-heading);
    font-weight: 800;
    letter-spacing: 0;
  }

  .choice-card:nth-child(3) > img:first-child {
    object-position: 50% 1.08%;
  }

  .intro-copy h2 {
    line-height: 72px;
  }

  .intro-copy h2 .intro-title-teal {
    color: var(--ts-teal);
    font-family: var(--ts-heading);
    font-size: 60px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 72px;
  }

  .intro-copy h2 .intro-title-teal em {
    font-family: var(--ts-brush);
    font-size: 66px;
    font-weight: 400;
    letter-spacing: .66px;
    line-height: 66px;
  }

  .intro-copy h3 {
    letter-spacing: 1px;
  }

  .intro-copy > p:not(.brush-label) {
    font-size: 22px;
    font-weight: 400;
    letter-spacing: .22px;
    line-height: 32px;
  }

  .signature {
    opacity: .8;
  }

  .trust-grid h3 {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 34px;
  }

  .trust-grid p {
    color: #616572;
    font-family: var(--ts-body);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .16px;
    line-height: 24px;
  }

  .trust-grid strong {
    color: var(--ts-teal);
    font-weight: 700;
    letter-spacing: .32px;
  }

  .trust-grid article + article::before {
    left: -24px;
    width: 80px;
    height: 1px;
    background: #dee2e7;
  }
}

/* Figma audit pass 5 — verified values through footer details. */
.figma-dots { display: none; }

@media (min-width: 1281px) {
  /* Values */
  .values-grid article::before {
    top: 7.783px;
    left: 63.377px;
    width: 108.816px;
    height: 102.228px;
    border-radius: 53% 47% 50% 50% / 48% 52% 46% 54%;
    transform: rotate(-3deg);
  }

  .values-grid img {
    left: 2.594px;
    width: 67.708px;
    height: 67.708px;
    margin: 24.710px auto 39.301px;
  }

  /* Testimonials */
  .testimonials { background-image: none; }

  .figma-dots {
    position: absolute;
    z-index: 0;
    display: block;
    background: transparent url("assets/final/vectors/brush/dots-1.svg") 0 0 / 100% 100% no-repeat;
    pointer-events: none;
    transform-origin: 0 0;
  }

  .testimonial-dots {
    top: 0;
    left: 0;
    width: 456.011px;
    height: 273.606px;
  }

  .testimonial-dots-a {
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 1343.375, 537.910156);
  }

  .testimonial-dots-b {
    transform: matrix(.873452723, .486909091, -.486909091, .873452723, 421.221466, -34.28125);
  }

  .testimonial-layout {
    position: relative;
    z-index: 1;
  }

  .testimonial {
    box-shadow: 0 8px 28px rgb(20 20 43 / 10%);
  }

  .testimonial p { font-weight: 600; }

  .testimonial p::before {
    top: -7.5px;
    left: 0;
    width: 59.069px;
    height: 48px;
    overflow: hidden;
    color: #dee2e7;
    font-size: 76px;
    line-height: 48px;
  }

  /* Business solutions */
  .systems-copy .lead {
    font-size: 24px;
    line-height: 38px;
  }

  .systems-copy > p:last-child {
    font-size: 18px;
    line-height: 24px;
  }

  .system-cards h3 {
    width: 292px;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: .24px;
    line-height: 34px;
  }

  .system-cards article::after {
    top: 0;
    left: 0;
    width: 205.988px;
    height: 80.135px;
    background: transparent url("assets/final/vectors/brush/brush-4.svg") 0 0 / 100% 100% no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: matrix(-.835006952, -.550239444, .550239444, -.835006952, 68.820221, 170.322418);
    transform-origin: 0 0;
  }

  /* Motivation */
  .motivation-card h2 {
    font-size: 56px;
    line-height: 69px;
  }

  .motivation-card .brush-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 32px;
    font-size: 24px;
    line-height: 34px;
  }

  .motivation-card > p:nth-of-type(4) {
    height: 72px;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
  }

  /* Careers */
  .career-intro > div > p { line-height: 32px; }

  .career-intro h3 {
    font-size: 28px;
    line-height: 36px;
  }

  .career-grid h4 {
    font-size: 24px;
    line-height: 34px;
  }

  /* Rental */
  .rental-head {
    width: 830px;
    max-width: 830px;
  }

  .rental-head h2 {
    margin-bottom: 24px;
    font-size: 66px;
    line-height: 81px;
  }

  .rental-head > p {
    margin-bottom: 24px;
    font-size: 22px;
    line-height: 32px;
  }

  .rental-head h3 {
    gap: 8px;
    height: 38px;
    font-size: 30px;
    font-weight: 800;
    line-height: 38px;
  }

  .rental-head h3 img,
  .rental-location img {
    width: 32px;
    height: 32px;
  }

  .rental-list article h3 {
    font-size: 48px;
    line-height: 69px;
  }

  .rental-list article h3 em {
    font-size: 56px;
    line-height: 69px;
  }

  .rental-list .brush-label {
    width: 308px;
    min-width: 308px;
    height: 33px;
    min-height: 33px;
  }

  .rental-list article > div > p:not(.brush-label) {
    font-size: 18px;
    line-height: 24px;
  }

  .rental-location {
    font-size: 22px;
    line-height: 32px;
    text-align: center;
  }

  .rental-location span {
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
    font-size: 30px;
    line-height: 38px;
  }

  /* Contact form */
  .contact-form form {
    border-radius: 25px;
    background: #fff;
    box-shadow: none;
  }

  .contact-form label {
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
  }

  .contact-form input,
  .contact-form textarea {
    font-family: var(--ts-body);
    font-size: 18px;
    line-height: 24px;
  }

  /* Footer */
  .site-footer,
  body > footer { background-image: none; }

  .footer-grid,
  .legal {
    position: relative;
    z-index: 1;
  }

  .footer-dots-a,
  .footer-dots-b {
    top: 0;
    left: 0;
    width: 576.346px;
    height: 345.808px;
  }

  .footer-dots-a {
    transform: matrix(0, 1, -1, 0, 153.807617, 69.066406);
  }

  .footer-dots-b {
    transform: matrix(-.190105602, -.981763661, .981763661, -.190105602, 1334.56665, 524.642456);
  }

  .footer-grid > div > a,
  .footer-grid > div > span {
    font-family: var(--ts-body);
    font-size: 16px;
    line-height: 24px;
  }

  .legal {
    font-family: var(--ts-body);
    font-size: 16px;
    line-height: 24px;
  }

  .legal span:nth-child(1) {
    font-family: var(--ts-body);
    font-size: 16px;
    line-height: 24px;
  }

  .legal .legal-links {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--ts-heading);
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
  }

  .legal .legal-links img {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
  }

  .legal .legal-links i {
    color: #aeb2b6;
    font-family: var(--ts-body);
    font-style: normal;
    font-weight: 400;
  }

  .legal span:nth-child(3) {
    font-family: var(--ts-heading);
    font-size: 14px;
    font-weight: 600;
    line-height: 24px;
  }
}

/* Pixel audit pass 6 — exact shared Dots artwork and remaining Figma fonts. */
@media (min-width: 1281px) {
  .topline a:nth-child(1),
  .topline a:nth-child(3) {
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 19.2px;
  }

  .topline a:nth-child(2) {
    font-family: var(--ts-heading);
    font-size: 14px;
    font-weight: 600;
    line-height: 24px;
  }

  .figma-dots {
    background-image: url("assets/final/vectors/hero/dots.svg");
  }

  .service-choice,
  .people {
    position: relative;
    background-image: none;
  }

  .service-choice > .container,
  .people > .container {
    position: relative;
    z-index: 1;
  }

  .service-dots,
  .people-dots {
    top: 0;
    left: 0;
  }

  .service-dots-a {
    width: 819px;
    height: 492px;
    background-image: url("assets/final/vectors/services/dots-dark.svg");
    transform: translate(720px, 653px);
  }

  .service-dots-b {
    width: 694px;
    height: 417px;
    background-image: url("assets/final/vectors/services/dots-right.svg");
    /* Figma frame 7948:1575 clips this layer at y = 230px. */
    clip-path: inset(0 196px 248px 0);
    transform: translate(942px, 61px);
  }

  .service-dots-c {
    width: 694px;
    height: 417px;
    background-image: url("assets/final/vectors/services/dots-right.svg");
    /* Figma frame 7960:3416 starts at y = 230px, exposing only the lower slice. */
    clip-path: inset(232px 194px 0 0);
    transform: translate(940px, -2px);
  }

  .service-dots-d {
    width: 418.35638427734375px;
    height: 251.29698181152344px;
    background-image: url("assets/final/vectors/services/dots-lower-left.svg");
    transform: matrix(-.999715507, -.023851193, .023851193, -.999715507, 330.237366, 569.203796);
  }

  .people-dots-a {
    width: 576.346px;
    height: 345.808px;
    transform: matrix(.379477501, -.925200939, .925200939, .379477501, -230, 532.839844);
  }

  .people-dots-b {
    width: 456.011px;
    height: 273.606px;
    transform: matrix(.258819073, -.965925872, .965925872, .258819073, 1218.435547, 1147.814453);
  }

  .venue { background-image: none; }

  .spaces,
  .business-spaces {
    background-image: url("assets/final/vectors/hero/dots.svg");
  }

  /* The following-section dot instance starts above its own frame in Figma.
     A pseudo-element preserves that overlap and its authored rotation. */
  .gastro {
    overflow: visible;
    background-image: none;
  }

  .gastro::after {
    position: absolute;
    top: -116.357px;
    left: calc(50% + 403.011px);
    z-index: 1;
    width: 466.947px;
    height: 280.541px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform: rotate(7.580943deg);
    transform-origin: 0 0;
  }

  .programs,
  .gastro-services {
    background-image: url("assets/final/vectors/hero/dots.svg"), url("assets/final/vectors/hero/dots.svg");
  }

  .timetable {
    background-image: url("assets/final/vectors/hero/dots.svg"), url("assets/final/vectors/hero/dots-dark.svg");
  }
}

/* Pixel audit pass 7 — Figma-exact desktop business solutions section. */
@media (min-width: 1281px) {
  #uzleti-megoldasok {
    height: 961px;
    min-height: 961px;
    padding: 80px 0;
    background-color: #fff;
    background-image: none;
  }

  #uzleti-megoldasok::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 456.0108px;
    height: 273.6065px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 256.375, 811.411133);
    transform-origin: 0 0;
  }

  #uzleti-megoldasok .systems-copy {
    width: 824px;
    max-width: 824px;
    height: 357px;
  }

  #uzleti-megoldasok .systems-copy h2 {
    height: 81px;
    margin: 0 0 24px;
    color: #2f353b;
    font-size: 60px;
    font-weight: 800;
    letter-spacing: .01em;
    line-height: 81px;
  }

  #uzleti-megoldasok .systems-copy h2 em {
    color: #2196a2;
    font-size: 66px;
    font-weight: 400;
    letter-spacing: .01em;
  }

  #uzleti-megoldasok .systems-copy .lead {
    width: 686px;
    height: 76px;
    margin: 0 auto 24px;
    color: #2f353b;
    font-size: 24px;
    font-style: italic;
    font-weight: 600;
    line-height: 38px;
  }

  #uzleti-megoldasok .systems-copy > p:last-child {
    width: 824px;
    height: 120px;
    margin: 0;
    overflow: hidden;
    color: #616572;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 400;
    line-height: 24px;
  }

  #uzleti-megoldasok .system-cards {
    grid-template-columns: repeat(4, 297px);
    gap: 24px;
    margin-top: 24px;
  }

  #uzleti-megoldasok .system-cards article {
    width: 297px;
    height: 420px;
    min-height: 420px;
    padding: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }

  #uzleti-megoldasok .system-cards article:nth-child(1) {
    background-position: -226.738px 0;
    background-size: 550.214px 420px;
  }

  #uzleti-megoldasok .system-cards article:nth-child(4) {
    background-position: -208.43px 0;
    background-size: 584.602px 420px;
  }

  #uzleti-megoldasok .system-cards article::before {
    background: linear-gradient(180deg, rgb(33 38 43 / 0%) 31.61299%, rgb(33 38 43 / 90%) 61.5788%);
  }

  #uzleti-megoldasok .system-cards article:nth-child(n + 2)::before {
    background: linear-gradient(180deg, rgb(47 53 59 / 0%) 21.98939%, rgb(47 53 59 / 90%) 84.75858%);
  }

  #uzleti-megoldasok .system-cards h3 {
    position: absolute;
    top: 301px;
    left: 24px;
    width: 292px;
    height: 34px;
    margin: 0;
    overflow: visible;
    color: #fff;
    font-family: var(--ts-heading);
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 34px;
  }

  #uzleti-megoldasok .system-cards article:nth-child(3) h3 {
    top: 267px;
    width: 249px;
    height: 68px;
  }

  #uzleti-megoldasok .system-cards .btn {
    top: 359px;
    left: 24px;
    width: 154px;
    min-height: 37px;
    padding: 9px 18px;
  }
}

/* Motivation — exact 1440 px Figma image frame and typography. */
@media (min-width: 1281px) {
  .motivation-bg {
    inset: auto;
    top: .06640625px;
    left: 0;
    width: 100%;
    max-width: none;
    height: 971px;
    object-fit: cover;
    object-position: center;
  }

  .motivation-card h2 {
    color: #22b1b8;
    font-size: 58px;
    line-height: 66px;
    letter-spacing: 1px;
  }

  .motivation-card .brush-banner {
    font-style: italic;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 38px;
  }
}

/* Gastro services — reference-matched desktop paint and card internals. */
@media (min-width: 1200px) {
  .gastro-services {
    position: relative;
    background-image: none;
  }

  .gastro-services::before,
  .gastro-services::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 456.011px;
    height: 273.606px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform-origin: 0 0;
  }

  .gastro-services::before {
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 256.375, 811.411);
  }

  .gastro-services::after {
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 1565.375, 161.192);
  }

  .gastro-services .carousel-heading,
  .gastro-services .gastro-carousel {
    position: relative;
    z-index: 1;
  }

  .gastro-track article {
    background-image: var(--program-image, none);
    background-position: center top;
    background-size: auto 420px;
  }

  .gastro-track article:nth-child(1) p,
  .gastro-track article:nth-child(3) p {
    top: 241.285px;
  }
}

/* Rental — desktop raster alignment. */
@media (min-width: 1281px) {
  #berles.rental {
    background-image:
      url("assets/final/vectors/hero/dots.svg"),
      url("assets/final/vectors/hero/dots.svg"),
      url("assets/final/vectors/hero/dots.svg");
    background-position:
      -210px 923px,
      984px 1515px,
      -300px 2128px;
    background-repeat: no-repeat;
    background-size: 456.011px 273.606px;
  }

  #berles .rental-list > article:nth-of-type(1) { transform: translateY(-12px); }
  #berles .rental-list > article:nth-of-type(2) { transform: translateY(-10px); }
  #berles .rental-list > article:nth-of-type(3) { transform: translateY(-6px); }
  #berles .rental-location { transform: translateY(10px); }
}

/* Accessibility-only time headers: preserve the Figma layout and table semantics. */
.timetable-table .row-time {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Figma prototype overlay: Cookie Banners - V3 (1411.572 × 164). */
.cookie-dialog {
  position: fixed;
  inset: auto 0 0;
  width: 100vw;
  max-width: none;
  padding: 14px;
  border: 0;
  margin: 0;
  overflow: visible;
  color: var(--ts-dark);
  background: transparent;
  opacity: 0;
  transform: translateY(calc(100% + 24px));
  transition: opacity 240ms ease, transform 625ms cubic-bezier(.16, 1.22, .36, 1);
}

.cookie-dialog::backdrop {
  background: rgb(30 35 40 / 8%);
  opacity: 0;
  transition: opacity 240ms ease;
}

.cookie-dialog.is-open {
  opacity: 1;
  transform: translateY(0);
}

.cookie-dialog.is-open::backdrop {
  opacity: 1;
}

.cookie-banner {
  display: grid;
  width: min(1411.572px, 100%);
  min-height: 164px;
  grid-template-columns: 85px minmax(0, 1fr) 490px;
  align-items: center;
  gap: 19px;
  padding: 26px 57px;
  border: 1px solid #b3bac6;
  border-radius: 20px;
  margin: 0 auto;
  background: #f6f6f6;
  box-shadow: 0 24px 30px rgb(20 28 37 / 34%);
}

.cookie-art {
  width: 85px;
  height: 84px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 29% 29%, #4c2b19 0 3px, transparent 4px),
    radial-gradient(circle at 68% 25%, #5a321b 0 4px, transparent 5px),
    radial-gradient(circle at 46% 53%, #5a321b 0 3px, transparent 4px),
    radial-gradient(circle at 74% 66%, #4c2b19 0 3px, transparent 4px),
    radial-gradient(circle at 27% 72%, #5a321b 0 4px, transparent 5px),
    radial-gradient(circle at 55% 83%, #4c2b19 0 2px, transparent 3px),
    radial-gradient(circle at 42% 37%, #efb55b, #ca7a2d 72%, #9e5725 100%);
  box-shadow: inset -7px -6px 10px rgb(92 42 14 / 20%), 0 4px 9px rgb(30 35 40 / 12%);
}

.cookie-copy h2 {
  margin: 0 0 2px;
  color: var(--ts-dark);
  font-family: var(--ts-heading);
  font-size: 27px;
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.18;
  text-transform: none;
}

.cookie-copy p {
  max-width: 610px;
  margin: 0;
  color: #3f454b;
  font-size: 16px;
  line-height: 1.58;
}

.cookie-copy a,
.cookie-policy-label {
  color: var(--ts-teal);
}

.cookie-actions {
  display: grid;
  grid-template-columns: 272px 154px 24px;
  align-items: center;
  gap: 20px;
}

.cookie-actions button {
  border: 0;
  font-family: var(--ts-heading);
  font-size: 16px;
  font-weight: 700;
}

.cookie-accept,
.cookie-deny {
  min-height: 56px;
  border-radius: 999px;
  box-shadow: 0 12px 26px rgb(32 39 46 / 12%);
}

.cookie-accept {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #fff;
  background: var(--ts-teal);
}

.cookie-accept img {
  width: 20px;
  height: 20px;
}

.cookie-deny {
  color: var(--ts-dark);
  background: #fff;
}

.cookie-close {
  position: relative;
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
}

.cookie-close span {
  position: absolute;
  top: 11px;
  left: 2px;
  width: 20px;
  height: 2px;
  background: var(--ts-dark);
  transform: rotate(45deg);
}

.cookie-close span:last-child {
  transform: rotate(-45deg);
}

/* Separate Impresszum screen from the Figma prototype (1440 × 1903). */
.imprint-main {
  min-height: 1184px;
  padding: 400px 16px 128px;
  color: var(--ts-dark);
  background: #fff;
}

.imprint-content {
  position: relative;
  width: min(824px, 100%);
  margin: 0 auto;
  text-align: center;
}

.imprint-kicker {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 186px;
  height: 33px;
  margin: 0;
  place-items: center;
  color: #f5f7f8;
  background: #2196a2;
  font-family: var(--ts-body);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .72px;
  line-height: 24px;
  -webkit-mask: url("assets/final/vectors/brush/brush-9.svg") center / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/brush-9.svg") center / 100% 100% no-repeat;
}

.imprint-content h1 {
  margin: 0 0 64px;
  font-family: var(--ts-heading);
  font-size: 60px;
  font-weight: 800;
  letter-spacing: 1px;
  line-height: 72px;
}

.imprint-details {
  margin: 0;
  color: #616572;
  font-size: 18px;
  letter-spacing: .02em;
  line-height: 24px;
}

.imprint-details strong {
  color: inherit;
  font-weight: 700;
  letter-spacing: .04em;
}

.imprint-details .imprint-highlight {
  color: #22b1b8;
  text-transform: uppercase;
}

@media (max-width: 1100px) {
  .cookie-banner {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 18px 24px;
    padding: 24px 30px;
  }

  .cookie-art {
    width: 64px;
    height: 64px;
  }

  .cookie-actions {
    grid-column: 1 / -1;
    justify-content: end;
  }
}

@media (max-width: 760px) {
  .cookie-dialog {
    padding: 8px;
  }

  .cookie-banner {
    min-height: 0;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 15px;
    padding: 22px 18px 18px;
    border-radius: 16px;
  }

  .cookie-art {
    width: 52px;
    height: 52px;
  }

  .cookie-copy h2 {
    padding-right: 24px;
    font-size: 20px;
  }

  .cookie-copy p {
    grid-column: 1 / -1;
    font-size: 14px;
    line-height: 1.45;
  }

  .cookie-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    justify-content: stretch;
  }

  .cookie-actions button {
    font-size: 12px;
  }

  .cookie-accept,
  .cookie-deny {
    min-height: 48px;
  }

  .cookie-close {
    position: absolute;
    top: 23px;
    right: 21px;
  }

  .imprint-main {
    min-height: auto;
    padding: 120px 24px 110px;
  }

  .imprint-content h1 {
    margin-bottom: 48px;
    font-size: 44px;
    line-height: 1.1;
  }

  .imprint-kicker {
    position: relative;
    margin: 0 auto 24px;
  }

  .imprint-details {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-dialog {
    transition: none;
  }
}

/* Final node-level typography and paint corrections from the local .fig source. */
@media (min-width: 1281px) {
  .site-header .brand {
    width: 96px;
    height: 96px;
    flex: 0 0 96px;
  }

  .site-header .brand img {
    width: 96px;
    height: 96px;
  }

  .hero-copy > .hero-description {
    font-family: var(--ts-heading);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 1px;
    line-height: 32px;
  }

  .hero-copy > .hero-description strong {
    color: #22b1b8;
    font-family: var(--ts-body);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: .44px;
  }

  .hero-copy .hero-line {
    display: block;
    white-space: nowrap;
  }

  .arrival h2 {
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 66px;
  }

  .arrival h2 em {
    color: #22b1b8;
    font-size: 58px;
    letter-spacing: 1px;
    line-height: 66px;
  }

  .timetable-heading h2 em {
    color: #22b1b8;
    font-size: 56px;
    letter-spacing: .56px;
    line-height: 56px;
  }

  .values-heading h2 {
    font-weight: 800;
    letter-spacing: .48px;
    line-height: 56px;
  }

  .values-heading h2 em {
    color: #22b1b8;
    font-size: 56px;
    letter-spacing: .56px;
    line-height: 56px;
  }

  .testimonial-layout > h2 {
    font-weight: 800;
    letter-spacing: .36px;
    line-height: 46px;
  }

  .testimonial-layout > h2 em {
    color: #22b1b8;
    font-size: 36px;
    letter-spacing: .36px;
    line-height: 46px;
  }

  .careers > .section-heading h2 {
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 72px;
  }

  .careers > .section-heading h2 em {
    color: #22b1b8;
    font-size: 66px;
    letter-spacing: .66px;
    line-height: 72px;
  }

  .rental-head h2,
  .people .section-heading h2 {
    color: #22b1b8;
    font-family: var(--ts-brush);
    font-size: 66px;
    font-weight: 400;
    letter-spacing: .66px;
    line-height: 81px;
  }

  .map-section .section-heading > h2 {
    font-weight: 800;
    letter-spacing: .48px;
    line-height: 56px;
  }

  .contact-form h2 {
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 72px;
  }

  .contact-form form {
    background: #f6f6f6;
  }

  .career-intro {
    position: relative;
  }

  .career-intro::before {
    position: absolute;
    top: 0;
    left: 501.14px;
    z-index: 1;
    width: 116.86px;
    height: 460px;
    background: linear-gradient(90deg, rgb(245 247 248 / 0%) 0%, #f5f7f8 100%);
    content: "";
    pointer-events: none;
  }

  .career-intro > div {
    position: relative;
    z-index: 2;
  }

  .footer-dots-a {
    filter: brightness(0) invert(1);
  }

  .contact-photo-wash {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: 914px;
    height: 1234px;
    background:
      linear-gradient(86deg, #e9dfda 1.16%, rgb(220 205 197 / 0%) 38.02%),
      linear-gradient(180deg, #e9dfda 0%, rgb(233 223 218 / 0%) 12.77%);
    pointer-events: none;
  }
}

@media (max-width: 1280px) {
  .contact-photo-wash {
    display: none;
  }
}

/* Final measured Figma corrections: image crops, overlays and exact desktop text scale. */
@media (min-width: 1281px) {
  .program-track article {
    background-image: var(--program-image, none);
  }

  #uzleti-megoldasok .system-cards article:nth-child(1) {
    background-position: -259.54px 0;
    background-size: 629.74px 420px;
  }

  #uzleti-megoldasok .system-cards article:nth-child(2) {
    background-position: -144.88px 0;
    background-size: 629.64px 420px;
  }

  #uzleti-megoldasok .system-cards article:nth-child(3) {
    background-position: 0 -44.97px;
    background-size: 339.98px 509.96px;
  }

  #uzleti-megoldasok .system-cards article:nth-child(4) {
    background-position: -144.78px 0;
    background-size: 629.52px 420px;
  }

  .map-photo {
    width: 388px;
    height: 293px;
    border-radius: 24px;
  }

  .map-grid > article:first-child .map-photo > img {
    position: absolute;
    top: -66.11px;
    left: -67.92px;
    width: 723.81px;
    max-width: none;
    height: 482.64px;
    object-fit: fill;
  }

  .map-grid > article:last-child .map-photo > img {
    position: absolute;
    top: -116.44px;
    left: -106.40px;
    width: 919.38px;
    max-width: none;
    height: 516.69px;
    object-fit: fill;
  }

  .person-visual {
    top: 5px;
    height: 518px;
  }

  .arrival h2,
  .arrival h2 em {
    font-size: 60px;
    line-height: 81px;
  }

  .arrival h2 {
    top: 220px;
  }

  .motivation::after {
    background: rgb(47 53 59 / 20%);
  }

  .motivation-card h2 {
    color: #fff;
  }

  .legal {
    margin-top: 182px;
  }
}

/* Figma-authored prototype motion and component states. */
:root {
  --figma-in-cubic: cubic-bezier(.42, 0, 1, 1);
  --figma-out-cubic: cubic-bezier(0, 0, .58, 1);
  --figma-motion-fast: 300ms;
}

html {
  scroll-behavior: auto;
}

/* Main navigation: DISSOLVE / OUT_CUBIC / 300 ms. */
.site-header nav a::after {
  content: none;
}

.site-header nav a {
  transition:
    color var(--figma-motion-fast) var(--figma-out-cubic),
    background-color var(--figma-motion-fast) var(--figma-out-cubic);
}

@media (hover: hover) and (pointer: fine) {
  .site-header nav a:hover {
    color: #f6f6f6;
    background: #2196a2;
  }
}

.site-header nav a:focus-visible {
  color: #f6f6f6;
  background: #2196a2;
}

/* Header logo and utility icons use authored instant state swaps. */
.site-header .brand img[src*="header-logo.svg"] {
  transition: none;
}

@media (hover: hover) and (pointer: fine) {
  .site-header .brand:hover img[src*="header-logo.svg"] {
    content: url("assets/final/logos/header-logo-hover.svg");
  }
}

.site-header .brand:focus-visible img[src*="header-logo.svg"] {
  content: url("assets/final/logos/header-logo-hover.svg");
}

.nav-icon {
  position: relative;
}

.nav-icon img {
  display: block;
  opacity: 1;
  filter: none;
}

.nav-icon::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 26px;
  height: 26px;
  background: #f6f6f6;
  content: "";
  transform: translate(-50%, -50%);
  transition: none;
}

/* Always render the exported Figma glyph itself. This avoids mask failures in
   local/file previews and browsers that block external SVG masks. */
.nav-icon::before {
  display: none;
}

.nav-icon[href$="#orarend"]::before {
  -webkit-mask: url("assets/final/icons/calendar-2.svg") center / contain no-repeat;
  mask: url("assets/final/icons/calendar-2.svg") center / contain no-repeat;
}

.nav-icon[href$="#terkep"]::before {
  -webkit-mask: url("assets/final/icons/location.svg") center / contain no-repeat;
  mask: url("assets/final/icons/location.svg") center / contain no-repeat;
}

.nav-icon span {
  box-sizing: border-box;
  border-bottom: 3px solid transparent;
  transition: none;
}

@media (min-width: 1025px) {
  .nav-tools {
    gap: 0;
  }

  .nav-tools > a.nav-icon {
    position: relative;
    display: block;
    width: 50px;
    height: 96px;
    flex: 0 0 50px;
  }

  .nav-tools > a.nav-icon > img {
    position: absolute;
    top: 30px;
    left: 12px;
    width: 26px;
    height: 26px;
  }

  .nav-tools > a.nav-icon > span {
    position: absolute;
    top: 61px;
    right: auto;
    left: 2px;
    display: grid;
    width: 46px;
    height: 26px;
    color: #22b1b8;
    place-items: center;
    border-bottom: 3px solid transparent;
    font-family: var(--ts-heading);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .35px;
    line-height: 12px;
    text-align: center;
    text-transform: uppercase;
    opacity: 0;
    pointer-events: none;
    transition: none;
  }

  .nav-tools > a.nav-icon[href$="#terkep"] > span {
    left: 8px;
    width: 34px;
  }
}

/* Designer-final visual corrections -------------------------------------- */
.topline {
  position: relative;
  z-index: 1100;
  background: #20747e;
  box-shadow: none;
}

.choice-card p {
  color: #616572;
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
}

.intro-copy > .brush-label {
  color: #f6f6f6;
}

.timetable-heading .brush-label {
  color: #fff;
}

/* Keep the Figma-exported venue label visible when the static page is opened
   directly from disk: an external SVG mask can hide the text under file://. */
.venue-copy > .brush-label,
.split-feature > div:not(.gastro-photo) > .brush-label {
  -webkit-mask: none;
  mask: none;
  padding: 0;
  background-color: transparent;
  background-image: url("assets/final/vectors/brush/label-113.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.venue-copy > .brush-label {
  letter-spacing: 0;
}

@media (min-width: 1025px) and (max-width: 1280px) {
  .gastro .split-feature > div:not(.gastro-photo) > .brush-label {
    width: 113px;
    min-width: 113px;
    max-width: 113px;
    height: 33px;
    min-height: 33px;
    max-height: 33px;
    padding: 0;
    margin: 0 0 24px;
    color: #2f353b;
    font-family: var(--ts-body);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .72px;
    line-height: 24px;
  }
}

.space-grid,
.business-space-grid,
.timetable-scroll,
.edge-carousel,
.gastro-carousel {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.space-grid::-webkit-scrollbar,
.business-space-grid::-webkit-scrollbar,
.timetable-scroll::-webkit-scrollbar,
.edge-carousel::-webkit-scrollbar,
.gastro-carousel::-webkit-scrollbar {
  display: none;
}

.venue-copy h2,
.split-feature h2 {
  text-transform: none;
}

.venue-copy .actions .btn:first-child,
.split-feature .actions .btn:first-child {
  padding-inline: 22px;
  white-space: nowrap;
}

@media (min-width: 1281px) {
  .topline,
  .topline .container {
    height: 42px;
    min-height: 42px;
  }

  .topline {
    margin-bottom: 2px;
  }

  .choice-card p {
    height: 22px;
    min-height: 0;
    overflow: visible;
    font-size: 18px;
    line-height: 30px;
  }

  .choice-card:nth-child(1) .btn { width: 197px; }
  .choice-card:nth-child(2) .btn { width: 203px; }
  .choice-card:nth-child(3) .btn { width: 206px; }
  .choice-card:nth-child(4) .btn { width: 211px; }

  .trust-grid h3 {
    font-size: 22px;
    line-height: 28px;
  }

  .trust-grid article + article::before {
    top: 109px;
    bottom: auto;
    left: -24px;
    width: 1px;
    height: 80px;
    background: #dee2e7;
  }

  .arrival h2 {
    left: 300px;
  }

  .venue-copy .venue-info ul,
  .split-feature .venue-info ul {
    padding: 0;
    list-style: none;
  }

  .venue-copy .venue-info li::before,
  .split-feature .venue-info li::before {
    content: "• ";
  }

  .venue-copy .actions .btn {
    height: 53px;
    min-height: 53px;
    white-space: nowrap;
  }

  .spaces {
    background-image: none;
  }

  .spaces::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 427px;
    height: 256px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform: matrix(.49999997, -.86602545, .86602545, .49999997, -186, 477.792877);
    transform-origin: 0 0;
  }

  .spaces > .space-grid {
    position: relative;
    z-index: 1;
  }

  .space-grid article > strong {
    display: block;
    align-self: stretch;
    width: 204px;
    text-align: right;
  }

  .space-grid article:first-child > strong {
    font-size: 40px;
  }

  .space-grid article:nth-child(1) p,
  .space-grid article:nth-child(3) p {
    font-size: 16px;
    line-height: 24px;
  }

  .programs {
    background-image: none;
    overflow: visible;
  }

  .programs::before,
  .programs::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 456.010773px;
    height: 273.606476px;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform-origin: 0 0;
  }

  .programs::before {
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 256.375, 811.411);
  }

  .programs::after {
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 1565.375, 161.192);
  }

  .programs > .container,
  .programs > .edge-carousel,
  .programs > .carousel-controls {
    position: relative;
    z-index: 1;
  }

  .program-track article::after {
    top: 0;
    left: 0;
    width: 205.987946px;
    height: 80.135048px;
    background-color: #2196a2;
    -webkit-mask: url("assets/final/vectors/brush/program-card-brush.svg") 0 0 / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/program-card-brush.svg") 0 0 / 100% 100% no-repeat;
    transform: matrix(-.835006952, -.550239444, .550239444, -.835006952, 68.820221, 170.322418);
    transform-origin: 0 0;
  }

  .timetable-table td:not(:empty) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/trx.svg");
    background-position: 0 0, 4px 4px;
    background-repeat: no-repeat;
    background-size: auto, 40px 40px;
  }

  .timetable-table tbody tr:nth-child(1) td:nth-child(4),
  .timetable-table tbody tr:nth-child(2) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(5),
  .timetable-table tbody tr:nth-child(3) td:nth-child(6) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/core-power.svg");
  }

  .timetable-table tbody tr:nth-child(3) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(4) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/bosu-core.svg");
  }

  .timetable-table tbody tr:nth-child(4) td:nth-child(5) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/smr.svg");
  }

  #berles.rental {
    overflow: hidden;
    background-image: none;
  }

  #berles.rental > .container {
    position: relative;
    z-index: 1;
  }

  #berles .rental-dots {
    top: 0;
    left: 0;
    width: 456.010773px;
    height: 273.606476px;
    background-image: url("assets/final/vectors/hero/dots.svg");
    transform-origin: 0 0;
  }

  #berles .rental-dots-a {
    transform: matrix(-.210989073, -.977488458, .977488458, -.210989073, 18.212891, 1396.795898);
  }

  #berles .rental-dots-b {
    transform: matrix(-.879857719, .47523731, -.47523731, -.879857719, 1517.251953, 1527.800781);
  }

  #berles .rental-dots-c {
    transform: matrix(.939672709, -.34207499, .34207499, .939672709, -105, 2156.056641);
  }

  /* Exact vector labels exported from the supplied .fig source. */
  #berles .rental-list .brush-label,
  .map-section .section-heading > .brush-label,
  .careers > .section-heading .brush-label,
  .footer-grid h2 {
    -webkit-mask: none;
    mask: none;
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
  }

  #berles .rental-list .brush-label {
    background-image: url("assets/final/vectors/brush/label-rental-308.svg");
  }

  .map-section .section-heading > .brush-label {
    background-image: url("assets/final/vectors/brush/label-113.svg");
  }

  .careers > .section-heading .brush-label {
    background-image: url("assets/final/vectors/brush/label-225.svg");
  }

  .footer-grid h2 {
    background-image: url("assets/final/vectors/brush/label-footer-200.svg");
  }

  .footer-grid > div:nth-child(2) h2 {
    width: 200px;
    min-width: 200px;
  }

  .footer-grid > div:nth-child(3) h2 {
    width: 119px;
    min-width: 119px;
  }

  .footer-grid > div:nth-child(4) h2 {
    width: 152px;
    min-width: 152px;
  }

  #berles .rental-list > article.reverse > div {
    padding-left: 24px;
  }

  #berles .rental-list .btn {
    width: 205px;
    min-height: 53px;
  }

  .person-visual::before {
    inset: auto;
    top: 0;
    left: 0;
    width: 433.648499px;
    height: 213.039276px;
    background: transparent url("assets/final/vectors/brush/person-card.svg") 0 0 / 100% 100% no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: matrix(-.859995365, .510301948, -.510301948, -.859995365, 442.650055, 233.816299);
    transform-origin: 0 0;
  }

  .map-section > .section-heading {
    transform: translateX(12px);
  }

  #karrier.careers {
    overflow: visible;
    background-image: none;
  }

  #karrier.careers > .container {
    position: relative;
    z-index: 1;
  }

  #karrier .career-dots {
    top: 0;
    left: 0;
    width: 456.010773px;
    height: 273.606476px;
    background-image: url("assets/final/vectors/hero/dots.svg");
    transform-origin: 0 0;
  }

  #karrier .career-dots-a {
    transform: matrix(-.998485029, .055024929, -.055024929, -.998485029, 272.375, 300.258789);
  }

  #karrier .career-dots-b {
    transform: matrix(.705172062, -.709036291, .709036291, .705172062, 1192, 1226.394653);
  }

  #karrier .career-dots-c {
    transform: matrix(-.808941841, -.587888718, .587888718, -.808941841, 1480.886719, 1274.481445);
  }

  .careers > .section-heading h2 em {
    display: inline-block;
    color: #2196a2;
    transform: translateY(8px);
  }

  .contact-form .btn {
    transform: translateY(-6px);
  }

  .split-feature .actions .btn {
    height: 53px;
    min-height: 53px;
    white-space: nowrap;
  }

  .business-space-grid article > strong {
    height: 49px;
    line-height: 49.24px;
    letter-spacing: .4px;
    text-align: right;
  }

  .values-heading > p {
    font-weight: 600;
  }

  .values-grid article:first-child p {
    color: #f6f6f6;
    font-family: var(--ts-heading);
    font-size: 14px;
    font-weight: 600;
    line-height: 24px;
  }

  .values-grid article:nth-child(2) p {
    color: #d5f8f7;
    font-weight: 500;
  }

  .values-grid article:nth-child(n + 3) p {
    color: #f6f6f6;
    font-weight: 500;
  }

  #uzleti-megoldasok .systems-copy .lead {
    font-size: 22px;
    line-height: 32px;
  }

  #uzleti-megoldasok .systems-copy > p:last-child {
    font-size: 16px;
    line-height: 24px;
  }
}

@media (min-width: 1200px) {
  .gastro-track article {
    background-position: calc(50% + 21.5px) 0;
  }
}

@media (hover: hover) and (pointer: fine) {
  .nav-tools > a.nav-icon:hover > span {
    opacity: 1;
    border-bottom-color: #22b1b8;
    color: #22b1b8;
  }
}

.nav-tools > a.nav-icon:focus-visible > span {
  opacity: 1;
  border-bottom-color: #22b1b8;
  color: #22b1b8;
}

/* Buttons: literal two-state dissolve, without lift or diagonal arrow motion. */
.figma-arrow-button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: none;
}

.figma-arrow-button.figma-button-in {
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.figma-arrow-button::before,
.figma-arrow-button::after {
  position: absolute;
  z-index: 2;
  opacity: 0;
  content: "";
  pointer-events: none;
}

.figma-arrow-button::before {
  inset: -1px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* The normal label is centred together with an 11 px gap and a 16 px
     arrow. Keep the dissolving hover copy on that exact same centre line. */
  padding: 0 57px 0 30px;
  border: 1px solid #20747e;
  border-radius: inherit;
  color: #f6f6f6;
  background: #20747e;
  content: attr(data-figma-label);
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: center;
  text-transform: inherit;
  white-space: nowrap;
}

.figma-arrow-button::after {
  top: 50%;
  right: 16px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #2196a2 url("assets/final/icons/arrow-right.svg") center / 16px 16px no-repeat;
  transform: translateY(-50%);
}

.figma-arrow-button.figma-button-in,
.figma-arrow-button.figma-button-in > .cta-arrow,
.figma-arrow-button.figma-button-in::before,
.figma-arrow-button.figma-button-in::after {
  transition: color var(--figma-motion-fast) var(--figma-in-cubic), opacity var(--figma-motion-fast) var(--figma-in-cubic);
}

.figma-arrow-button.figma-button-out,
.figma-arrow-button.figma-button-out > .cta-arrow,
.figma-arrow-button.figma-button-out::before,
.figma-arrow-button.figma-button-out::after {
  transition: color var(--figma-motion-fast) var(--figma-out-cubic), opacity var(--figma-motion-fast) var(--figma-out-cubic);
}

.figma-arrow-button.figma-button-instant,
.figma-arrow-button.figma-button-instant > .cta-arrow,
.figma-arrow-button.figma-button-instant::before,
.figma-arrow-button.figma-button-instant::after {
  transition: none;
}

@media (hover: hover) and (pointer: fine) {
  .figma-arrow-button:hover,
  .figma-arrow-button.btn-outline:hover {
    border-color: currentColor;
    color: transparent;
    background: inherit;
    transform: none;
  }

  .figma-arrow-button:not(.btn-outline):hover {
    border-color: #2196a2;
    background: #2196a2;
  }

  .figma-arrow-button:hover > .cta-arrow {
    opacity: 0;
    transform: none;
  }

  .figma-arrow-button:hover::before,
  .figma-arrow-button:hover::after {
    opacity: 1;
  }
}

.figma-arrow-button:focus-visible,
.figma-arrow-button.btn-outline:focus-visible {
  color: transparent;
  background: inherit;
  transform: none;
}

.figma-arrow-button:focus-visible > .cta-arrow {
  opacity: 0;
  transform: none;
}

.figma-arrow-button:focus-visible::before,
.figma-arrow-button:focus-visible::after {
  opacity: 1;
}

.cta-arrow,
.btn:hover .cta-arrow,
a:hover .cta-arrow {
  transform: none !important;
}

/* Figma 8402:3121 -> 7847:4687: the 82 px Béreld ki override swaps
   instantly from a 142 px outline state to its derived 164 px filled state. */
.venue-rent-cta {
  width: 142px;
  min-width: 142px;
  height: 53px;
  min-height: 53px;
}

.venue-rent-cta > .cta-arrow {
  display: none;
}

.venue-rent-cta::before {
  justify-content: flex-start;
  padding: 0 52px 0 30px;
}

@media (hover: hover) and (pointer: fine) {
  .venue-copy .actions .venue-rent-cta:hover,
  .split-feature .actions .venue-rent-cta:hover {
    width: 164px;
  }
}

.venue-copy .actions .venue-rent-cta:focus-visible,
.split-feature .actions .venue-rent-cta:focus-visible {
  width: 164px;
}

.program-track a,
.gastro-track a {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 40px;
  transition: none;
}

.program-track a .cta-arrow,
.gastro-track a .cta-arrow {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
  margin-left: 6px;
  background-size: 16px 16px;
  transition: none;
}

@media (hover: hover) and (pointer: fine) {
  .gastro-track a:hover .cta-arrow,
  .gastro-track a:focus-visible .cta-arrow {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    border-radius: 50%;
    background-color: #22b1b8;
    background-image: url("assets/final/icons/arrow-right.svg");
  }
}

/* Cards and boxes use their authored instant/dissolve state swaps. */
.choice-card {
  --choice-shadow: 0 12px 28px rgb(0 0 0 / 9%);
  border: 1px solid #edf0f2;
  box-shadow: var(--choice-shadow);
  transition: none;
}

.choice-card:nth-child(n) {
  transform: translateY(var(--choice-rise));
}

@media (min-width: 1281px) {
  .choice-card {
    --choice-shadow: 0 2px 6px rgb(20 20 43 / 6%);
  }
}

@media (hover: hover) and (pointer: fine) {
  .choice-card:hover,
  .choice-card:nth-child(n):hover,
  .choice-card:focus-within,
  .choice-card:nth-child(n):focus-within {
    border-color: #22b1b8;
    box-shadow: inset 0 0 0 3px #22b1b8, var(--choice-shadow);
    transform: translateY(var(--choice-rise));
  }

  .system-cards article:hover,
  .system-cards article:focus-within {
    box-shadow: inset 0 0 0 4px #2196a2;
  }

  .system-cards article:hover::before,
  .system-cards article:focus-within::before {
    background: rgb(33 38 43 / 85%);
  }
}

.gastro-track article::before,
.gastro-track .figma-card-hover,
.gastro-track article {
  transition: opacity var(--figma-motion-fast) var(--figma-out-cubic), box-shadow var(--figma-motion-fast) var(--figma-out-cubic);
}

.gastro-track .figma-card-hover {
  position: absolute !important;
  inset: 0;
  z-index: 0 !important;
  border-radius: inherit;
  background: rgb(33 38 43 / 85%);
  opacity: 0;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .gastro-track article:hover,
  .gastro-track article:focus-within {
    box-shadow: inset 0 0 0 4px #2196a2;
  }

  .gastro-track article:hover::before,
  .gastro-track article:focus-within::before {
    opacity: 0;
  }

  .gastro-track article:hover .figma-card-hover,
  .gastro-track article:focus-within .figma-card-hover {
    opacity: 1;
  }
}

/* Smart Animate pictograms: only the 10% teal ellipse grows; the icon stays fixed. */
.motion-pictogram {
  position: relative;
  z-index: 0;
  display: block;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  overflow: visible;
}

.motion-pictogram::before {
  position: absolute;
  top: -6px;
  left: -6px;
  z-index: -1;
  width: 38.4px;
  height: 38.4px;
  border-radius: 50%;
  background: rgb(34 177 184 / 10%);
  content: "";
  transition:
    top var(--figma-motion-fast) var(--figma-in-cubic),
    left var(--figma-motion-fast) var(--figma-in-cubic),
    width var(--figma-motion-fast) var(--figma-in-cubic),
    height var(--figma-motion-fast) var(--figma-in-cubic);
}

.motion-pictogram > img,
.trust-grid .motion-pictogram > img,
.venue-info .motion-pictogram > img,
.career-grid .motion-pictogram > img {
  position: relative;
  z-index: 1;
  width: 48px;
  height: 48px;
  margin: 0;
  object-fit: contain;
}

.trust-grid .motion-pictogram,
.career-grid .motion-pictogram {
  margin: 0 auto 16px;
}

.venue-info .motion-pictogram {
  margin: 0 0 16px;
}

@media (hover: hover) and (pointer: fine) {
  .motion-pictogram:hover::before {
    top: -11px;
    left: -11px;
    width: 70px;
    height: 70px;
  }

  .motion-pictogram--ido:hover::before {
    left: -12px;
  }
}

/* Hero mouse component: authored instant state swap. */
.mouse-icon,
.scroll-hint:hover .mouse-icon,
.scroll-hint:focus-visible .mouse-icon {
  transition: none;
  transform: none;
}

/* Cookie overlay: MOVE_FROM_BOTTOM spring is sampled in script.js. */
.cookie-dialog,
.cookie-dialog.is-open {
  opacity: 1;
  transform: none;
  transition: none;
}

.cookie-dialog::backdrop,
.cookie-dialog.is-open::backdrop {
  background: rgb(0 0 0 / 25%);
  opacity: 1;
  transition: none;
}

.cookie-banner {
  background: #fff;
  box-shadow: none;
}

.cookie-accept,
.cookie-deny {
  box-shadow: 0 4px 10px rgb(20 20 43 / 4%);
  transition: none;
}

.cookie-accept {
  min-height: 56px;
}

.cookie-deny {
  min-height: 53px;
}

@media (hover: hover) and (pointer: fine) {
  .cookie-accept:hover {
    background: #20747e;
  }

  .cookie-deny:hover {
    color: #fff;
    background: #30353b;
  }
}

.cookie-accept:focus-visible {
  background: #20747e;
}

.cookie-deny:focus-visible {
  color: #fff;
  background: #30353b;
}

/* Keep the authored 1440×400 service-to-introduction brush on laptops too.
   This direct, pre-coloured SVG is intentionally not a CSS mask: it remains
   visible in local previews and in browsers that temporarily drop SVG masks. */
@media (min-width: 1025px) {
  .intro.torn-top::before {
    top: -400px;
    right: 0;
    left: 0;
    height: 400px;
    background:
      linear-gradient(var(--ts-paper), var(--ts-paper)) center bottom / 100% 6px no-repeat,
      url("assets/final/vectors/brush/divider-paper-1440x400.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: none;
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  .intro.torn-top::before {
    top: -27.777778vw;
    height: calc(27.777778vw + 2px);
  }
}

/* Arrival divider: use the authored paper-coloured SVG directly instead of
   an external CSS mask, so the brush edge also renders in file:// previews. */
@media (min-width: 1025px) {
  .arrival::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 4;
    display: block;
    width: auto;
    height: 200px;
    background:
      linear-gradient(var(--ts-paper), var(--ts-paper)) center top / 100% 3px no-repeat,
      url("assets/final/vectors/brush/divider-paper-1440x152.svg?v=seam-fit-20260905") center top / 100% 152px no-repeat;
    content: "";
    pointer-events: none;
    -webkit-mask: none;
    mask: none;
    transform: none;
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  .arrival::before {
    height: 13.888889vw;
    background-size: 100% 10.555556vw;
  }
}

/* Figma header paint (Fejléc 7943:17089): #2F353B at 80%, 4 px
   background blur, no shadow. Sticky scrolling does not change the paint. */
@media (min-width: 1025px) {
  .site-header,
  .site-header.scrolled {
    background: rgb(47 53 59 / 80%);
    box-shadow: none;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
  }
}

/* Figma room-card interaction (Cards 8430:3322): each 252×448.358 card
   dissolves to its clean photo in 300 ms without moving or resizing. */
.space-grid article::before {
  position: absolute;
  inset: 0;
  z-index: 2;
  background-image: var(--space-image, none);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  opacity: 0;
  pointer-events: none;
  transition: opacity 300ms cubic-bezier(0, 0, .58, 1);
}

.space-card-cta {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 3;
  display: inline-flex;
  width: 144px;
  height: 37px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 30px;
  color: #f6f6f6;
  background: #2196a2;
  font-family: var(--ts-heading);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  text-decoration: none;
  transform: translate(0, 0);
  transition:
    opacity 300ms cubic-bezier(0, 0, .58, 1),
    width 300ms cubic-bezier(.42, 0, 1, 1),
    height 300ms cubic-bezier(.42, 0, 1, 1),
    transform 300ms cubic-bezier(.42, 0, 1, 1),
    background-color 300ms cubic-bezier(.42, 0, 1, 1);
}

.space-card-cta .cta-arrow {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
  margin-left: 0;
}

@media (hover: hover) and (pointer: fine) {
  .space-grid article:hover::before,
  .space-grid article:focus-within::before,
  .space-grid article:focus-visible::before {
    opacity: 1;
  }

  .space-grid article:hover > .space-card-cta,
  .space-grid article:focus-within > .space-card-cta,
  .space-grid article:focus-visible > .space-card-cta {
    opacity: 1;
    pointer-events: auto;
  }

  .space-card-cta:hover,
  .space-card-cta:focus-visible {
    width: 154px;
    height: 53px;
    background: #20747e;
    /* The button grows around its visual centre, so its label does not jump. */
    transform: translate(-5px, 8px);
    outline: none;
  }
}

@media (min-width: 1281px) {
  .space-grid article:nth-child(4)::before {
    background-position: -322.401px 0;
    background-size: 266.826195% 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .space-grid article::before,
  .space-card-cta {
    transition: none;
  }
}

/* Program-card photo swapping was removed at the client's request (2026-09-07).
   The shared shade-and-outline interaction is defined at the end of the file. */

/* Figma programs -> timetable divider (instance 10165:4665).
   The 1440 x 200 export contains the exact mirrored 152 px paint edge plus
   its 48 px paper continuation. Keeping the paint inside one SVG makes the
   divider render identically in HTTP and local file:// previews. */
.timetable.torn-top::before {
  background: transparent url("assets/final/vectors/brush/divider-programs-timetable-1440x200.svg?v=seam-fit-20260905") center top / 100% 100% no-repeat;
  -webkit-mask: none;
  mask: none;
  transform: scaleX(-1);
}

@media (min-width: 1025px) and (max-width: 1280px) {
  .timetable.torn-top::before {
    top: -13.888889vw;
    height: 13.888889vw;
  }
}

@media (min-width: 1281px) {
  .timetable.torn-top::before {
    top: -200px;
    right: 0;
    left: 0;
    height: 200px;
  }
}

/* Figma divider completion — every authored paint edge below the timetable.
   These pre-coloured SVGs contain the exact 82-path Figma brush geometry.
   They deliberately avoid external CSS masks so file:// and HTTP previews
   render the same torn transitions. */
@media (min-width: 1025px) {
  .partners.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before {
    right: 0;
    left: 0;
    background-color: #fff;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    box-shadow: 0 -3px 0 #2f353b;
    -webkit-mask: none;
    mask: none;
    transform: scaleX(-1);
  }

  .partners,
  .testimonials,
  .careers,
  .people,
  .map-section {
    background-color: #fff;
  }

  .gastro {
    box-shadow: 0 -3px 0 #2f353b;
  }

  .rental {
    box-shadow: 0 -3px 0 #fff;
  }

  .contact-form {
    box-shadow: 0 -3px 0 #e9dfda;
  }

  .site-footer,
  body > footer {
    box-shadow: 0 -3px 0 #2f353b;
  }

  .careers.torn-top::before {
    right: 0;
    left: 0;
    background: transparent url("assets/final/vectors/brush/divider-paper-brush-safe-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: rotate(180deg);
  }

  .timetable::after,
  .testimonials::after,
  .motivation::before,
  .rental::before,
  .map-section::after,
  .contact-form::after {
    position: absolute;
    right: 0;
    left: 0;
    z-index: 4;
    display: block;
    width: auto;
    height: 200px;
    content: "";
    pointer-events: none;
    -webkit-mask: none;
    mask: none;
  }

  .timetable::after {
    bottom: 0;
    background: transparent url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    transform: scaleY(-1);
  }

  .testimonials::after {
    bottom: 0;
    background: transparent url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    transform: scaleY(-1);
  }

  .motivation::before {
    top: 0;
    background: transparent url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    transform: none;
  }

  .rental::before {
    top: 0;
    background: transparent url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    transform: scaleX(-1);
  }

  .map-section::after {
    bottom: 0;
    background-color: #fff;
    background-image: url("assets/final/vectors/brush/divider-beige-brush-safe-1440x200.svg?v=seam-fit-20260905");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    transform: rotate(180deg);
  }

  .contact-form::after {
    bottom: 0;
    background: transparent url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    filter: none;
    transform: rotate(180deg);
  }

  .partner-grid {
    position: relative;
  }

  .partner-grid::after {
    position: absolute;
    z-index: 3;
    display: block;
    height: 152px;
    background: transparent url("assets/final/vectors/brush/divider-paper-brush-safe-1440x152.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    -webkit-mask: none;
    mask: none;
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  .partners.torn-top::before {
    top: -14.791667vw;
    height: 14.791667vw;
    background-size: 100% 13.888889vw;
  }

  .testimonials.torn-top::before,
  .careers.torn-top::before,
  .people.torn-top::before {
    top: -13.888889vw;
    height: 13.888889vw;
  }

  .timetable::after,
  .testimonials::after,
  .motivation::before,
  .rental::before,
  .map-section::after,
  .contact-form::after {
    height: 13.888889vw;
  }

  .partner-grid::after {
    top: calc(100% + 85px);
    left: 50%;
    width: 100vw;
    height: 10.555556vw;
    transform: translateX(-50%);
  }
}

@media (min-width: 1281px) {
  .partners.torn-top::before {
    top: -213px;
    height: 213px;
    background-size: 100% 200px;
  }

  .testimonials.torn-top::before,
  .careers.torn-top::before,
  .people.torn-top::before {
    top: -200px;
    height: 200px;
  }

  .timetable::after,
  .testimonials::after,
  .motivation::before,
  .rental::before,
  .map-section::after,
  .contact-form::after {
    height: 200px;
  }

  .partner-grid::after {
    top: 100px;
    left: -90px;
    width: 1440px;
    height: 152px;
    transform: none;
  }
}

.mobile-nav-only {
  display: none !important;
}

/* The navigation switches to a drawer at 1024 px, so its utility links must
   remain available throughout the same tablet range (not only on phones). */
@media (min-width: 769px) and (max-width: 1024px) {
  .site-header nav .mobile-nav-only {
    display: block !important;
  }
}

/* Mobile experience pass -------------------------------------------------
   The supplied Figma file contains a 1440 px desktop composition only.
   This block preserves that visual language while turning the page into a
   deliberate touch-first layout instead of a mechanically stacked desktop. */
@media (max-width: 768px) {
  :root {
    --ts-gutter: 18px;
    --ts-radius: 18px;
    --ts-mobile-paint: 13.888889vw;
    --ts-mobile-paint-short: 10.555556vw;
  }

  html {
    scroll-padding-top: 80px;
  }

  body {
    overflow-x: hidden;
    font-size: 16px;
    line-height: 1.55;
  }

  main > section {
    min-height: 0;
    scroll-margin-top: 80px;
  }

  h2 {
    font-size: clamp(34px, 10vw, 43px);
    line-height: 1.06;
  }

  .container {
    width: calc(100% - (2 * var(--ts-gutter)));
  }

  .btn {
    min-height: 50px;
    padding: 12px 21px;
    font-size: 13px;
  }

  /* Full-screen, thumb-friendly mobile navigation. */
  .site-header,
  .site-header.scrolled {
    min-height: 72px;
    background: rgb(47 53 59 / 88%);
    box-shadow: none;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }

  .site-header .nav-wrap {
    width: calc(100% - 32px);
    min-height: 72px;
  }

  .site-header .brand,
  .site-header .brand img {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
  }

  .site-header .menu {
    z-index: 1004;
    width: 48px;
    height: 48px;
    padding: 10px 11px;
    border-color: rgb(255 255 255 / 48%);
    background: rgb(47 53 59 / 42%);
  }

  .site-header nav {
    top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    z-index: 1001;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    justify-content: flex-start;
    gap: 0;
    padding: 104px 22px 218px;
    overflow-y: auto;
    background:
      radial-gradient(circle at 88% 12%, rgb(33 150 162 / 20%), transparent 30%),
      #252b31;
    box-shadow: none;
  }

  .site-header nav a {
    display: flex;
    min-height: 58px;
    align-items: center;
    padding: 0 4px;
    border-bottom: 1px solid rgb(255 255 255 / 12%);
    color: #f6f6f6;
    font-size: 20px;
    letter-spacing: .055em;
  }

  .site-header nav .mobile-nav-only {
    display: flex !important;
  }

  .site-header nav a::before {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    margin-right: 14px;
    border-radius: 50%;
    background: #2196a2;
    content: "";
  }

  .site-header nav a:active,
  .site-header nav a:focus-visible {
    color: #fff;
    background: rgb(33 150 162 / 22%);
  }

  body.menu-open .site-header .brand {
    position: fixed;
    top: 9px;
    left: 16px;
    z-index: 1003;
  }


  body.menu-open .site-header .menu {
    position: fixed;
    top: 12px;
    right: 14px;
    left: auto;
  }

  .nav-tools {
    display: none;
  }

  body.menu-open .nav-tools {
    position: fixed;
    right: 22px;
    bottom: calc(22px + env(safe-area-inset-bottom));
    left: 22px;
    z-index: 1002;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.menu-open .nav-tools > .nav-icon {
    display: flex;
    width: 100%;
    height: 54px;
    align-items: center;
    justify-content: flex-start;
    gap: 11px;
    padding: 0 16px;
    border: 1px solid rgb(255 255 255 / 22%);
    border-radius: 999px;
    color: #f6f6f6;
    background: rgb(255 255 255 / 5%);
  }

  body.menu-open .nav-tools > .nav-icon img {
    position: static;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
  }

  body.menu-open .nav-tools > .nav-icon span {
    position: static;
    display: block;
    width: auto;
    height: auto;
    border: 0;
    font-family: var(--ts-heading);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  body.menu-open .site-header .header-cta {
    display: flex;
    min-height: 54px;
    grid-column: 1 / -1;
    margin: 0;
    border-color: #2196a2;
    color: #fff;
    background: #2196a2;
  }

  body.menu-open .nav-tools {
    display: none;
  }

  /* Hero and the first decision path stay concise on a phone. */
  .hero {
    min-height: 690px;
  }

  .hero-copy .hero-line {
    display: inline;
  }

  .hero-copy .hero-line + .hero-line {
    margin-left: .22em;
  }

  .service-choice {
    padding: 72px 0 96px;
  }

  .service-choice .section-heading {
    margin-bottom: 30px;
  }

  .service-choice .section-heading::after {
    display: block;
    margin-top: 16px;
    color: rgb(246 246 246 / 62%);
    content: "Húzd oldalra a lehetőségeket  →";
    font-family: var(--ts-heading);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .choice-cards {
    gap: 14px;
    padding-inline: var(--ts-gutter);
    scroll-padding-inline: var(--ts-gutter);
  }

  .choice-card {
    scroll-snap-align: start;
  }

  .intro {
    padding: 86px 0 92px;
  }

  .intro-grid {
    gap: 40px;
  }

  .intro-copy h2 {
    font-size: clamp(39px, 11.5vw, 48px);
  }

  .intro-photo {
    min-height: 390px;
  }

  .trust-grid {
    gap: 30px;
    margin-top: 54px;
  }

  .arrival {
    min-height: 330px;
  }

  .venue {
    padding: 84px 0 48px;
    background-image: none;
  }

  .venue-grid {
    gap: 40px;
  }

  .venue-copy > p,
  .split-feature > div > p {
    font-size: 16px;
  }

  .venue-info {
    gap: 26px;
    margin-top: 34px;
  }

  .venue-photo {
    height: 320px;
  }

  .spaces {
    padding: 38px 0 72px;
  }

  .space-grid,
  .business-space-grid {
    gap: 14px;
    padding-inline: var(--ts-gutter);
    scroll-padding-inline: var(--ts-gutter);
  }

  .space-grid article,
  .business-space-grid article {
    min-height: 392px;
    scroll-snap-align: start;
  }

  .space-card-cta {
    position: static;
    width: max-content;
    height: 44px;
    min-height: 44px;
    margin-top: 10px;
    padding-inline: 20px;
    opacity: 1;
    pointer-events: auto;
  }

  .programs {
    padding: 72px 0 96px;
    background-image: url("assets/final/vectors/brush/dots-1.svg");
    background-position: -260px 88%;
    background-repeat: no-repeat;
    background-size: 330px;
  }

  .programs-lead,
  .carousel-heading {
    gap: 20px;
  }

  .programs-lead > p,
  .carousel-heading > p {
    font-size: 20px;
    line-height: 1.42;
  }

  .programs > .carousel-controls {
    justify-content: space-between;
    margin: 24px var(--ts-gutter) 22px;
  }

  .programs > .carousel-controls::before,
  .gastro-services .carousel-controls::before {
    margin-right: auto;
    color: rgb(246 246 246 / 60%);
    content: "Húzd oldalra";
    font-family: var(--ts-heading);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .carousel-controls button {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    background-size: 44px 44px;
  }

  .edge-carousel,
  .gastro-carousel {
    padding-inline: var(--ts-gutter);
    scroll-padding-inline: var(--ts-gutter);
  }

  .program-track,
  .gastro-track {
    gap: 14px;
  }

  .program-track article,
  .gastro-track article {
    width: min(84vw, 328px);
    min-height: 398px;
    flex-basis: min(84vw, 328px);
  }

  /* Schedule: readable compact cards plus an explicit swipe instruction. */
  .timetable {
    padding: 88px 0 96px;
  }

  .timetable-heading {
    gap: 24px;
  }

  .timetable-heading h2 {
    margin-bottom: 16px;
  }

  .timetable-heading > div > p:last-child {
    font-size: 16px;
  }

  .timetable-scroll {
    width: calc(100% - (2 * var(--ts-gutter)));
    margin-top: 32px;
    padding: 16px 14px 18px;
    border-radius: 18px;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }

  .timetable-scroll::before {
    position: sticky;
    left: 0;
    z-index: 3;
    display: block;
    width: max-content;
    margin: 0 0 12px;
    padding: 7px 12px;
    border-radius: 999px;
    color: #20747e;
    background: #e4f3f4;
    content: "←  Húzd oldalra az órarendet  →";
    font-family: var(--ts-heading);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
  }

  .timetable-table {
    min-width: 880px;
    border-spacing: 7px;
  }

  .timetable-table thead th {
    padding-inline: 8px;
    font-size: 15px;
  }

  .timetable-table td {
    height: 96px;
    padding: 35px 9px 10px;
  }

  .timetable-table td strong {
    font-size: 15px;
  }

  .timetable-table td span {
    font-size: 13px;
  }

  /* Venue two and horizontal supporting content. */
  .gastro {
    padding: 90px 0 68px;
    background-position: calc(100% + 220px) 40px;
  }

  .split-feature {
    gap: 36px;
  }

  .gastro-photo {
    width: calc(100% + var(--ts-gutter));
    height: 330px;
    margin-left: calc(-1 * var(--ts-gutter));
    border-radius: 0 var(--ts-radius) var(--ts-radius) 0;
  }

  .gastro-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .business-spaces {
    padding: 32px 0 68px;
  }

  .business-space-grid article {
    min-height: 378px;
  }

  .gastro-services {
    padding: 72px 0 96px;
    background-position: -260px 88%, calc(100% + 240px) 4%;
    background-size: 330px, 280px;
  }

  .gastro-services .carousel-heading {
    margin-bottom: 24px;
  }

  .gastro-services .carousel-controls {
    width: 100%;
    justify-content: flex-end;
  }

  /* Partners, values and quotes are one continuous, purposeful story. */
  .partners {
    padding: 84px 0 0;
  }

  .partners-copy {
    gap: 20px;
  }

  .partners-copy h2 {
    font-size: 27px;
  }

  .partner-grid {
    position: relative;
    gap: 28px 22px;
    margin-top: 44px;
  }

  .partner-grid img {
    max-height: 54px;
  }

  .partners-photo {
    position: relative;
    height: 350px;
    margin-top: 36px;
    overflow: hidden;
  }

  .partners-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 45%;
    filter: saturate(.72) brightness(.87);
  }

  .partners-photo::after {
    position: absolute;
    inset: auto 0 0;
    z-index: 2;
    height: 48%;
    background: linear-gradient(to bottom, transparent, #2f353b 96%);
    content: "";
    pointer-events: none;
  }

  .values {
    margin-top: -1px;
    padding: 84px 0 96px;
    background: #2f353b;
  }

  .values-heading > p {
    font-size: 19px;
  }

  .values-grid {
    gap: 40px 24px;
    margin-top: 54px;
  }

  .values-grid img {
    width: 76px;
    height: 76px;
    margin-bottom: 20px;
  }

  .testimonials {
    padding: 88px 0 96px;
    background-position: -100px 9%, calc(100% + 150px) 80%;
  }

  .testimonial-layout {
    gap: 28px;
  }

  .testimonial {
    padding: 42px 24px 30px;
  }

  .testimonial p {
    font-size: 18px;
  }

  .business-solutions {
    padding: 88px 0 100px;
  }

  .systems-copy h2 {
    font-size: clamp(39px, 11vw, 48px);
  }

  .systems-copy .lead {
    font-size: 18px;
  }

  .systems-copy > p:last-child {
    font-size: 16px;
  }

  .system-cards {
    gap: 16px;
    margin-top: 44px;
  }

  .system-cards article {
    min-height: 355px;
  }

  .motivation {
    min-height: 690px;
  }

  .motivation-card {
    width: calc(100% - 36px);
    padding: 38px 22px 28px;
  }

  .motivation-card h2 {
    margin-bottom: 25px;
    font-size: 45px;
  }

  .motivation-card p {
    margin-bottom: 20px;
  }

  .motivation-card .brush-banner {
    margin-block: 22px;
  }

  /* Careers: job openings become compact, easily scannable rows. */
  .careers {
    padding: 92px 0 100px;
  }

  .careers .section-heading h2 {
    font-size: clamp(38px, 10.8vw, 48px);
  }

  .career-intro {
    gap: 32px;
    margin-top: 52px;
  }

  .career-intro > img {
    height: 300px;
  }

  .career-intro > div > p {
    font-size: 16px;
  }

  .career-intro h3 {
    margin: 24px 0 16px;
    font-size: 24px;
  }

  .career-intro .checks {
    gap: 7px;
  }

  .career-openings {
    margin-top: 64px;
  }

  .career-openings > h3 {
    margin-bottom: 32px;
    font-size: 26px;
    line-height: 1.25;
  }

  .career-grid {
    gap: 12px;
  }

  .career-grid article {
    display: grid;
    min-height: 116px;
    align-items: center;
    grid-template-columns: 54px minmax(0, 1fr);
    column-gap: 16px;
    padding: 18px;
    border: 1px solid #e0e4e6;
    border-radius: 16px;
    background: rgb(255 255 255 / 72%);
    text-align: left;
  }

  .career-grid article + article::before {
    content: none;
  }

  .career-grid .motion-pictogram,
  .career-grid img {
    width: 48px;
    height: 48px;
    grid-row: 1 / span 2;
    margin: 0;
  }

  .career-grid h4 {
    margin: 0 0 5px;
    font-size: 20px;
  }

  .career-grid p {
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
  }

  .career-openings > .btn {
    margin-top: 28px;
  }

  /* Rental cards: preserve the imagery but remove desktop-sized dead space. */
  .rental {
    padding: 92px 0 96px;
  }

  .rental-head h2 {
    font-size: 48px;
  }

  .rental-head > p {
    font-size: 16px;
  }

  .rental-head h3 {
    justify-content: flex-start;
    font-size: 18px;
    line-height: 1.35;
    text-align: left;
  }

  .rental-list {
    gap: 72px;
    margin-top: 64px;
  }

  .rental-list > article,
  .rental-list > article.reverse {
    gap: 28px;
  }

  .rental-list > article > img {
    height: 285px;
  }

  .rental-list article h3 {
    margin-bottom: 18px;
    font-size: 38px;
  }

  .rental-list .checks {
    gap: 10px;
    margin-block: 22px;
  }

  .rental-location {
    margin: -8px 0;
    font-size: 16px;
    line-height: 1.5;
  }

  .rental-location span {
    margin-top: 15px;
    font-size: 19px;
  }

  .people {
    padding: 92px 0 96px;
  }

  .people .section-heading h2 {
    font-size: 54px;
  }

  .people-grid {
    gap: 48px;
    margin-top: 56px;
  }

  .people-grid article {
    padding-top: 286px;
  }

  .person-visual {
    height: 342px;
  }

  .people-grid article:nth-child(2) .person-visual::before {
    display: block;
  }

  .person-card {
    min-height: 0;
    padding: 40px 20px 28px;
  }

  .person-card a {
    overflow-wrap: anywhere;
  }

  .map-section {
    padding: 84px 0 96px;
  }

  .map-section .section-heading > h2 {
    font-size: 37px;
  }

  .map-grid {
    gap: 38px;
    margin-top: 42px;
  }

  .location-map {
    height: 290px;
  }

  .map-grid > article > .map-photo {
    height: 230px;
  }

  .map-grid article h3 {
    margin: 24px 0 13px;
    font-size: 25px;
  }

  .map-grid article p {
    align-items: flex-start;
    font-size: 15px;
  }

  .contact-form {
    padding: 94px var(--ts-gutter);
  }

  .contact-form > img {
    opacity: .28;
  }

  .contact-form form {
    padding: 38px 20px 32px;
  }

  .contact-form h2 {
    font-size: 42px;
  }

  .contact-form input,
  .contact-form textarea {
    font-size: 16px;
  }

  .contact-form input {
    height: 58px;
  }

  .site-footer,
  body > footer {
    min-height: 0;
    padding: 82px 0 30px;
    background-position: -190px calc(100% + 80px), calc(100% + 200px) 80px;
  }

  .footer-grid {
    gap: 38px;
  }

  .footer-grid > div {
    gap: 8px;
  }

  .legal {
    gap: 18px;
    padding-top: 28px;
    margin-top: 48px;
  }

  /* Exact paint transitions, scaled proportionally from the 1440 px export. */
  .intro.torn-top::before,
  .timetable.torn-top::before {
    top: calc(-1 * var(--ts-mobile-paint));
    right: 0;
    left: 0;
    height: var(--ts-mobile-paint);
    background: transparent url("assets/final/vectors/brush/divider-programs-timetable-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    box-shadow: 0 3px 0 #f6f6f6;
    -webkit-mask: none;
    mask: none;
  }

  .intro.torn-top::before {
    transform: none;
  }

  .timetable.torn-top::before {
    transform: scaleX(-1);
  }

  .partners.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before,
  .careers.torn-top::before {
    top: calc(-1 * var(--ts-mobile-paint));
    right: 0;
    left: 0;
    height: var(--ts-mobile-paint);
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    box-shadow: none;
    -webkit-mask: none;
    mask: none;
  }

  .partners.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before {
    background-color: #f6f6f6;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905");
    box-shadow: 0 -3px 0 #2f353b, inset 0 3px 0 #2f353b;
    transform: scaleX(-1);
  }

  .careers.torn-top::before {
    background-color: #f6f6f6;
    background-image: url("assets/final/vectors/brush/divider-paper-brush-safe-1440x200.svg?v=seam-fit-20260905");
    transform: rotate(180deg);
  }

  .timetable::after,
  .motivation::before,
  .rental::before,
  .map-section::after,
  .contact-form::after {
    position: absolute;
    right: 0;
    left: 0;
    z-index: 5;
    display: block;
    width: auto;
    height: var(--ts-mobile-paint);
    content: "";
    pointer-events: none;
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-mask: none;
    mask: none;
  }

  .timetable::after {
    bottom: -1px;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905");
    transform: scaleY(-1);
  }

  .motivation::before {
    top: 0;
    background-image: url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg?v=seam-fit-20260905");
    transform: none;
  }

  .rental::before {
    top: 0;
    background-image: url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg?v=seam-fit-20260905");
    transform: scaleX(-1);
  }

  .map-section::after {
    bottom: -1px;
    background-image: url("assets/final/vectors/brush/divider-beige-brush-safe-1440x200.svg?v=seam-fit-20260905");
    transform: rotate(180deg);
  }

  .contact-form::before {
    display: none;
  }

  .contact-form::after {
    bottom: -1px;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905");
    filter: none;
    transform: rotate(180deg);
  }

  .partner-grid::after {
    position: absolute;
    top: calc(100% + 22px);
    left: 50%;
    z-index: 4;
    display: block;
    width: 100vw;
    height: var(--ts-mobile-paint-short);
    background: transparent url("assets/final/vectors/brush/divider-paper-brush-safe-1440x152.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform: translateX(-50%);
    -webkit-mask: none;
    mask: none;
  }

  .gastro,
  .values,
  .rental,
  .site-footer,
  body > footer {
    box-shadow: 0 -2px 0 #2f353b;
  }

  .partners,
  .testimonials,
  .careers,
  .people,
  .map-section {
    box-shadow: 0 -2px 0 #f6f6f6;
  }

  .contact-form {
    box-shadow: 0 -2px 0 #e9dfda;
  }

  .partners,
  .testimonials,
  .careers,
  .rental,
  .people,
  .map-section {
    box-shadow: none;
  }
}

@media (max-width: 420px) {
  :root {
    --ts-gutter: 16px;
  }

  .site-header .nav-wrap {
    width: calc(100% - 28px);
  }

  .hero-copy {
    width: calc(100% - 32px);
  }

  .choice-cards {
    grid-template-columns: repeat(4, 82vw);
  }

  .choice-card > img:first-child {
    height: 232px;
  }

  .space-grid {
    grid-template-columns: repeat(5, 82vw);
  }

  .business-space-grid {
    grid-template-columns: repeat(3, 82vw);
  }

  .program-track article,
  .gastro-track article {
    width: 84vw;
    flex-basis: 84vw;
  }

  .values-grid {
    grid-template-columns: 1fr;
  }

  .values-grid article {
    max-width: 315px;
    margin-inline: auto;
  }

  .system-cards {
    grid-template-columns: 1fr;
  }

  .career-intro > img,
  .rental-list > article > img {
    height: 280px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }
}

/* Responsive fidelity corrections — 2026-08-26.
   Bridge the authored desktop and touch layouts without clipping the hero. */
@media (min-width: 769px) and (max-width: 1024px) {
  .site-header,
  .site-header.scrolled {
    background: rgb(47 53 59 / 80%);
    box-shadow: none;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
  }

  .hero {
    overflow: hidden;
  }

  .hero-copy {
    padding-left: 41.5%;
  }

  .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(40px, 4.6875vw, 48px);
  }
}

/* Mobile decorative composition -------------------------------------------
   The desktop Figma file uses cropped dot fields on opposing edges and
   painted overlaps between section colours. On phones the same rhythm is
   retained at a responsive scale, while every decorative layer stays behind
   the content and deliberately extends beyond the viewport. */
@media (max-width: 768px) {
  :root {
    --ts-mobile-dot-w: clamp(225px, 70vw, 300px);
    --ts-mobile-dot-h: clamp(135px, 42vw, 180px);
    --ts-mobile-dot-overhang: clamp(105px, 40vw, 165px);
    --ts-mobile-dot-overhang-soft: clamp(96px, 36vw, 150px);
    --ts-mobile-brush-overhang: clamp(185px, 52vw, 300px);
  }

  /* Replace the old per-section background approximations with the actual
     exported dot artwork already used by the laptop composition. */
  .service-choice,
  .testimonials,
  .careers,
  .rental,
  .people,
  .site-footer,
  body > footer {
    background-image: none;
  }

  .figma-dots {
    position: absolute;
    z-index: 0;
    display: block;
    width: var(--ts-mobile-dot-w);
    height: var(--ts-mobile-dot-h);
    background: transparent url("assets/final/vectors/hero/dots.svg") center / 100% 100% no-repeat;
    opacity: .9;
    pointer-events: none;
    transform-origin: center;
  }

  .service-choice > .container,
  .testimonials > .container,
  .careers > .container,
  .rental > .container,
  .people > .container,
  .site-footer > .container,
  body > footer > .container {
    position: relative;
    z-index: 2;
  }

  /* Services: four authored fragments, alternating between both edges just
     like the stepped desktop cards. */
  .service-dots-a {
    top: 6%;
    left: calc(-1 * var(--ts-mobile-dot-overhang));
    background-image: url("assets/final/vectors/services/dots-dark.svg");
    opacity: .6;
    transform: rotate(-18deg);
  }

  .service-dots-b {
    top: 25%;
    right: calc(-1 * var(--ts-mobile-dot-overhang-soft));
    left: auto;
    background-image: url("assets/final/vectors/services/dots-right.svg");
    transform: rotate(13deg);
  }

  .service-dots-c {
    right: auto;
    bottom: 23%;
    left: calc(-1 * var(--ts-mobile-dot-overhang));
    background-image: url("assets/final/vectors/services/dots-right.svg");
    transform: rotate(-16deg);
  }

  .service-dots-d {
    right: calc(-1 * var(--ts-mobile-dot-overhang-soft));
    bottom: 2%;
    left: auto;
    background-image: url("assets/final/vectors/services/dots-lower-left.svg");
    transform: rotate(15deg);
  }

  /* Short sections receive an opposing pair; long editorial sections repeat
     the motif once more halfway down to preserve the desktop cadence. */
  .testimonial-dots-a,
  .career-dots-a,
  .rental-dots-a,
  .footer-dots-a {
    top: 4%;
    left: calc(-1 * var(--ts-mobile-dot-overhang));
    transform: rotate(-17deg);
  }

  .testimonial-dots-b,
  .people-dots-b,
  .footer-dots-b {
    right: calc(-1 * var(--ts-mobile-dot-overhang));
    bottom: 2%;
    left: auto;
    transform: rotate(16deg);
  }

  .career-dots-b,
  .rental-dots-b {
    top: 47%;
    right: calc(-1 * var(--ts-mobile-dot-overhang));
    left: auto;
    transform: rotate(19deg);
  }

  .career-dots-c,
  .rental-dots-c {
    right: auto;
    bottom: 3%;
    left: calc(-1 * var(--ts-mobile-dot-overhang));
    transform: rotate(-13deg);
  }

  .people-dots-a {
    top: 7%;
    right: calc(-1 * var(--ts-mobile-dot-overhang));
    left: auto;
    transform: rotate(18deg);
  }

  .people-dots-b {
    right: auto;
    left: calc(-1 * var(--ts-mobile-dot-overhang));
    transform: rotate(-16deg);
  }

  /* Sections without dedicated dot nodes use the same exported field. Each
     placement is deliberately cropped by an edge, never centred behind text. */
  .spaces,
  .business-spaces {
    background-image: url("assets/final/vectors/hero/dots.svg");
    background-position: calc(-1 * var(--ts-mobile-dot-overhang)) 82%;
    background-repeat: no-repeat;
    background-size: var(--ts-mobile-dot-w) var(--ts-mobile-dot-h);
  }

  .programs,
  .gastro-services {
    background-image:
      url("assets/final/vectors/hero/dots.svg"),
      url("assets/final/vectors/hero/dots.svg");
    background-position:
      calc(-1 * var(--ts-mobile-dot-overhang)) 88%,
      calc(100% + var(--ts-mobile-dot-overhang)) 8%;
    background-repeat: no-repeat;
    background-size:
      var(--ts-mobile-dot-w) var(--ts-mobile-dot-h),
      var(--ts-mobile-dot-w) var(--ts-mobile-dot-h);
  }

  .timetable {
    background-image:
      url("assets/final/vectors/hero/dots.svg"),
      url("assets/final/vectors/hero/dots-dark.svg");
    background-position:
      calc(-1 * var(--ts-mobile-dot-overhang)) 66%,
      calc(100% + var(--ts-mobile-dot-overhang)) 90%;
    background-repeat: no-repeat;
    background-size:
      var(--ts-mobile-dot-w) var(--ts-mobile-dot-h),
      var(--ts-mobile-dot-w) var(--ts-mobile-dot-h);
  }

  .gastro {
    background-image: url("assets/final/vectors/hero/dots.svg");
    background-position: calc(100% + var(--ts-mobile-dot-overhang-soft)) 5%;
    background-repeat: no-repeat;
    background-size: var(--ts-mobile-dot-w) var(--ts-mobile-dot-h);
  }

  #uzleti-megoldasok {
    background-image: url("assets/final/vectors/hero/dots.svg");
    background-position: calc(-1 * var(--ts-mobile-dot-overhang)) 82%;
    background-repeat: no-repeat;
    background-size: var(--ts-mobile-dot-w) var(--ts-mobile-dot-h);
  }

  /* Restore the turquoise paint behind the first venue image. It is scaled
     from the same 839 x 300 Figma export and allowed to leave the grid. */
  .venue-grid {
    position: relative;
  }

  .venue-grid::before {
    position: absolute;
    right: calc(-1 * var(--ts-mobile-brush-overhang));
    bottom: 172px;
    z-index: 0;
    width: min(178vw, 700px);
    aspect-ratio: 839 / 300;
    background: transparent url("assets/final/vectors/venue-brush.svg") center / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
  }

  .venue-copy,
  .venue-photo {
    position: relative;
    z-index: 1;
  }

  /* The intro transition is the tall 1440 x 400 paper brush in Figma; the
     shorter 1440 x 200 asset belongs only to programs -> timetable. */
  .intro.torn-top::before {
    top: calc(-27.777778vw + 2px);
    height: calc(27.777778vw + 2px);
    background:
      linear-gradient(#f6f6f6, #f6f6f6) center bottom / 100% 5px no-repeat,
      url("assets/final/vectors/brush/divider-paper-1440x400.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    box-shadow: none;
    transform: none;
  }

  /* Straight shadows cut through the painted edges on narrow screens. The
     authored SVG overlaps already provide the necessary seam coverage. */
  .gastro,
  .values,
  .partners,
  .testimonials,
  .careers,
  .rental,
  .people,
  .map-section,
  .contact-form,
  .site-footer,
  body > footer {
    box-shadow: none;
  }
}

/* Keep the tall intro paint authoritative after the later fixed-header
   correction block. */
@media (max-width: 768px) {
  .intro.torn-top::before {
    top: calc(-27.777778vw + 2px);
  }
}

/* Figma contact-card hover: only the painted backing, card accent and shadow
   change. Portraits and typography stay locked to their resting geometry. */
.person-visual::before {
  transition: background-color var(--figma-motion-fast) var(--figma-out-cubic);
}

.person-card {
  transition: box-shadow var(--figma-motion-fast) var(--figma-out-cubic);
}

.person-card::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 8px;
  border-radius: 0 0 var(--ts-radius) var(--ts-radius);
  background: var(--ts-teal);
  content: "";
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--figma-motion-fast) var(--figma-out-cubic);
}

/* The desktop export is a coloured SVG rather than a mask. Reusing its alpha
   as a mask keeps the exact brush silhouette while allowing the Figma colour
   change to animate cleanly. */
@media (min-width: 1281px) {
  .person-visual::before {
    background: #b3bac6;
    -webkit-mask: url("assets/final/vectors/brush/person-card.svg") 0 0 / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/person-card.svg") 0 0 / 100% 100% no-repeat;
  }
}

@media (min-width: 769px) and (max-width: 1280px) {
  .people-grid article:nth-child(2) .person-visual::before {
    display: block;
  }
}

.people-grid article:focus-within .person-visual::before {
  background-color: var(--ts-teal);
}

.people-grid article:focus-within .person-card {
  box-shadow: 0 16px 32px rgb(21 28 34 / 14%);
}

.people-grid article:focus-within .person-card::after {
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  .people-grid article:hover .person-visual::before {
    background-color: var(--ts-teal);
  }

  .people-grid article:hover .person-card {
    box-shadow: 0 16px 32px rgb(21 28 34 / 14%);
  }

  .people-grid article:hover .person-card::after {
    opacity: 1;
  }
}

/* Laptop/desktop paint seams — use geometric overlap instead of full-width
   shadows. The shadows and the white safety cap were visible as straight
   horizontal rules between otherwise hand-painted section transitions. */
@media (min-width: 1025px) {
  .timetable.torn-top::before,
  .partners.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before,
  .careers.torn-top::before {
    box-shadow: none;
  }

  .partners.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before {
    background-color: #fff;
    background-image:
      url("assets/final/vectors/brush/divider-dark-brush-1440x200.svg?v=seam-fit-20260905"),
      linear-gradient(#2f353b, #2f353b);
    background-position: center -2px, center top;
    background-repeat: no-repeat;
    background-size: 100% calc(100% + 2px), 100% 12px;
  }

  .gastro,
  .rental,
  .contact-form,
  .site-footer,
  body > footer {
    box-shadow: none;
  }

  .motivation::before {
    top: -2px;
    background: transparent url("assets/final/vectors/brush/divider-paper-brush-1440x200.svg?v=seam-fit-20260905") center -2px / 100% calc(100% + 2px) no-repeat;
  }

  .rental::before {
    top: -2px;
    background: transparent url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905") center -2px / 100% calc(100% + 2px) no-repeat;
  }
}

/* Avoid the abrupt 1024/1025 px title-size jump while retaining the
   Figma-calibrated 60 px laptop title by 1200 px. */
@media (min-width: 1025px) and (max-width: 1199px) {
  .hero {
    overflow: hidden;
  }

  .hero-copy h1 {
    font-size: clamp(51px, 5vw, 60px);
  }
}

/* The brush is a background asset. Masking the complete element also masks
   the lettering, which caused the CTA text to be cut at laptop/mobile sizes. */
@media (max-width: 1280px) {
  #osztonzes .motivation-card .brush-banner {
    min-height: 66px;
    padding: 4px 32px;
    background: transparent url("assets/final/vectors/brush/motivation-cta.svg") center / 100% 100% no-repeat;
    font-size: 24px;
    font-style: italic;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 38px;
    white-space: nowrap;
    -webkit-mask: none;
    mask: none;
  }
}

@media (max-width: 768px) {
  #osztonzes .motivation-card .brush-banner {
    min-height: 60px;
    padding-inline: 16px;
    font-size: clamp(16px, 4.6vw, 18px);
  }
}

/* Manufacturer logo hover variants exported by the designer. The desktop
   assets include their own authored shadow canvas, so their geometry is
   compensated to keep the normal logo pixels perfectly stationary. */
@media (min-width: 1281px) and (hover: hover) and (pointer: fine) {
  .partner-grid > img:nth-child(1):hover {
    top: -28px;
    left: -20px;
    width: 113px;
    height: 108px;
    content: url("assets/final/manufacturer-logos/bosu-hover.svg");
  }

  .partner-grid > img:nth-child(2):hover {
    top: -28px;
    left: 69.679px;
    width: 144px;
    height: 108px;
    content: url("assets/final/manufacturer-logos/trx-hover.svg");
  }

  .partner-grid > img:nth-child(3):hover {
    top: -20px;
    left: 204.535px;
    width: 116px;
    height: 100px;
    content: url("assets/final/manufacturer-logos/olive-hover.svg");
  }

  .partner-grid > img:nth-child(4):hover {
    top: -15px;
    left: 325.391px;
    width: 249px;
    height: 95px;
    content: url("assets/final/manufacturer-logos/aptonia-hover.svg");
  }

  .partner-grid > img:nth-child(5):hover {
    top: -15px;
    left: 578.554px;
    width: 249px;
    height: 95px;
    content: url("assets/final/manufacturer-logos/therabody-hover.svg");
  }

  .partner-grid > img:nth-child(6):hover {
    top: -20px;
    left: 831.717px;
    width: 116px;
    height: 100px;
    content: url("assets/final/manufacturer-logos/weck-method-hover.svg");
  }

  .partner-grid > img:nth-child(7):hover {
    top: -5px;
    left: 952.573px;
    width: 215px;
    height: 85px;
    content: url("assets/final/manufacturer-logos/flowin-hover.svg");
  }

  .partner-grid > img:nth-child(8):hover {
    top: -20px;
    left: 1172px;
    width: 108px;
    height: 100px;
    content: url("assets/final/manufacturer-logos/ultimate-instability-hover.svg");
  }
}

@media (max-width: 1280px) and (hover: hover) and (pointer: fine) {
  .partner-grid > img:nth-child(-n + 2):hover {
    filter: drop-shadow(0 14px 21px rgb(20 20 43 / 14%));
  }

  .partner-grid > img:nth-child(n + 3):hover {
    filter: drop-shadow(0 8px 14px rgb(20 20 43 / 10%));
  }
}

/* Social icons use the exported grey normal and teal hover glyphs. */
.motivation-card .social-links img,
.footer-brand .social-links img {
  filter: none;
}

@media (hover: hover) and (pointer: fine) {
  .social-links a[aria-label="Facebook"]:hover img {
    content: url("assets/final/icons/facebook-hover.svg");
  }

  .social-links a[aria-label="Instagram"]:hover img {
    content: url("assets/final/icons/instagram-hover.svg");
  }

  .social-links a[aria-label^="Google"]:hover img {
    content: url("assets/final/icons/google-hover.svg");
  }
}

.social-links a[aria-label="Facebook"]:focus-visible img {
  content: url("assets/final/icons/facebook-hover.svg");
}

.social-links a[aria-label="Instagram"]:focus-visible img {
  content: url("assets/final/icons/instagram-hover.svg");
}

.social-links a[aria-label^="Google"]:focus-visible img {
  content: url("assets/final/icons/google-hover.svg");
}

@media (min-width: 769px) {
  /* Cover the sub-pixel seam at the paper edge without changing the authored
     brush geometry or its vertical rhythm. */
  .timetable.torn-top::before {
    box-shadow: inset 0 -3px 0 #f6f6f6, 0 3px 0 #f6f6f6;
  }

  .careers.torn-top::before {
    box-shadow: none;
    transform: translateY(2px) rotate(180deg);
  }
}

/* Anchor and paint-transition corrections. Direct hash navigation and the
   animated link handler now land at the same visual position below the fixed
   header, without stacking section scroll margins. */
@media (min-width: 769px) and (max-width: 1024px) {
  html {
    scroll-padding-top: 94px;
  }

  main > section {
    scroll-margin-top: 0;
  }
}

@media (max-width: 768px) {
  html {
    scroll-padding-top: 84px;
  }

  body {
    padding-top: 72px;
  }

  .site-header,
  .site-header.scrolled {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
  }

  main > section {
    scroll-margin-top: 0;
  }

  /* The Figma brush between the intro and arrival blocks was missing from
     the custom mobile composition. */
  .arrival::before {
    position: absolute;
    top: -1px;
    right: 0;
    left: 0;
    z-index: 5;
    display: block;
    height: var(--ts-mobile-paint-short);
    background: transparent url("assets/final/vectors/brush/divider-paper-1440x152.svg?v=seam-fit-20260905") center top / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    -webkit-mask: none;
    mask: none;
    transform: none;
  }

  /* The former shadow created a perfectly straight rule across the painted
     programs-to-timetable transition. */
  .intro.torn-top::before,
  .timetable.torn-top::before {
    box-shadow: none;
  }

  .intro.torn-top::before {
    top: calc(-1 * var(--ts-mobile-paint) + 2px);
  }

  /* The careers divider is intentionally painted upward over the preceding
     image section. It must be allowed to leave the section's own box. */
  .careers {
    z-index: 2;
    overflow: visible;
  }

  .careers.torn-top::before {
    z-index: 5;
    background-color: #f6f6f6;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-safe-1440x200.svg?v=seam-fit-20260905");
    transform: scaleX(-1);
  }

  .motivation::before {
    top: -2px;
    background-image: url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905");
  }

  /* Use the authored 2 px overlap export: the 8 px "safe" version showed up
     as a solid stripe on narrow screens. */
  .rental::before {
    top: -2px;
    background-image: url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905");
  }
}


/* Tablet/laptop paint bridge — the authored Figma dividers must not disappear
   in the 769–1024 px range between the mobile and desktop compositions. */
@media (min-width: 769px) and (max-width: 1024px) {
  .intro.torn-top::before {
    top: -27.777778vw;
    right: 0;
    left: 0;
    height: calc(27.777778vw + 2px);
    background:
      linear-gradient(var(--ts-paper), var(--ts-paper)) center bottom / 100% 6px no-repeat,
      url("assets/final/vectors/brush/divider-paper-1440x400.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    box-shadow: none;
    -webkit-mask: none;
    mask: none;
    transform: none;
  }

  .arrival::before {
    position: absolute;
    top: -1px;
    right: 0;
    left: 0;
    z-index: 4;
    display: block;
    height: 13.888889vw;
    background: transparent url("assets/final/vectors/brush/divider-paper-1440x152.svg?v=seam-fit-20260905") center top / 100% 10.555556vw no-repeat;
    content: "";
    pointer-events: none;
    -webkit-mask: none;
    mask: none;
    transform: none;
  }

  .timetable.torn-top::before {
    top: -13.888889vw;
    right: 0;
    left: 0;
    height: calc(13.888889vw + 2px);
    background: transparent url("assets/final/vectors/brush/divider-programs-timetable-1440x200.svg?v=seam-fit-20260905") center / 100% 100% no-repeat;
    box-shadow: none;
    -webkit-mask: none;
    mask: none;
    transform: scaleX(-1);
  }

  .partners.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before,
  .careers.torn-top::before {
    right: 0;
    left: 0;
    background-color: transparent;
    background-position: center -2px;
    background-repeat: no-repeat;
    background-size: 100% calc(100% + 2px);
    box-shadow: none;
    -webkit-mask: none;
    mask: none;
  }

  .partners.torn-top::before {
    top: -14.791667vw;
    height: calc(14.791667vw + 2px);
    background-image:
      url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905"),
      linear-gradient(#fff, #fff);
    background-position: center -2px, center bottom;
    background-size: 100% calc(13.888889vw + 2px), 100% 14px;
    transform: scaleX(-1);
  }

  .testimonials.torn-top::before,
  .people.torn-top::before {
    top: -13.888889vw;
    height: calc(13.888889vw + 2px);
    background-image:
      url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905"),
      linear-gradient(#fff, #fff);
    background-position: center -2px, center bottom;
    background-size: 100% calc(100% + 2px), 100% 14px;
    transform: scaleX(-1);
  }

  .careers {
    z-index: 2;
    overflow: visible;
  }

  .careers.torn-top::before {
    top: -13.888889vw;
    z-index: 5;
    height: calc(13.888889vw + 2px);
    background-image:
      url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905"),
      linear-gradient(#fff, #fff);
    background-position: center -2px, center bottom;
    background-size: 100% calc(100% + 2px), 100% 14px;
    transform: translateY(2px) rotate(180deg);
  }

  .timetable::after,
  .testimonials::after,
  .motivation::before,
  .rental::before,
  .map-section::after,
  .contact-form::after {
    position: absolute;
    right: 0;
    left: 0;
    z-index: 5;
    display: block;
    width: auto;
    height: 13.888889vw;
    content: "";
    pointer-events: none;
    background-color: transparent;
    background-position: center -2px;
    background-repeat: no-repeat;
    background-size: 100% calc(100% + 2px);
    -webkit-mask: none;
    mask: none;
  }

  .timetable::after {
    bottom: -2px;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-1440x200.svg?v=seam-fit-20260905");
    transform: scaleY(-1);
  }

  .testimonials::after {
    bottom: -2px;
    background-image: url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905");
    transform: scaleY(-1);
  }

  .motivation::before {
    top: -2px;
    background-image: url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905");
    transform: none;
  }

  .rental::before {
    top: -2px;
    background-image: url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905");
    transform: scaleX(-1);
  }

  .map-section::after {
    bottom: -2px;
    background-image: url("assets/final/vectors/brush/divider-beige-brush-1440x200.svg?v=seam-fit-20260905");
    transform: rotate(180deg);
  }

  .contact-form::before {
    display: none;
  }

  .contact-form::after {
    bottom: -2px;
    background-image: url("assets/final/vectors/brush/divider-dark-brush-1440x200.svg?v=seam-fit-20260905");
    filter: none;
    transform: rotate(180deg);
  }

  .partner-grid {
    position: relative;
  }

  .partner-grid::after {
    position: absolute;
    top: calc(100% + 85px);
    left: 50%;
    z-index: 4;
    display: block;
    width: 100vw;
    height: 10.555556vw;
    background: transparent url("assets/final/vectors/brush/divider-paper-brush-1440x152.svg?v=seam-fit-20260905") center -2px / 100% calc(100% + 2px) no-repeat;
    content: "";
    pointer-events: none;
    transform: translateX(-50%);
    -webkit-mask: none;
    mask: none;
  }

  .partners,
  .testimonials,
  .careers,
  .people,
  .map-section {
    background-color: #fff;
    box-shadow: none;
  }

  .rental,
  .contact-form,
  .site-footer,
  body > footer {
    box-shadow: none;
  }
}

@media (max-width: 768px) {
  .intro.torn-top::before {
    top: calc(-27.777778vw + 2px);
  }
}

/* Keep painted section transitions seamless at every laptop viewport width. */
@media (min-width: 769px) {
  .timetable.torn-top::before {
    box-shadow: none;
  }
}

@media (min-width: 1025px) {
  :root {
    --ts-seam-paint: min(13.888889vw, 200px);
    --ts-seam-paint-short: min(10.555556vw, 152px);
    --ts-seam-paint-long: min(27.777778vw, 400px);
    --ts-seam-partners: min(14.791667vw, 213px);
  }

  .intro.torn-top::before {
    top: calc(-1 * var(--ts-seam-paint-long));
    height: calc(var(--ts-seam-paint-long) + 2px);
  }

  .arrival::before {
    top: -2px;
    height: calc(var(--ts-seam-paint) + 2px);
    background-size: 100% 3px, 100% var(--ts-seam-paint-short);
  }

  .timetable.torn-top::before,
  .testimonials.torn-top::before,
  .people.torn-top::before,
  .careers.torn-top::before {
    top: calc(-1 * var(--ts-seam-paint));
    height: calc(var(--ts-seam-paint) + 2px);
  }

  .careers.torn-top::before {
    background-image: url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg?v=seam-fit-20260905");
  }

  .partners.torn-top::before {
    top: calc(-1 * var(--ts-seam-partners));
    height: calc(var(--ts-seam-partners) + 2px);
    background-size: 100% calc(var(--ts-seam-paint) + 2px), 100% 14px;
  }

  .timetable::after,
  .testimonials::after,
  .map-section::after,
  .contact-form::after {
    bottom: -2px;
    height: calc(var(--ts-seam-paint) + 2px);
  }

  .motivation::before,
  .rental::before {
    top: -2px;
    height: calc(var(--ts-seam-paint) + 2px);
  }

  .contact-form::before {
    display: none;
  }
}

@media (min-width: 1281px) {
  .motivation::before {
    background-image: url("assets/final/vectors/brush/divider-white-brush-1440x200.svg?v=seam-fit-20260905");
  }
}

/* Program detail overlay: Figma node 10212:3718. */
body.program-dialog-open {
  overflow: hidden;
}

.program-dialog {
  width: min(1080px, calc(100vw - 32px));
  min-height: 627px;
  max-height: calc(100dvh - 32px);
  padding: 64px 96px;
  border: 0;
  border-radius: 24px;
  margin: auto;
  overflow: visible;
  color: #616572;
  background: #fff;
  opacity: 0;
  transform: none;
  transition: opacity 300ms cubic-bezier(.33, 1, .68, 1);
}

.program-dialog.is-open {
  opacity: 1;
}

.program-dialog::backdrop {
  background: rgb(0 0 0 / 0%);
  transition: background-color 300ms cubic-bezier(.33, 1, .68, 1);
}

.program-dialog.is-open::backdrop {
  background: rgb(0 0 0 / 40%);
}

.program-dialog-content {
  position: relative;
  z-index: 1;
  width: 100%;
}

.program-dialog h2 {
  display: flex;
  height: 44px;
  align-items: flex-start;
  justify-content: center;
  margin: 0 0 33px;
  color: #2f353b;
  font-family: var(--ts-heading);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.3;
  text-align: center;
}

.program-dialog .program-dialog-intro {
  height: 24px;
  margin: 0 0 33px;
  color: #616572;
  font-family: var(--ts-heading);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 24px;
  text-align: center;
}

.program-dialog-list {
  display: grid;
  width: 100%;
  min-height: 264px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 24px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.program-dialog-list li {
  display: grid;
  min-width: 0;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  margin: 0;
  color: #616572;
  font-family: var(--ts-body);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: .02em;
  line-height: 24px;
}

.program-dialog-list img {
  width: 24px;
  height: 24px;
}

.program-dialog-list strong {
  font-weight: 700;
}

.program-dialog-actions {
  display: flex;
  width: max-content;
  align-items: center;
  justify-content: center;
  gap: 33px;
  margin: 48px auto 0;
}

.program-dialog-actions .btn {
  width: 172px;
  min-height: 53px;
  padding: 0 24px;
  border-color: #2196a2;
  border-radius: 30px;
  color: #fff;
  background: #2196a2;
  font-family: var(--ts-heading);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: uppercase;
}

.program-dialog-actions .btn-outline {
  width: 182px;
  color: #2196a2;
  background: #fff;
}

.program-dialog-close {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 0;
  width: 64px;
  height: 64px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.program-dialog-close span {
  position: absolute;
  top: 31px;
  left: 25px;
  width: 14px;
  height: 1.5px;
  border-radius: 999px;
  background: #2f353b;
  transform: rotate(45deg);
}

.program-dialog-close span:last-child {
  transform: rotate(-45deg);
}

.program-dialog-art {
  position: absolute;
  z-index: 2;
  top: -41px;
  left: -65px;
  width: 216.095px;
  height: 180.256px;
  pointer-events: none;
}

.program-dialog-art::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 205.988px;
  height: 80.135px;
  background: url("assets/final/vectors/brush/program-card-brush.svg") 0 0 / 100% 100% no-repeat;
  content: "";
  opacity: .8;
  transform: matrix(-.83500695, -.55023944, .55023944, -.83500695, 172, 180.25598145);
  transform-origin: 0 0;
}

.program-dialog-art img {
  position: absolute;
  top: 97.464px;
  left: 132.18px;
  width: 40px;
  height: 40px;
}

@media (max-width: 1100px) {
  .program-dialog {
    padding-right: 64px;
    padding-left: 64px;
  }
}

@media (max-width: 768px), (max-height: 675px) {
  .program-dialog {
    width: calc(100vw - 24px);
    min-height: 0;
    max-height: calc(100dvh - 24px);
    padding: 72px 24px 32px;
    border-radius: 20px;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .program-dialog h2 {
    height: auto;
    min-height: 0;
    margin-bottom: 20px;
    font-size: 15px;
  }

  .program-dialog .program-dialog-intro {
    height: auto;
    margin-bottom: 28px;
    line-height: 22px;
  }

  .program-dialog-list {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .program-dialog-list li {
    font-size: 16px;
    line-height: 22px;
  }

  .program-dialog-actions {
    width: 100%;
    flex-direction: column;
    gap: 12px;
    margin-top: 32px;
  }

  .program-dialog-actions .btn,
  .program-dialog-actions .btn-outline {
    width: min(100%, 240px);
  }

  .program-dialog-art {
    top: -40px;
    left: -55px;
    transform: scale(.62);
    transform-origin: 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .program-dialog,
  .program-dialog::backdrop {
    transition: none;
  }
}

/* Responsive Figma fidelity corrections, 2026-09-05.
   Append after the existing site.css rules. All artwork already ships in
   assets/final; no new or approximate SVG drawing is introduced here. */

/* The original timetable pictogram rules only applied above 1280px.
   Preserve the same faded 40px asset and class-to-icon mapping on tablets,
   laptops and the horizontally scrollable mobile timetable. */
@media (max-width: 1280px) {
  .timetable-table td:not(:empty) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/trx.svg");
    background-position: 0 0, 4px 4px;
    background-repeat: no-repeat;
    background-size: auto, 40px 40px;
  }

  .timetable-table tbody tr:nth-child(1) td:nth-child(4),
  .timetable-table tbody tr:nth-child(2) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(5),
  .timetable-table tbody tr:nth-child(3) td:nth-child(6) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/core-power.svg");
  }

  .timetable-table tbody tr:nth-child(3) td:nth-child(2),
  .timetable-table tbody tr:nth-child(3) td:nth-child(4) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/bosu-core.svg");
  }

  .timetable-table tbody tr:nth-child(4) td:nth-child(5) {
    background-image:
      linear-gradient(rgb(245 247 248 / 88%), rgb(245 247 248 / 88%)),
      url("assets/final/pictograms/teal/smr.svg");
  }

  /* Contact brushes: Figma 8063:14421 / 8430:3099. The source brush's
     diagonal matrix is retained, with its centre tied to the portrait.
     Capping the source width keeps a one-column tablet layout from making
     the decorative brush larger than the fixed-height portrait. */
  .people-grid article .person-visual::before {
    display: block;
    inset: auto;
    top: 59.494%;
    left: 50%;
    width: min(107.338737%, 433.648499px);
    height: auto;
    aspect-ratio: 433.648499 / 213.039276;
    background: #b3bac6;
    -webkit-mask: url("assets/final/vectors/brush/person-card.svg") 0 0 / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/person-card.svg") 0 0 / 100% 100% no-repeat;
    transform: translate(-50%, -50%) matrix(-.859995365, .510301948, -.510301948, -.859995365, 0, 0);
    transform-origin: center;
  }
}

/* The mobile composition already uses the exported dot field. Fill the
   uncovered 769–1280 range with the desktop artwork, its authored rotations
   and proportional horizontal coordinates, anchored to its own section. */
@media (min-width: 769px) and (max-width: 1280px) {
  .gastro {
    overflow: visible;
    background-image: none;
  }

  /* Figma dot instance 10165:4499: 466.9467×280.5408, x1123.0107,
     y−116.3574 on a 1440px frame, rotated 7.580943 degrees. */
  .gastro::after {
    position: absolute;
    top: -8.080377vw;
    right: auto;
    bottom: auto;
    left: 77.986857vw;
    z-index: 1;
    width: 32.426855vw;
    height: 19.482002vw;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    content: "";
    pointer-events: none;
    transform: rotate(7.580943deg);
    transform-origin: 0 0;
  }

  .people {
    background-image: none;
  }

  .people .people-dots {
    position: absolute;
    z-index: 0;
    display: block;
    right: auto;
    bottom: auto;
    background: transparent url("assets/final/vectors/hero/dots.svg") 0 0 / 100% 100% no-repeat;
    opacity: 1;
    pointer-events: none;
    transform-origin: 0 0;
  }

  /* Figma 8066:2407: left-edge decoration beside the portrait row. */
  .people .people-dots-a {
    top: 52.2392%;
    left: -15.972222vw;
    width: 40.024063vw;
    height: 24.014445vw;
    transform: matrix(.379477501, -.925200939, .925200939, .379477501, 0, 0);
  }

  /* Figma 8311:3121: lower right-edge decoration extends into the map
     heading. Its vertical anchor follows the responsive section bottom. */
  .people .people-dots-b {
    top: calc(100% + 8.876004vw);
    left: 84.61358vw;
    width: 31.667431vw;
    height: 19.00045vw;
    transform: matrix(.258819073, -.965925872, .965925872, .258819073, 0, 0);
  }
}

/* Cookie Banners - V3: original Figma photo and node 7847:3887 layout. */
.cookie-banner {
  position: relative;
  grid-template-columns: minmax(0, 1fr) 490px;
  gap: 95px;
  padding: 25px 56px;
  box-shadow: 0 14px 42px rgb(8.243 15.254 52.063 / 6%);
}

.cookie-info {
  display: grid;
  min-width: 0;
  grid-template-columns: 85px minmax(0, 1fr);
  align-items: center;
  gap: 19px;
}

.cookie-art {
  display: block;
  width: 85px;
  height: 84px;
  object-fit: contain;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.cookie-copy h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1.3;
}

.cookie-copy p {
  color: var(--ts-dark);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.6;
}

@media (max-width: 1100px) {
  .cookie-banner {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 24px 30px;
  }

  .cookie-info {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 24px;
  }

  .cookie-art {
    width: 64px;
    height: 63px;
  }

  .cookie-copy p {
    max-width: none;
  }

  .cookie-actions {
    grid-column: auto;
    justify-content: end;
  }
}

@media (max-width: 760px) {
  .cookie-banner {
    max-height: calc(100dvh - 16px);
    overflow-y: auto;
    gap: 18px;
    padding: 22px 18px 18px;
  }

  .cookie-info {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 15px;
  }

  .cookie-art {
    grid-column: 1;
    grid-row: 1;
    width: 52px;
    height: 51px;
  }

  .cookie-copy {
    display: contents;
  }

  .cookie-copy h2 {
    grid-column: 2;
    grid-row: 1;
    font-size: 20px;
  }

  .cookie-copy p {
    grid-column: 1 / -1;
    font-size: 14px;
    line-height: 1.45;
  }

  .cookie-actions {
    justify-content: stretch;
  }

  .cookie-close {
    top: 15px;
    right: 14px;
  }
}

/* Client-approved content and layout corrections — 2026-09-05. */
.topline .container a[href^="tel:"] {
  font-weight: 600;
}

/* Include the animated label wrapper, not ordinary email or footer links. */
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.btn,
.figma-arrow-button.figma-button-in,
.space-card-cta,
.program-track > article > a,
.gastro-track > article > a,
.wp-block-button__link {
  text-transform: uppercase;
}

/* Let wrapped descriptions occupy their real height; keep each CTA clear. */
.service-choice .choice-card {
  display: flex;
  height: auto;
  flex-direction: column;
}

.service-choice .choice-card > img,
.service-choice .choice-card > h3,
.service-choice .choice-card > .btn {
  flex-shrink: 0;
}

.service-choice .choice-card > p {
  height: auto;
  min-height: 2.9em;
  margin-bottom: 24px;
  line-height: 1.45;
}

.service-choice .choice-card > .btn {
  align-self: center;
  margin-top: auto;
  margin-bottom: 24px;
}

/* This optional paragraph is editable in WordPress, empty by default. */
.hero .hero-copy > .hero-description {
  width: 100%;
  max-width: 60ch;
  min-height: 0;
  margin: 12px 0 0;
  line-height: 1.5;
  white-space: normal;
}

@media (min-width: 769px) {
  .hero-copy .brush-note {
    display: flex;
    width: min(422px, 100%);
    min-width: 0;
    height: auto;
    min-height: 45px;
    align-self: flex-end;
    align-items: center;
    justify-content: center;
    margin-top: 12px;
    padding: 8px 25px;
    line-height: 1.3;
    text-align: center;
    white-space: normal;
  }

  .hero-copy .brush-note::before {
    inset: -4px 0;
    width: 100%;
    height: auto;
  }
}
/* Proposed mobile feedback corrections — append after the current site.css.
   Scope: existing card crops, signature, spacing, and CTA alignment only.
   No hero, icon-paint visibility, or section-divider changes. */
@media (max-width: 768px) {
  /* These two source photos are 2500 x 3750 portrait images. A square crop
     retains the faces above the overlapping circular pictogram. */
  .service-choice .choice-card:nth-child(3) > img:first-child,
  .service-choice .choice-card:nth-child(4) > img:first-child {
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: 50% 0%;
  }

  .service-choice .choice-card:nth-child(4) > img:first-child {
    object-position: 50% 10%;
  }

  /* The same flattened Figma signature already used on desktop; preserve
     the real text/accessible name in the existing HTML span. */
  .intro .intro-action .signature {
    display: block;
    width: min(261px, 100%);
    height: auto;
    aspect-ratio: 292 / 57;
    flex: 0 0 auto;
    overflow: hidden;
    color: transparent;
    background: transparent url("assets/final/extracted/signature-anita-transparent.png") center / contain no-repeat;
    font-size: 0;
    transform: none;
  }

  /* The portrait export includes its own brush. Match desktop by removing
     the older oversized extra stroke behind the composite photo. */
  .intro .intro-photo::before {
    content: none;
  }

  /* The existing paint reaches up to 103 px above the 320 px venue photo.
     Keep at least 29 px of empty space between it and the preceding CTAs. */
  .venue .venue-grid {
    row-gap: 132px;
  }

  /* Remove the inherited negative horizontal margins and vertically center
     the lettering inside the existing 60 px authored brush background. */
  #osztonzes .motivation-card .brush-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 22px auto;
    text-align: center;
  }

  /* Only the three room-offer CTAs move; their text and neighboring copy do
     not. Keep the existing padding, colors, and hover behavior. */
  #berles .rental-list > article > div > .btn {
    display: flex;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: 0;
  }
}

/* Intro brush: its exported path reaches a fractional right-hand coordinate.
 * At its native 1440px width, the otherwise solid right edge has alpha 245/255.
 * A 2px horizontal bleed crops only that outer antialiasing fringe; the brush
 * position, vertical overlap, transforms and authored silhouette stay intact.
 * Keep the existing viewport-width fitting and preserveAspectRatio="none".
 */
.intro.torn-top::before {
  right: -2px;
  left: -2px;
}

/* Keep the original Figma map composition; only add real external links. */
.map-grid .map-place-link {
  color: inherit;
  text-decoration: none;
}
.location-map .map-open {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}
.location-map a.map-pin { z-index: 2; }
.map-grid .map-photo:focus-visible,
.map-grid .map-place-link:focus-visible,
.location-map a:focus-visible {
  outline: 3px solid var(--ts-teal);
  outline-offset: -3px;
}
.location-map a.map-pin:focus-visible { border-radius: 50%; }

/* Complete client-approved service details. The dialog frame and artwork
   retain the existing Figma design; only its inner content scrolls. */
.program-dialog {
  min-height: 0;
  padding: 0;
  overflow: visible;
}
.program-dialog-scroll {
  max-height: calc(100dvh - 32px);
  min-height: min(627px, calc(100dvh - 32px));
  padding: 64px 96px;
  border-radius: inherit;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.program-dialog h2 {
  height: auto;
  min-height: 44px;
  overflow-wrap: anywhere;
}
.program-dialog .program-dialog-intro {
  height: auto;
  line-height: 1.5;
}
.program-dialog-list {
  min-height: 0;
}
.program-dialog-description,
.program-dialog-meta {
  margin: 0 0 28px;
  font-family: var(--ts-body);
  font-size: 18px;
  line-height: 1.55;
  letter-spacing: .02em;
}
.program-dialog-description p,
.program-dialog-meta p {
  margin: 0 0 10px;
  color: #616572;
}
.program-dialog-meta {
  padding: 18px 20px;
  border-radius: 12px;
  background: #f4f6f7;
}
.program-dialog-meta p:last-child,
.program-dialog-description p:last-child {
  margin-bottom: 0;
}
.program-dialog .program-dialog-subtitle {
  margin: 0 0 22px;
  color: #2f353b;
  font-family: var(--ts-heading);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}
.program-dialog-section + .program-dialog-section {
  margin-top: 40px;
}
.program-dialog-close {
  border-radius: 0 24px 0 18px;
  background: rgb(255 255 255 / 96%);
}
.program-dialog-close:focus-visible,
.program-dialog-scroll:focus-visible {
  outline: 2px solid #2196a2;
  outline-offset: -4px;
}
@media (max-width: 1100px) {
  .program-dialog-scroll { padding-right: 64px; padding-left: 64px; }
}
@media (max-width: 768px), (max-height: 675px) {
  .program-dialog { padding: 0; }
  .program-dialog-scroll {
    min-height: 0;
    max-height: calc(100dvh - 24px);
    padding: 76px 24px 32px;
  }
  .program-dialog h2 { min-height: 0; font-size: 16px; }
  .program-dialog-description,
  .program-dialog-meta { font-size: 16px; line-height: 1.5; }
  .program-dialog-art { top: -24px; left: -12px; transform: scale(.5); }
  .program-dialog-close { border-top-right-radius: 20px; }
}

/* Client refinement, 2026-09-07. Scoped overrides for the current composition. */
.topline .container a[href^="tel:"] {
  font-family: var(--ts-heading);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.timetable { height: auto; }
.timetable-heading { height: auto; min-height: 190px; gap: 24px; flex-wrap: wrap; }
.timetable-heading > div:first-child { flex: 1 1 850px; min-width: 0; width: auto; }
.timetable-heading h2,
.timetable-heading > div:first-child > p:last-child { height: auto; }
.timetable-heading > .timetable-actions {
  display: flex; flex: 0 0 auto; width: auto; flex-wrap: wrap;
  align-items: center; justify-content: flex-end; gap: 12px; align-self: flex-end;
}
.timetable-actions .btn { white-space: nowrap; }

.program-track article,
.program-track article::before,
.program-track article > .figma-card-hover {
  transition: opacity var(--figma-motion-fast) var(--figma-out-cubic), box-shadow var(--figma-motion-fast) var(--figma-out-cubic);
}
.program-track article > .figma-card-hover {
  position: absolute; inset: 0; z-index: 0; display: block;
  width: auto; height: auto; margin: 0; border-radius: inherit;
  background: rgb(33 38 43 / 85%); box-shadow: inset 0 0 0 4px #2196a2;
  opacity: 0; pointer-events: none;
}
.program-track article:focus-within > .figma-card-hover { opacity: 1; }
.program-track article:focus-within::before { opacity: 0; }
@media (hover: hover) and (pointer: fine) {
  .program-track article:hover > .figma-card-hover { opacity: 1; }
  .program-track article:hover::before { opacity: 0; }
}

/* Reveal the same room photograph, keeping the copy stationary and readable. */
.business-space-grid article:nth-child(n) {
  isolation: isolate; background-image: var(--space-image, none);
}
.business-space-grid article::before {
  position: absolute; inset: 0; z-index: -1; content: "";
  background: rgb(47 53 59 / 85%); opacity: 1;
  transition: opacity 250ms ease; pointer-events: none;
}
.business-space-grid article:nth-child(even)::before { background: rgb(34 94 104 / 85%); }
.business-space-grid h3, .business-space-grid p { text-shadow: 0 1px 4px rgb(0 0 0 / 40%); }
@media (hover: hover) and (pointer: fine) {
  .business-space-grid article:hover::before { opacity: .35; }
}

/* Correct matching aspect ratio: reuse the original program-card brush export. */
@media (min-width: 1281px) {
  .system-cards article::after { background-image: url("assets/final/vectors/brush/program-card-brush.svg"); }
  .partners::after { display: none; }
  .partners-photo::after {
    position: absolute; inset: 0; z-index: 2;
    background: linear-gradient(180deg, rgb(47 53 59 / 10%) 0%, rgb(47 53 59) 100%);
    content: ""; pointer-events: none;
  }
}

/* The photo owns its paint edge: no dependency on the preceding logo grid. */
@media (min-width: 769px) {
  .partner-grid::after { display: none; }
  .partners .partners-photo { position: relative; width: 100%; max-width: none; }
  .partners-photo::before {
    position: absolute; top: -2px; left: -2px; z-index: 3;
    width: calc(100% + 4px); height: calc(10.555556vw + 4px);
    background: #fff; content: ""; pointer-events: none;
    -webkit-mask: url("assets/final/vectors/brush/torn-1440x152.svg") center / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/torn-1440x152.svg") center / 100% 100% no-repeat;
  }
  .partners .partners-photo > img { width: 100%; max-width: none; height: auto; min-height: 100%; object-fit: cover; }
}
.program-dialog-body { font-size: 18px; font-weight: 400; line-height: 1.65; overflow-wrap: anywhere; }
.program-dialog-body--large { font-size: 20px; }
.program-dialog-body p { margin: 0 0 1em; font-size: inherit; line-height: inherit; font-weight: inherit; }
.program-dialog-body h3 { margin: 1.4em 0 .7em; font-size: 1.4em; line-height: 1.3; }
.program-dialog-body h4 { margin: 1.2em 0 .6em; font-size: 1.2em; line-height: 1.35; }
.program-dialog-body ul, .program-dialog-body ol { padding-left: 1.5em; margin: 0 0 1.4em; }
.program-dialog-body ul { list-style: disc; }
.program-dialog-body ol { list-style: decimal; }
.program-dialog-body li { display: list-item; margin: .45em 0; padding-left: .25em; }
.program-dialog-body li::marker { color: #5596a2; }
.program-dialog-body a { color: #326e79; text-decoration: underline; }
.program-dialog-body strong { font-weight: 700; }
.program-dialog-body blockquote { margin: 1em 0; padding: .3em 1em; border-left: 3px solid #5596a2; }
.testimonials-empty .testimonial-layout { display: none; }
.testimonials { height: auto; }
.testimonial-slider > .testimonial:not(.active) { display: none; }
.testimonial, .testimonial p { height: auto; }
.testimonial-slider { touch-action: pan-y; }

@media (max-width: 1100px) {
  .timetable-heading { flex-wrap: wrap; }
  .timetable-heading > .timetable-actions { flex-basis: 100%; justify-content: flex-start; }
}
@media (max-width: 768px) {
  /* Mobile composition: separate copy and portrait; one contained original brush. */
  .hero {
    display: flex; flex-direction: column; height: auto; min-height: 0;
    padding: 32px 0 24px;
    overflow: hidden; background: var(--ts-dark);
  }
  .hero::before, .hero::after, .hero-wash,
  .hero-copy .brush-note::before, .hero-copy .brush-note::after { display: none; }
  .hero .hero-copy {
    position: relative; inset: auto; order: 0; align-items: center;
    width: calc(100% - 40px); height: auto; min-height: 0; padding: 0;
    margin: 0 auto 24px; text-align: center;
  }
  .hero .hero-copy h1 {
    width: 100%; height: auto; max-width: 17ch; margin: 0 auto;
    font-size: clamp(32px, 8vw, 48px); line-height: 1.13; white-space: normal;
  }
  .hero .hero-copy .brush-note {
    position: static; width: 100%; max-width: 32ch; min-width: 0; height: auto; min-height: 0;
    margin: 18px auto 0; padding: 0; background: none; transform: none;
    color: var(--ts-teal); font-size: 20px; line-height: 1.45; white-space: normal;
  }
  .hero .hero-copy > .hero-description { margin-top: 18px; font-size: 16px; }
  .hero .hero-media {
    position: relative; inset: auto; order: 1; width: 100%; height: auto;
    margin: 0; padding: 0 0 44px; overflow: visible; isolation: isolate;
  }
  .hero .hero-media::before {
    position: absolute; inset: auto auto 8px 50%; z-index: 0;
    display: block; width: 86%; max-width: 560px;
    aspect-ratio: 1867.165161 / 1027.783325;
    background: url("assets/final/vectors/hero/paca.svg") center / contain no-repeat;
    transform: translateX(-50%) scaleY(-1);
    content: ""; pointer-events: none;
  }
  .hero .hero-media img {
    position: relative; inset: auto; z-index: 1; display: block; width: 100%; max-width: 680px;
    height: auto; margin: 0 auto; transform: none; object-fit: contain; filter: none;
    -webkit-mask: none; mask: none; clip-path: none;
  }
  .hero .scroll-hint { display: none; }
  .timetable-heading { min-height: 0; }
  .timetable-heading > .timetable-actions { gap: 10px; }
  .timetable-actions .btn { min-height: 48px; }
  .program-dialog-body { font-size: 16px; }
  .program-dialog-body--large { font-size: 18px; }
  .program-dialog h2 { font-size: 22px; line-height: 1.3; }
}
@media (prefers-reduced-motion: reduce) {
  .program-track article, .program-track article::before,
  .program-track article > .figma-card-hover, .business-space-grid article::before { transition: none; }
}

/* Large monitors, 2026-09-10.
 * The existing <=1600px layouts are deliberately outside these queries.
 * Keep the approved 1260px content measure and anchor the 1440px artwork
 * to that same centre. Full-width backgrounds remain independent of copy.
 */
@media (min-width: 1601px) {
  .hero::before,
  .hero::after,
  .service-choice .service-dots,
  .people .people-dots,
  .programs::before,
  .programs::after {
    left: calc(50% - 720px);
  }

  .hero .hero-copy {
    left: calc(50% - 630px);
    right: auto;
    width: 1260px;
  }

  .hero .hero-media img {
    left: calc(50% - 630px);
  }

  .arrival h2 {
    left: calc(50% - 415px);
  }

  .programs .carousel-controls {
    margin-left: auto;
    margin-right: auto;
  }

  .gastro .split-feature {
    margin-left: calc(50% - 720px);
    margin-right: auto;
  }

  /* The old natural-height image magnified and cut off the portraits. */
  .partners .partners-photo {
    background: var(--ts-dark);
  }

  .partners .partners-photo > img {
    top: 64px;
    left: 50%;
    width: min(100%, 1920px);
    height: calc(100% - 64px);
    min-height: 0;
    object-fit: cover;
    object-position: center top;
    transform: translateX(-50%);
  }

  .partners-photo::before {
    height: 156px;
    -webkit-mask-image: url("assets/final/vectors/brush/divider-paper-brush-safe-1440x152.svg");
    mask-image: url("assets/final/vectors/brush/divider-paper-brush-safe-1440x152.svg");
  }

  .motivation {
    background: var(--ts-dark);
  }

  .motivation .motivation-card {
    left: calc(50% - 265px);
  }

  .motivation-bg {
    top: 0;
    left: 50%;
    width: min(100%, 1920px);
    height: 100%;
    transform: translateX(-50%);
  }

  .map-section > .section-heading {
    width: 1260px;
    margin-left: auto;
    margin-right: auto;
    transform: none;
  }

  .contact-form form {
    left: calc(50% - 630px);
  }

  .contact-form > img {
    left: calc(50% - 194px);
    right: auto;
    width: 914px;
    max-width: none;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 20%, #000 90%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 20%, #000 90%, transparent);
  }
}

/* Keep wide photographic backgrounds from becoming giant crops on ultrawide
 * and 4K displays; blend their edges into the existing section background. */
@media (min-width: 1921px) {
  .partners .partners-photo > img,
  .motivation-bg {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  }
}

/* Updated service photographs: preserve natural proportions at every breakpoint. */
.program-track article[data-service="kineziologia"] {
  background-size: cover;
  background-position: 30% center;
}
.program-track article[data-service="reflexologia"] {
  background-size: cover;
  background-position: 82% center;
}

/* Final client refinements, 2026-09-18. */
@media (min-width: 1025px) and (max-width: 1600px) {
  .hero .hero-copy { transform: translateY(32px); }
}

@media (min-width: 769px) {
  .program-dialog h2 {
    font-size: 28px;
    font-weight: 800;
    line-height: 1.3;
  }
}

@media (max-width: 768px) {
  /* This column needs content-based heights, not the desktop horizontal basis. */
  .timetable-heading > div:first-child,
  .timetable-heading > .timetable-actions {
    flex: 0 0 auto;
    width: 100%;
  }
  .timetable-heading > .timetable-actions {
    align-self: flex-start;
    justify-content: flex-start;
  }

  /* Soften the cut upper ends of the single original brush, retaining its feet. */
  .hero .hero-media::before {
    -webkit-mask-image: linear-gradient(to top, transparent 0%, #000 55%);
    mask-image: linear-gradient(to top, transparent 0%, #000 55%);
  }

  #uzleti-megoldasok .system-cards article:nth-child(3) {
    background-position: center top;
  }

  .people-grid article:nth-child(2) { order: -1; }
}

/* Guest reviews: keep the quote separate and give each arrow its full hit area. */
.testimonial p {
  height: auto;
  padding-left: 0;
  margin: 0 0 24px;
}
.testimonial p::before {
  position: static;
  display: block;
  width: auto;
  height: 56px;
  margin-bottom: 8px;
  overflow: visible;
  font-size: 76px;
  line-height: 1;
}
.testimonial-layout > .carousel-controls {
  flex-shrink: 0;
  gap: 12px;
  overflow: visible;
}
.testimonial-layout > .carousel-controls button {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  background-size: 36px 36px;
}
.carousel-controls [data-testimonial-prev] {
  background-image: url("assets/final/icons/carousel-arrow-left.svg");
}
.carousel-controls [data-testimonial-prev]:hover,
.carousel-controls [data-testimonial-prev]:focus-visible {
  background-image: url("assets/final/icons/carousel-arrow-left-hover.svg");
}
.testimonial-slider.is-draggable {
  cursor: grab;
  touch-action: pan-y pinch-zoom;
  -webkit-user-select: none;
  user-select: none;
}
.testimonial-slider.is-dragging { cursor: grabbing; }
.testimonial-slider:focus-visible {
  outline: 2px solid var(--ts-teal);
  outline-offset: 6px;
  border-radius: var(--ts-radius);
}
@media (min-width: 1025px) {
  .testimonial-layout {
    grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr) 44px;
    column-gap: 32px;
  }
  .testimonial-layout > .carousel-controls {
    flex-direction: column;
    width: 44px;
  }
}
@media (min-width: 1281px) {
  .testimonial-layout { grid-template-columns: minmax(0, 441px) minmax(0, 1fr) 44px; }
}

/* Client-supplied map. The artwork and pins share one coordinate system. */
.location-map .location-map-art {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.location-map-art .location-marker { pointer-events: all; }
.location-map-art .location-marker image {
  filter: drop-shadow(0 2px 2px rgb(0 0 0 / 16%));
}
.location-map-art .location-marker rect { fill: transparent; }
.location-map-art .location-marker:hover rect,
.location-map-art .location-marker:focus-visible rect {
  fill: rgb(33 150 162 / 10%);
  stroke: #2196a2;
  stroke-width: 5px;
}
.location-map > strong {
  top: auto;
  bottom: 12px;
  left: 14px;
  z-index: 3;
  width: auto;
  height: auto;
  margin: 0;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0;
  text-shadow: 0 1px 2px #fff, 0 0 4px #fff;
  pointer-events: none;
}
@media (max-width: 768px) {
  /* Keep both locations visible on wider mobile/tablet map panels. */
  .location-map {
    height: auto;
    min-height: 290px;
    aspect-ratio: 1700 / 1182;
  }
}

/* September 2026 client review. Keep editable copy independent of layout. */
.program-track article[data-service="reflexologia"] { background-position: 55% center; }

/* All reviews participate in sizing: changing the active one cannot move the heading or arrows. */
.testimonial-slider { display: grid; }
.testimonial-slider > .testimonial,
.testimonial-slider > .testimonial:not(.active) {
  display: block;
  grid-area: 1 / 1;
  align-self: stretch;
  width: 100%;
  height: auto;
  visibility: hidden;
  pointer-events: none;
}
.testimonial-slider > .testimonial.active { visibility: visible; pointer-events: auto; }
@media (max-width: 1024px) {
  /* Put navigation beside the heading: short mobile reviews need no empty card space. */
  .testimonial-layout { grid-template-columns: minmax(0, 1fr); }
  .testimonial-slider { display: block; grid-row: 2; }
  .testimonial-slider > .testimonial:not(.active) { display: none; }
  .testimonial-layout > h2 { grid-area: 1 / 1; width: calc(100% - 112px); }
  .testimonial-layout > .carousel-controls {
    grid-area: 1 / 1; justify-self: end; align-self: center;
    flex-direction: row; width: auto; margin: 0;
  }
}

.career-intro::before { display: none; }
.career-intro > img {
  -webkit-mask-image: linear-gradient(to right, #000 0%, #000 64%, transparent 100%);
  mask-image: linear-gradient(to right, #000 0%, #000 64%, transparent 100%);
}
#berles .rental-list > .rental-third { row-gap: 32px; }
#berles .rental-third > .rental-location {
  grid-column: 1 / -1;
  margin: 0;
  transform: none;
  font-weight: 700;
}
#berles .rental-third h3 { font-weight: 700; }

@media (min-width: 1281px) {
  .gastro-track article::after {
    top: 0; left: 0;
    width: 205.987946px; height: 80.135048px;
    -webkit-mask: url("assets/final/vectors/brush/program-card-brush.svg") 0 0 / 100% 100% no-repeat;
    mask: url("assets/final/vectors/brush/program-card-brush.svg") 0 0 / 100% 100% no-repeat;
    transform: matrix(-.835006952, -.550239444, .550239444, -.835006952, 68.820221, 170.322418);
    transform-origin: 0 0;
  }
  .gastro-track article p,
  .gastro-track article:nth-child(1) p,
  .gastro-track article:nth-child(3) p { top: 275.285px; }
  .gastro-track article p { height: 72px; line-height: 18px; }
}
@media (min-width: 1601px) {
  .motivation-bg { top: 80px; height: calc(100% - 80px); object-position: center top; }
  #karrier .career-dots { left: calc(50% - 720px); }
}

/* Optional partner logos retain their original colours on neutral logo cards. */
.collaboration-partners { position: relative; padding: 92px 0; }
.collaboration-partners .collaboration-heading {
  display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px;
  margin-bottom: 36px;
}
.collaboration-partners h2 { margin: 0; font-size: clamp(32px, 3vw, 48px); }
.collaboration-partners .collaboration-heading p { margin: 0; color: #d5dbde; }
.collaboration-partners .collaboration-logos {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 20px;
}
.collaboration-partners .collaboration-logo {
  display: flex; align-items: center; justify-content: center; min-height: 120px;
  padding: 24px; border-radius: 16px; background: #fff; color: #21262b;
}
.collaboration-partners .collaboration-logo img { width: 100%; height: 72px; object-fit: contain; }
.collaboration-partners a.collaboration-logo:focus-visible { outline: 3px solid #60c5cc; outline-offset: 5px; }
.collaboration-partners .collaboration-placeholder { color: #d5dbde; }
@media (max-width: 768px) {
  .collaboration-partners { padding: 64px 0; }
  .collaboration-partners .collaboration-heading { grid-template-columns: 1fr; gap: 20px; }
  .collaboration-partners .collaboration-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .collaboration-partners .collaboration-logo { min-height: 100px; padding: 18px; }
  #berles .rental-list > .rental-third { row-gap: 24px; }
}

/* Intermediate laptops retain the flexible card layout. */
@media (min-width: 1200px) and (max-width: 1280px) {
  .gastro-track article p,
  .gastro-track article:nth-child(1) p,
  .gastro-track article:nth-child(3) p { top: auto; min-height: 82px; }
}

/* September 2026 finishing pass: remove only the decorative rules called out. */
.career-grid article + article::before {
  display: none;
  content: none;
}
.site-footer > .legal {
  border-top: 0;
}

/* Each label keeps its existing width; the ink has the same 33px depth. */
.site-footer .footer-grid h2 {
  height: 33px;
  min-height: 33px;
  padding-block: 6px;
  line-height: 21px;
  background: transparent url("assets/final/vectors/brush/label-footer-flex-200.svg") center / 100% 100% no-repeat;
  -webkit-mask: none;
  mask: none;
}

/* The photo edge needs a full top cap at laptop widths as well as on wide screens. */
@media (min-width: 769px) {
  .partners-photo::before {
    -webkit-mask-image: url("assets/final/vectors/brush/divider-paper-brush-safe-1440x152.svg");
    mask-image: url("assets/final/vectors/brush/divider-paper-brush-safe-1440x152.svg");
  }
}

/* The optional partner strip uses the same painted edge as the other sections. */
.collaboration-partners {
  --collaboration-top: var(--ts-paper);
  --collaboration-bottom: var(--ts-paper);
  --collaboration-edge: clamp(62px, 8vw, 116px);
  padding: calc(var(--collaboration-edge) + 36px) 0 calc(var(--collaboration-edge) + 40px);
  background-image: linear-gradient(var(--collaboration-top), var(--collaboration-top)), linear-gradient(var(--collaboration-bottom), var(--collaboration-bottom));
  background-size: 100% 4px, 100% 4px;
  background-position: top, bottom;
  background-repeat: no-repeat;
}
.collaboration-partners::before,
.collaboration-partners::after {
  position: absolute;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(var(--collaboration-edge) + 2px);
  background: var(--ts-paper);
  content: "";
  pointer-events: none;
  -webkit-mask: url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg") center top / 100% 100% no-repeat;
  mask: url("assets/final/vectors/brush/divider-white-brush-safe-1440x200.svg") center top / 100% 100% no-repeat;
}
.collaboration-partners::before { top: -1px; }
.collaboration-partners::after { bottom: -1px; transform: rotate(180deg); }
.collaboration-partners .collaboration-demo-note {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  align-items: baseline;
  margin: 0 0 26px;
  padding: 16px 20px;
  border: 1px solid rgb(255 255 255 / 22%);
  border-radius: 12px;
  color: #e6eef0;
  background: rgb(255 255 255 / 5%);
  font-size: 14px;
  line-height: 1.65;
}
.collaboration-partners .collaboration-demo-note strong { color: #fff; }
.collaboration-partners .collaboration-demo-note span { flex: 1 1 440px; }
.collaboration-partners .collaboration-logo { box-shadow: 0 8px 24px rgb(0 0 0 / 10%); }
.collaboration-partners .collaboration-sample-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  max-width: 100%;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: clamp(17px, 1.6vw, 24px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.04em;
}
.collaboration-partners .collaboration-sample-mark svg { flex: 0 0 36px; }
.collaboration-partners .collaboration-sample-mark small {
  display: block;
  margin-top: 6px;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .13em;
}
.collaboration-partners .collaboration-sample-mark-a { color: #287681; }
.collaboration-partners .collaboration-sample-mark-b { color: #b76447; font-family: Georgia, serif; }
.collaboration-partners .collaboration-sample-mark-c { color: #252b31; }
.collaboration-partners .collaboration-sample-mark-d { color: #64775d; font-family: Georgia, serif; }
@media (min-width: 1025px) {
  .collaboration-partners { --collaboration-top: #fff; }
  .collaboration-partners::before { background: #fff; }
}
@media (min-width: 1281px) {
  .collaboration-partners { --collaboration-bottom: #fff; }
  .collaboration-partners::after { background: #fff; }
}
@media (max-width: 768px) {
  .collaboration-partners .collaboration-sample { padding: 16px 12px; }
  .collaboration-partners .collaboration-sample-mark { gap: 7px; }
  .collaboration-partners .collaboration-sample-mark svg { width: 28px; height: 32px; flex-basis: 28px; }
  .collaboration-partners .collaboration-demo-note { padding: 14px 16px; font-size: 13px; }
}

/* Editable Impresszum: scoped to the separate legal page. */
.imprint-main--editable {
  min-height: 0;
  padding: 220px 24px 130px;
  background: var(--ts-white);
}
.imprint-content--editable { width: min(1060px, 100%); text-align: left; }
.imprint-content--editable .imprint-kicker {
  position: static; width: 230px; min-height: 40px; margin: 0 0 24px;
}
.imprint-content--editable h1 {
  margin: 0 0 20px; font-size: clamp(40px, 4vw, 60px); line-height: 1.12;
}
.imprint-content--editable .imprint-intro {
  max-width: 680px; margin: 0 0 48px; color: #616572; font-size: 20px; line-height: 1.55;
}
.imprint-sections {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start;
}
.imprint-card { min-width: 0; padding: 32px; border-radius: 24px; background: #f4f6f6; }
.imprint-content--editable .imprint-card h2 {
  margin: 0 0 24px; color: var(--ts-dark); font-family: var(--ts-heading);
  font-size: 23px; font-weight: 700; line-height: 1.35; letter-spacing: 0;
}
.imprint-card dl { margin: 0; }
.imprint-row + .imprint-row { margin-top: 20px; }
.imprint-row dt { margin: 0 0 4px; color: #616572; font-size: 15px; line-height: 1.4; }
.imprint-row dd {
  margin: 0; color: var(--ts-dark); font-size: 18px; line-height: 1.55; overflow-wrap: anywhere;
}
.imprint-row a { text-decoration: underline; text-underline-offset: 4px; }
.imprint-row a:hover { color: #147780; }
.imprint-card .imprint-professional { margin: 0; font-size: 18px; line-height: 1.65; overflow-wrap: anywhere; }
.imprint-editor-note {
  margin: 0 0 32px; padding: 20px 24px; border-left: 4px solid var(--ts-teal);
  border-radius: 0 16px 16px 0; background: #eaf4f4; font-size: 16px; line-height: 1.5;
}
.imprint-editor-note p { margin: 6px 0 10px; }
.imprint-editor-note a { font-weight: 700; text-decoration: underline; }
.imprint-editor-note small { display: block; margin-top: 10px; font-size: 13px; }
.imprint-content--editable .imprint-back { display: inline-flex; margin-top: 40px; }
@media (max-width: 760px) {
  .imprint-main--editable { padding: 120px 20px 100px; }
  .imprint-content--editable .imprint-intro { margin-bottom: 32px; font-size: 18px; }
  .imprint-sections { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .imprint-card { padding: 26px 22px; border-radius: 20px; }
  .imprint-content--editable .imprint-card h2 { font-size: 21px; }
  .imprint-row dd, .imprint-card .imprint-professional { font-size: 17px; }
}

/* Final client refinements: inset carousels, calmer reviews and wide photo framing. */
@media (min-width: 1025px) {
  .programs > .edge-carousel,
  .gastro-services > .gastro-carousel {
    width: min(1260px, calc(100% - 2 * var(--ts-gutter)));
    margin-inline: auto;
    padding-inline: 0;
    scroll-padding-inline: 0;
    border-radius: 20px;
    outline: 1px solid rgb(255 255 255 / 14%);
    outline-offset: 0;
  }
  .programs .program-track,
  .gastro-services .gastro-track { padding-inline: 0; }
}
.testimonial footer { width: 100%; text-align: right; }
.testimonial p { font-size: 20px; line-height: 1.65; }
@media (max-width: 768px) {
  .testimonial p { font-size: 17px; line-height: 1.65; }
}
@media (min-width: 1601px) {
  .partners { height: auto; min-height: 0; }
  /* The image and its colour wash must share an anchor on wide screens. */
  .contact-form > .contact-photo-wash {
    left: calc(50% - 194px);
    right: auto;
    width: 914px;
  }
  .partners .partners-photo {
    height: calc(min(100vw, 1920px) * 2 / 3 + 64px);
  }
  .partners .partners-photo > img {
    height: auto;
    min-height: 0;
    object-fit: contain;
  }
  .partners-photo::after {
    background: linear-gradient(180deg, rgb(47 53 59 / 6%) 0%, rgb(47 53 59 / 8%) 48%, var(--ts-dark) 100%);
  }
}
/* Cover subpixel raster seams at the clipped top edge of the photo mask. */
@media (min-width: 769px) {
  .partners-photo { box-shadow: 0 -2px 0 #fff; }
  .partners-photo::before { top: -4px; }
}

/* Preserve portrait, copy and the left-hand brush; let the paint continue beyond the right edge. */
@media (min-width: 769px) {
  .hero::before {
    width: 5000px;
    height: 2600px;
    background-image: url("assets/final/vectors/hero/paca-extended-right.svg");
  }
}

/* Content-aware and mobile layout corrections, 2026-09-28. */
/* The editable introduction must grow with its text, not retain the old
   90px paragraph / 449px column / 55px action-row measurements. */
#rolunk.intro {
  height: auto;
}
#rolunk .intro-copy,
#rolunk .intro-copy > h3,
#rolunk .intro-copy > p:not(.brush-label) {
  height: auto;
}
#rolunk .intro-copy > p:not(.brush-label) {
  margin-bottom: 0;
}
#rolunk .intro-action {
  height: auto;
  min-height: 55px;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 32px;
}
#rolunk .intro-action > .btn {
  flex-shrink: 0;
}
@media (max-width: 768px) {
  #rolunk .intro-action {
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
    margin-top: 28px;
  }
}

/* All five room descriptions share one type scale. This deliberately
   overrides the old 16/24px exceptions on cards 1 and 3, without touching
   the Gasztro room cards, room names, floor areas, or authored text. */
#terek .space-grid > article > p {
  font-family: var(--ts-body);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}
@media (min-width: 1281px) {
  #terek .space-grid > article > p {
    font-size: 18px;
    line-height: 30px;
  }
}

/* Keep the carousel boundary/inset without drawing a white frame. */
@media (min-width: 1025px) {
  .programs > .edge-carousel,
  .gastro-services > .gastro-carousel { outline: none; }
}

/* Preserve the original hero artwork and continue its upward brush arc beyond the cut edge. */
@media (min-width: 769px) {
  .hero::before {
    background-image: url("assets/final/vectors/hero/paca-original-continuation.svg");
  }
}

/* Mobile transitions use the same paper colour as the adjoining sections,
   preserving the brush silhouette and transparent gaps above photographs. */
@media (max-width: 768px) {
  /* Paper business section -> photo, and paper careers -> dark rental. */
  .motivation::before,
  .rental::before {
    top: -1px;
    height: calc(var(--ts-mobile-paint) + 2px);
    background: transparent url("assets/final/vectors/brush/divider-mobile-paper-1440x200.svg") center / 100% 100% no-repeat;
    box-shadow: none;
  }

  /* Photo -> careers: paper paint rises from the careers section. The gaps
     remain transparent, revealing the actual photo instead of flat dark ink. */
  .careers.torn-top::before {
    top: calc(-1 * var(--ts-mobile-paint));
    height: calc(var(--ts-mobile-paint) + 1px);
    background: transparent url("assets/final/vectors/brush/divider-mobile-paper-1440x200.svg") center / 100% 100% no-repeat;
    box-shadow: none;
    transform: rotate(180deg);
  }

}

/* Anchor wide-screen review and footer decorations to the centred content.
   The artwork's origin stays 90px before the 1260px content column. */
@media (min-width: 1601px) {
  .testimonials > .testimonial-dots,
  .site-footer > .footer-dots {
    left: calc((100% - var(--ts-container)) / 2 - 90px);
  }
}

/* Timetable introduction and its editable, long-form information popup. */
.timetable-heading [data-ts-edit="orarend_text_3"] {
  max-width: 68ch;
  line-height: 1.65;
}
.program-dialog--information .program-dialog-body h3,
.program-dialog--information .program-dialog-body h4 {
  color: #2f353b;
  font-weight: 700;
}
.program-dialog--information .program-dialog-body > :last-child {
  margin-bottom: 0;
}

/* Privacy links remain readable beside the existing contact submit button. */
.contact-submit-row {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 27px;
}
.contact-form .contact-submit-row .btn {
  flex-shrink: 0;
  margin-top: 0;
  transform: none;
}
.contact-form .contact-privacy-notice {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #42484e;
}
.contact-privacy-notice a,
.cookie-copy .cookie-policy-label {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cookie-copy p + p { margin-top: 8px; }
@media (min-width: 1281px) {
  .contact-submit-row { margin-top: 32px; }
}
@media (max-width: 480px) {
  .contact-submit-row { flex-wrap: wrap; gap: 12px; }
  .contact-privacy-notice { flex-basis: 100%; }
}
