/* The Gathering theme tokens mirror HOME 660:5: paper, plum, pink, green and the original Amro Sans / Garaje 0503 VAR / Archivo families. */
:root {
  --tg-paper: #fef7e8;
  --tg-plum: #292254;
  --tg-ink: #290a59;
  --tg-purple: #903a8c;
  --tg-pink: #e83882;
  --tg-green: #3c7849;
  --tg-white: #ffffff;
  --tg-space-1: 0.5rem;
  --tg-space-2: 1rem;
  --tg-space-3: 1.5rem;
  --tg-space-4: 2rem;
  --tg-space-5: 3rem;
  --tg-space-6: 4rem;
  --tg-space-7: 6rem;
  --tg-display: "Amro Sans", "Amro_Sans", sans-serif;
  --tg-accent: "Garaje0503VAR", sans-serif;
  --tg-body: "Archivo", Arial, sans-serif;
  --tg-shell: min(100% - 2rem, 1816px);
  --tg-radius: 0.625rem;
  --tg-shadow: 0 1.25rem 3.5rem rgb(41 34 84 / 0.18);
}

.tg-home,
.tg-home *,
.tg-header,
.tg-header *,
.tg-footer,
.tg-footer * {
  box-sizing: border-box;
}

.tg-home,
.tg-header,
.tg-footer {
  font-family: var(--tg-body);
}

.tg-home {
  background: var(--tg-paper);
  color: var(--tg-plum);
  min-width: 0;
  overflow: clip;
}

.tg-home a,
.tg-header a,
.tg-footer a {
  color: inherit;
}

.tg-home img,
.tg-header img,
.tg-footer img {
  display: block;
  max-width: 100%;
}

.tg-home a,
.tg-header a,
.tg-footer a,
.tg-menu-toggle {
  -webkit-tap-highlight-color: transparent;
}

.tg-home a:focus-visible,
.tg-header a:focus-visible,
.tg-footer a:focus-visible,
.tg-menu-toggle:focus-visible {
  outline: 3px solid var(--tg-pink);
  outline-offset: 4px;
}

.tg-section-shell {
  margin-inline: auto;
  max-width: var(--tg-shell);
  width: 100%;
}

.tg-eyebrow {
  color: var(--tg-paper);
  font-family: var(--tg-accent);
  font-size: clamp(0.72rem, 0.8vw, 0.95rem);
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.2;
  margin: 0 0 var(--tg-space-2);
  text-transform: uppercase;
}

.tg-eyebrow--plum { color: var(--tg-plum); }
.tg-eyebrow--pink { color: var(--tg-pink); }
.tg-eyebrow--paper { color: var(--tg-paper); }

.tg-button {
  align-items: center;
  border: 2px solid transparent;
  border-radius: var(--tg-radius);
  display: inline-flex;
  font-family: var(--tg-accent);
  font-size: clamp(0.92rem, 1.2vw, 1.25rem);
  font-weight: 700;
  justify-content: center;
  letter-spacing: 0.025em;
  line-height: 1.2;
  min-height: 44px;
  padding: 0.75rem 1.5rem;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.tg-button:hover { transform: translateY(-2px); }
.tg-button--pink { background: var(--tg-pink); color: var(--tg-white); }
.tg-button--pink:hover { background: var(--tg-purple); color: var(--tg-white); }
.tg-button--paper { background: var(--tg-paper); color: var(--tg-plum); }
.tg-button--paper:hover { background: var(--tg-white); color: var(--tg-purple); }
.tg-button--outline { border-color: var(--tg-paper); color: var(--tg-paper); }
.tg-button--outline:hover { background: var(--tg-paper); color: var(--tg-plum); }
.tg-button--outline-light { border-color: var(--tg-paper); color: var(--tg-paper); }
.tg-button--outline-light:hover { background: var(--tg-paper); color: var(--tg-green); }

/* Header: dark paper is the safe base for internal pages; HOME floats over its hero. */
.tg-header {
  background: var(--tg-plum);
  color: var(--tg-paper);
  left: auto;
  position: relative;
  right: auto;
  top: auto;
  z-index: 20;
}

body:has(.tg-home) .tg-header {
  background: transparent;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.tg-header__inner {
  align-items: center;
  display: flex;
  gap: var(--tg-space-3);
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1920px;
  min-height: 88px;
  padding: 1rem clamp(1rem, 8.44vw, 10.125rem);
  position: relative;
}

body:has(.tg-home) .tg-header__inner {
  align-items: flex-start;
  min-height: 263px;
  padding: clamp(1rem, 5vw, 96px) clamp(1rem, 8.44vw, 10.125rem) 1rem;
}

.tg-wordmark {
  align-items: center;
  display: inline-flex;
  max-width: 194px;
  text-decoration: none;
}

.tg-wordmark__logo {
  display: block;
  height: auto;
  width: min(194px, 42vw);
}

.tg-header__date {
  color: var(--tg-paper);
  font-family: var(--tg-body);
  font-size: clamp(0.75rem, 1.04vw, 1.25rem);
  line-height: 1.2;
  margin: 0;
  position: absolute;
  left: 50%;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  width: min(301px, 38vw);
}

body:has(.tg-home) .tg-header__date {
  top: clamp(2.5rem, 5.52vw, 106px);
  transform: translateX(-50%);
}

.tg-header__desktop-nav {
  align-items: center;
  display: flex;
  font-family: var(--tg-body);
  font-size: clamp(0.86rem, 1.05vw, 1.2rem);
  gap: clamp(1rem, 1.7vw, 2rem);
  margin-left: auto;
}

.tg-header__desktop-nav a {
  min-height: 44px;
  padding: 0.75rem 0.2rem;
  text-decoration: none;
}

.tg-header__desktop-nav a:hover { color: var(--tg-pink); }
.tg-header__desktop-nav .tg-header__ticket-link {
  border-bottom: 2px solid var(--tg-pink);
  font-weight: 700;
}
.tg-header__desktop-nav .tg-header__locale {
  border-left: 1px solid rgb(254 247 232 / 0.5);
  padding-left: 1.25rem;
}

.tg-menu-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  margin-left: clamp(1rem, 1.7vw, 2rem);
  padding: 0.5rem;
}

.tg-menu-toggle span {
  background: currentColor;
  display: block;
  height: 2px;
  width: 26px;
}

.tg-menu-panel {
  background: var(--tg-plum);
  border-top: 1px solid rgb(254 247 232 / 0.26);
  color: var(--tg-paper);
  padding: 1rem clamp(1rem, 4.2vw, 5rem) 2rem;
}

.tg-menu-panel__nav {
  display: grid;
  gap: 0.1rem;
  margin-inline: auto;
  max-width: 40rem;
}

.tg-menu-panel__nav a {
  border-bottom: 1px solid rgb(254 247 232 / 0.16);
  font-family: var(--tg-accent);
  font-size: clamp(1rem, 4.8vw, 1.4rem);
  min-height: 44px;
  padding: 0.7rem 0;
  text-decoration: none;
}

.tg-menu-panel__nav a:hover { color: var(--tg-pink); }
.tg-menu-panel__nav .tg-menu-panel__ticket-link { color: var(--tg-pink); font-weight: 700; }
.tg-menu-panel__nav .tg-menu-panel__locale { border-bottom: 0; color: var(--tg-paper); margin-top: 0.5rem; }

/* Hero: the 1920px reference is 988px tall and uses the Figma beach crop. */
.tg-hero {
  align-items: end;
  display: grid;
  min-height: clamp(720px, 51.46vw, 988px);
  overflow: hidden;
  padding: 0 1rem;
  position: relative;
}

.tg-hero__media,
.tg-hero__media::after {
  inset: 0;
  position: absolute;
}

.tg-hero__media { background: var(--tg-plum); }
.tg-hero__media::after {
  background: linear-gradient(180deg, rgb(0 0 0 / 0.68) 0%, rgb(41 34 84 / 0.08) 42%, rgb(41 34 84 / 0.74) 100%);
  content: "";
}

.tg-hero__media .tg-hero__image {
  height: 126.5%;
  left: -11.35%;
  max-width: none;
  object-fit: fill;
  position: absolute;
  top: -19.52%;
  width: 113.86%;
}

.tg-hero__content {
  align-self: stretch;
  color: var(--tg-paper);
  margin-inline: auto;
  max-width: none;
  position: relative;
  text-align: center;
  width: 100%;
  z-index: 1;
}

.tg-hero__content h1 {
  font-family: var(--tg-display);
  font-size: clamp(3rem, 3.39vw, 65px);
  font-weight: 700;
  left: 0;
  letter-spacing: 0.025em;
  line-height: 1;
  margin: 0;
  position: absolute;
  right: 0;
  text-wrap: balance;
  top: clamp(10rem, 22.13vw, 425px);
}

.tg-hero__frame {
  display: block;
  height: auto;
  left: 50%;
  margin: 0;
  max-width: 967px;
  position: absolute;
  top: clamp(18rem, 26.61vw, 511px);
  transform: translateX(-50%);
  width: 50.365vw;
}

.tg-hero__mark {
  height: auto;
  left: 50%;
  margin: 0;
  max-width: 554px;
  position: absolute;
  top: clamp(18rem, 36.3vw, 697px);
  transform: translateX(-50%);
  width: 28.854vw;
}

.tg-hero__content .tg-button {
  height: clamp(3.75rem, 3.49vw, 67px);
  left: 50%;
  margin: 0;
  min-height: 44px;
  min-width: 0;
  padding-inline: 1rem;
  position: absolute;
  top: clamp(20rem, 40.16vw, 771px);
  transform: translateX(-50%);
  width: clamp(18rem, 16.875vw, 324px);
}
.tg-hero__content > .tg-button:hover { transform: translateX(-50%) translateY(-2px); }
.tg-hero__scroll {
  bottom: 1.5rem;
  color: var(--tg-paper);
  font-size: 0.8rem;
  left: 50%;
  letter-spacing: 0.12em;
  position: absolute;
  text-decoration: none;
  text-transform: uppercase;
  transform: translateX(-50%);
  z-index: 1;
}
.tg-hero__scroll span { color: var(--tg-pink); font-size: 1.5rem; margin-left: 0.35rem; }

/* Expect section: paper field, green/pink accents and the four Figma claims. */
.tg-expect {
  background: var(--tg-paper);
  min-height: clamp(640px, 49.9vw, 958px);
  overflow: hidden;
  padding: clamp(5rem, 8vw, 8rem) 1rem clamp(6rem, 10vw, 10rem);
  position: relative;
}

.tg-expect::before {
  background: url("/_site-assets/home-660-5-imgrectangle564imagen2-129ae-1f0032a5") center / cover;
  content: "";
  inset: 0;
  opacity: 0.13;
  pointer-events: none;
  position: absolute;
}

.tg-expect__texture {
  bottom: 0;
  opacity: 0.14;
  pointer-events: none;
  position: absolute;
  right: -3rem;
  width: min(42vw, 44rem);
}
.tg-expect__texture img { height: auto; width: 100%; }
.tg-expect__shell { position: relative; z-index: 1; }
.tg-expect__heading { margin-inline: auto; max-width: 70rem; text-align: center; }
.tg-expect__heading h2 {
  background: url("/_site-assets/home-660-5-imgwhattoexpect-19b75-909662cc") center / cover;
  background-clip: text;
  color: transparent;
  font-family: var(--tg-display);
  font-size: clamp(3rem, 7.5vw, 9rem);
  font-weight: 700;
  letter-spacing: 0.015em;
  line-height: 0.95;
  margin: 0;
  -webkit-background-clip: text;
}
.tg-expect__heading > p:last-child {
  font-size: clamp(1rem, 1.5vw, 1.55rem);
  line-height: 1.55;
  margin: 1.5rem auto 0;
  max-width: 44rem;
}
.tg-expect__grid {
  display: grid;
  gap: clamp(2rem, 5vw, 5rem) clamp(1rem, 3vw, 3.5rem);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: clamp(4rem, 8vw, 7rem) auto 0;
  max-width: 76rem;
  padding: 0;
}
.tg-expect-card { text-align: center; }
.tg-expect-card__icon { height: clamp(7.5rem, 12.65vw, 15.7rem); margin: 0 auto clamp(1.25rem, 2vw, 2.5rem); }
.tg-expect-card__icon img { height: 100%; margin-inline: auto; object-fit: contain; width: 100%; }
.tg-expect-card p {
  color: var(--tg-plum);
  font-size: clamp(1.1rem, 1.9vw, 2.3rem);
  line-height: 1.02;
  margin: 0 auto;
  max-width: 18rem;
}
.tg-expect-card strong { font-weight: 700; }

/* Mountain CTA: the original Figma photo carries the dark plum call to action. */
.tg-story {
  align-items: stretch;
  background: var(--tg-plum);
  color: var(--tg-ink);
  display: grid;
  min-height: clamp(640px, 49.375vw, 948px);
  overflow: hidden;
  position: relative;
}
.tg-story__media,
.tg-story__media::after { inset: 0; position: absolute; }
.tg-story__media::after {
  background: linear-gradient(180deg, rgb(254 247 232 / 0.34) 0%, rgb(254 247 232 / 0.02) 35%, rgb(41 34 84 / 0.36) 100%);
  content: "";
}
.tg-story__media img { height: 100%; object-fit: cover; object-position: center 48%; width: 100%; }
.tg-story__content {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(4rem, 7vw, 7rem) 1rem clamp(5rem, 10vw, 10rem);
  position: relative;
  text-align: center;
  z-index: 1;
}
.tg-story__content h2 {
  color: var(--tg-ink);
  font-family: var(--tg-display);
  font-size: clamp(3.3rem, 6.25vw, 7.5rem);
  line-height: 0.9;
  margin: 0 auto;
  text-wrap: balance;
}
.tg-story__actions {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 603px));
  justify-content: center;
  margin-inline: auto;
  width: 100%;
}
.tg-button--ticket {
  background: var(--tg-purple);
  border-color: var(--tg-purple);
  border-radius: 0;
  color: var(--tg-paper);
  text-transform: uppercase;
}
.tg-button--ticket:hover { background: var(--tg-pink); border-color: var(--tg-pink); color: var(--tg-paper); }

/* Billboard: the original artwork follows the mountain CTA at full width. */
.tg-tickets {
  background: var(--tg-paper);
  color: var(--tg-plum);
  overflow: hidden;
  padding: 0;
  position: relative;
}
.tg-tickets__billboard { margin: 0 auto; max-width: 1937px; width: 100%; }
.tg-billboard {
  aspect-ratio: 1937 / 509;
  background: var(--tg-paper);
  border-block: clamp(0.25rem, 0.45vw, 0.55rem) solid var(--tg-green);
  color: var(--tg-plum);
  isolation: isolate;
  min-height: 220px;
  overflow: hidden;
  position: relative;
}
.tg-billboard::after {
  border: 1px solid rgb(41 34 84 / 0.36);
  content: "";
  inset: clamp(0.55rem, 1.4vw, 1.5rem);
  pointer-events: none;
  position: absolute;
  z-index: 3;
}
.tg-billboard__grain {
  background: url("/_site-assets/home-660-5-imgrectangle564imagen3-c9ffc-60a80e35") center / cover;
  inset: 0;
  opacity: 0.2;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tg-billboard__star {
  bottom: -54%;
  left: -3%;
  max-width: none;
  opacity: 0.11;
  position: absolute;
  transform: rotate(-12deg);
  width: 23%;
  z-index: 0;
}
.tg-billboard__flourish {
  bottom: -52%;
  left: -2%;
  max-width: none;
  mix-blend-mode: multiply;
  opacity: 0.46;
  position: absolute;
  width: 38%;
  z-index: 0;
}
.tg-billboard__brand {
  left: 5%;
  position: absolute;
  text-align: left;
  top: 12%;
  width: min(42%, 48rem);
  z-index: 1;
}
.tg-billboard__kicker {
  color: var(--tg-green);
  font-family: var(--tg-accent);
  font-size: clamp(0.8rem, 1.45vw, 1.6rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  margin: 0 0 0.1em;
  text-transform: uppercase;
}
.tg-billboard__logo {
  display: block;
  height: auto;
  max-width: 100%;
  width: min(17vw, 18rem);
}
.tg-billboard__edition {
  color: var(--tg-purple);
  font-family: var(--tg-accent);
  font-size: clamp(0.75rem, 1.25vw, 1.4rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  margin: 0.45rem 0 0;
  text-transform: uppercase;
}
.tg-billboard__date {
  align-items: center;
  background: var(--tg-green);
  border-radius: 50%;
  color: var(--tg-paper);
  display: flex;
  flex-direction: column;
  height: clamp(8rem, 14vw, 14rem);
  justify-content: center;
  left: 27%;
  line-height: 0.85;
  position: absolute;
  text-align: center;
  top: 40%;
  transform: rotate(-8deg);
  width: clamp(8rem, 14vw, 14rem);
  z-index: 1;
}
.tg-billboard__date strong { font-family: var(--tg-display); font-size: clamp(1.6rem, 3.6vw, 4rem); }
.tg-billboard__date span { font-family: var(--tg-accent); font-size: clamp(0.72rem, 1.15vw, 1.25rem); font-weight: 700; letter-spacing: 0.12em; margin-top: 0.25rem; }
.tg-billboard__copy {
  border-left: 4px solid var(--tg-pink);
  font-family: var(--tg-body);
  font-size: clamp(0.72rem, 1.1vw, 1.25rem);
  font-weight: 700;
  left: 52%;
  line-height: 1.5;
  max-width: 40%;
  padding-left: clamp(0.7rem, 1.5vw, 1.6rem);
  position: absolute;
  text-transform: uppercase;
  top: 25%;
  z-index: 1;
}
.tg-billboard__copy p { margin: 0 0 0.75rem; }
.tg-billboard__copy p:last-child { color: var(--tg-purple); margin-bottom: 0; }

/* Gallery: paper texture, the original TIME & SPACE seal and the five-column mosaic. */
.tg-gallery {
  background: var(--tg-paper);
  color: var(--tg-plum);
  overflow: hidden;
  padding: 0 1rem clamp(5rem, 8vw, 9rem);
  position: relative;
}
.tg-gallery::before {
  background: linear-gradient(180deg, rgb(60 120 73 / 0.96) 0%, rgb(60 120 73 / 0.72) 11%, rgb(254 247 232 / 0) 34%);
  content: "";
  inset: 0 0 auto;
  height: 38%;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tg-gallery__texture {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tg-gallery__texture img:first-child {
  height: 128%;
  left: 0;
  object-fit: cover;
  position: absolute;
  top: -28%;
  width: 100%;
}
.tg-gallery__texture img:last-child {
  height: 100%;
  inset: 0;
  object-fit: cover;
  opacity: 0.16;
  position: absolute;
  width: 100%;
}
.tg-gallery > .tg-section-shell { position: relative; z-index: 1; }
.tg-gallery__heading { margin: 0 auto clamp(3rem, 6vw, 6rem); max-width: 1816px; text-align: center; }
.tg-gallery__heading h2.tg-sr-only {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}
.tg-gallery__badge {
  display: block;
  height: auto;
  margin: clamp(3rem, 5vw, 5rem) auto clamp(3rem, 6vw, 6rem);
  max-width: min(779px, 82vw);
  width: 100%;
}
.tg-gallery__grid { display: grid; gap: clamp(0.5rem, 1.25vw, 1.25rem); grid-template-columns: repeat(5, minmax(0, 1fr)); margin-inline: auto; max-width: 1816px; }
.tg-gallery__item { aspect-ratio: 1; margin: 0; overflow: hidden; }
.tg-gallery__item img { height: 100%; object-fit: cover; transition: transform 260ms ease; width: 100%; }
.tg-gallery__item:hover img { transform: scale(1.04); }

/* Footer: the Figma footer is plum; contact uses the current approved mailbox. */
.tg-footer { background: var(--tg-plum); color: var(--tg-paper); padding: 3.5rem clamp(1rem, 4.2vw, 5rem) 1.5rem; }
.tg-footer__inner { display: grid; gap: 2rem 4rem; grid-template-columns: 1.3fr 1fr 1fr; margin-inline: auto; max-width: 1440px; padding-bottom: 3rem; }
.tg-footer__wordmark { display: block; max-width: 194px; text-decoration: none; }
.tg-footer__wordmark img { display: block; height: auto; width: min(194px, 42vw); }
.tg-footer__brand p,
.tg-footer__contact p,
.tg-footer__legal a,
.tg-footer__contact a { font-size: 1rem; line-height: 1.5; }
.tg-footer__brand p { margin: 0.75rem 0 0; max-width: 18rem; }
.tg-footer__label { color: var(--tg-pink); font-family: var(--tg-accent); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.tg-footer__contact p { margin: 0.35rem 0; }
.tg-footer__contact a { display: inline-block; margin-bottom: 0.35rem; }
.tg-footer__contact a:hover,
.tg-footer__legal a:hover,
.tg-footer__bottom a:hover { color: var(--tg-pink); }
.tg-footer__legal { display: grid; gap: 0.55rem; align-content: start; }
.tg-footer__legal a,
.tg-footer__bottom a { text-decoration: none; }
.tg-footer__bottom { border-top: 1px solid rgb(254 247 232 / 0.2); display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; margin-inline: auto; max-width: 1440px; padding-top: 1rem; }
.tg-footer__bottom p { margin: 0; }

@media (max-width: 800px) {
  .tg-header__inner,
  body:has(.tg-home) .tg-header__inner { align-items: center; min-height: 76px; padding: 1rem; }
  .tg-header__date,
  body:has(.tg-home) .tg-header__date {
    font-size: clamp(0.62rem, 2.8vw, 0.78rem);
    left: auto;
    position: static;
    transform: none;
    width: auto;
  }
  .tg-header__desktop-nav { display: none; }
  .tg-menu-toggle { display: inline-flex; }
  .tg-hero { min-height: max(680px, 150vw); padding: 5rem 1rem 5rem; }
  .tg-hero__media .tg-hero__image { height: 100%; left: 0; object-fit: cover; object-position: 58% center; top: 0; transform: scale(1.38); width: 100%; }
  .tg-hero__content { align-self: end; box-sizing: border-box; display: flex; flex-direction: column; min-width: 0; padding-inline: 1rem; }
  .tg-hero__content h1 { font-size: clamp(3.15rem, 14vw, 5rem); position: static; }
  .tg-hero__frame { margin: 0.5rem auto 0; max-width: 94vw; position: static; transform: none; width: 100%; }
  .tg-hero__mark { margin: 0.45rem auto 0; max-width: min(27rem, 92vw); position: static; transform: none; width: 100%; }
  .tg-hero__content .tg-button { box-sizing: border-box; margin: 1rem auto 0; max-width: 100%; position: static; transform: none; width: min(20rem, 90vw); }
  .tg-hero__content > .tg-button:hover { transform: translateY(-2px); }
  .tg-hero__scroll { bottom: 1rem; font-size: 0.68rem; white-space: nowrap; }
  .tg-expect { min-height: 0; padding-top: 5rem; }
  .tg-expect__heading h2 { font-size: clamp(3rem, 15vw, 5.2rem); }
  .tg-expect__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 4rem; }
  .tg-expect-card__icon { height: 5.5rem; }
  .tg-expect-card p { font-size: clamp(1rem, 4.8vw, 1.45rem); }
  .tg-story { min-height: 650px; }
  .tg-story__media::after { background: linear-gradient(180deg, rgb(41 34 84 / 0.38) 0%, rgb(41 34 84 / 0.9) 75%); }
  .tg-story__content { align-self: end; padding: 4rem 1rem; }
  .tg-story__content h2 { font-size: clamp(2.75rem, 13vw, 5rem); }
  .tg-story__actions { grid-template-columns: 1fr; }
  .tg-story__actions .tg-button { width: 100%; }
  .tg-billboard { min-height: 300px; }
  .tg-billboard__brand { left: 8%; top: 12%; width: 64%; }
  .tg-billboard__logo { width: 7rem; }
  .tg-billboard__date { bottom: 6%; height: 6rem; left: 8%; top: auto; width: 6rem; }
  .tg-billboard__date strong { font-size: 1.4rem; }
  .tg-billboard__date span { font-size: 0.62rem; }
  .tg-billboard__copy { border-left-width: 2px; font-size: clamp(0.58rem, 2.4vw, 0.78rem); left: 38%; max-width: 54%; padding-left: 0.6rem; top: 43%; }
  .tg-billboard__copy p { margin-bottom: 0.45rem; }
  .tg-gallery__heading h2 { font-size: clamp(3rem, 14vw, 5.6rem); }
  .tg-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tg-footer__inner { grid-template-columns: 1fr; }
  .tg-footer__bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 360px) {
  .tg-expect__grid { grid-template-columns: 1fr; }
  .tg-expect-card { display: grid; gap: 0.8rem; grid-template-columns: 5rem 1fr; text-align: left; align-items: center; }
  .tg-expect-card__icon { height: 5rem; margin: 0; }
  .tg-expect-card p { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .tg-button,
  .tg-gallery__item img { transition: none; }
  .tg-button:hover,
  .tg-gallery__item:hover img { transform: none; }
}

@media (max-width: 359px) {
  .tg-hero__content h1 { font-size: 12vw; }
}

/* Browser corrections: retain readable navigation and proportional desktop geometry. */
.tg-menu-toggle{color:inherit;flex-shrink:0}
.tg-home .tg-hero__scroll{color:var(--tg-paper)}
.tg-home .tg-button--ticket{color:var(--tg-paper)}
.tg-expect__heading{max-width:none}
.tg-expect__grid{max-width:1676px}
@media(min-width:801px){
 .tg-hero__content h1{font-size:min(3.3854vw,65px);top:min(22.1354vw,425px)}
 .tg-hero__frame{top:min(26.6065vw,510.8457px);left:48.724%}
 .tg-hero__mark{top:min(36.3021vw,697px);left:50.185%}
 .tg-hero__content .tg-button{top:min(40.15625vw,771px)}
 .tg-expect{padding-top:min(7.34375vw,141px);padding-bottom:min(8.3333vw,160px)}
 .tg-expect__heading h2{line-height:142px;line-height:min(7.3958vw,142px)}
 .tg-expect__grid{margin-top:min(5.2604vw,101px)}
 .tg-expect-card__icon{margin-bottom:min(1.302vw,25px)}
}

.tg-billboard{width:100%;min-width:0}

/* Native disclosure also works inside the application-owned checkout and portal. */
.tg-navigation{flex:0 0 44px;margin:0;padding:0}
.tg-navigation summary{list-style:none;color:inherit}
.tg-navigation summary::-webkit-details-marker{display:none}
.tg-navigation .tg-menu-panel{position:absolute;left:0;right:0;top:100%;max-height:calc(100svh - 120px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 30px #160c2b44}
.tg-navigation:not([open]) .tg-menu-panel{display:none}
.tg-navigation[open] .tg-menu-toggle span:nth-child(2){opacity:0}
.tg-navigation[open] .tg-menu-toggle span:first-child{transform:translateY(7px) rotate(45deg)}
.tg-navigation[open] .tg-menu-toggle span:last-child{transform:translateY(-7px) rotate(-45deg)}

/* Reference HOME: CTA sizes and visible original paper texture. */
.tg-home .tg-hero__content .tg-button{font-size:clamp(1.2rem,1.3021vw,25px)}
.tg-expect::before{opacity:1;background-position:center bottom}
@media(min-width:801px){
 .tg-expect-card p{font-size:clamp(1.1rem,2.0833vw,40px);line-height:.975}
 .tg-story__content{padding-top:min(9.8958vw,190px);padding-bottom:min(13.9583vw,268px)}
 .tg-story__actions{max-width:1273px;gap:min(3.4896vw,67px)}
 .tg-home .tg-story__actions .tg-button{height:min(6.1979vw,119px);font-size:clamp(1.2rem,2.6042vw,50px);border-radius:7px}
}
@media(max-width:800px){
 .tg-story__content h2{color:var(--tg-paper)}
 .tg-home .tg-story__actions .tg-button{font-size:1.2rem;min-height:54px}
}

/* Figma frame 1413:2: illustrated navigation, with all additional routes retained. */
body:has(.tg-navigation[open]) { overflow: hidden; }
body:has(.tg-navigation[open]) .tg-header { z-index: 1000; }
body:has(.tg-navigation[open]) .tg-header__desktop-nav { visibility: hidden; }
.tg-navigation[open] .tg-menu-toggle {
  color: #fef7e8;
  margin: 0;
  position: fixed;
  right: clamp(1rem, 8.4vw, 10rem);
  top: clamp(1rem, 5vw, 6rem);
  z-index: 1002;
}
.tg-navigation[open] .tg-menu-panel {
  background: #659478 url("/_site-assets/1413-2-reference-imgmenudehamburguesa-8db58-00d8ea4c") center top / cover no-repeat;
  border: 0;
  bottom: 0;
  box-shadow: none;
  color: #145130;
  height: 100dvh;
  left: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1001;
}
.tg-menu-panel__logo { display: block; height: 71px; left: max(1rem, calc((100% - 1920px) / 2 + 8.33%)); position: absolute; top: 96px; width: 194px; z-index: 2; }
.tg-menu-panel__logo img { display: block; height: 100%; width: 100%; }
.tg-menu-panel__map { height: 948px; margin-inline: auto; max-width: 1920px; position: relative; }
.tg-menu-panel__destination {
  align-items: center;
  color: #145130;
  display: flex;
  flex-direction: column;
  font-family: 'Garaje 0503 VAR', 'Amro Sans', sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.15;
  min-height: 44px;
  position: absolute;
  text-align: center;
  text-decoration: none;
}
.tg-menu-panel__destination img { display: block; flex: 0 0 auto; height: 100%; max-height: 206px; object-fit: contain; width: 100%; }
.tg-menu-panel__destination span { display: block; margin-top: .3rem; max-width: 10ch; }
.tg-menu-panel__destination:hover,
.tg-menu-panel__destination:focus-visible { color: #fef7e8; }
.tg-menu-panel__destination--travel { left: 10.3%; top: 356px; width: 190px; }
.tg-menu-panel__destination--travel img { height: 142px; }
.tg-menu-panel__destination--stays { left: 24.8%; top: 218px; width: 224px; }
.tg-menu-panel__destination--stays img { height: 212px; }
.tg-menu-panel__destination--participate { left: 40.8%; top: 207px; width: 205px; }
.tg-menu-panel__destination--participate img { height: 162px; }
.tg-menu-panel__destination--camping { left: 54.5%; top: 145px; width: 207px; }
.tg-menu-panel__destination--camping img { height: 203px; }
.tg-menu-panel__destination--sustainability { left: 68%; top: 201px; width: 205px; }
.tg-menu-panel__destination--sustainability img { height: 181px; }
.tg-menu-panel__destination--workshops { left: 79.5%; top: 383px; width: 205px; }
.tg-menu-panel__destination--workshops img { height: 196px; }
.tg-menu-panel__destination--faq { left: 26.2%; top: 583px; width: 215px; }
.tg-menu-panel__destination--faq img { height: 156px; }
.tg-menu-panel__destination--shop { left: 45.8%; top: 533px; width: 205px; }
.tg-menu-panel__destination--shop img { height: 245px; }
.tg-menu-panel__destination--music { left: 63.4%; top: 563px; width: 203px; }
.tg-menu-panel__destination--music img { height: 202px; }
.tg-navigation[open] .tg-menu-panel__nav {
  border-top: 1px solid rgb(20 81 48 / .25);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  justify-content: center;
  max-width: none;
  padding: 1.25rem max(1rem, calc((100% - 1600px) / 2)) 2rem;
}
.tg-navigation[open] .tg-menu-panel__nav a {
  border: 0;
  color: #145130;
  font-family: 'Garaje 0503 VAR', 'Amro Sans', sans-serif;
  font-size: 1.25rem;
  min-height: 44px;
  padding: .5rem;
}
.tg-navigation[open] .tg-menu-panel__nav a:hover { color: #fef7e8; }
.tg-navigation[open] .tg-menu-panel__nav .tg-menu-panel__ticket-link { color: #681c66; }
@media (max-width: 1600px) {
  .tg-menu-panel__logo { left: 1.25rem; top: 1.25rem; width: 130px; height: auto; }
  .tg-menu-panel__map { display: grid; gap: 1.25rem .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); height: auto; padding: 7rem 1.25rem 2.5rem; }
  .tg-menu-panel__destination { font-size: clamp(1.15rem, 2.6vw, 1.8rem); left: auto; min-width: 0; position: static; top: auto; width: auto; }
  .tg-menu-panel__destination img { height: 8rem; max-height: 8rem; }
  .tg-navigation[open] .tg-menu-toggle { right: 1.25rem; top: 1.25rem; }
}
@media (max-width: 640px) {
  .tg-menu-panel__logo { width: 120px; }
  .tg-menu-panel__map { gap: 1.1rem .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 6.5rem 1rem 2rem; }
  .tg-menu-panel__destination { font-size: clamp(1.1rem, 5vw, 1.4rem); }
  .tg-menu-panel__destination img { height: clamp(5.5rem, 26vw, 8rem); max-height: none; }
  .tg-navigation[open] .tg-menu-panel__nav { gap: .25rem .8rem; padding: 1.25rem 1rem 3rem; }
  .tg-navigation[open] .tg-menu-panel__nav a { font-size: 1.1rem; }
}

/* The original Figma icons follow their corresponding feature, with two heading ornaments. */
.tg-expect__heading{position:relative}
.tg-expect__ornament{position:absolute;top:min(.9375vw,18px);width:min(6.615vw,127px);height:min(5.8854vw,113px);object-fit:contain}
.tg-expect__ornament--left{left:7%}
.tg-expect__ornament--right{right:6%;transform:rotate(-6.67deg)}
@media(max-width:1100px){.tg-expect__ornament{display:none}}

/* Figma HOME's paper layer is rotated: its transparent torn edge overlaps the sky below. */
@media(min-width:1280px){
 .tg-expect{background:transparent;overflow:visible;z-index:1}
 .tg-expect::before{top:-21px;bottom:auto;height:min(66.0417vw,1268px);background-size:min(50vw,960px) min(65.78125vw,1263px);background-position:left top;background-repeat:repeat-x;transform:rotate(180deg)}
 .tg-story{overflow:visible}
 .tg-story__media{top:-40px}
}
