/* ============================================================================
   Jivamukti Tribe Gathering — project styles
   Generated from references/site/css/rome-tribe.css + custom.css by
   notes/tools/merge-css.py, then hand-fixed (see notes/MIGRATION-REPORT.md).
   Longhand only. No !important. Three breakpoints. Colours via palette tokens.
   Rules keep Rome source order; a media rule sits in its own @media block.
   ============================================================================ */

/* ============================================
      BROWSER RESET & BASE STYLES
      ============================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
}

html {
  height: auto;
  min-height: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  min-height: 100%;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
  color: var(--_palette---neutral--800);
  background-color: var(--_palette---neutral--0);
}

[data-flwr] img {
  max-width: 100%;
  vertical-align: middle;
  display: inline-block;
  overflow-x: visible;
  overflow-y: visible;
  overflow-clip-margin: 0;
}

[data-flwr] ::selection {
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--900);
}

/* Custom Scrollbar - Visible with Custom Styling */
/* Webkit browsers (Chrome, Safari, Edge) - only apply to html */
[data-flwr] ::-moz-selection {
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--900);
}

html::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

html::-webkit-scrollbar-thumb {
  background-color: var(--_palette---accent--500);
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
  border-bottom-left-radius: 6px;
  border-top-style: none;
  border-top-width: 0;
  border-right-style: none;
  border-right-width: 0;
  border-bottom-style: none;
  border-bottom-width: 0;
  border-left-style: none;
  border-left-width: 0;
}

html::-webkit-scrollbar-thumb:hover {
  background-color: var(--_palette---accent--600);
}

html {
  scrollbar-width: auto;
  scrollbar-color: var(--_palette---accent--500) transparent;
}

[data-flwr] .custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 28px;
  height: 28px;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-50%, -50%);
  transition-property: transform;
  transition-duration: 0.35s;
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition-delay: 0s;
  will-change: transform;
}

[data-flwr] .custom-cursor svg {
  width: 100%;
  height: 100%;
  display: block;
}

[data-flwr] .custom-cursor svg path {
  fill: var(--_palette---neutral--1000);
  transition-property: fill;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition-delay: 0s;
}

[data-flwr] .custom-cursor.is-hovering {
  transform: translate(-50%, -50%) scale(1.2);
}

/* ============================================
      STICKY SCROLL SECTION
      ============================================ */
[data-flwr] .custom-cursor.is-hovering svg path {
  fill: var(--_palette---accent--500);
}

[data-flwr] .sticky-scroll_wrap {
  padding-top: var(--_spacing---section--main);
  padding-right: 0;
  padding-bottom: var(--_spacing---section--main);
  padding-left: 0;
  min-height: 400vh;
}

[data-flwr] .sticky-scroll_content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  padding-top: 0;
  padding-right: var(--_spacing---page-margin);
  padding-bottom: 0;
  padding-left: var(--_spacing---page-margin);
  position: relative;
}

[data-flwr] .sticky-scroll_text-container {
  position: relative;
  min-width: 0;
}

[data-flwr] .sticky-scroll_text-block {
  margin-bottom: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: var(--_spacing---step--4);
}

[data-flwr] .sticky-scroll_text-block h2 {
  font-size: clamp(1.5rem, 3vw, 3rem);
}

[data-flwr] .sticky-scroll_text-block h3 {
  font-size: clamp(1.25rem, 1rem + 1.5vw, 2.5rem);
}

[data-flwr] .sticky-scroll_text-block:last-child {
  margin-bottom: 0;
}

[data-flwr] .sticky-scroll_images-container {
  position: relative;
  min-width: 0;
  max-width: 100%;
}

[data-flwr] .sticky-scroll_image-block {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

[data-flwr] .sticky-scroll_image-block .image-wrap {
  width: 100%;
  height: 100%;
}

@media (max-width: 991px) {
  [data-flwr] .sticky-scroll_content {
    grid-template-columns: 1.2fr 1fr;
  }

  [data-flwr] .sticky-scroll_content {
    grid-template-columns: 1.5fr 1fr;
  }

}

/* Responsive Sticky Scroll - Tablet and below */
@media (max-width: 991px) {
  [data-flwr] .sticky-scroll_content {
    grid-template-columns: 2fr 1fr;
  }

  [data-flwr] .sticky-scroll_wrap {
    min-height: auto;
    padding-top: unset;
    padding-right: unset;
    padding-bottom: unset;
    padding-left: unset;
  }

  [data-flwr] .sticky-scroll_content {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
  }

  [data-flwr] .sticky-scroll_images-container {
    order: 1;
    display: flex;
    flex-direction: column;
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
  }

  [data-flwr] .sticky-scroll_text-container {
    order: 2;
  }

  [data-flwr] .sticky-scroll_image-block {
    position: static;
    height: auto;
    min-height: 400px;
  }

  [data-flwr] .sticky-scroll_image-block .image-wrap {
    height: auto;
    max-height: 600px;
  }

  [data-flwr] .sticky-scroll_text-block {
    height: auto;
    padding-right: 0;
    margin-bottom: var(--_spacing---step--8);
  }

  [data-flwr] .sticky-scroll_text-block:last-child {
    margin-bottom: 0;
  }

}

@media (max-width: 767px) {
  [data-flwr] .sticky-scroll_text-block h2 {
    font-size: clamp(1.25rem, 5vw, 2rem);
  }

  [data-flwr] .sticky-scroll_text-block h3 {
    font-size: clamp(1rem, 4vw, 1.5rem);
  }

  [data-flwr] .sticky-scroll_image-block {
    min-height: 300px;
  }

}

/* ============================================
      TRIBE GRID LAYOUT
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .sticky-scroll_image-block .image-wrap {
    max-height: 400px;
  }

}

[data-flwr] .tribe-grid {
  display: grid;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
}

[data-flwr] .tribe-grid_row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
}

[data-flwr] .tribe-grid_left {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

[data-flwr] .tribe-grid_sub-left, [data-flwr] .tribe-grid_sub-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ============================================
      LUMOS CSS VARIABLES (Rome Tribe Theme)
      ============================================ */
[data-flwr] .tribe-grid_right {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body {
  background-color: var(--_theme---surface--main);
  font-family: var(--_text-style---family);
  color: var(--_theme---text--main);
  font-size: var(--_text-style---size);
  line-height: var(--_text-style---leading);
  font-weight: var(--_text-style---weight);
  letter-spacing: var(--_text-style---tracking);
  text-transform: var(--_text-style---transform, none);
}

[data-flwr] h1, [data-flwr] h2, [data-flwr] h3, [data-flwr] p {
  display: flow-root;
}

[data-flwr] a {
  color: inherit;
  outline-width: var(--_theme---focus--width);
  outline-offset: var(--_theme---focus--offset);
  text-decoration-line: none;
}

[data-flwr] ul {
  margin-bottom: 0;
  padding-left: 0;
  list-style-type: "";
}

[data-flwr] li {
  display: block;
}

[data-flwr] img {
  object-fit: cover;
  width: 100%;
  max-width: 100%;
}

[data-flwr] strong {
  font-weight: bold;
}

[data-flwr] .text-display-xl {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: var(--_typography---size--display-xl);
  line-height: var(--_typography---leading--squashed);
  letter-spacing: var(--_typography---tracking--tight);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

[data-flwr] .text-display-lg {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: var(--_typography---size--display-lg);
  line-height: var(--_typography---leading--squashed);
  letter-spacing: var(--_typography---tracking--tight);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

[data-flwr] .text-h1 {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: var(--_typography---size--h1);
  line-height: var(--_typography---leading--tight);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

[data-flwr] .text-h2 {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--medium);
  font-size: var(--_typography---size--h2);
  line-height: var(--_typography---leading--tight);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

[data-flwr] .text-h3 {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--medium);
  font-size: var(--_typography---size--h3);
  line-height: var(--_typography---leading--tight);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

[data-flwr] .text-h4 {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: var(--_typography---size--h4);
  line-height: var(--_typography---leading--normal);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

[data-flwr] .text-body-lg {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--regular);
  font-size: var(--_typography---size--lead);
  line-height: var(--_typography---leading--normal);
}

[data-flwr] .text-body-md {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--regular);
  font-size: var(--_typography---size--body);
  line-height: var(--_typography---leading--normal);
}

[data-flwr] .text-nav {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: var(--_typography---size--nav);
  letter-spacing: var(--_typography---tracking--normal);
  text-transform: uppercase;
}

[data-flwr] .text-legal {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--regular);
  font-size: var(--_typography---size--body);
  opacity: 0.8;
}

[data-flwr] .page_section {
  background-color: transparent;
  color: var(--_theme---text--main);
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  display: flex;
  position: relative;
  z-index: 1;
}

[data-flwr] .text-bold {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--bold);
}

[data-flwr] .layer_top {
  z-index: 100;
}

[data-flwr] .flex {
  display: flex;
}

[data-flwr] .flex-wrap {
  flex-wrap: wrap;
}

[data-flwr] .gap-3 {
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
}

/* ============================================
      EXTENDED UTILITY SYSTEM
      Complete utilities for rapid development
      ============================================ */
[data-flwr] .u-breakout-left {
  margin-left: calc(-1 * var(--_spacing---page-margin));
  width: calc(100% + var(--_spacing---page-margin));
}

/* ================================================
      IMAGE WRAPPER SYSTEM
      Consistent image clipping with aspect ratios
      ================================================ */
/* Base Image Wrapper - Always includes overflow hidden for proper clipping */
[data-flwr] .is-hidden {
  display: none;
}

/* Ensure all media images use cover by default (not logos/icons) */
[data-flwr] .image-wrap {
  position: relative;
  width: 100%;
  overflow-x: hidden;
  overflow-y: hidden;
  display: block;
}

[data-flwr] .image-wrap .image, [data-flwr] .image-wrap img:not([class*="logo"]):not([class*="icon"]) {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

[data-flwr] .image-wrap--square {
  aspect-ratio: 1;
}

/* Freeform - adapts to container, no fixed ratio */
[data-flwr] .image-wrap--portrait-tall {
  aspect-ratio: 4 / 5;
}

[data-flwr] .image-wrap--freeform {
  aspect-ratio: auto;
  height: 100%;
}

[data-flwr] .image-wrap__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

[data-flwr] .image-wrap__img--contain {
  object-fit: contain;
}

[data-flwr] .swiper-wrapper {
  display: flex;
}

[data-flwr] .slider_list.swiper-wrapper {
  display: flex;
}

[data-flwr] .slider_element.swiper {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  overflow-x: visible;
  overflow-y: visible;
}

[data-flwr] .card_primary_wrap {
  width: 100%;
  height: 100%;
  display: flex;
}

[data-flwr] .card_primary_element {
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  row-gap: var(--_spacing---step--4);
  border-top-style: solid;
  border-top-width: var(--_theme---border--width);
  border-right-style: solid;
  border-right-width: var(--_theme---border--width);
  border-bottom-style: solid;
  border-bottom-width: var(--_theme---border--width);
  border-left-style: solid;
  border-left-width: var(--_theme---border--width);
  border-top-color: color-mix(in srgb, var(--_theme---border--main) calc(100% * var(--_trigger---on)), var(--_theme---text--main) calc(100% * var(--_trigger---off)));
  border-right-color: color-mix(in srgb, var(--_theme---border--main) calc(100% * var(--_trigger---on)), var(--_theme---text--main) calc(100% * var(--_trigger---off)));
  border-bottom-color: color-mix(in srgb, var(--_theme---border--main) calc(100% * var(--_trigger---on)), var(--_theme---text--main) calc(100% * var(--_trigger---off)));
  border-left-color: color-mix(in srgb, var(--_theme---border--main) calc(100% * var(--_trigger---on)), var(--_theme---text--main) calc(100% * var(--_trigger---off)));
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
  border-bottom-right-radius: inherit;
  border-bottom-left-radius: inherit;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  transition-property: border-color;
  transition-duration: .2s;
  transition-timing-function: ease;
  display: flex;
}

/* ==============================================
      ROME TRIBE SCHEDULE PAGE COMPONENTS
      ============================================== */
[data-flwr] .footer_content {
  column-gap: var(--_layout---gutter);
  row-gap: inherit;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
  grid-column-start: span 4;
  grid-column-end: auto;
  grid-template-rows: auto;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  grid-auto-columns: 1fr;
  height: 100%;
  display: grid;
}

[data-flwr] .nav_wrap {
  width: 100%;
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---page-margin);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100000;
}

[data-flwr] .nav_content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
}

[data-flwr] .nav_menu {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
  align-items: flex-start;
}

[data-flwr] .nav_content > .nav_menu:last-of-type {
  align-items: flex-end;
}

[data-flwr] .nav_link {
  position: relative;
  display: inline-block;
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .nav_arrow-icon {
  width: 16px;
  height: 16px;
  position: absolute;
  right: -20px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  visibility: hidden;
}

/* Right menu: links shift left on hover (pushed by arrow) */
[data-flwr] .nav_content > .nav_menu:first-of-type .nav_link:hover {
  transform: none;
}

[data-flwr] .nav_content > .nav_menu:last-of-type .nav_link:hover {
  transform: translateX(-20px);
}

/* Active state: show arrow and change to red color */
[data-flwr] .nav_link:hover .nav_arrow-icon {
  visibility: visible;
}

/* Active state for right menu: keep shifted left */
[data-flwr] .nav_link--active .nav_arrow-icon {
  visibility: visible;
}

/* Hide navigation links on tablet and mobile - show only hamburger menu */
[data-flwr] .nav_content > .nav_menu:last-of-type .nav_link--active {
  transform: translateX(-20px);
}

@media (max-width: 991px) {
  [data-flwr] .nav_menu > a {
    display: none;
  }

  [data-flwr] .nav_hamburger {
    display: flex;
  }

  [data-flwr] .nav_content {
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

  [data-flwr] .nav_logo {
    grid-column-start: 1;
    grid-column-end: auto;
    order: 1;
    z-index: 100001;
  }

  [data-flwr] .nav_content > .nav_menu:last-of-type {
    grid-column-start: 3;
    grid-column-end: auto;
    order: 2;
    justify-self: end;
    z-index: 100001;
    position: relative;
    padding-right: calc(var(--_spacing---page-margin) - var(--_spacing---step--4));
  }

}

[data-flwr] .nav_logo {
  position: absolute;
  left: 50%;
  top: -0.5rem;
  transform: translateX(-50%);
  width: 4.3125rem;
  height: 4.5625rem;
}

[data-flwr] .hero_wrap {
  background-color: var(--_palette---neutral--0);
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: hidden;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  width: 100%;
  position: relative;
}

[data-flwr] .hero_background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--_palette---neutral--0);
  z-index: -1;
}

[data-flwr] .hero_content {
  width: 100%;
  height: 53.8125rem;
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .hero_logo_wrap {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(clamp(20rem, 35vw + 10rem, 46.4375rem), 50vh);
  height: auto;
  aspect-ratio: 743 / 583;
  z-index: 2;
}

[data-flwr] .hero_logo_wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

[data-flwr] .hero_floating_image-topleft {
  position: absolute;
  left: 0;
  top: 11.125rem;
  width: clamp(12rem, 15vw + 5rem, 24rem);
  height: auto;
  aspect-ratio: 384 / 289;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: hidden;
  transition-property: transform;
  transition-duration: 0.15s;
  transition-timing-function: ease-out;
  transition-delay: 0s;
  will-change: transform;
}

[data-flwr] .hero_floating_image-topleft img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

[data-flwr] .hero_floating_image-bottomright {
  position: absolute;
  right: 0;
  bottom: 5.625rem;
  width: clamp(15rem, 18vw + 6rem, 30.73rem);
  height: auto;
  aspect-ratio: 384 / 289;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: hidden;
  transition-property: transform;
  transition-duration: 0.15s;
  transition-timing-function: ease-out;
  transition-delay: 0s;
  will-change: transform;
}

[data-flwr] .hero_floating_image-bottomright img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

[data-flwr] .hero_date {
  position: absolute;
  left: 50%;
  top: calc(50% + min(clamp(20rem, 35vw + 10rem, 46.4375rem), 50vh) * 0.4 + var(--_spacing---step--4));
  transform: translateX(-50%);
  z-index: 3;
}

@media (max-width: 991px) {
  [data-flwr] .hero_floating_image-topleft, [data-flwr] .hero_floating_image-bottomright {
    aspect-ratio: 384 / 289;
  }

  [data-flwr] .hero_date {
    top: calc(50% + min(60%, 45vh) * 0.4 + var(--_spacing---step--4));
  }

}

@media (max-width: 478px) {
  [data-flwr] .hero_date {
    top: calc(50% + min(70%, 40vh) * 0.4 + var(--_spacing---step--4));
  }

}

[data-flwr] .cta_wrap {
  width: 100%;
  max-width: 63rem;
  margin-top: var(--_spacing---step--7);
  margin-right: auto;
  margin-bottom: var(--_spacing---step--7);
  margin-left: auto;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
}

[data-flwr] .cta_background {
  background-color: var(--_palette---accent--500);
}

[data-flwr] .cta_content {
  padding-top: var(--_spacing---step--6);
  padding-right: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--6);
  padding-left: var(--_spacing---step--6);
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  align-items: center;
}

[data-flwr] .schedule_wrap {
  width: 100%;
  padding-top: var(--_spacing---step--7);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---step--7);
  padding-left: var(--_spacing---page-margin);
}

[data-flwr] .schedule_content {
  width: 100%;
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
}

[data-flwr] .day_wrap {
  width: 100%;
}

[data-flwr] .day_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--_spacing---step--5);
  flex-wrap: wrap;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
}

[data-flwr] .day_table {
  width: 100%;
  position: relative;
}

[data-flwr] .day_row-item {
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_theme---border--main);
}

[data-flwr] .day_row {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---step--3);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---step--3);
  align-items: center;
  transition-property: all;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .day_row:hover {
  background-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
}

[data-flwr] .day_row-content {
  max-height: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  transition-property: max-height;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: 0s;
}

[data-flwr] .day_row-item.is-active .day_row-content {
  max-height: 800px;
}

[data-flwr] .day_row-item.is-active .day_row {
  background-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
}

[data-flwr] .day_row-content-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
  padding-top: var(--_spacing---step--6);
  padding-right: var(--_spacing---step--3);
  padding-bottom: var(--_spacing---step--6);
  padding-left: var(--_spacing---step--3);
  align-items: start;
}

[data-flwr] .day_row-content-image {
  width: 100%;
  max-width: 300px;
  grid-column-start: 1;
  grid-column-end: auto;
}

[data-flwr] .day_row-content-text {
  display: flex;
  flex-direction: row;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
  align-items: start;
  grid-column-start: 2;
  grid-column-end: 4;
}

[data-flwr] .day_row-content-main {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  min-width: 0;
}

[data-flwr] .day_row-content-main h3 {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  text-transform: uppercase;
}

[data-flwr] .day_row-content-description {
  max-width: unset;
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

[data-flwr] .day_row-content-description p {
  max-width: unset;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .day_row-content-description ul {
  margin-top: var(--_spacing---step--2);
}

[data-flwr] .day_row-content-description .single-booking-note {
  margin-top: calc(var(--_spacing---step--2) * -1);
}

[data-flwr] .day_row-content-details {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
  flex-shrink: 0;
  min-width: 200px;
}

[data-flwr] .day_row-content-details p {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  line-height: 1.6;
}

[data-flwr] .day_row-content-grid {
  position: relative;
}

[data-flwr] .day_row-buy-button {
  position: absolute;
  bottom: var(--_spacing---step--6);
  right: 0;
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--0);
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

[data-flwr] .day_row-buy-button:hover {
  background-color: var(--_palette---accent--600);
}

[data-flwr] .day_row-buy-button + .day_row-buy-button {
  bottom: calc(var(--_spacing---step--6) + 4.5rem);
}

[data-flwr] .single-booking-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--0);
  font-size: 0.65em;
  font-weight: 700;
  padding-top: 0.15em;
  padding-right: 0.4em;
  padding-bottom: 0.15em;
  padding-left: 0.4em;
  border-top-left-radius: unset;
  border-top-right-radius: unset;
  border-bottom-right-radius: unset;
  border-bottom-left-radius: unset;
  margin-left: 0.5em;
  vertical-align: middle;
  white-space: nowrap;
}

[data-flwr] .day_row-item.is-active .single-booking-badge {
  background-color: var(--_palette---neutral--0);
  color: var(--_palette---core--500);
}

[data-flwr] .single-booking-note {
  color: var(--_palette---accent--500);
  font-weight: 600;
  margin-top: var(--_spacing---step--2);
}

/* Static items (non-expandable, like lunch breaks) */
[data-flwr] .day_row-item--bookable .day_row {
  border-left-width: 3px;
  border-left-style: solid;
  border-left-color: var(--_palette---accent--500);
}

[data-flwr] .day_row-item--static .day_row {
  opacity: 0.6;
}

[data-flwr] .day_row-item--static .day_row:hover {
  background-color: transparent;
  color: inherit;
}

[data-flwr] .day_image {
  width: 18.234375rem;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
  position: fixed;
  pointer-events: none;
  z-index: 1000;
  opacity: 0;
  transform: translate(0, -100%) scale(0.7);
  transition-property: opacity, transform;
  transition-duration: 0.5s, 0.5s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: 0s, 0s;
  will-change: transform, opacity;
}

/* Smooth transition for image switching on row hover */
[data-flwr] .day_image.is-visible {
  opacity: 1;
  transform: translate(0, -100%) scale(1);
}

[data-flwr] .day_image img {
  transition-property: opacity;
  transition-duration: 0.15s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .day_cta {
  text-align: center;
  margin-top: var(--_spacing---step--6);
}

[data-flwr] .footer_wrap {
  width: 100%;
  background-color: var(--_palette---accent--500);
}

[data-flwr] .footer_background {
  background-color: var(--_palette---accent--500);
}

/* Large ROME Logo - Desktop centered between columns */
[data-flwr] .footer_content {
  padding-top: var(--_spacing---step--5);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---step--5);
  padding-left: var(--_spacing---page-margin);
  color: var(--_palette---neutral--0);
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
}

[data-flwr] .footer_logo-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

/* Two column layout for About/Access - Desktop with logo in center */
[data-flwr] .footer_logo-image {
  width: auto;
  height: 120px;
  filter: brightness(0) invert(1);
  display: block;
}

[data-flwr] .footer_columns {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  position: relative;
}

[data-flwr] .footer_column {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
}

[data-flwr] .footer_column--right {
  text-align: right;
}

[data-flwr] .footer_column-title {
  color: var(--_palette---neutral--0);
  font-weight: var(--_typography---weight--regular);
  margin-bottom: var(--_spacing---step--1);
}

[data-flwr] .footer_links {
  list-style-type: none;
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .footer_links--two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--_spacing---step--4);
  row-gap: var(--_spacing---step--2);
}

[data-flwr] .footer_column--right .footer_links {
  align-items: flex-end;
}

[data-flwr] .footer_link {
  color: var(--_palette---neutral--0);
  font-size: var(--_typography---size--body);
}

[data-flwr] .footer_bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  padding-top: var(--_spacing---step--3);
}

[data-flwr] .footer_copyright {
  color: var(--_palette---neutral--0);
  font-size: var(--_typography---size--small);
  grid-column-start: 1;
  grid-column-end: auto;
}

[data-flwr] .footer_social {
  display: flex;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
  justify-content: center;
  align-items: center;
  grid-column-start: 2;
  grid-column-end: auto;
}

[data-flwr] .footer_social-link {
  color: var(--_palette---neutral--0);
  display: flex;
  align-items: center;
  justify-content: center;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  width: 24px;
  height: 24px;
}

[data-flwr] .footer_social-link:hover {
  opacity: 0.7;
}

[data-flwr] .footer_social-link svg {
  width: 100%;
  height: 100%;
}

[data-flwr] .footer_legal {
  display: flex;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
  justify-content: flex-end;
  grid-column-start: 3;
  grid-column-end: auto;
}

[data-flwr] .footer_legal a {
  color: var(--_palette---neutral--0);
  font-size: var(--_typography---size--small);
}

@media (max-width: 991px) {
  [data-flwr] .footer_content {
    min-height: auto;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

  [data-flwr] .footer_logo-wrap {
    position: static;
    transform: none;
    margin-bottom: var(--_spacing---step--4);
  }

  [data-flwr] .footer_logo-image {
    height: 80px;
  }

  [data-flwr] .footer_columns {
    flex-direction: row;
    justify-content: space-between;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

  [data-flwr] .footer_column--right {
    text-align: right;
  }

  [data-flwr] .footer_column--right .footer_links {
    align-items: flex-end;
  }

  [data-flwr] .footer_links--two-col {
    grid-template-columns: 1fr;
  }

  [data-flwr] .footer_bottom {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
    text-align: center;
  }

  [data-flwr] .footer_copyright {
    grid-column-start: 1;
    grid-column-end: auto;
    order: 3;
  }

  [data-flwr] .footer_social {
    grid-column-start: 1;
    grid-column-end: auto;
    order: 1;
  }

  [data-flwr] .footer_legal {
    grid-column-start: 1;
    grid-column-end: auto;
    order: 2;
    justify-content: center;
  }

}

[data-flwr] .link {
  color: inherit;
  text-decoration-line: none;
  transition-property: color, opacity;
  transition-duration: 0.3s, 0.3s;
  transition-timing-function: ease, ease;
  transition-delay: 0s, 0s;
}

[data-flwr] .link:hover {
  color: var(--_palette---core--500);
}

[data-flwr] .link--light:hover {
  opacity: 0.7;
}

[data-flwr] .button {
  height: var(--_component---button--height);
  padding-top: 0;
  padding-right: var(--_component---button--padding-x);
  padding-bottom: 0;
  padding-left: var(--_component---button--padding-x);
  border-top-left-radius: var(--_radius---pill);
  border-top-right-radius: var(--_radius---pill);
  border-bottom-right-radius: var(--_radius---pill);
  border-bottom-left-radius: var(--_radius---pill);
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--bold);
  font-size: var(--_typography---size--button);
  text-transform: uppercase;
  text-decoration-line: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition-property: all;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  white-space: nowrap;
  border-top-width: 2px;
  border-top-style: solid;
  border-top-color: transparent;
  border-right-width: 2px;
  border-right-style: solid;
  border-right-color: transparent;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  border-bottom-color: transparent;
  border-left-width: 2px;
  border-left-style: solid;
  border-left-color: transparent;
}

[data-flwr] .button--primary {
  background-color: var(--_palette---neutral--900);
  color: var(--_palette---neutral--0);
  border-top-color: var(--_palette---neutral--900);
  border-right-color: var(--_palette---neutral--900);
  border-bottom-color: var(--_palette---neutral--900);
  border-left-color: var(--_palette---neutral--900);
}

[data-flwr] .button--primary:hover {
  background-color: var(--_palette---core--500);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
}

[data-flwr] .button--secondary {
  background-color: var(--_palette---neutral--0);
  color: var(--_palette---neutral--900);
  border-top-color: var(--_palette---neutral--900);
  border-right-color: var(--_palette---neutral--900);
  border-bottom-color: var(--_palette---neutral--900);
  border-left-color: var(--_palette---neutral--900);
}

[data-flwr] .button--secondary:hover {
  background-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
}

[data-flwr] .button--outline {
  background-color: transparent;
  color: var(--_palette---neutral--900);
  border-top-color: var(--_palette---neutral--900);
  border-right-color: var(--_palette---neutral--900);
  border-bottom-color: var(--_palette---neutral--900);
  border-left-color: var(--_palette---neutral--900);
}

[data-flwr] .button--outline:hover {
  background-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
}

[data-flwr] .button--brand {
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--0);
  border-top-color: var(--_palette---accent--500);
  border-right-color: var(--_palette---accent--500);
  border-bottom-color: var(--_palette---accent--500);
  border-left-color: var(--_palette---accent--500);
}

[data-flwr] .button--brand:hover {
  background-color: var(--_palette---neutral--900);
  border-top-color: var(--_palette---neutral--900);
  border-right-color: var(--_palette---neutral--900);
  border-bottom-color: var(--_palette---neutral--900);
  border-left-color: var(--_palette---neutral--900);
  color: var(--_palette---neutral--0);
}

[data-flwr] .image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-flwr] .image-contain {
  object-fit: contain;
}

@media (max-width: 767px) {
  [data-flwr] .nav_content {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  [data-flwr] .nav_logo {
    position: static;
    transform: none;
    margin-top: var(--_spacing---step--3);
    margin-right: 0;
    margin-bottom: var(--_spacing---step--3);
    margin-left: 0;
  }

  [data-flwr] .day_row {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--2);
    column-gap: var(--_spacing---step--2);
  }

  [data-flwr] .day_header {
    flex-direction: column;
  }

  [data-flwr] .day_row-content-grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    padding-bottom: calc(var(--_spacing---step--6) + var(--_spacing---step--8));
  }

  [data-flwr] .day_row-content-image {
    max-width: 100%;
    grid-column-start: 1;
    grid-column-end: auto;
  }

  [data-flwr] .day_row-content-text {
    flex-direction: column;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    grid-column-start: 1;
    grid-column-end: auto;
  }

  [data-flwr] .day_row-content-details {
    min-width: 100%;
  }

  [data-flwr] .day_row-buy-button {
    position: static;
    width: 100%;
  }

  [data-flwr] .day_row-buy-button + .day_row-buy-button {
    bottom: auto;
  }

}

/* ============================================
      ABOUT/ROME PAGE STYLES
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .day_row-content-grid {
    padding-bottom: var(--_spacing---step--4);
  }

}

/* Reduce spacing for booking page pricing sections */
[data-flwr] .plan_wrap {
  padding-top: var(--_spacing---section--main);
  padding-right: 0;
  padding-bottom: var(--_spacing---section--main);
  padding-left: 0;
}

[data-flwr] .plan_wrap + .plan_wrap {
  padding-top: var(--_spacing---step--8);
}

[data-flwr] .plan_content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  padding-top: 0;
  padding-right: var(--_spacing---page-margin);
  padding-bottom: 0;
  padding-left: var(--_spacing---page-margin);
  align-items: center;
}

[data-flwr] .plan_content--centered {
  max-width: var(--_layout---max-content);
  margin-top: 0;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
}

[data-flwr] .plan_text-group {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

[data-flwr] .plan_subtitle {
  font-size: var(--_typography---size--lead);
  margin-top: var(--_spacing---step--2);
}

[data-flwr] .plan_description {
  color: var(--_palette---neutral--900);
  line-height: unset;
}

[data-flwr] .plan_cta-group {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
  align-items: flex-start;
}

[data-flwr] .plan_venues {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .plan_venues h3 {
  margin-bottom: var(--_spacing---step--1);
}

[data-flwr] .filter_content {
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: 0;
  padding-left: var(--_spacing---page-margin);
}

[data-flwr] .filter_tabs {
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
  justify-content: center;
}

[data-flwr] .filter_tab {
  padding-top: var(--_spacing---step--3);
  padding-right: var(--_spacing---step--5);
  padding-bottom: var(--_spacing---step--3);
  padding-left: var(--_spacing---step--5);
  border-top-left-radius: var(--_radius---pill);
  border-top-right-radius: var(--_radius---pill);
  border-bottom-right-radius: var(--_radius---pill);
  border-bottom-left-radius: var(--_radius---pill);
  background-color: transparent;
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--bold);
  font-size: var(--_typography---size--button);
  text-transform: uppercase;
  transition-property: all;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  white-space: nowrap;
}

[data-flwr] .filter_tabs--areas {
  margin-top: var(--_spacing---step--4);
}

[data-flwr] .filter_tab--small {
  padding-top: var(--_spacing---step--2);
  padding-right: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--2);
  padding-left: var(--_spacing---step--4);
  font-size: 0.85rem;
}

[data-flwr] .button--small {
  height: auto;
  padding-top: var(--_spacing---step--3);
  padding-right: var(--_spacing---step--5);
  padding-bottom: var(--_spacing---step--3);
  padding-left: var(--_spacing---step--5);
  font-size: 1.25rem;
  min-width: 290px;
}

@media (max-width: 991px) {
  [data-flwr] .plan_content {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 767px) {
  [data-flwr] .filter_tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: var(--_spacing---step--2);
  }

}

/* ============================================
      HERO COLLAGE COMPONENT - LUMOS BASE CLASSES
      Webflow-ready: Use base + combo modifier classes
      ============================================ */
/* ============================================
      HERO COLLAGE - Step by Step Rebuild
      ============================================ */
/* Step 1: Add gutter padding to hero section */
@media (max-width: 767px) {
  [data-flwr] .filter_tab {
    flex-shrink: 0;
  }

}

/* Step 2: Remove navbar offset padding/margin for collage hero */
[data-flwr] .hero-collage_content {
  padding-top: var(--_spacing---page-margin);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---page-margin);
  padding-left: var(--_spacing---page-margin);
}

/* Step 3: Optional modifier for navbar clearance (add this class to heroes that need navbar spacing) */
[data-flwr] .hero-collage_content.u-navbar-offset {
  padding-top: var(--_spacing---page-margin);
  margin-top: 0;
}

[data-flwr] .hero-collage_content--with-navbar {
  padding-top: calc(var(--_component---navbar--height) + var(--_spacing---page-margin));
}

[data-flwr] .hero-collage_content--with-navbar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  row-gap: var(--_spacing---page-margin);
  column-gap: var(--_spacing---page-margin);
  max-height: 100vh;
  height: 100vh;
}

[data-flwr] .hero-collage_image-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: hidden;
  grid-column-start: 1;
  grid-column-end: auto;
}

/* Right column container: Logo and title stacked */
[data-flwr] .hero-collage_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

[data-flwr] .hero-collage_content--with-navbar > .hero-collage_logo-wrap, [data-flwr] .hero-collage_content--with-navbar > .hero-collage_title-bottom {
  grid-column-start: 2;
  grid-column-end: auto;
}

[data-flwr] .hero-collage_logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  grid-row-start: 1;
  grid-row-end: auto;
  align-self: start;
  height: 50%;
}

[data-flwr] .hero-collage_logo-wrap .image-wrap {
  width: clamp(150px, 25vw, 400px);
  height: auto;
}

/* Title: bottom half, aligned to bottom, scaled to fill */
[data-flwr] .hero-collage_logo-wrap .image-wrap__img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

[data-flwr] .hero-collage_title-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  grid-row-start: 1;
  grid-row-end: auto;
  align-self: end;
  height: 50%;
  padding-bottom: 0;
  box-sizing: border-box;
  font-size: clamp(2.5rem, 9vw, 11rem);
  line-height: 1;
  font-weight: var(--_typography---weight--extrabold);
  text-transform: uppercase;
  letter-spacing: var(--_typography---tracking--tight);
}

@media (max-width: 991px) {
  [data-flwr] .hero-collage_content--with-navbar {
    grid-template-rows: 1fr auto auto;
    height: 100vh;
    min-height: 100vh;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    padding-top: var(--_component---navbar--height);
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---page-margin);
    padding-left: var(--_spacing---page-margin);
  }

  [data-flwr] .hero-collage_image-wrap {
    height: 100%;
    width: 100%;
  }

  [data-flwr] .hero-collage_logo-wrap {
    padding-top: var(--_spacing---step--4);
    padding-right: 0;
    padding-bottom: var(--_spacing---step--4);
    padding-left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  [data-flwr] .hero-collage_logo-wrap .image-wrap {
    width: clamp(200px, 50vw, 400px);
    max-width: 70%;
    max-height: 150px;
    margin-top: 0;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
  }

}

/* ============================================
      HERO COLLAGE - Inverted Layout Variant
      For lineup and archive pages: image on right, logo/title on left
      ============================================ */
@media (max-width: 991px) {
  [data-flwr] .hero-collage_title-bottom {
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 0;
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---step--4);
    padding-left: var(--_spacing---page-margin);
  }

}

[data-flwr] .hero-collage_content--inverted .hero-collage_image-wrap {
  grid-column-start: 2;
  grid-column-end: auto;
}

/* Responsive: Mobile/Tablet - inverted layout stacks same as normal */
[data-flwr] .hero-collage_content--inverted > .hero-collage_logo-wrap, [data-flwr] .hero-collage_content--inverted > .hero-collage_title-bottom {
  grid-column-start: 1;
  grid-column-end: auto;
}

/* ============================================
      TEACHER MODAL - Full Screen Popup
      ============================================ */
[data-flwr] .teacher-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: none;
  opacity: 0;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .teacher-modal.is-visible {
  display: flex;
  opacity: 1;
}

[data-flwr] .teacher-modal_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--_palette---neutral--0);
}

[data-flwr] .teacher-modal_content {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 45%;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: stretch;
  padding-top: var(--_spacing---page-margin);
  padding-right: 0;
  padding-bottom: var(--_spacing---page-margin);
  padding-left: var(--_spacing---page-margin);
  box-sizing: border-box;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .teacher-modal_close {
  position: fixed;
  top: var(--_spacing---page-margin);
  right: var(--_spacing---page-margin);
  background-color: transparent;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  color: unset;
  z-index: 10;
  padding-top: var(--_spacing---step--2);
  padding-right: var(--_spacing---step--2);
  padding-bottom: var(--_spacing---step--2);
  padding-left: var(--_spacing---step--2);
  transition-property: transform;
  transition-duration: 0.2s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .teacher-modal_close:hover {
  transform: scale(1.1);
}

[data-flwr] .teacher-modal_grid {
  display: contents;
}

[data-flwr] .teacher-modal_info {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
  justify-content: center;
  color: unset;
  overflow-y: auto;
  max-height: 100%;
  padding-right: var(--_spacing---step--4);
}

[data-flwr] .teacher-modal_role {
  color: unset;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

[data-flwr] .teacher-modal_name {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  color: unset;
}

[data-flwr] .teacher-modal_bio, [data-flwr] .teacher-modal_classes {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
}

[data-flwr] .teacher-modal_bio h3, [data-flwr] .teacher-modal_classes h3 {
  color: unset;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .teacher-modal_bio p {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  line-height: 1.6;
}

[data-flwr] .teacher-modal_class-list {
  list-style-type: none;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .teacher-modal_links {
  display: flex;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  margin-top: var(--_spacing---step--4);
}

[data-flwr] .teacher-modal_image-wrap {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-x: hidden;
  overflow-y: hidden;
  margin-top: calc(var(--_spacing---page-margin) * -1);
  margin-right: calc(var(--_spacing---page-margin) * -1);
  margin-bottom: calc(var(--_spacing---page-margin) * -1);
  margin-left: 0;
  padding-right: var(--_spacing---page-margin);
}

[data-flwr] .teacher-modal_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 767px) {
  [data-flwr] .teacher-modal_grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
    padding-top: var(--_spacing---step--6);
    padding-right: var(--_spacing---step--6);
    padding-bottom: var(--_spacing---step--6);
    padding-left: var(--_spacing---step--6);
  }

  [data-flwr] .teacher-modal_info {
    padding-top: var(--_spacing---step--4);
    padding-right: var(--_spacing---step--4);
    padding-bottom: var(--_spacing---step--4);
    padding-left: var(--_spacing---step--4);
  }

  [data-flwr] .teacher-modal_image-wrap {
    min-height: 50vh;
  }

}

/* ============================================
      ARCHIVE PAGE CUSTOM CLASSES
      DEPRECATED: Use .hero-collage_* classes above
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .teacher-modal_links {
    flex-direction: column;
  }

}

[data-flwr] .video-hero_wrap {
  background-color: var(--_theme---surface--main);
}

[data-flwr] .video-hero_content {
  padding-top: var(--_spacing---section--main);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---section--main);
  padding-left: var(--_spacing---page-margin);
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
  align-items: flex-end;
  min-height: 70vh;
}

[data-flwr] .video-hero_text-group {
  grid-column-start: 1;
  grid-column-end: auto;
  grid-row-start: 1;
  grid-row-end: auto;
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .video-hero_subtitle {
  margin-top: var(--_spacing---step--4);
}

[data-flwr] .video-hero_video-wrap {
  grid-column-start: 2;
  grid-column-end: auto;
  grid-row-start: 1;
  grid-row-end: auto;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
  background-color: var(--_palette---neutral--black);
}

[data-flwr] .video-hero_video-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

[data-flwr] .video-hero_play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .video-hero_play-button:hover {
  transform: translate(-50%, -50%) scale(1.1);
}

@media (max-width: 991px) {
  [data-flwr] .video-hero_content {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    min-height: auto;
  }

  [data-flwr] .video-hero_text-group {
    grid-column-start: 1;
    grid-column-end: auto;
    grid-row-start: 1;
    grid-row-end: auto;
  }

  [data-flwr] .video-hero_video-wrap {
    grid-column-start: 1;
    grid-column-end: auto;
    grid-row-start: 2;
    grid-row-end: auto;
  }

}

/* Override schedule_wrap padding when combined with filter_wrap */
[data-flwr] .filter_wrap {
  background-color: var(--_theme---surface--main);
}

/* Listings section after filters - align to top, not centered */
[data-flwr] .filter_wrap.schedule_wrap {
  padding-top: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--4);
}

/* Schedule section after hero - align to top, not centered */
[data-flwr] .filter_wrap + .schedule_wrap {
  padding-top: var(--_spacing---step--4);
}

[data-flwr] .filter_content {
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: 0;
  padding-left: var(--_spacing---page-margin);
}

[data-flwr] .filter_buttons {
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
  justify-content: center;
  align-items: center;
}

[data-flwr] .filter_button {
  padding-top: var(--_spacing---step--3);
  padding-right: var(--_spacing---step--5);
  padding-bottom: var(--_spacing---step--3);
  padding-left: var(--_spacing---step--5);
  border-top-width: 2px;
  border-top-style: solid;
  border-top-color: var(--_palette---neutral--900);
  border-right-width: 2px;
  border-right-style: solid;
  border-right-color: var(--_palette---neutral--900);
  border-bottom-width: 2px;
  border-bottom-style: solid;
  border-bottom-color: var(--_palette---neutral--900);
  border-left-width: 2px;
  border-left-style: solid;
  border-left-color: var(--_palette---neutral--900);
  border-top-left-radius: var(--_radius---pill);
  border-top-right-radius: var(--_radius---pill);
  border-bottom-right-radius: var(--_radius---pill);
  border-bottom-left-radius: var(--_radius---pill);
  background-color: transparent;
  color: var(--_palette---neutral--900);
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--bold);
  font-size: var(--_typography---size--button);
  text-transform: uppercase;
  transition-property: all;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  white-space: nowrap;
}

[data-flwr] .filter_button:hover {
  background-color: var(--_palette---core--500);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
}

[data-flwr] .filter_button--active {
  background-color: var(--_palette---core--500);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
}

[data-flwr] .video-grid_wrap {
  background-color: var(--_theme---surface--main);
}

[data-flwr] .video-grid_content {
  padding-top: var(--_spacing---section--main);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---section--main);
  padding-left: var(--_spacing---page-margin);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
}

[data-flwr] .video-grid_content--four-cols {
  grid-template-columns: repeat(4, 1fr);
}

[data-flwr] .video-item_wrap {
  display: flex;
  flex-direction: column;
  text-decoration-line: none;
  color: inherit;
}

[data-flwr] .video-item_thumbnail {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
}

[data-flwr] .video-item_thumbnail img {
  transition-property: transform;
  transition-duration: 0.4s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .video-item_wrap:hover .video-item_thumbnail img {
  transform: scale(1.05);
}

[data-flwr] .video-item_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: color-mix(in srgb, var(--_palette---neutral--black) 50%, transparent);
  display: block;
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---step--4);
  opacity: 0;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .video-item_wrap:hover .video-item_overlay {
  opacity: 1;
}

[data-flwr] .video-item_play-button {
  position: absolute;
  top: var(--_spacing---step--4);
  right: var(--_spacing---step--4);
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  color: var(--_palette---core--500);
}

[data-flwr] .video-item_play-button img {
  display: none;
}

[data-flwr] .video-item_play-button::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-width: 16px;
  border-right-width: 0;
  border-bottom-width: 16px;
  border-left-width: 28px;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: var(--_palette---core--500);
}

[data-flwr] .video-item_wrap:hover .video-item_play-button {
  transform: scale(1.1);
}

/* Responsive: 2 columns on tablet, 1 on mobile */
[data-flwr] .video-item_title {
  position: absolute;
  bottom: var(--_spacing---step--4);
  left: var(--_spacing---step--4);
  color: var(--_palette---neutral--0);
  text-align: left;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  font-weight: var(--_typography---weight--bold);
}

@media (max-width: 991px) {
  [data-flwr] .video-grid_content--four-cols {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 767px) {
  [data-flwr] .video-grid_content--four-cols {
    grid-template-columns: 1fr;
  }

}

[data-flwr] .video-detail_content {
  padding-top: var(--_spacing---section--main);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---section--main);
  padding-left: var(--_spacing---page-margin);
}

[data-flwr] .video-detail_layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--7);
  column-gap: var(--_spacing---step--7);
  align-items: center;
}

[data-flwr] .video-detail_video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
  background-color: var(--_palette---neutral--black);
}

[data-flwr] .video-detail_video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

[data-flwr] .video-detail_info {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
  align-items: flex-start;
}

[data-flwr] .video-detail_info h2 {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  text-transform: uppercase;
}

[data-flwr] .video-detail_info p {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  line-height: 1.6;
}

[data-flwr] .video-detail_info .button {
  width: auto;
}

[data-flwr] .video-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 200000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition-property: opacity, visibility;
  transition-duration: 0.3s, 0.3s;
  transition-timing-function: ease, ease;
  transition-delay: 0s, 0s;
}

[data-flwr] .video-modal.is-visible {
  opacity: 1;
  visibility: visible;
}

[data-flwr] .video-modal_backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: color-mix(in srgb, var(--_palette---neutral--black) 90%, transparent);
}

[data-flwr] .video-modal_content {
  position: relative;
  width: 90%;
  max-width: 1200px;
  z-index: 1;
}

[data-flwr] .video-modal_close {
  position: absolute;
  top: -50px;
  right: 0;
  background-image: none;
  background-color: transparent;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  color: var(--_palette---neutral--0);
  padding-top: 10px;
  padding-right: 10px;
  padding-bottom: 10px;
  padding-left: 10px;
  transition-property: opacity;
  transition-duration: 0.2s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .video-modal_close:hover {
  opacity: 0.7;
}

[data-flwr] .video-modal_container {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: var(--_palette---neutral--black);
}

[data-flwr] .video-modal_container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

/* ============================================
      BOOKING PAGE - STICKY PRICING TITLES
      ============================================ */
[data-flwr] .pricing_title-sticky {
  position: -webkit-sticky;
  top: var(--_spacing---step--8);
  align-self: flex-start;
  z-index: 10;
}

[data-flwr] .pricing_title-sticky h2 {
  max-width: 15ch;
}

@media (max-width: 991px) {
  [data-flwr] .pricing_title-sticky {
    position: static;
  }

}

[data-flwr] .pricing-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
}

/* ============================================
      HOME PAGE CUSTOM CLASSES
      ============================================ */
/* Home Navbar - Ensure it sits on top of hero */
@media (max-width: 767px) {
  [data-flwr] .pricing-cards-grid {
    grid-template-columns: 1fr;
  }

}

[data-flwr] .f-position-absolute.nav_wrap {
  top: 0;
  left: 0;
  right: 0;
  z-index: 100000;
}

/* Home hero styles removed - will be rebuilt from scratch */
[data-flwr] .f-position-absolute.nav_wrap .nav_background {
  background-color: transparent;
}

/* Left: Full-bleed image wrapper - use u-breakout-left utility for gutter override */
[data-flwr] .home-about_hero-grid {
  display: grid;
  grid-template-columns: 1.5fr 0.5fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  margin-bottom: var(--_spacing---step--8);
  align-items: stretch;
}

[data-flwr] .home-about_hero-image-wrap {
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
}

/* Adjust grid proportions for larger screens */
/* Right: Title Stack - constrained to image height */
[data-flwr] .home-about_hero-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

[data-flwr] .home-about_hero-titles {
  display: flex;
  flex-direction: column;
  row-gap: clamp(var(--_spacing---step--2), 3vw, var(--_spacing---step--5));
  column-gap: clamp(var(--_spacing---step--2), 3vw, var(--_spacing---step--5));
  align-items: flex-start;
  justify-content: space-between;
}

[data-flwr] .home-about_date {
  color: var(--_palette---accent--500);
  line-height: 1;
  font-size: clamp(1.5rem, 2vw, 2.5rem);
}

[data-flwr] .home-about_main-title {
  line-height: 0.85;
  letter-spacing: var(--_typography---tracking--tight);
  font-size: clamp(3.5rem, 7vw, 8rem);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  box-sizing: border-box;
}

[data-flwr] .home-about_main-title-word {
  white-space: nowrap;
  display: block;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

[data-flwr] .home-about_subtitle {
  line-height: 1;
  font-size: clamp(1.8rem, 3vw, 3.5rem);
}

[data-flwr] .home-about_content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: start;
  padding-top: var(--_spacing---step--8);
  padding-bottom: var(--_spacing---step--8);
}

[data-flwr] .home-about_heading {
  font-weight: var(--_typography---weight--bold);
  line-height: 1.2;
}

[data-flwr] .home-about_text-wrap {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
  align-items: flex-start;
}

/* Note: Schedule section uses standard schedule component from schedule.html */
/* ============================================
      TEACHERS COMPONENT (Used in Line Up)
      ============================================ */
[data-flwr] .home-about_description {
  line-height: 1.6;
}

[data-flwr] .teachers_wrap {
  width: 100%;
  padding-top: var(--_spacing---step--7);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---step--7);
  padding-left: var(--_spacing---page-margin);
  position: relative;
}

[data-flwr] .teachers_background {
  background-color: var(--_palette---neutral--0);
}

[data-flwr] .teachers_title {
  margin-bottom: var(--_spacing---step--8);
}

[data-flwr] .teachers_cta {
  display: flex;
  justify-content: center;
  margin-top: var(--_spacing---step--6);
}

/* Default: Links on left (column 1), image on right (column 2) */
[data-flwr] .teachers_content {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: start;
}

[data-flwr] .teachers_list {
  display: flex;
  flex-direction: column;
  grid-column-start: 1;
  grid-column-end: auto;
  grid-row-start: 1;
  grid-row-end: auto;
  max-height: 80vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

[data-flwr] .teachers_list::-webkit-scrollbar {
  display: none;
}

/* Reversed variant: Image on left (column 1), links on right (column 2) for home page */
[data-flwr] .teachers_image-wrap {
  position: relative;
  width: 100%;
  max-height: 80vh;
  aspect-ratio: 4 / 5;
  overflow-x: hidden;
  overflow-y: hidden;
  grid-row-start: 1;
  grid-row-end: auto;
  grid-column-start: 2;
  grid-column-end: auto;
}

[data-flwr] .teachers_content--reversed .teachers_list {
  grid-column-start: 2;
  grid-column-end: auto;
}

[data-flwr] .teachers_content--reversed .teachers_image-wrap {
  grid-column-start: 1;
  grid-column-end: auto;
}

[data-flwr] .teachers_hero-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .teacher_item {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  padding-top: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--6);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_theme---border--main);
  position: relative;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .teacher_item:hover {
  opacity: 0.8;
}

[data-flwr] .teacher_item-thumbnail {
  display: none;
}

[data-flwr] .teacher_info {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
  text-align: left;
}

[data-flwr] .teacher_eyebrow {
  color: var(--_palette---neutral--900);
  font-size: var(--_typography---size--lead);
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .teacher_info h3 {
  color: var(--_palette---neutral--900);
  font-weight: var(--_typography---weight--extrabold);
  line-height: var(--_typography---leading--tight);
  letter-spacing: var(--_typography---tracking--tight);
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  white-space: nowrap;
  word-break: normal;
  hyphens: none;
}

[data-flwr] .teacher_info--offset {
  margin-right: var(--_spacing---step--8);
}

[data-flwr] .teacher_info--offset-large {
  margin-right: unset;
}

[data-flwr] .teacher_info--offset-medium {
  margin-right: var(--_spacing---step--6);
}

[data-flwr] .teacher_arrow {
  display: block;
  flex-shrink: 0;
  transform: rotate(180deg);
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .teacher_item:hover .teacher_arrow {
  transform: rotate(180deg) translateX(8px);
}

[data-flwr] .teacher_arrow-icon {
  width: 56px;
  height: 55px;
  display: block;
}

[data-flwr] .teachers_hover-badge {
  width: 12.5rem;
  height: 12.5rem;
  border-top-left-radius: 50%;
  border-top-right-radius: 50%;
  border-bottom-right-radius: 50%;
  border-bottom-left-radius: 50%;
  overflow-x: hidden;
  overflow-y: hidden;
  position: fixed;
  pointer-events: none;
  z-index: 1000;
  opacity: 0;
  transform: scale(0.7);
  transition-property: opacity, transform;
  transition-duration: 0.5s, 0.5s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: 0s, 0s;
  will-change: transform, opacity;
  display: flex;
  align-items: center;
  justify-content: center;
}

[data-flwr] .teachers_hover-badge.is-visible {
  opacity: 1;
  transform: scale(1);
}

[data-flwr] .teachers_hover-badge-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

[data-flwr] .teachers_hover-badge-text {
  position: relative;
  z-index: 2;
  color: var(--_palette---neutral--0);
  font-size: 16px;
  font-weight: var(--_typography---weight--bold);
  text-align: center;
  text-transform: uppercase;
  line-height: 1.3;
}

@media (max-width: 991px) {
  [data-flwr] .teachers_wrap {
    padding-left: var(--_spacing---page-margin);
    padding-right: var(--_spacing---page-margin);
  }

  [data-flwr] .teachers_content {
    grid-template-columns: 1fr;
    padding-left: 0;
    padding-right: 0;
    row-gap: 0;
    column-gap: 0;
  }

  [data-flwr] .teachers_image-wrap {
    display: none;
  }

  [data-flwr] .teacher_info--offset, [data-flwr] .teacher_info--offset-large, [data-flwr] .teacher_info--offset-medium {
    margin-right: 0;
  }

  [data-flwr] .teachers_hover-badge {
    display: none;
  }

  [data-flwr] .teachers_list {
    max-height: none;
    padding-right: 0;
  }

  [data-flwr] .teachers_content--reversed .teachers_list {
    grid-column-start: 1;
    grid-column-end: auto;
  }

  [data-flwr] .teacher_item {
    display: grid;
    grid-template-columns: 70px 1fr;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
    align-items: start;
    position: relative;
    padding-right: 50px;
  }

  [data-flwr] .teacher_item-thumbnail-wrap {
    width: 70px;
    height: 70px;
    overflow-x: hidden;
    overflow-y: hidden;
    flex-shrink: 0;
  }

  [data-flwr] .teacher_item-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  [data-flwr] .teacher_info {
    min-width: 0;
    overflow-x: hidden;
    overflow-y: hidden;
  }

  [data-flwr] .teacher_info h3 {
    font-size: clamp(1.125rem, 3vw, 1.5rem);
    line-height: 1.2;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  [data-flwr] .teacher_eyebrow {
    font-size: 0.75rem;
    margin-bottom: 0.25rem;
  }

  [data-flwr] .teacher_arrow {
    position: absolute;
    top: var(--_spacing---step--4);
    right: 0;
  }

  [data-flwr] .teacher_arrow-icon {
    width: 32px;
    height: 32px;
  }

}

[data-flwr] .lookback_wrap {
  background-color: var(--_theme---surface--main);
}

[data-flwr] .lookback_content {
  padding-top: var(--_spacing---section--main);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---section--main);
  padding-left: var(--_spacing---page-margin);
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
  max-width: 1400px;
  margin-top: 0;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
}

[data-flwr] .home-lookback_title {
  text-align: left;
  align-self: flex-start;
  font-weight: var(--_typography---weight--extrabold);
  line-height: var(--_typography---leading--squashed);
  letter-spacing: var(--_typography---tracking--tight);
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  font-size: clamp(3rem, 6vw, 6rem);
  max-width: min(600px, 100%);
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  box-sizing: border-box;
}

[data-flwr] .home-lookback_image-wrap {
  width: 100%;
  max-width: 432.75px;
  transform: rotate(0.354deg);
  margin-top: var(--_spacing---step--3);
  margin-right: 0;
  margin-bottom: var(--_spacing---step--3);
  margin-left: 0;
}

[data-flwr] .home-lookback_subtitle {
  max-width: min(600px, 100%);
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  box-sizing: border-box;
  text-align: right;
  align-self: flex-end;
  font-weight: var(--_typography---weight--extrabold);
  line-height: var(--_typography---leading--squashed);
  letter-spacing: var(--_typography---tracking--tight);
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  font-size: clamp(3rem, 6vw, 6rem);
}

[data-flwr] .lookback-video_wrap {
  background-color: var(--_theme---surface--main);
}

[data-flwr] .home-lookback-video_content {
  padding-top: var(--_spacing---page-margin);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---page-margin);
  padding-left: var(--_spacing---page-margin);
  display: grid;
  grid-template-columns: 1.5fr auto;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: end;
  min-height: 60vh;
  position: relative;
}

[data-flwr] .home-lookback-video_video-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .home-lookback-video_video-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

[data-flwr] .home-lookback-video_play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: transparent;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .home-lookback-video_play-button:hover {
  transform: translate(-50%, -50%) scale(1.1);
}

[data-flwr] .home-lookback-video_play-icon {
  width: 120px;
  height: 120px;
  display: block;
}

/* Teachers page - clip image to match text height */
[data-flwr] .home-lookback-video_title {
  font-size: clamp(10rem, 20vw, 25rem);
  line-height: 0.8;
  font-weight: var(--_typography---weight--extrabold);
  letter-spacing: var(--_typography---tracking--tight);
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  align-self: end;
}

[data-flwr] .about_wrap .home-about_hero-grid {
  align-items: stretch;
  min-height: 50vh;
}

[data-flwr] .about_wrap .home-about_hero-image-wrap {
  max-height: 600px;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .about_wrap .home-about_hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 991px) {
  [data-flwr] .home-about_hero-grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    margin-bottom: var(--_spacing---step--6);
  }

  [data-flwr] .home-about_hero-image-wrap {
    min-height: 50vh;
    max-height: 60vh;
  }

  [data-flwr] .home-about_hero-image {
    min-height: 50vh;
    max-height: 60vh;
  }

  [data-flwr] .home-about_hero-titles {
    min-height: auto;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
    width: 100%;
  }

  [data-flwr] .home-about_main-title {
    font-size: clamp(3rem, 10vw, 5rem);
    width: 100%;
  }

  [data-flwr] .home-about_subtitle {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
  }

  [data-flwr] .home-about_content-grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--5);
    column-gap: var(--_spacing---step--5);
  }

  [data-flwr] .home-about_text-wrap {
    grid-column-start: 1;
    grid-column-end: auto;
  }

  [data-flwr] .home-lookback-video_content {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
    align-items: center;
  }

  [data-flwr] .home-lookback-video_video-wrap {
    grid-row-start: 1;
    grid-row-end: auto;
  }

}

/* ============================================
      END HOME PAGE CUSTOM CLASSES
      ============================================ */
/* ============================================
      ABOUT PAGE - NAVIGATION LINKS WITH HOVER
      ============================================ */
@media (max-width: 991px) {
  [data-flwr] .home-lookback-video_title {
    grid-row-start: 2;
    grid-row-end: auto;
    text-align: center;
    font-size: clamp(6rem, 15vw, 10rem);
  }

}

[data-flwr] .nav-link_wrap {
  width: 100%;
  min-height: 12rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition-property: background-color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  background-color: var(--_palette---neutral--0);
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: var(--_theme---border--main);
}

[data-flwr] .nav-link_wrap:last-child {
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_theme---border--main);
}

[data-flwr] .nav-link_wrap:hover {
  background-color: var(--_palette---core--500);
}

[data-flwr] .nav-link_link {
  text-decoration-line: none;
  color: var(--_palette---neutral--900);
  transition-property: color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  z-index: 2;
  position: relative;
}

/* ============================================
      END ABOUT PAGE - NAVIGATION LINKS
      ============================================ */
/* ============================================
      FULLSCREEN MENU SYSTEM
      Complete hamburger menu with overlay
      
      Structure:
      1. Hamburger Toggle Button (.nav_hamburger)
      2. Fullscreen Overlay Container (.fullscreen-menu)
      3. Menu Content & Layout (.menu-fullscreen_*)
      4. Menu Assets & Animations (badges, arrows)
      ============================================ */
[data-flwr] .nav-link_wrap:hover .nav-link_link {
  color: var(--_palette---neutral--0);
}

/* Desktop: keep logo centered and visible when menu is open */
[data-flwr] .nav_wrap.menu-is-open .nav_menu > a, [data-flwr] .nav_wrap.menu-is-open .nav_background {
  opacity: 0;
  pointer-events: none;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

/* Ensure navbar background is always transparent */
[data-flwr] .nav_logo, [data-flwr] .nav_menu > a {
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .nav_hamburger {
  background-image: none;
  background-color: transparent;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--_palette---neutral--900);
  width: 24px;
  height: 24px;
  position: relative;
  z-index: 99999;
  transition-property: opacity;
  transition-duration: 0.2s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .nav_hamburger:hover {
  color: var(--_palette---core--500);
}

[data-flwr] .nav_hamburger svg {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition-property: opacity, transform;
  transition-duration: 0.3s, 0.3s;
  transition-timing-function: ease, ease;
  transition-delay: 0s, 0s;
}

[data-flwr] .nav_hamburger .hamburger-icon {
  opacity: 1;
}

[data-flwr] .nav_hamburger .close-icon {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-90deg);
}

[data-flwr] .nav_hamburger.is-active .hamburger-icon {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

[data-flwr] .nav_hamburger.is-active .close-icon {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg);
}

[data-flwr] .fullscreen-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: var(--_palette---neutral--0);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition-property: opacity, visibility;
  transition-duration: 0.3s, 0.3s;
  transition-timing-function: ease, ease;
  transition-delay: 0s, 0s;
}

/* ============================================
      NAVBAR OFFSET UTILITY
      ============================================ */
/* Utility class to compensate for navbar overlay by pushing content down
      by the full navbar height */
[data-flwr] .fullscreen-menu.is-open {
  opacity: 1;
  visibility: visible;
}

/* Alternative: More precise navbar offset for hero content specifically */
[data-flwr] .u-navbar-offset {
  margin-top: var(--_component---navbar--height);
}

/* ============================================
      END NAVBAR OFFSET UTILITY
      ============================================ */
[data-flwr] .hero_content.u-navbar-offset, [data-flwr] .plan_content.u-navbar-offset {
  padding-top: var(--_component---navbar--height);
}

[data-flwr] .menu-fullscreen_background {
  background-color: var(--_palette---neutral--0);
}

[data-flwr] .menu-fullscreen_content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow-x: visible;
  overflow-y: visible;
  padding-top: calc(var(--_component---navbar--height) + var(--_spacing---page-margin));
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---page-margin);
  padding-left: var(--_spacing---page-margin);
  box-sizing: border-box;
}

[data-flwr] .menu-fullscreen_grid {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  display: grid;
  grid-template-columns: 1fr 45%;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: center;
  width: 100%;
  min-height: 0;
  overflow-x: visible;
  overflow-y: visible;
}

[data-flwr] .menu-fullscreen_nav {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
  justify-content: center;
}

[data-flwr] .menu-fullscreen_link {
  color: var(--_palette---neutral--900);
  text-decoration-line: none;
  font-family: var(--_typography---family--sans);
  font-size: var(--_typography---size--menu);
  line-height: var(--_typography---leading--squashed);
  letter-spacing: var(--_typography---tracking--tight);
  transition-property: color, transform;
  transition-duration: 0.3s, 0.3s;
  transition-timing-function: ease, ease;
  transition-delay: 0s, 0s;
  display: inline-block;
}

[data-flwr] .menu-fullscreen_link:hover {
  color: var(--_palette---core--500);
  transform: translateX(10px);
}

[data-flwr] .menu-fullscreen_link--primary {
  color: var(--_palette---neutral--900);
  font-weight: var(--_typography---weight--extrabold);
}

[data-flwr] .menu-fullscreen_image-wrap {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  overflow-x: visible;
  overflow-y: visible;
}

[data-flwr] .menu-fullscreen_image-container {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .menu-fullscreen_image-container .image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
}

@keyframes rotate-badge {
  from {
    transform: translate(-50%, 50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, 50%) rotate(360deg);
  }
}

[data-flwr] .menu-fullscreen_badge {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 280px;
  height: 280px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10;
  pointer-events: none;
  animation-name: rotate-badge;
  animation-duration: 20s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

@media (max-width: 991px) {
  [data-flwr] .menu-fullscreen_badge {
    display: none;
  }

}

[data-flwr] .menu-fullscreen_footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-top: var(--_spacing---step--5);
  padding-right: var(--_spacing---step--5);
  padding-bottom: var(--_spacing---step--5);
  padding-left: var(--_spacing---step--5);
  margin-top: auto;
  width: 100%;
}

[data-flwr] .menu-fullscreen_footer-left {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--1);
  column-gap: var(--_spacing---step--1);
  flex-shrink: 0;
  min-width: 0;
}

[data-flwr] .menu-fullscreen_footer-right {
  display: flex;
  align-items: center;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

[data-flwr] .menu-fullscreen_social-link {
  color: var(--_palette---neutral--900);
  transition-property: color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  display: flex;
  align-items: center;
  justify-content: center;
}

[data-flwr] .menu-fullscreen_social-link:hover {
  color: var(--_palette---core--500);
}

[data-flwr] .menu-fullscreen_footer-link {
  color: var(--_palette---neutral--900);
  text-decoration-line: none;
  transition-property: color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .menu-fullscreen_footer-link:hover {
  color: var(--_palette---core--500);
}

@media (max-width: 991px) {
  [data-flwr] .menu-fullscreen_content {
    padding-top: calc(var(--_component---navbar--height) + var(--_spacing---step--4));
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---page-margin);
    padding-left: var(--_spacing---page-margin);
  }

  [data-flwr] .menu-fullscreen_grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    align-items: start;
    overflow-x: hidden;
    overflow-y: hidden;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
  }

  [data-flwr] .menu-fullscreen_nav {
    order: 1;
    flex-shrink: 0;
    row-gap: var(--_spacing---step--2);
    column-gap: var(--_spacing---step--2);
    z-index: 1;
    position: relative;
  }

  [data-flwr] .menu-fullscreen_image-wrap {
    order: 2;
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: hidden;
  }

  [data-flwr] .menu-fullscreen_image-container {
    max-width: 100%;
    height: 100%;
    aspect-ratio: auto;
  }

  [data-flwr] .menu-fullscreen_hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  [data-flwr] .menu-fullscreen_link {
    line-height: 1.1;
  }

  [data-flwr] .menu-fullscreen_arrow-icon {
    width: 16px;
    height: 16px;
  }

  [data-flwr] .menu-fullscreen_badge {
    width: 150px;
    height: 150px;
    bottom: -30px;
    right: -30px;
  }

  [data-flwr] .menu-fullscreen_footer {
    flex-direction: column;
    align-items: flex-start;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
    flex-shrink: 0;
    padding-top: var(--_spacing---step--4);
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
  }

}

[data-flwr] .menu-fullscreen_arrow-icon {
  width: 55px;
  height: 55px;
  display: inline-block;
  margin-left: var(--_spacing---step--3);
  transform: rotate(180deg);
  vertical-align: middle;
  visibility: hidden;
}

[data-flwr] .menu-fullscreen_link:hover .menu-fullscreen_arrow-icon {
  visibility: visible;
}

/* Round Logo Badge - Single flattened SVG from Figma */
[data-flwr] .menu-fullscreen_hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-top-left-radius: var(--_radius---none);
  border-top-right-radius: var(--_radius---none);
  border-bottom-right-radius: var(--_radius---none);
  border-bottom-left-radius: var(--_radius---none);
  display: block;
}

[data-flwr] .menu-fullscreen_badge-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

[data-flwr] .menu-fullscreen_footer-logo {
  height: 24px;
  width: auto;
  min-width: 150px;
  margin-bottom: var(--_spacing---step--1);
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

[data-flwr] .menu-fullscreen_footer-logo svg {
  width: 100%;
  height: 100%;
}

/* === MONOLINK VARIANT - Clean Single Row Layout === */
[data-flwr] .menu-fullscreen_copyright {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .day_row-item--monolink {
  position: relative;
  display: flex;
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---step--6);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: color-mix(in srgb, var(--_palette---neutral--0) 10%, transparent);
}

[data-flwr] .day_row-image-inline {
  width: 160px;
  height: 90px;
  flex-shrink: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  transition-property: all;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: 0s;
}

/* Content wrapper - contains both title row and expanded content */
[data-flwr] .day_row-image-inline__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

[data-flwr] .day_row-item--monolink-content {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  display: flex;
  flex-direction: column;
}

[data-flwr] .day_row--monolink {
  display: flex;
  align-items: center;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--4);
}

[data-flwr] .day_row-title {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
}

[data-flwr] .day_row-title h3 {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: inherit;
}

[data-flwr] .day_row-cta {
  flex-shrink: 0;
  margin-left: auto;
}

[data-flwr] .day_row-content--monolink {
  max-height: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  opacity: 0;
  transition-property: max-height, opacity;
  transition-duration: 0.4s, 0.3s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), ease;
  transition-delay: 0s, 0s;
}

/* Image expands to portrait 4:5 ratio when active */
[data-flwr] .day_row-item--monolink.is-active .day_row-content--monolink {
  max-height: 500px;
  opacity: 1;
  padding-top: var(--_spacing---step--4);
}

[data-flwr] .day_row-item--monolink.is-active .day_row-image-inline {
  width: 200px;
  height: 250px;
}

[data-flwr] .day_row-content--monolink .day_row-content-text p {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: var(--_spacing---step--4);
  margin-left: 0;
  line-height: 1.6;
}

[data-flwr] .day_row-content-meta {
  display: flex;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  margin-top: var(--_spacing---step--4);
  padding-top: var(--_spacing---step--4);
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: color-mix(in srgb, var(--_palette---neutral--0) 10%, transparent);
  flex-wrap: wrap;
}

[data-flwr] .day_row-content-meta p {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  font-size: 0.875rem;
  opacity: 0.8;
}

[data-flwr] .button--icon {
  display: inline-flex;
  align-items: center;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .button--icon svg {
  width: 18px;
  height: 18px;
}

@media (max-width: 767px) {
  [data-flwr] .day_row--monolink {
    padding-top: var(--_spacing---step--3);
    padding-right: var(--_spacing---step--4);
    padding-bottom: var(--_spacing---step--3);
    padding-left: var(--_spacing---step--4);
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
  }

  [data-flwr] .day_row-image-inline {
    width: 60px;
    height: 60px;
  }

  [data-flwr] .day_row-title h3 {
    font-size: 1rem;
  }

  [data-flwr] .day_row-cta .button {
    font-size: 0.75rem;
    padding-top: var(--_spacing---step--2);
    padding-right: var(--_spacing---step--3);
    padding-bottom: var(--_spacing---step--2);
    padding-left: var(--_spacing---step--3);
  }

  [data-flwr] .day_row-content--monolink .day_row-content-text {
    padding-left: 0;
  }

  [data-flwr] .day_row-item--monolink.is-active .day_row-image-inline {
    width: 60px;
    height: 150px;
  }

}

/* ============================================
      ABOUT ROME - VENUE NAME ENHANCEMENTS
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .day_row-content-meta {
    flex-direction: column;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
  }

}

[data-flwr] .day_row .venue-name {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: var(--_typography---size--h3);
  line-height: var(--_typography---leading--normal);
  text-align: center;
}

[data-flwr] .day_row .venue-name a {
  color: inherit;
  text-decoration-line: none;
  transition-property: color;
  transition-duration: 0.2s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

/* When row is hovered (red bg), link hover should be visible */
[data-flwr] .day_row .venue-name a:hover {
  color: var(--_palette---core--500);
}

[data-flwr] .day_row:hover .venue-name a:hover {
  color: unset;
}

[data-flwr] .day_row-item.is-active .day_row .venue-name a:hover {
  color: var(--_palette---accent--500);
}

[data-flwr] .plan_content .google-maps-cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .plan_content .google-maps-subtitle {
  font-size: var(--_typography---size--small);
  opacity: 0.8;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

[data-flwr] .venues-list {
  list-style-type: none;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .venues-list_item {
  display: flex;
  align-items: center;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

/* ============================================
      ADDITIONAL STYLES FOR HTML SITE
      ============================================ */
/* ============================================
      BOOKING PAGE - COMPACT PRICING SECTIONS
      ============================================ */
[data-flwr] .venues-list_icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

[data-flwr] .plan_wrap--compact {
  padding-top: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--6);
}

/* ============================================
      SINGLE CLASS LIST ROWS
      ============================================ */
[data-flwr] .single-class-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  row-gap: 1.5rem;
  column-gap: 1.5rem;
  padding-top: 1.25rem;
  padding-right: 1.5rem;
  padding-bottom: 1.25rem;
  padding-left: 1.5rem;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: color-mix(in srgb, var(--_palette---neutral--black) 8%, transparent);
}

[data-flwr] .single-class-row--white {
  background-color: var(--_palette---neutral--0);
}

[data-flwr] .single-class-row--rose {
  background-color: color-mix(in srgb, var(--_palette---core--500) 6%, transparent);
}

[data-flwr] .single-class-row__info {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  min-width: 0;
}

[data-flwr] .single-class-row__info .text-h5 {
  margin-bottom: 0.25rem;
}

[data-flwr] .single-class-row .button {
  flex-shrink: 0;
  white-space: nowrap;
}

@media (max-width: 991px) {
  [data-flwr] .single-class-row {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 0.75rem;
    column-gap: 0.75rem;
  }

}

/* ============================================
      SCHEDULE PAGE - 4-DAY PASS NOTICE
      ============================================ */
@media (max-width: 991px) {
  [data-flwr] .single-class-row .button {
    width: 100%;
    justify-content: center;
  }

}

[data-flwr] .schedule_notice {
  border-left-width: 3px;
  border-left-style: solid;
  border-left-color: var(--_palette---accent-2--500);
  padding-top: 1.25rem;
  padding-right: 1.5rem;
  padding-bottom: 1.25rem;
  padding-left: 1.5rem;
  margin-bottom: 2.5rem;
  background-color: color-mix(in srgb, var(--_palette---accent-2--500) 8%, transparent);
  display: flex;
  flex-direction: column;
  row-gap: 0.75rem;
  column-gap: 0.75rem;
}

/* Stacked notices sit close together so they read as related notes
      rather than separate sections (.schedule_content gaps by space--8). */
[data-flwr] .schedule_notice p {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .schedule_notices {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
  margin-bottom: 2.5rem;
}

/* ============================================
      CLASS STATUS TAG + SOLD OUT BUTTON (schedule rows + booking rows)
      ============================================ */
/* Badge beside a class title, so availability reads without expanding.
      Text is set in the HTML: "Sold Out", "Few last spots opened up", etc. */
[data-flwr] .schedule_notices .schedule_notice {
  margin-bottom: 0;
}

/* Replaces a BUY TICKETS / GET TICKET link. custom.css loads after
      rome-tribe.css, so this beats .day_row-buy-button and .button--outline. */
[data-flwr] .status-tag {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.4em;
  padding-top: 0.3em;
  padding-right: 0.7em;
  padding-bottom: 0.3em;
  padding-left: 0.7em;
  background-color: var(--_palette---accent-2--500);
  color: var(--_palette---neutral--900);
  font-size: 0.5em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* ============================================
      GLOBAL OVERFLOW PREVENTION
      ============================================ */
[data-flwr] .button--soldout, [data-flwr] .button--soldout:hover {
  background-color: var(--_palette---accent-2--500);
  border-top-color: var(--_palette---accent-2--500);
  border-right-color: var(--_palette---accent-2--500);
  border-bottom-color: var(--_palette---accent-2--500);
  border-left-color: var(--_palette---accent-2--500);
  color: var(--_palette---neutral--900);
  pointer-events: none;
}

html {
  overflow-x: hidden;
  overflow-y: scroll;
}

/* ============================================
      SECTION MINIMUM HEIGHT - Breathing Room
      ============================================ */
body {
  overflow-x: visible;
  overflow-y: visible;
  max-width: 100%;
}

[data-flwr] .about_wrap, [data-flwr] .locations_wrap, [data-flwr] .schedule_wrap, [data-flwr] .teachers_wrap, [data-flwr] .plan_wrap {
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: var(--_spacing---step--8);
  padding-bottom: var(--_spacing---step--8);
}

/* Responsive: reduce min-height on smaller screens */
[data-flwr] .hero_wrap {
  min-height: 100vh;
}

@media (max-width: 991px) {
  [data-flwr] .about_wrap, [data-flwr] .locations_wrap, [data-flwr] .schedule_wrap, [data-flwr] .teachers_wrap, [data-flwr] .plan_wrap {
    min-height: 60vh;
  }

}

/* ============================================
      SCHEDULE PROVISIONAL SECTION - Enhanced
      Two-column layout with hero image + day cards
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .about_wrap, [data-flwr] .locations_wrap, [data-flwr] .schedule_wrap, [data-flwr] .teachers_wrap, [data-flwr] .plan_wrap {
    min-height: auto;
  }

}

[data-flwr] .schedule-provisional {
  padding-top: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--6);
}

[data-flwr] .schedule-provisional_intro {
  margin-bottom: var(--_spacing---step--6);
  max-width: 800px;
}

[data-flwr] .schedule-provisional_layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: stretch;
}

[data-flwr] .schedule-provisional_image-wrap {
  position: relative;
  width: 100%;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .schedule-provisional_image-wrap img, [data-flwr] .schedule-provisional_image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition-property: opacity;
  transition-duration: 0.4s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .schedule-provisional_cards {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

[data-flwr] .schedule-provisional_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

[data-flwr] .schedule-provisional_day {
  padding-top: var(--_spacing---step--5);
  padding-right: var(--_spacing---step--5);
  padding-bottom: var(--_spacing---step--5);
  padding-left: var(--_spacing---step--5);
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: var(--_theme---border--main);
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: var(--_theme---border--main);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_theme---border--main);
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: var(--_theme---border--main);
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
  transition-property: all;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  min-height: 200px;
}

[data-flwr] .schedule-provisional_day:hover {
  border-top-color: var(--_palette---accent--500);
  border-right-color: var(--_palette---accent--500);
  border-bottom-color: var(--_palette---accent--500);
  border-left-color: var(--_palette---accent--500);
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--0);
}

[data-flwr] .schedule-provisional_day-number {
  font-family: var(--_typography---family--sans);
  font-weight: var(--_typography---weight--extrabold);
  font-size: clamp(4rem, 8vw, 7rem);
  line-height: 0.85;
  letter-spacing: var(--_typography---tracking--tight);
  color: var(--_palette---neutral--black);
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
  display: block;
  margin-bottom: var(--_spacing---step--2);
}

[data-flwr] .schedule-provisional_day:hover .schedule-provisional_day-number {
  opacity: 0.25;
}

[data-flwr] .schedule-provisional_day-content {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--1);
  column-gap: var(--_spacing---step--1);
  margin-top: auto;
}

[data-flwr] .schedule-provisional_day-content h3 {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  transition-property: color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .schedule-provisional_day-date {
  color: var(--_palette---accent--500);
  font-weight: var(--_typography---weight--bold);
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  transition-property: color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .schedule-provisional_day:hover .schedule-provisional_day-date {
  color: var(--_palette---neutral--0);
}

[data-flwr] .schedule-provisional_day-content p:last-child {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  opacity: 0.8;
}

[data-flwr] .schedule-provisional_note {
  font-style: italic;
  margin-top: var(--_spacing---step--4);
}

[data-flwr] .schedule-provisional_grid--images {
  row-gap: var(--_spacing---step--3);
  column-gap: var(--_spacing---step--3);
}

[data-flwr] .schedule-provisional_day-image {
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: var(--_theme---border--main);
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: var(--_theme---border--main);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_theme---border--main);
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: var(--_theme---border--main);
}

[data-flwr] .schedule-provisional_day-image img {
  width: 100%;
  height: auto;
  display: block;
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

/* ============================================
      RESPONSIVE: Schedule Provisional
      ============================================ */
[data-flwr] .schedule-provisional_day-image:hover img {
  transform: scale(1.02);
}

@media (max-width: 991px) {
  [data-flwr] .schedule-provisional_layout {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
  }

  [data-flwr] .schedule-provisional_image-wrap {
    position: static;
    max-height: 50vh;
    aspect-ratio: 16 / 9;
  }

  [data-flwr] .schedule-provisional_image-wrap img, [data-flwr] .schedule-provisional_image {
    position: relative;
  }

  [data-flwr] .schedule-provisional_grid {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 767px) {
  [data-flwr] .schedule-provisional_grid {
    grid-template-columns: 1fr;
  }

  [data-flwr] .schedule-provisional_day {
    min-height: 160px;
  }

}

/* ============================================
      MENU OPEN STATE - Hide Nav Links
      ============================================ */
/* Hide navigation links when fullscreen menu is open (all screen sizes) */
@media (max-width: 767px) {
  [data-flwr] .schedule-provisional_day-number {
    font-size: clamp(3rem, 15vw, 5rem);
  }

}

/* Keep hamburger button visible when menu opens */
[data-flwr] .nav_wrap.menu-is-open .nav_link, [data-flwr] .nav_wrap.menu-is-open .nav_menu > a:not(.nav_hamburger) {
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

/* Desktop: Logo fades out/in when fullscreen menu opens (no sliding) */
[data-flwr] .nav_wrap.menu-is-open .nav_hamburger {
  pointer-events: auto;
  z-index: 100001;
}

/* Keep nav_wrap fixed when menu is open so logo and hamburger don't jump */
/* Apply to all non-desktop screens (where hamburger menu appears) */
@keyframes fadeReposition {
  0% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
  60% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@media (max-width: 991px) {
  [data-flwr] .nav_wrap.menu-is-open {
    z-index: 100001;
  }

  [data-flwr] .nav_wrap.menu-is-open .nav_logo {
    z-index: 100001;
  }

}

/* ============================================
      FULLSCREEN MENU FOOTER ALIGNMENT
      ============================================ */
/* Align footer with menu grid (55% left column) */
[data-flwr] .menu-fullscreen_footer {
  display: grid;
  grid-template-columns: 1fr 45%;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  align-items: end;
}

[data-flwr] .menu-fullscreen_footer-left {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--1);
  column-gap: var(--_spacing---step--1);
  align-items: flex-start;
}

[data-flwr] .menu-fullscreen_footer-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
}

@media (max-width: 991px) {
  [data-flwr] .menu-fullscreen_footer {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

}

/* ============================================
      LANDSCAPE MOBILE RESPONSIVE
      For horizontal phone orientation
      ============================================ */
/* Landscape phones: max-height 500px + landscape orientation */
/* Very short landscape (under 400px height) */
/* Extremely short landscape (under 320px height) */
/* ============================================
      LIMITED TICKETS TAG - Pricing Cards
      ============================================ */
/* Pricing card wrapper - flex layout to push tag to bottom */
@media (max-width: 991px) {
  [data-flwr] .menu-fullscreen_footer-right {
    justify-content: flex-start;
  }

}

[data-flwr] .card_primary_wrap {
  display: flex;
  flex-direction: column;
}

[data-flwr] .limited-tickets-tag {
  width: 100%;
  background-color: var(--_palette---accent--500);
  color: var(--_palette---neutral--0);
  font-family: var(--_typography---family--sans);
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding-top: 18px;
  padding-right: 12px;
  padding-bottom: 18px;
  padding-left: 12px;
  text-align: center;
  order: 2;
}

[data-flwr] .card_primary_element {
  order: 1;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
}

[data-flwr] .pricing-card_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  align-items: end;
}

[data-flwr] .pricing-card_info {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  column-gap: var(--_spacing---step--2);
}

[data-flwr] .pricing-card_info .text-body-md {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .pricing-card_button {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

[data-flwr] .pricing-card_button .button--small {
  min-width: auto;
  padding-top: var(--_spacing---step--2);
  padding-right: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--2);
  padding-left: var(--_spacing---step--4);
  font-size: 0.875rem;
}

@media (max-width: 767px) {
  [data-flwr] .limited-tickets-tag {
    font-size: 0.85rem;
    padding-top: 14px;
    padding-right: 10px;
    padding-bottom: 14px;
    padding-left: 10px;
  }

}

@media (max-width: 478px) {
  [data-flwr] .pricing-card_grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
  }

}

/* ============================================
      LOCATIONS SECTION - Homepage Venues
      ============================================ */
@media (max-width: 478px) {
  [data-flwr] .pricing-card_button {
    justify-content: flex-start;
  }

}

[data-flwr] .locations_wrap {
  padding-top: unset;
  padding-bottom: unset;
}

[data-flwr] .locations_content {
  width: 100%;
  padding-left: var(--_spacing---page-margin);
  padding-right: var(--_spacing---page-margin);
}

[data-flwr] .locations_title {
  margin-bottom: var(--_spacing---step--8);
}

[data-flwr] .locations_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
}

[data-flwr] .location_card {
  display: block;
  text-decoration-line: none;
  color: inherit;
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .location_card:hover {
  transform: translateY(-4px);
}

[data-flwr] .location_card-image-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow-x: hidden;
  overflow-y: hidden;
  margin-bottom: var(--_spacing---step--4);
}

[data-flwr] .location_card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition-property: transform;
  transition-duration: 0.5s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .location_card:hover .location_card-image {
  transform: scale(1.05);
}

[data-flwr] .location_card-content {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--1);
  column-gap: var(--_spacing---step--1);
}

[data-flwr] .location_card-eyebrow {
  color: var(--_palette---accent--500);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

[data-flwr] .location_card-address {
  opacity: 0.7;
  margin-top: var(--_spacing---step--1);
}

[data-flwr] .location_card-link {
  display: inline-flex;
  align-items: center;
  row-gap: var(--_spacing---step--1);
  column-gap: var(--_spacing---step--1);
  margin-top: var(--_spacing---step--3);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition-property: color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .location_card-link svg {
  transition-property: transform;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

[data-flwr] .location_card:hover .location_card-link {
  color: var(--_palette---accent--500);
}

[data-flwr] .location_card:hover .location_card-link svg {
  transform: translate(2px, -2px);
}

[data-flwr] .location_card--concert {
  display: block;
}

[data-flwr] .location_card-note {
  margin-top: var(--_spacing---step--2);
  font-style: italic;
  opacity: 0.9;
}

[data-flwr] .location_card-links {
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--_spacing---step--4);
  column-gap: var(--_spacing---step--4);
  margin-top: var(--_spacing---step--3);
}

[data-flwr] .location_card-links .location_card-link {
  margin-top: 0;
  color: inherit;
  text-decoration-line: none;
}

[data-flwr] .location_card-links .location_card-link:hover {
  color: var(--_palette---accent--500);
}

[data-flwr] .location_card-links .location_card-link:hover svg {
  transform: translate(2px, -2px);
}

@media (max-width: 767px) {
  [data-flwr] .locations_grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--8);
    column-gap: var(--_spacing---step--8);
  }

  [data-flwr] .locations_wrap {
    padding-top: var(--_spacing---step--8);
    padding-bottom: var(--_spacing---step--8);
  }

  [data-flwr] .locations_title {
    margin-bottom: var(--_spacing---step--6);
  }

}

/* ============================================
      COMPREHENSIVE RESPONSIVE FIXES
      ============================================ */
/* ============================================
      1. DISABLE HOVER STATES ON TOUCH DEVICES
      ============================================ */
/* ============================================
      2. GLOBAL IMAGE OVERFLOW FIX
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .location_card-image-wrap {
    aspect-ratio: 16 / 10;
  }

}

/* Ensure images don't overflow their containers */
[data-flwr] img {
  max-width: 100%;
  height: auto;
}

/* ============================================
      3. MENU ARROW SIZE FIX
      ============================================ */
[data-flwr] .hero-collage_image, [data-flwr] .home-about_hero-image, [data-flwr] .teachers_hero-image, [data-flwr] .location_card-image, [data-flwr] .schedule-provisional_image, [data-flwr] .teacher-modal_image, [data-flwr] .sticky-scroll_image {
  max-width: 100%;
  object-fit: cover;
}

/* ============================================
      4. TEACHER MODAL - FULL RESPONSIVE FIX
      ============================================ */
[data-flwr] .teacher-modal_name {
  line-height: 1.1;
}

[data-flwr] .teacher-modal_role {
  font-size: clamp(0.75rem, 1vw + 0.5rem, 1rem);
}

[data-flwr] .teacher-modal_bio p, [data-flwr] .teacher-modal_classes li, [data-flwr] .teacher-modal_section p, [data-flwr] .teacher-modal_section li {
  font-size: clamp(0.875rem, 0.8vw + 0.5rem, 1.125rem);
  line-height: 1.5;
}

[data-flwr] .teacher-modal_bio h3, [data-flwr] .teacher-modal_classes h3, [data-flwr] .teacher-modal_section h3 {
  font-size: clamp(1rem, 1.2vw + 0.5rem, 1.5rem);
}

[data-flwr] .teacher-modal_info {
  max-height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
}

[data-flwr] .teacher-modal_links, [data-flwr] .teacher-modal_actions {
  flex-wrap: wrap;
}

[data-flwr] .teacher-modal_links .button, [data-flwr] .teacher-modal_actions .button {
  font-size: clamp(0.75rem, 1vw + 0.4rem, 1rem);
  padding-top: clamp(0.5rem, 1vw + 0.25rem, 1rem);
  padding-right: clamp(1rem, 2vw + 0.5rem, 2rem);
  padding-bottom: clamp(0.5rem, 1vw + 0.25rem, 1rem);
  padding-left: clamp(1rem, 2vw + 0.5rem, 2rem);
  white-space: nowrap;
}

@media (max-width: 991px) {
  [data-flwr] .teacher-modal_content {
    overflow-y: auto;
    overflow-x: hidden;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    row-gap: 0;
    column-gap: 0;
  }

  [data-flwr] .teacher-modal_links .button, [data-flwr] .teacher-modal_actions .button {
    font-size: clamp(0.7rem, 2.5vw + 0.3rem, 0.9rem);
    padding-top: clamp(0.4rem, 2vw, 0.75rem);
    padding-right: clamp(0.75rem, 3vw, 1.5rem);
    padding-bottom: clamp(0.4rem, 2vw, 0.75rem);
    padding-left: clamp(0.75rem, 3vw, 1.5rem);
  }

  [data-flwr] .teacher-modal_grid {
    row-gap: 0;
    column-gap: 0;
    width: 100%;
  }

  [data-flwr] .teacher-modal_info {
    order: 2;
    padding-top: var(--_spacing---step--6);
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---page-margin);
    padding-left: var(--_spacing---page-margin);
    max-height: none;
    overflow-y: visible;
  }

  [data-flwr] .teacher-modal_image-wrap {
    order: 1;
    min-height: 50vh;
    max-height: none;
  }

  [data-flwr] .teacher-modal_image {
    height: auto;
    min-height: 50vh;
    max-height: none;
    width: 100%;
    object-fit: cover;
  }

  [data-flwr] .teacher-modal_bio p, [data-flwr] .teacher-modal_classes li, [data-flwr] .teacher-modal_section p, [data-flwr] .teacher-modal_section li {
    font-size: clamp(0.8rem, 2vw + 0.3rem, 1rem);
  }

  [data-flwr] .teacher-modal_bio h3, [data-flwr] .teacher-modal_classes h3, [data-flwr] .teacher-modal_section h3 {
    font-size: clamp(0.9rem, 2.5vw + 0.3rem, 1.25rem);
  }

  [data-flwr] .teacher-modal_actions {
    flex-direction: column;
    row-gap: var(--_spacing---step--3);
    column-gap: var(--_spacing---step--3);
    margin-top: var(--_spacing---step--4);
  }

  [data-flwr] .teacher-modal_actions .button {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  [data-flwr] .teacher-modal_close {
    top: var(--_spacing---page-margin);
    right: var(--_spacing---page-margin);
    z-index: 100001;
  }

}

@media (max-width: 478px) {
  [data-flwr] .teacher-modal_image-wrap {
    min-height: 40vh;
  }

  [data-flwr] .teacher-modal_image {
    min-height: 40vh;
  }

  [data-flwr] .teacher-modal_info {
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    padding-top: var(--_spacing---step--5);
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---page-margin);
    padding-left: var(--_spacing---page-margin);
  }

  [data-flwr] .teacher-modal_bio, [data-flwr] .teacher-modal_classes {
    row-gap: var(--_spacing---step--2);
    column-gap: var(--_spacing---step--2);
  }

}

/* ============================================
      5. HERO SECTION RESPONSIVE FIXES
      ============================================ */
@media (max-width: 478px) {
  [data-flwr] .teacher-modal_actions {
    row-gap: var(--_spacing---step--2);
    column-gap: var(--_spacing---step--2);
    margin-top: var(--_spacing---step--3);
  }

}

@media (max-width: 767px) {
  [data-flwr] .hero_wrap {
    min-height: 100svh;
  }

  [data-flwr] .hero-collage_image-wrap {
    min-height: 40vh;
    max-height: 50vh;
  }

  [data-flwr] .hero-collage_image {
    min-height: 40vh;
    max-height: 50vh;
  }

}

/* ============================================
      6. ABOUT SECTION FIXES
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .home-about_hero-image-wrap {
    margin-left: calc(var(--_spacing---page-margin) * -1);
    margin-right: calc(var(--_spacing---page-margin) * -1);
    width: calc(100% + var(--_spacing---page-margin) * 2);
    min-height: 40vh;
    max-height: 50vh;
  }

  [data-flwr] .home-about_hero-image {
    min-height: 40vh;
    max-height: 50vh;
  }

}

/* ============================================
      7. SCHEDULE SECTION MOBILE FIXES
      ============================================ */
@media (max-width: 478px) {
  [data-flwr] .schedule-provisional_day {
    padding-top: var(--_spacing---step--4);
    padding-right: var(--_spacing---step--4);
    padding-bottom: var(--_spacing---step--4);
    padding-left: var(--_spacing---step--4);
    min-height: 140px;
  }

  [data-flwr] .schedule-provisional_day-number {
    font-size: clamp(2.5rem, 12vw, 4rem);
  }

  [data-flwr] .schedule-provisional_day-content h3 {
    font-size: 0.875rem;
  }

  [data-flwr] .schedule-provisional_day-date {
    font-size: 1rem;
  }

  [data-flwr] .schedule-provisional_day-content p:last-child {
    font-size: 0.8rem;
  }

}

/* ============================================
      8. TEACHERS SECTION MOBILE FIXES
      ============================================ */
@media (max-width: 478px) {
  [data-flwr] .schedule-provisional_image-wrap {
    max-height: 40vh;
  }

}

@media (max-width: 767px) {
  [data-flwr] .teachers_wrap {
    padding-top: var(--_spacing---step--8);
    padding-bottom: var(--_spacing---step--8);
  }

  [data-flwr] .teacher_item {
    padding-top: var(--_spacing---step--3);
    padding-bottom: var(--_spacing---step--3);
  }

}

/* ============================================
      9. PRICING/PLAN SECTION FIXES
      ============================================ */
/* Give more space to pricing cards (right column) on desktop */
/* Pricing section logos - prevent distortion */
[data-flwr] .plan_wrap .plan_content {
  grid-template-columns: 1fr 2fr;
}

[data-flwr] .pricing_title-sticky img, [data-flwr] .logo-300hr, [data-flwr] .logo-75hr {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
}

/* Single card layout - centered with equal columns */
[data-flwr] .logo-75hr {
  max-width: 180px;
}

[data-flwr] .plan_content:has(.pricing-cards-grid--single) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: var(--_spacing---step--8);
  column-gap: var(--_spacing---step--8);
  max-width: var(--_layout---max-content);
  margin-left: auto;
  margin-right: auto;
}

[data-flwr] .plan_content:has(.pricing-cards-grid--single) .pricing_title-sticky {
  position: sticky;
  top: 120px;
  align-self: start;
}

[data-flwr] .pricing-cards-grid--single {
  width: 100%;
  display: block;
}

[data-flwr] .pricing-cards-grid--single .card_primary_wrap {
  width: 100%;
  max-width: none;
}

[data-flwr] .image-wrap--landscape {
  aspect-ratio: 5 / 4.5;
}

[data-flwr] .image-wrap--landscape .image-wrap__img {
  object-position: center top;
}

[data-flwr] .image-wrap--landscape + .f-flex {
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---step--4);
}

[data-flwr] .image-wrap--landscape + .f-flex .text-h4 {
  line-height: 1.15;
}

@media (max-width: 991px) {
  [data-flwr] .plan_content {
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
  }

  [data-flwr] .pricing_title-sticky {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  [data-flwr] .pricing_title-sticky h2 {
    font-size: clamp(1.5rem, 6vw, 2.5rem);
  }

  [data-flwr] .pricing_title-sticky > div {
    display: flex;
    justify-content: center;
  }

  [data-flwr] .logo-300hr, [data-flwr] .logo-75hr {
    max-width: 200px;
  }

  [data-flwr] .pricing-cards-grid {
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

  [data-flwr] .pricing-cards-grid--single {
    justify-content: center;
  }

}

@media (max-width: 478px) {
  [data-flwr] .card_primary_element .text-h1 {
    font-size: clamp(2rem, 10vw, 3rem);
  }

}

/* ============================================
      10. FOOTER RESPONSIVE FIXES
      ============================================ */
@media (max-width: 478px) {
  [data-flwr] .limited-tickets-tag {
    font-size: 0.85rem;
    padding-top: 14px;
    padding-right: 10px;
    padding-bottom: 14px;
    padding-left: 10px;
  }

}

@media (max-width: 767px) {
  [data-flwr] .footer_grid {
    text-align: center;
  }

  [data-flwr] .footer_social {
    justify-content: center;
  }

}

/* ============================================
      ARCHIVE PAGE - VIDEO THUMBNAILS
      ============================================ */
/* Change play button to lighter red (accent instead of brand) */
@media (max-width: 767px) {
  [data-flwr] .footer_bottom {
    flex-direction: column;
    row-gap: var(--_spacing---step--2);
    column-gap: var(--_spacing---step--2);
    text-align: center;
  }

}

/* Mobile: Show overlay by default so it's clear they are videos */
@media (max-width: 767px) {
  [data-flwr] .video-item_overlay {
    opacity: 1;
  }

}

/* ============================================
      ABOUT PAGE - QUOTE SECTION (Image Stretch)
      ============================================ */
[data-flwr] .plan_content--stretch-image {
  align-items: stretch;
}

[data-flwr] .plan_content--stretch-image .image-wrap {
  height: 100%;
}

/* ============================================
      11. LOOKBACK SECTION MOBILE
      ============================================ */
[data-flwr] .plan_content--stretch-image .image-wrap .image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ============================================
      12. ROME/VIDEO SECTION MOBILE
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .home-lookback_image-wrap {
    max-width: 100%;
  }

}

@media (max-width: 991px) {
  [data-flwr] .home-lookback-video_content {
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
    min-height: auto;
  }

}

/* ============================================
      13. STICKY SCROLL SECTION MOBILE
      ============================================ */
@media (max-width: 991px) {
  [data-flwr] .home-lookback-video_video-wrap {
    aspect-ratio: 16 / 9;
    max-height: 50vh;
  }

}

@media (max-width: 767px) {
  [data-flwr] .sticky-scroll_image-container {
    min-height: 250px;
    max-height: 400px;
  }

}

/* ============================================
      14. GENERAL SPACING FIXES - MOBILE
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .hero_date {
    text-align: center;
  }

  [data-flwr] h1, [data-flwr] h2, [data-flwr] h3, [data-flwr] h4, [data-flwr] h5, [data-flwr] h6, [data-flwr] p {
    overflow-wrap: break-word;
    word-wrap: break-word;
  }

}

/* ============================================
      15. VERY SMALL SCREENS (< 360px)
      ============================================ */
/* ============================================
      16. TEACHER NAMES - FIT ALL NAMES
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .text-h1 {
    font-size: clamp(1.5rem, 6vw, 2.5rem);
  }

}

[data-flwr] .teacher_info {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
}

[data-flwr] .teacher_info h3 {
  white-space: nowrap;
}

/* ============================================
      17. HERO COLLAGE - TITLE SIZING
      Reduce font size for long titles to prevent 3 lines
      ============================================ */
/* Long titles (3+ words like "ABOUT THE TRIBE") need smaller font to fit in 2 lines */
@media (max-width: 991px) {
  [data-flwr] .hero-collage_title-bottom {
    text-align: center;
  }

}

/* ============================================
      18. HOMEPAGE HERO - New 2-column layout
      ============================================ */
/* Navbar overlays hero on homepage - scrolls with the page */
[data-flwr] .hero-home_wrap {
  min-height: 100vh;
  display: flex;
  align-items: stretch;
  background-color: var(--_palette---neutral--0);
}

/* But when menu is open, navbar becomes fixed so logo is always visible */
body:has(.hero-home_wrap) .nav_wrap {
  position: absolute;
}

/* Right side nav links white on homepage (over image) */
body:has(.hero-home_wrap) .nav_wrap.menu-is-open {
  position: fixed;
}

/* Hamburger back to black when menu is open */
body:has(.hero-home_wrap) .nav_content > .nav_menu:last-child .nav_link, body:has(.hero-home_wrap) .nav_content > .nav_menu:last-child .nav_hamburger {
  color: var(--_palette---neutral--0);
}

/* Fixed hamburger for homepage - hidden by default, shown on scroll */
/* When menu is open, disable mix-blend-mode so X is visible and clickable */
[data-flwr] .nav_hamburger--fixed {
  position: fixed;
  top: var(--_spacing---page-margin);
  right: var(--_spacing---page-margin);
  z-index: 999999;
  color: var(--_palette---neutral--0);
  mix-blend-mode: difference;
  opacity: 0;
  pointer-events: none;
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  transition-delay: 0s;
}

/* Show fixed hamburger when scrolled (class added by JS) */
[data-flwr] .nav_hamburger--fixed.is-active {
  mix-blend-mode: normal;
  color: var(--_palette---neutral--900);
}

/* On mobile, let JS control fixed hamburger visibility via .is-visible class */
/* The fixed hamburger only appears after scrolling past 100px */
/* On mobile, navbar hamburger should be black (not over hero image) */
[data-flwr] .nav_hamburger--fixed.is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* Navbar hamburger visibility controlled by JavaScript */
@media (max-width: 991px) {
  body:has(.hero-home_wrap) .nav_content > .nav_menu:last-child .nav_hamburger {
    color: var(--_palette---neutral--900);
  }

}

body:has(.hero-home_wrap) .nav_content > .nav_menu:last-child .nav_arrow-icon {
  filter: brightness(0) invert(1);
}

[data-flwr] .hero-home_right {
  cursor: none;
}

[data-flwr] .hero-home_right:hover ~ .custom-cursor, [data-flwr] .hero-home_right:hover .custom-cursor, body:has(.hero-home_right:hover) .custom-cursor svg path {
  fill: var(--_palette---neutral--0);
}

[data-flwr] .hero-home_content {
  display: grid;
  grid-template-columns: 55% 45%;
  width: 100%;
  min-height: 100vh;
}

[data-flwr] .hero-home_left {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-top: var(--_spacing---page-margin);
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---page-margin);
  padding-left: var(--_spacing---page-margin);
  position: relative;
}

[data-flwr] .hero-home_logo-wrap {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 500px;
  padding-bottom: unset;
}

[data-flwr] .hero-home_logo {
  width: 100%;
  height: auto;
}

[data-flwr] .hero-home_date {
  position: absolute;
  bottom: var(--_spacing---page-margin);
  left: var(--_spacing---page-margin);
  right: var(--_spacing---page-margin);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

[data-flwr] .hero-home_date-left, [data-flwr] .hero-home_date-right {
  color: var(--_palette---neutral--900);
}

[data-flwr] .hero-home_right {
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .hero-home_image-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

[data-flwr] .hero-home_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

[data-flwr] .hero-home_badge {
  position: absolute;
  bottom: var(--_spacing---page-margin);
  right: var(--_spacing---page-margin);
  width: clamp(180px, 20vw, 280px);
  height: clamp(180px, 20vw, 280px);
  z-index: 10;
}

[data-flwr] .hero-home_badge-img {
  width: 100%;
  height: 100%;
  animation-name: rotateBadge;
  animation-duration: 20s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  filter: brightness(0) invert(1);
}

@keyframes rotateBadge {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 991px) {
  [data-flwr] .hero-home_content {
    grid-template-columns: 50% 50%;
  }

  [data-flwr] .hero-home_logo-wrap {
    max-width: 400px;
  }

  [data-flwr] .hero-home_wrap {
    min-height: auto;
  }

  [data-flwr] .hero-home_content {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  [data-flwr] .hero-home_left {
    min-height: 60vh;
    padding-bottom: unset;
  }

  [data-flwr] .hero-home_logo-wrap {
    max-width: 350px;
    padding-bottom: 0;
  }

  [data-flwr] .hero-home_date {
    bottom: var(--_spacing---step--6);
  }

  [data-flwr] .hero-home_right {
    min-height: 50vh;
  }

  [data-flwr] .hero-home_badge {
    bottom: var(--_spacing---page-margin);
    right: var(--_spacing---page-margin);
    width: clamp(120px, 22vw, 180px);
    height: clamp(120px, 22vw, 180px);
  }

}

@media (max-width: 767px) {
  [data-flwr] .hero-home_left {
    min-height: 50vh;
    padding-top: var(--_spacing---step--6);
    padding-right: var(--_spacing---page-margin);
    padding-bottom: unset;
    padding-left: var(--_spacing---page-margin);
  }

  [data-flwr] .hero-home_logo-wrap {
    max-width: 280px;
  }

  [data-flwr] .hero-home_date {
    bottom: var(--_spacing---step--5);
  }

  [data-flwr] .hero-home_date-left, [data-flwr] .hero-home_date-right {
    font-size: clamp(0.875rem, 3vw, 1.125rem);
  }

  [data-flwr] .hero-home_right {
    min-height: 40vh;
  }

  [data-flwr] .hero-home_badge {
    bottom: var(--_spacing---page-margin);
    right: var(--_spacing---page-margin);
    width: 110px;
    height: 110px;
  }

}

@media (max-width: 478px) {
  [data-flwr] .hero-home_left {
    min-height: 45vh;
  }

  [data-flwr] .hero-home_logo-wrap {
    max-width: 240px;
  }

  [data-flwr] .hero-home_right {
    min-height: 35vh;
  }

}

/* Section spacing after homepage hero - override rome-tribe.css default */
@media (max-width: 478px) {
  [data-flwr] .hero-home_badge {
    width: 100px;
    height: 100px;
  }

}

/* Teacher Modal - inverted close button and hide hamburger */
/* Hide fixed hamburger when teacher modal is open */
[data-flwr] .teacher-modal_close {
  mix-blend-mode: difference;
  color: var(--_palette---neutral--0);
}

/* ============================================
      19. TEACHER GRID - 4 columns with cards
      ============================================ */
[data-flwr] .teacher-grid_wrap {
  background-color: var(--_palette---neutral--0);
  padding-left: var(--_spacing---page-margin);
  padding-right: var(--_spacing---page-margin);
}

[data-flwr] .teacher-grid_content {
  padding-top: unset;
  padding-bottom: unset;
  max-width: unset;
  margin-top: 0;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
}

[data-flwr] .teacher-grid_header {
  text-align: center;
  margin-bottom: unset;
}

[data-flwr] .teacher-grid_title {
  color: var(--_palette---neutral--900);
  margin-bottom: var(--_spacing---step--4);
}

[data-flwr] .teacher-grid_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  row-gap: var(--_spacing---step--6);
  column-gap: var(--_spacing---step--6);
}

[data-flwr] .teacher-card {
  background-color: unset;
  overflow-x: hidden;
  overflow-y: hidden;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: var(--_theme---border--main);
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: var(--_theme---border--main);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_theme---border--main);
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: var(--_theme---border--main);
}

[data-flwr] .teacher-card_image-wrap {
  aspect-ratio: 1 / 1;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .teacher-card_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-flwr] .teacher-card_info {
  padding-top: var(--_spacing---step--4);
  padding-right: var(--_spacing---step--4);
  padding-bottom: var(--_spacing---step--4);
  padding-left: var(--_spacing---step--4);
  text-align: center;
}

[data-flwr] .teacher-card_name {
  color: var(--_palette---neutral--900);
  font-weight: var(--_typography---weight--bold);
  margin-bottom: var(--_spacing---step--1);
  text-transform: uppercase;
  line-height: 1.4;
  text-align: center;
  font-size: clamp(0.65rem, 1.8vw, 1rem);
}

[data-flwr] .teacher-card_location {
  color: unset;
  font-size: var(--_typography---size--small);
}

@media (max-width: 991px) {
  [data-flwr] .teacher-grid_grid {
    grid-template-columns: repeat(3, 1fr);
  }

  [data-flwr] .teacher-card_name {
    font-size: clamp(0.7rem, 2vw, 1rem);
  }

}

@media (max-width: 767px) {
  [data-flwr] .teacher-grid_grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

  [data-flwr] .teacher-grid_content {
    padding-top: var(--_spacing---step--8);
    padding-bottom: var(--_spacing---step--8);
  }

  [data-flwr] .teacher-card_name {
    font-size: clamp(0.75rem, 2.5vw, 1rem);
  }

}

@media (max-width: 478px) {
  [data-flwr] .teacher-grid_grid {
    grid-template-columns: 1fr;
  }

  [data-flwr] .teacher-card_info {
    padding-top: var(--_spacing---step--4);
    padding-right: var(--_spacing---step--4);
    padding-bottom: var(--_spacing---step--4);
    padding-left: var(--_spacing---step--4);
  }

}

/* ============================================
      TERMS PAGE
      ============================================ */
@media (max-width: 478px) {
  [data-flwr] .teacher-card_name {
    font-size: 1rem;
    line-height: 1.3;
  }

}

[data-flwr] .terms-page {
  background-color: var(--_palette---neutral--0);
  padding-top: unset;
  padding-right: unset;
  padding-bottom: unset;
  padding-left: unset;
  min-height: 100vh;
}

[data-flwr] .terms-content {
  max-width: 800px;
  margin-top: 0;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
}

[data-flwr] .terms-content h1 {
  color: var(--_palette---neutral--900);
  margin-bottom: var(--_spacing---step--8);
}

[data-flwr] .terms-section {
  margin-bottom: var(--_spacing---step--8);
}

[data-flwr] .terms-section h2 {
  color: var(--_palette---neutral--900);
  margin-bottom: var(--_spacing---step--4);
}

[data-flwr] .terms-section p {
  color: unset;
  margin-bottom: var(--_spacing---step--3);
  line-height: 1.7;
}

[data-flwr] .terms-section p:last-child {
  margin-bottom: 0;
}

[data-flwr] .terms-section .link {
  color: var(--_palette---accent--500);
  text-decoration-line: underline;
}

[data-flwr] .terms-list {
  list-style-type: none;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

[data-flwr] .terms-list li {
  color: unset;
  margin-bottom: var(--_spacing---step--3);
  padding-left: var(--_spacing---step--4);
  position: relative;
  line-height: 1.7;
}

[data-flwr] .terms-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--_palette---accent--500);
  border-top-left-radius: 50%;
  border-top-right-radius: 50%;
  border-bottom-right-radius: 50%;
  border-bottom-left-radius: 50%;
}

@media (max-width: 767px) {
  [data-flwr] .terms-page {
    padding-top: var(--_spacing---step--8);
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---step--8);
    padding-left: var(--_spacing---page-margin);
  }

}

/* ============================================
      TERMS DISCLAIMER (Register page)
      ============================================ */
@media (max-width: 767px) {
  [data-flwr] .terms-content h1 {
    font-size: clamp(1.5rem, 5vw, 2.5rem);
  }

}

[data-flwr] .terms-disclaimer-section {
  background-color: var(--_palette---neutral--0);
  padding-top: 0;
  padding-right: var(--_spacing---page-margin);
  padding-bottom: var(--_spacing---step--8);
  padding-left: var(--_spacing---page-margin);
}

[data-flwr] .terms-disclaimer {
  background-color: unset;
  padding-top: var(--_spacing---step--6);
  padding-right: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--6);
  padding-left: var(--_spacing---step--6);
  max-width: unset;
  margin-top: 0;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
}

[data-flwr] .terms-disclaimer p {
  color: unset;
  font-size: 0.9rem;
  line-height: 1.6;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

/* ============================================
      SCHEDULE HOVER BADGE - Follows cursor on row hover
      ============================================ */
[data-flwr] .terms-disclaimer .link {
  color: var(--_palette---accent--500);
  font-weight: 600;
}

[data-flwr] .schedule_hover-badge {
  width: 12.5rem;
  height: 12.5rem;
  overflow-x: hidden;
  overflow-y: hidden;
  position: fixed;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.7);
  transition-property: opacity, transform;
  transition-duration: 0.4s, 0.4s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: 0s, 0s;
  will-change: transform, opacity, left, top;
  isolation: isolate;
}

[data-flwr] .schedule_hover-badge.is-visible {
  opacity: 1;
  transform: scale(1);
}

[data-flwr] .schedule_hover-badge-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ============================================
      ROME TIPS HOVER TOOLTIP - Floating preview card
      ============================================ */
/* Force page content below tooltip - remove all stacking contexts */
@media (max-width: 991px) {
  [data-flwr] .schedule_hover-badge {
    display: none;
  }

}

[data-flwr] .hover-tooltip {
  width: 280px;
  background-color: var(--_palette---neutral--0);
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: var(--_palette---neutral--200);
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: var(--_palette---neutral--200);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_palette---neutral--200);
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: var(--_palette---neutral--200);
  overflow-x: hidden;
  overflow-y: hidden;
  pointer-events: none;
  opacity: 0;
  transition-property: opacity;
  transition-duration: 0.25s;
  transition-timing-function: ease;
  transition-delay: 0s;
  box-shadow: 0 20px 40px color-mix(in srgb, var(--_palette---neutral--black) 30%, transparent);
}

[data-flwr] .hover-tooltip.is-visible {
  opacity: 1;
}

[data-flwr] .hover-tooltip__image {
  width: 100%;
  height: 140px;
  overflow-x: hidden;
  overflow-y: hidden;
}

[data-flwr] .hover-tooltip__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-flwr] .hover-tooltip__content {
  padding-top: 1rem;
  padding-right: 1rem;
  padding-bottom: 1rem;
  padding-left: 1rem;
}

[data-flwr] .hover-tooltip__title {
  font-family: unset;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0.5rem;
  margin-left: 0;
  color: unset;
}

[data-flwr] .hover-tooltip__description {
  font-size: 0.85rem;
  line-height: 1.5;
  color: unset;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow-x: hidden;
  overflow-y: hidden;
}

/* ============================================
      IMAGE OBJECT POSITION - Top alignment for portraits
      ============================================ */
@media (max-width: 991px) {
  [data-flwr] .hover-tooltip {
    display: none;
  }

}

/* Schedule hover badge - top alignment variant */
/* ============================================
      ROME TIPS MOBILE THUMBNAIL - Visible on mobile only
      ============================================ */
[data-flwr] .schedule_hover-badge--top .schedule_hover-badge-img {
  object-position: center top;
}

/* Desktop: preserve original 3-column grid inside text wrapper */
[data-flwr] .day_row-thumbnail {
  display: none;
}

[data-flwr] .day_wrap .day_row-text {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  row-gap: var(--_spacing---step--5);
  column-gap: var(--_spacing---step--5);
  align-items: center;
  grid-column-start: 1;
  grid-column-end: -1;
}

@media (max-width: 991px) {
  [data-flwr] .day_row-thumbnail {
    display: block;
    width: 60px;
    height: 60px;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
    overflow-x: hidden;
    overflow-y: hidden;
    flex-shrink: 0;
  }

  [data-flwr] .day_row-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  [data-flwr] .day_wrap .day_row {
    display: flex;
    align-items: center;
    row-gap: 1rem;
    column-gap: 1rem;
  }

  [data-flwr] .day_wrap .day_row-text {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
    min-width: 0;
  }

  [data-flwr] .day_wrap .day_row-text .text-body-lg:first-child {
    font-size: 0.75rem;
    opacity: 0.7;
  }

  [data-flwr] .day_wrap .day_row-text .text-h4 {
    text-align: left;
  }

  [data-flwr] .day_wrap .day_row-text .text-body-lg:last-child {
    font-size: 0.75rem;
    opacity: 0.7;
  }

  [data-flwr] .day_row .venue-name {
    font-size: 1rem;
    line-height: 1.3;
    text-align: center;
  }

  [data-flwr] .day_row > .text-body-lg {
    font-size: 0.75rem;
  }

  [data-flwr] .day_row {
    grid-template-columns: 1fr 2fr 1fr;
    row-gap: 0.5rem;
    column-gap: 0.5rem;
    align-items: center;
  }

  [data-flwr] .day_row > *:first-child {
    text-align: right;
  }

  [data-flwr] .day_row > *:last-child {
    text-align: left;
  }

}

/* ============================================
      SCHEDULE PAGE - DOWNLOAD BUTTONS
      ============================================ */
@media (max-width: 991px) {
  [data-flwr] .day_row-item.is-active .day_row-content {
    max-height: 2000px;
  }

}

[data-flwr] .schedule_downloads {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 1rem;
  column-gap: 1rem;
}

[data-flwr] .schedule_downloads__label {
  margin-top: 0;
  margin-right: 0.5rem;
  margin-bottom: 0;
  margin-left: 0;
}

@media (max-width: 767px) {
  [data-flwr] .schedule_downloads {
    flex-direction: column;
    align-items: stretch;
  }

  [data-flwr] .schedule_downloads .button {
    width: 100%;
    min-width: 0;
    justify-content: center;
  }

}


/* ============================================================================
   HAND-PORTED RULES — appended to project.css by notes/tools/merge-css.py
   Each block names the Rome rule it replaces and why it could not be
   translated mechanically.
   ============================================================================ */

/* ---- Project classes that replaced inline style="" attributes -------------------
   An inline style beat every rule, so these carry (0,3,0) to keep winning against the
   [data-flwr]-bumped margin rules and the framework utilities. */
[data-flwr].site_wrap .plan_content--contained {
  max-width: var(--_layout---max-content);
  margin-left: auto;
  margin-right: auto;
}
[data-flwr].site_wrap .video-item_play-icon {
  width: 48px;
  height: 48px;
}
[data-flwr].site_wrap .app-mockup_wrap {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
[data-flwr].site_wrap .app-mockup_image {
  max-width: 100%;
  height: auto;
}
[data-flwr].site_wrap .text_note {
  font-style: italic;
  color: var(--_palette---neutral--600);   /* review 30 Sep: neutral--500 was 4.12:1 on white; 600 is 6.8:1 */
}
[data-flwr].site_wrap .day_row-content-subtitle {
  margin-bottom: 0.5em;
}
/* Rome: style="height: var(--_spacing---space--12)" with the token undefined → 0 */
[data-flwr].site_wrap .page_spacer {
  height: 0;
}
[data-flwr].site_wrap .terms_top-spacer {
  height: 180px;
}
[data-flwr].site_wrap .flex_fill {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
  min-width: 0;
}
[data-flwr].site_wrap .link_accent-underline {
  color: var(--_palette---accent--500);
  text-decoration-line: underline;
}
[data-flwr].site_wrap .limited-tickets-tag--soldout {
  background-color: var(--_palette---accent-2--500);
  color: var(--_palette---neutral--900);
}
[data-flwr].site_wrap .spacing_mt-4 {
  margin-top: var(--_spacing---step--4);
}
[data-flwr].site_wrap .spacing_mb-2 {
  margin-bottom: var(--_spacing---step--2);
}
[data-flwr].site_wrap .spacing_mb-4 {
  margin-bottom: var(--_spacing---step--4);
}
[data-flwr].site_wrap .spacing_mb-6 {
  margin-bottom: var(--_spacing---step--6);
}

/* ---- Page wrapper ---------------------------------------------------------- */
/* flwr's wrapper baseline sets -webkit-font-smoothing: antialiased; Rome never set it. */
[data-flwr].site_wrap {
  -webkit-font-smoothing: auto;
}

/* ---- Open-menu logo placement on desktop ------------------------------------
   Rome: @media (min-width: 992px) and @media (min-width: 1301px). Desktop-first
   rewrite: the ≥1301 result becomes the base rule, the tablet block restores the
   layout the 991 rules define. Accepted drift: 992–1300px now gets the ≥1301 result. */
[data-flwr] .nav_logo {
  transition-property: opacity;
  transition-duration: 0.25s;
  transition-timing-function: ease;
  transition-delay: 0s;
}
[data-flwr] .nav_wrap.menu-is-open .nav_logo {
  opacity: 1;
  pointer-events: auto;
  position: absolute;
  left: 0;
  top: -0.5rem;
  right: auto;
  bottom: auto;
  transform: none;
  z-index: 100001;
  animation-name: fadeReposition;
  animation-duration: 0.5s;
  animation-timing-function: ease;
  animation-fill-mode: forwards;
}
@media (max-width: 991px) {
  [data-flwr] .nav_logo {
    transition-duration: 0.3s;   /* Rome: .nav_logo, .nav_menu > a { transition: opacity 0.3s ease } */
  }
  [data-flwr] .nav_wrap.menu-is-open .nav_logo {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    animation-name: none;
  }
}

/* ---- Touch devices ------------------------------------------------------------
   Rome: @media (hover: none) and (pointer: coarse). main.js adds .is-touch to the
   page wrapper on touch devices; these rules key off that class instead. */
[data-flwr].is-touch,
[data-flwr].is-touch * {
  cursor: auto;
}
[data-flwr].is-touch .custom-cursor {
  display: none;
}
[data-flwr].is-touch a:hover,
[data-flwr].is-touch button:hover,
[data-flwr].is-touch *:hover {
  transition-property: none;
}
[data-flwr].is-touch .schedule-provisional_day:hover {
  border-top-color: var(--_theme---border--main);
  border-right-color: var(--_theme---border--main);
  border-bottom-color: var(--_theme---border--main);
  border-left-color: var(--_theme---border--main);
  background-color: transparent;
  color: inherit;
}
[data-flwr].is-touch .schedule-provisional_day:hover .schedule-provisional_day-number {
  opacity: 1;
}
[data-flwr].is-touch .schedule-provisional_day:hover .schedule-provisional_day-date {
  color: var(--_palette---accent--500);
}
[data-flwr].is-touch .location_card:hover {
  transform: none;
}
[data-flwr].is-touch .location_card:hover .location_card-image {
  transform: none;
}
[data-flwr].is-touch .location_card:hover .location_card-link {
  color: inherit;
}
[data-flwr].is-touch .location_card:hover .location_card-link svg {
  transform: none;
}
[data-flwr].is-touch .teacher_item:hover {
  background-color: transparent;
}
[data-flwr].is-touch .teacher_item:hover .teacher_info h3 {
  color: inherit;
}
[data-flwr].is-touch .button:hover {
  transform: none;
}
[data-flwr].is-touch .button:active {
  opacity: 0.8;
}
[data-flwr].is-touch .menu-fullscreen_link:hover .menu-fullscreen_arrow-icon {
  transform: none;
}
[data-flwr].is-touch .video-item_overlay {
  opacity: 1;
}
[data-flwr].is-touch .schedule_hover-badge {
  display: none;
}
[data-flwr].is-touch .hover-tooltip {
  display: none;
}

/* ---- Scroll lock (menu open) ----------------------------------------------------
   Rome toggled .u-overflow-hidden on <html> and <body>; flwr utilities only fire inside
   [data-flwr], so the JS now toggles this project class instead. */
.is-scroll-locked {
  overflow-x: hidden;
  overflow-y: hidden;
}

/* ---- Edition layer (Lux Lotus 2027) ------------------------------------------------
   Classes the edition templates need beyond the Rome set. Placeholders and brand-kit
   sizing; nothing here changes the Rome layout. */
/* Vertical logo in the home hero: the Rome logotype was landscape and filled the column.
   The Lux vertical lockup is portrait, so it is capped by height and centred. */
[data-flwr] .hero-home_logo.is-vertical {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 56vh;
  margin-left: auto;
  margin-right: auto;
}
/* One venue until the client confirms the rest: single column, card capped and centred */
[data-flwr] .locations_grid--single {
  grid-template-columns: minmax(0, 1fr);
}
[data-flwr] .location_card--placeholder {
  width: 100%;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
}
/* Footer lockup is portrait too: give it height, let width follow */
[data-flwr] .footer_logo-image.is-vertical {
  width: auto;
  height: 160px;
}
@media (max-width: 767px) {
  [data-flwr] .hero-home_logo.is-vertical {
    max-height: 40vh;
  }
  [data-flwr] .footer_logo-image.is-vertical {
    height: 120px;
  }
}
/* Rome painted its stamp white with a filter (brightness(0) invert(1)); the Lux stamp is a
   multi-colour asset. (0,4,0) so it also beats the priority layer. */
[data-flwr].site_wrap .hero-home_badge-img.is-color {
  filter: none;
}
/* Footer logo: Rome's block logotype was forced white by a filter; the Lux badge keeps its colours. */
[data-flwr].site_wrap .footer_logo-image.is-color {
  filter: none;
}

/* ---- Icons and hover chrome on tokens (edition layer) --------------------------------
   The Rome icons were Figma SVG exports with the Rome colours baked in (wine arrow, pink
   circle, red active arrow). They are inline currentColor SVGs now; colour comes from here. */
[data-flwr] .nav_arrow-icon,
[data-flwr] .menu-fullscreen_arrow-icon {
  color: currentColor;
}
[data-flwr] .nav_link--active .nav_arrow-icon {
  color: var(--_palette---accent--500);
}
[data-flwr] .teacher_arrow-icon {
  color: var(--_palette---core--500);
}
[data-flwr] .teachers_hover-badge {
  background-color: var(--_palette---core--500);
  border-top-left-radius: 50%;
  border-top-right-radius: 50%;
  border-bottom-right-radius: 50%;
  border-bottom-left-radius: 50%;
}
/* Footer: the single lotus mark instead of the badge */
[data-flwr] .footer_logo-image.is-mark {
  width: auto;
  height: 140px;
}
@media (max-width: 767px) {
  [data-flwr] .footer_logo-image.is-mark {
    height: 100px;
  }
}
/* Stamp in the plan sections (replaces Rome's app mockup) */
[data-flwr] .app-mockup_image.is-stamp {
  width: 100%;
  max-width: 22rem;
  height: auto;
}
/* Rome: style="display: block" on the outer .plan_content of the about page (its inner
   .plan_content is the real grid). A flwr utility at (0,2,0) loses to the bumped grid rule. */
[data-flwr].site_wrap .plan_content--block {
  display: block;
}

/* ---- Social pack page (edition layer, review only) ---------------------------------
   /social-pack: one horizontal strip per set, boards as thumbnails linking to the JPEG. */
[data-flwr] .social_wrap {
  padding-top: var(--_spacing---step--7);
  padding-bottom: var(--_spacing---step--8);
}
[data-flwr] .social_content {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--8);
}
[data-flwr] .social_set-head {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  column-gap: var(--_spacing---step--6);
  padding-bottom: var(--_spacing---step--4);
  margin-bottom: var(--_spacing---step--4);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--_palette---neutral--900);
}
[data-flwr] .social_set-titles {
  display: flex;
  flex-direction: column;
  row-gap: var(--_spacing---step--2);
  max-width: 44rem;
}
[data-flwr] .social_eyebrow {
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--_palette---core--500);
}
[data-flwr] .social_set-zip {
  flex-shrink: 0;
}
[data-flwr] .social_strip {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  column-gap: var(--_spacing---step--4);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  padding-bottom: var(--_spacing---step--4);
  scrollbar-width: thin;
}
[data-flwr] .social_board {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 20rem;
  width: 20rem;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  scroll-snap-align: start;
}
[data-flwr] .social_board.is-story {
  flex-basis: 16rem;
  width: 16rem;
}
[data-flwr] .social_board.is-banner {
  flex-basis: 32rem;
  width: 32rem;
}
[data-flwr] .social_board-link {
  display: block;
}
[data-flwr] .social_board-img {
  display: block;
  width: 100%;
  height: auto;
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: var(--_palette---neutral--900);
  border-right-color: var(--_palette---neutral--900);
  border-bottom-color: var(--_palette---neutral--900);
  border-left-color: var(--_palette---neutral--900);
}
[data-flwr] .social_board-meta {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  column-gap: var(--_spacing---step--2);
  padding-top: var(--_spacing---step--2);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
[data-flwr] .social_board-size {
  font-weight: 500;
  opacity: 0.6;
}
[data-flwr] .social_board-download {
  color: var(--_palette---core--500);
  text-decoration-line: underline;
}
[data-flwr] .social_caption {
  padding-top: var(--_spacing---step--2);
  font-size: 0.875rem;
  line-height: 1.5;
}
[data-flwr] .social_caption-summary {
  cursor: pointer;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.75rem;
  opacity: 0.7;
}
[data-flwr] .social_caption-text {
  margin-top: var(--_spacing---step--2);
  margin-bottom: 0;
}
[data-flwr] .social_caption-tags {
  margin-top: var(--_spacing---step--1);
  margin-bottom: 0;
  opacity: 0.6;
}
[data-flwr] .social_tbc {
  display: inline-block;
  padding-top: 0.1em;
  padding-right: 0.5em;
  padding-bottom: 0.1em;
  padding-left: 0.5em;
  border-top-width: 2px;
  border-right-width: 2px;
  border-bottom-width: 2px;
  border-left-width: 2px;
  border-top-style: dashed;
  border-right-style: dashed;
  border-bottom-style: dashed;
  border-left-style: dashed;
  border-top-color: currentColor;
  border-right-color: currentColor;
  border-bottom-color: currentColor;
  border-left-color: currentColor;
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.1em;
  vertical-align: middle;
}
@media (max-width: 767px) {
  [data-flwr] .social_set-head {
    flex-direction: column;
    align-items: flex-start;
    row-gap: var(--_spacing---step--4);
  }
  [data-flwr] .social_board {
    flex-basis: 16rem;
    width: 16rem;
  }
  [data-flwr] .social_board.is-story {
    flex-basis: 13rem;
    width: 13rem;
  }
  [data-flwr] .social_board.is-banner {
    flex-basis: 22rem;
    width: 22rem;
  }
  /* The pill button is nowrap at a fixed height; "DOWNLOAD THE WHOLE PACK (PDF)" is ~405px
     wide, so on phones it widened the intro grid's 1fr column and the whole page scrolled
     sideways (360-430px). Here it wraps inside the column and grows in height instead. */
  [data-flwr].site_wrap .social_pack-download {
    max-width: 100%;
    height: auto;
    min-height: var(--_component---button--height);
    padding-top: var(--_spacing---step--2);
    padding-bottom: var(--_spacing---step--2);
    white-space: normal;
    text-align: center;
    line-height: 1.3;
  }
}

/* ---- Fixed corner stamp (client feedback 28 Sep 2026) ------------------------------
   Bottom-right on every page. The ring layer spins with the hero badge's keyframes; the
   centre layer stays still so the lettering is readable. */
[data-flwr] .site-stamp {
  position: fixed;
  right: var(--_spacing---page-margin);
  bottom: var(--_spacing---page-margin);
  width: clamp(110px, 12vw, 170px);
  height: clamp(110px, 12vw, 170px);
  z-index: 40;
  display: block;
}
[data-flwr] .site-stamp_centre,
[data-flwr] .site-stamp_ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
}
[data-flwr] .site-stamp_ring {
  animation-name: rotateBadge;
  animation-duration: 24s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
[data-flwr] .app-mockup_image.is-badge {
  width: 100%;
  max-width: 18rem;
  height: auto;
}
/* The stacked lockup is landscape: let the column width drive it (the earlier vertical badge
   was capped by height). */
[data-flwr].site_wrap .hero-home_logo.is-vertical {
  width: min(86%, calc((100vh - var(--_component---navbar--height) - var(--_spacing---page-margin) * 3 - 4vh) * 1.3));
  max-width: 86%;
  height: auto;
  max-height: none;
}
/* Home hero: the lockup fills the left column and sits optically centred against the full-height
   image on the right. Geometric centre = 50vh, but the nav bar weighs on the top of the hero and
   the lockup is bottom-heavy (lotus + water), so the centred box is lifted by 2vh: the wrap keeps
   its flex centring and gets 4vh of bottom padding. Rome capped the wrap at 500px for its
   portrait logotype; the landscape lockup needs the whole column. Desktop only: from 991px down
   the hero stacks and the Rome caps come back. */
[data-flwr].site_wrap .hero-home_logo-wrap {
  width: 100%;
  max-width: none;
  padding-bottom: 4vh;
}
@media (max-width: 991px) {
  [data-flwr].site_wrap .hero-home_logo-wrap {
    max-width: 400px;
    padding-bottom: 0;
  }
  [data-flwr].site_wrap .hero-home_logo.is-vertical {
    max-height: 40vh;
  }
}
@media (max-width: 767px) {
  [data-flwr].site_wrap .hero-home_logo-wrap {
    max-width: 350px;
  }
}
@media (max-width: 478px) {
  [data-flwr].site_wrap .hero-home_logo-wrap {
    max-width: 280px;
  }
}
/* Room under the footer links so the fixed stamp never covers them at the end of the page */
[data-flwr].site_wrap .footer_wrap {
  padding-bottom: calc(var(--_spacing---page-margin) + 190px);
}
/* 76px on phones, the same size as the announcement page's .an_stamp (announce.css); the
   inner-page hero reserves exactly this corner (see "Stacked hero" below). */
@media (max-width: 767px) {
  [data-flwr] .site-stamp {
    width: 76px;
    height: 76px;
  }
  [data-flwr].site_wrap .footer_wrap {
    padding-bottom: calc(var(--_spacing---page-margin) + 120px);
  }
}

/* ---- Inner-page heroes (hero-collage): the lockup centred against the photo ----------------
   Rome parked its small logotype in the top half of the text column (grid row = photo height,
   logo-wrap height 50%, title in the bottom 50%). The lockup is the primary logo now: it takes
   the whole row and is centred in the band between the row top and the title's text, which is
   the photo centre lifted by half the title height (a pure photo centre reads low once the big
   title sits under it, and would collide with two-line titles on 16:9 screens). The title height
   comes from js/main.js as --hero-title-h; the clamp is the one-line fallback.
   Sizing uses only the column width and viewport units (no percentage heights, which browsers
   resolve differently inside grid cells and which clipped the wordmark for Juan): the image is
   76% of the column, or narrower when the band above the title is short. 1.3 = the lockup's
   width/height ratio (1.56) with breathing room. */
[data-flwr].site_wrap .hero-collage_logo-wrap {
  height: 100%;
  align-self: stretch;
  padding-bottom: var(--hero-title-h, clamp(2.5rem, 9vw, 11rem));
}
[data-flwr].site_wrap .hero-collage_logo-wrap .image-wrap {
  width: min(76%, calc((100vh - var(--_component---navbar--height) - var(--hero-title-h, clamp(2.5rem, 9vw, 11rem)) - var(--_spacing---page-margin) * 2 - var(--_spacing---step--6)) * 1.3));
  max-width: 76%;
  height: auto;
  overflow-x: visible;
  overflow-y: visible;
}
[data-flwr].site_wrap .hero-collage_logo-wrap .image-wrap__img--contain {
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
}
/* Title vs the fixed .site-stamp (30 Sep 2026). On pages whose text column is the right one,
   the title's right end ran 19-170px under the stamp. The title keeps the stamp's corner free:
   padding-right = the stamp's width (same clamp as .site-stamp) + a gap, so multi-word titles
   wrap before it. A single word longer than what is left cannot wrap: js/main.js then adds
   .is-stamp-fit and hands the size that fits as --hero-title-fit (desktop only). min-width 0
   stops a long word from widening the grid column instead. The title stays at the bottom, so
   the lockup band (and its 76% width) is untouched. Inverted pages (text column on the left)
   never meet the stamp and keep no reserve. */
[data-flwr].site_wrap .hero-collage_content--with-navbar > .hero-collage_title-bottom {
  min-width: 0;
  padding-right: calc(clamp(110px, 12vw, 170px) + var(--_spacing---step--3));
}
[data-flwr].site_wrap .hero-collage_content--inverted > .hero-collage_title-bottom {
  padding-right: 0;
}
[data-flwr].site_wrap .hero-collage_title-bottom.is-stamp-fit {
  font-size: var(--hero-title-fit);
}
/* Stacked hero (991px down): photo, lockup, title in one 100svh screen (30 Sep 2026 fix).
   The Rome base capped the lockup's wrap at max-height 150px while the image inside kept its
   natural 210-270px, so the image spilled out of its grid row and its water sat on the title.
   Now the wrap takes the image's real height, the row gap alone separates lockup and title,
   and the lockup width is whatever fits the budget left on the first screen:
     100svh - navbar (top padding) - bottom padding - 2 row gaps - 30vh photo floor - title height
   times 1.5 (the lockup is 1.56 wide per unit of height, rounded down for air), capped at the
   column width and 420px, floored at 8rem so it never vanishes on a landscape phone.
   Bottom padding also reserves the fixed .site-stamp's corner (its size + a small gap), so the
   title always ends above the stamp: clamp(110px, 12vw, 170px) on tablet, 76px on phones.
   Keep these two numbers in sync with the .site-stamp rules above. */
@media (max-width: 991px) {
  [data-flwr].site_wrap .hero-collage_content--with-navbar {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
    --hero-stack-bottom: calc(var(--_spacing---page-margin) + clamp(110px, 12vw, 170px) + var(--_spacing---step--2));
    padding-bottom: var(--hero-stack-bottom);
  }
  [data-flwr].site_wrap .hero-collage_logo-wrap {
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
  }
  [data-flwr].site_wrap .hero-collage_logo-wrap .image-wrap {
    width: min(100%, 420px, max(8rem, calc((100svh - var(--_component---navbar--height) - var(--hero-stack-bottom) - var(--_spacing---step--4) * 2 - 30vh - var(--hero-title-h, 3rem)) * 1.5)));
    max-width: 420px;
    max-height: none;
  }
  [data-flwr].site_wrap .hero-collage_title-bottom {
    padding-bottom: 0;
  }
  /* Back to the Rome tablet box (centred title, page-margin both sides): the stacked title
     ends above the stamp through --hero-stack-bottom, not a side reserve. */
  [data-flwr].site_wrap .hero-collage_content--with-navbar > .hero-collage_title-bottom,
  [data-flwr].site_wrap .hero-collage_content--inverted > .hero-collage_title-bottom {
    min-width: auto;
    padding-right: var(--_spacing---page-margin);
  }
}
@media (max-width: 767px) {
  [data-flwr].site_wrap .hero-collage_content--with-navbar {
    --hero-stack-bottom: calc(var(--_spacing---page-margin) + 76px + var(--_spacing---step--2));
    padding-bottom: var(--hero-stack-bottom);
  }
  [data-flwr].site_wrap .hero-collage_image-wrap,
  [data-flwr].site_wrap .hero-collage_image {
    min-height: 30vh;
  }
}

/* ---- Booking: pricing cards fit their column from 992 up ---------------------------
   The card grid was repeat(2, 1fr), i.e. minmax(auto, 1fr): each track could not go below
   its card's min-content. Inside each card, .pricing-card_grid (1fr 1fr) put the nowrap
   "Get tickets" button (~155px) in one half, so a card could not shrink below ~320px and the
   pair needed ~718px. Between 992 and ~1150px the 2fr column is narrower than that, the grid
   pushed past the viewport and the right-hand card was clipped by html overflow-x: hidden.
   Fix: minmax(0, 1fr) tracks, and the note + button row becomes a wrapping flex row. While
   both fit side by side it splits 50/50 like 1fr 1fr (1440 unchanged); when they no longer
   fit the button drops under the note instead of overflowing the card.
   At 991 and below the stacked layout keeps its old rules (grid restored below). */
[data-flwr].site_wrap .pricing-cards-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
[data-flwr].site_wrap .card_primary_wrap,
[data-flwr].site_wrap .card_primary_element {
  min-width: 0;
}
[data-flwr].site_wrap .pricing-card_grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}
/* Equal bases + equal grow = the old 50/50 split. The 6.5rem basis (the widest note word,
   "DEADLINE]", is ~103px) makes every card wrap at the same width, so a pair never shows
   one button beside its note and the other below it. */
[data-flwr].site_wrap .pricing-card_info,
[data-flwr].site_wrap .pricing-card_button {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 6.5rem;
}
/* The single concert card sits in a 1fr 1fr row whose width it drives through its
   min-content; it never overflowed, so it keeps the original grid (1440 look unchanged). */
[data-flwr].site_wrap .pricing-cards-grid--single .pricing-card_grid {
  display: grid;
}
/* "75HR/300HR/800HR/Advanced" has no break opportunity and is wider than the class-row
   info column at 992–1110px; let it break instead of running under the button. */
[data-flwr].site_wrap .single-class-row__info .text-body-sm {
  overflow-wrap: break-word;
}
@media (max-width: 991px) {
  [data-flwr].site_wrap .pricing-cards-grid {
    grid-template-columns: 1fr;
  }
  [data-flwr].site_wrap .pricing-card_grid {
    display: grid;
  }
}

/* Terms: long unbroken strings (the hashtag list) must wrap inside the text column, not widen the page on phones. */
[data-flwr].site_wrap .terms-content {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* === Review fixes 30 Sep: behaviour === */
/* Cursor over dark, blue and photo surfaces (js/main.js sets the classes from what is under the
   pointer): yellow on navy, white on the light-blue footer and on photos. */
[data-flwr].site_wrap .custom-cursor.is-on-dark svg path {
  fill: var(--_palette---accent-2--500);
}
[data-flwr].site_wrap .custom-cursor.is-on-blue svg path,
[data-flwr].site_wrap .custom-cursor.is-on-photo svg path {
  fill: var(--_palette---neutral--0);
}
/* prefers-reduced-motion: js/gsap/config.js adds .is-reduced-motion to the wrapper; the ring stays still. */
[data-flwr].is-reduced-motion .site-stamp_ring {
  animation-name: none;
}
/* Home "Tribe gatherings of the past": the subtitle's reveal starts 80px to the right; with its
   nowrap words that widened the whole document on phones (453px at 390) and pushed the fixed
   hamburger and stamp off-screen. The section clips the slide instead (clip, not hidden, so it
   is not a scroll container and nothing else changes). */
[data-flwr].site_wrap .lookback_wrap {
  overflow-x: clip;
}

/* === Review fixes 30 Sep: layout === */
/* 1. Fullscreen menu. The portrait menu photo (2560x3841) sized the grid row from its natural
   height (907px at 1440x900), so the nav was centred in a row taller than the screen and the
   lower links ran under the footer row and off the bottom. The photo is now absolutely placed
   in its box (it no longer sizes the row), the link type is sized from the viewport height so
   all seven links fit between the navbar and the footer row, and when even the floor size does
   not fit (short windows) the menu content scrolls. The scroll box starts below the navbar, so
   scrolled links are clipped there instead of passing under the logo. At rest nothing moves:
   margin-top + padding-top = the old padding-top (navbar height + page margin). */
[data-flwr].site_wrap .menu-fullscreen_content {
  margin-top: var(--_component---navbar--height);
  height: calc(100% - var(--_component---navbar--height));
  padding-top: var(--_spacing---page-margin);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
[data-flwr].site_wrap .menu-fullscreen_grid {
  min-height: auto;
}
/* The navbar's own links stayed visible over the open menu (About sat on the logo at 48,32):
   the entrance animation leaves an inline opacity: 1 on them, which beats the opacity: 0 rule.
   visibility is not set inline, so it hides them. */
[data-flwr].site_wrap .nav_wrap.menu-is-open .nav_link,
[data-flwr].site_wrap .nav_wrap.menu-is-open .nav_menu > a:not(.nav_hamburger) {
  visibility: hidden;
}
[data-flwr].site_wrap .menu-fullscreen_hero-image {
  position: absolute;
  top: 0;
  left: 0;
}
/* 6 links (About left the menu on 30 Sep), each ~0.93em tall, 5 row gaps; 7.5rem = the footer
   row (step--5 padding + logo/copyright). If the link count changes, change 5.6 and the gap count. */
[data-flwr].site_wrap .menu-fullscreen_link {
  font-size: clamp(2rem, calc((100vh - var(--_component---navbar--height) - var(--_spacing---page-margin) * 2 - 7.5rem - var(--_spacing---step--3) * 5) / 5.6), var(--_typography---size--menu));
}
/* The menu's height follows the visible viewport: 100vh on iOS Safari is the height with the
   toolbars hidden, so the menu's bottom row sat under the browser bar. dvh where supported. */
[data-flwr].site_wrap .fullscreen-menu {
  height: 100vh;
  height: 100dvh;
}
/* The hover arrow (hidden until hover, but inline) was a fixed 55px and set each link's height
   whatever the type size; it now follows the type, capped at its old 55px. (0,2,0) on purpose:
   the tablet and phone arrow sizes (0,3,0, from 991 down) still win. */
[data-flwr] .menu-fullscreen_arrow-icon {
  width: min(55px, 0.92em);
  height: min(55px, 0.92em);
}
/* 2b. The menu badge is the site stamp's two layers (js-free): the ring spins with the site
   stamp's rotateBadge keyframes (.site-stamp_ring), the centre stays still. The wrapper keeps
   the old corner placement as a static transform. */
[data-flwr].site_wrap .menu-fullscreen_badge {
  animation-name: none;
  transform: translate(-50%, 50%);
}
/* 2a. No tilt: Rome's 0.354deg rotation on the home look-back photo. */
[data-flwr].site_wrap .home-lookback_image-wrap {
  transform: none;
}
/* 3. Footer links: .link:hover turned them core--500, the footer's own blue (1.00:1). White
   stays white and the hover is an underline. .link--light is only used in the footer. */
[data-flwr].site_wrap .link--light:hover {
  color: var(--_palette---neutral--0);
  opacity: 1;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
/* Same check in the menu footer: Terms/Privacy went core--500 at the text-legal 0.8 opacity
   (3.36:1 on white). They keep their navy and underline instead. */
[data-flwr].site_wrap .menu-fullscreen_footer-link:hover {
  color: var(--_palette---neutral--900);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
/* 8. Phone tap targets: a transparent ::before widens the hit area to ~40px without moving
   anything (the hamburger and the teacher arrow are 24px, the legal links 21px tall). */
[data-flwr].site_wrap .nav_hamburger::before {
  content: "";
  position: absolute;
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -8px;
}
@media (max-width: 991px) {
  /* The teacher arrow is absolutely placed from 991 down (and 56px, so fine, above it). */
  [data-flwr].site_wrap .teacher_arrow::before {
    content: "";
    position: absolute;
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px;
  }
  /* Stacked menu rhythm (owner, 30 Sep: the wordmark sat hard on the bottom row / browser bar).
     One step between the blocks: links | photo | wordmark + copyright | social + legal row, and
     the same step under the last row, plus the home-indicator inset where the browser reports one. */
  [data-flwr].site_wrap .menu-fullscreen_content {
    padding-top: var(--_spacing---step--4);
    padding-bottom: calc(var(--_spacing---step--5) + env(safe-area-inset-bottom, 0px));
  }
  [data-flwr].site_wrap .menu-fullscreen_grid {
    row-gap: var(--_spacing---step--5);
  }
  [data-flwr].site_wrap .menu-fullscreen_footer {
    padding-top: var(--_spacing---step--5);
    row-gap: var(--_spacing---step--5);
  }
  [data-flwr].site_wrap .menu-fullscreen_footer-left {
    row-gap: var(--_spacing---step--2);
  }
  [data-flwr].site_wrap .menu-fullscreen_footer-logo {
    margin-bottom: 0;
  }
  /* Stacked menu: 6 links, then the photo, then a column footer (~10rem). 6rem keeps a strip of photo. */
  [data-flwr].site_wrap .menu-fullscreen_link {
    font-size: clamp(1.75rem, calc((100vh - var(--_component---navbar--height) - var(--_spacing---step--4) * 2 - var(--_spacing---page-margin) - 10rem - 6rem - var(--_spacing---step--2) * 5) / 5.6), var(--_typography---size--menu));
  }
}
@media (max-width: 767px) {
  /* Phones keep their earlier sizes (the viewport-height formula above is for 768 and up). */
  [data-flwr].site_wrap .menu-fullscreen_link {
    font-size: clamp(1.5rem, 8vw, 2.5rem);
  }
  [data-flwr].site_wrap .footer_legal a {
    position: relative;
  }
  [data-flwr].site_wrap .footer_legal a::before {
    content: "";
    position: absolute;
    top: -10px;
    right: 0;
    bottom: -10px;
    left: 0;
  }
}
@media (max-width: 478px) {
  [data-flwr].site_wrap .menu-fullscreen_link {
    font-size: clamp(1.25rem, 7vw, 2rem);
  }
}
/* Archive filter detail view (owner, 30 Sep: "video sections look weird on mobile"). Rome had no
   responsive rule for .video-detail_layout, so its 1fr 1fr grid held down to phones and the
   16:9 video shrank to a 106x60 thumbnail beside a narrow text column. From 991 down it stacks
   like the archive hero above it (.video-hero_content goes to one column at 991): video full
   width at 16:9, then heading, text and button, one step apart as inside .video-detail_info. */
@media (max-width: 991px) {
  [data-flwr].site_wrap .video-detail_layout {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--_spacing---step--5);
    align-items: start;
  }
}

/* === Archive: self-hosted video (Rome 2026) === */
/* The hero, the filter detail view and the modal size their iframes by absolute fill; the
   self-hosted <video> takes the same box so nothing moves when the Rome film replaces the
   YouTube embed. The film is 16:9 like the box; contain keeps it whole if a box ever differs. */
[data-flwr].site_wrap .video-hero_video-wrap video,
[data-flwr].site_wrap .video-detail_video video,
[data-flwr].site_wrap .video-modal_container video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background-color: var(--_palette---neutral--black);
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

/* ---- Priority layer: declarations Rome marked !important. Emitted last in this
   bucket under a (0,3,0) wrapper prefix so they keep winning without the flag. ---- */
html::-webkit-scrollbar-track {
  background-color: transparent;
}

body, body * {
  cursor: none;
}

[data-flwr].site_wrap .is-hidden {
  display: none;
}

[data-flwr].site_wrap .nav_link--active {
  color: var(--_palette---accent--500);
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .nav_logo {
    position: static;
    transform: none;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    left: auto;
    top: auto;
  }

  [data-flwr].site_wrap .nav_content {
    display: grid;
    grid-template-columns: auto 1fr auto;
    justify-content: start;
    align-items: center;
  }

  [data-flwr].site_wrap .nav_content > .nav_menu:first-of-type {
    display: none;
  }

  [data-flwr].site_wrap .nav_logo {
    position: static;
  }

  [data-flwr].site_wrap .nav_wrap .nav_background, [data-flwr].site_wrap .nav_background {
    background-color: transparent;
    opacity: 0;
  }

  [data-flwr].site_wrap .nav_wrap {
    background-color: transparent;
  }

  [data-flwr].site_wrap .hero_content {
    height: auto;
    min-height: 100vh;
  }

  [data-flwr].site_wrap .hero_logo_wrap {
    width: min(60%, 45vh);
    max-width: 30rem;
    height: auto;
    aspect-ratio: 743 / 583;
  }

  [data-flwr].site_wrap .hero_floating_image-topleft, [data-flwr].site_wrap .hero_floating_image-bottomright {
    width: 35%;
    max-width: 18rem;
    height: auto;
  }

  [data-flwr].site_wrap .hero_floating_image-topleft {
    left: 0;
    top: 20%;
  }

  [data-flwr].site_wrap .hero_floating_image-bottomright {
    right: 0;
    bottom: 15%;
  }

}

@media (max-width: 478px) {
  [data-flwr].site_wrap .hero_logo_wrap {
    width: min(70%, 40vh);
    max-width: 20rem;
  }

  [data-flwr].site_wrap .hero_floating_image-topleft, [data-flwr].site_wrap .hero_floating_image-bottomright {
    width: 45%;
    max-width: 18rem;
  }

  [data-flwr].site_wrap .hero_floating_image-topleft {
    top: 15%;
  }

  [data-flwr].site_wrap .hero_floating_image-bottomright {
    bottom: 10%;
  }

}

[data-flwr].site_wrap .filter_tab {
  border-top-width: 2px;
  border-top-style: solid;
  border-top-color: var(--_palette---neutral--900);
  border-right-width: 2px;
  border-right-style: solid;
  border-right-color: var(--_palette---neutral--900);
  border-bottom-width: 2px;
  border-bottom-style: solid;
  border-bottom-color: var(--_palette---neutral--900);
  border-left-width: 2px;
  border-left-style: solid;
  border-left-color: var(--_palette---neutral--900);
  color: var(--_palette---neutral--900);
  opacity: 1;
}

[data-flwr].site_wrap .filter_tab:hover {
  background-color: var(--_palette---core--500);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
}

[data-flwr].site_wrap .filter_tab--active {
  background-color: var(--_palette---core--500);
  border-top-color: var(--_palette---core--500);
  border-right-color: var(--_palette---core--500);
  border-bottom-color: var(--_palette---core--500);
  border-left-color: var(--_palette---core--500);
  color: var(--_palette---neutral--0);
}

[data-flwr].site_wrap .filter_tab--small {
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .hero-collage_content--with-navbar {
    grid-template-columns: 1fr;
  }

  [data-flwr].site_wrap .hero-collage_content--with-navbar > .hero-collage_logo-wrap, [data-flwr].site_wrap .hero-collage_content--with-navbar > .hero-collage_title-bottom {
    grid-column-start: 1;
    grid-column-end: auto;
  }

  [data-flwr].site_wrap .hero-collage_image-wrap {
    grid-column-start: 1;
    grid-column-end: auto;
    grid-row-start: 1;
    grid-row-end: auto;
  }

  [data-flwr].site_wrap .hero-collage_logo-wrap {
    grid-row-start: 2;
    grid-row-end: auto;
    height: auto;
    align-self: center;
  }

  [data-flwr].site_wrap .hero-collage_title-bottom {
    grid-row-start: 3;
    grid-row-end: auto;
    height: auto;
    align-self: start;
  }

  [data-flwr].site_wrap .hero-collage_content--inverted .hero-collage_image-wrap {
    grid-column-start: 1;
    grid-column-end: auto;
  }

  [data-flwr].site_wrap .hero-collage_content--inverted > .hero-collage_logo-wrap, [data-flwr].site_wrap .hero-collage_content--inverted > .hero-collage_title-bottom {
    grid-column-start: 1;
    grid-column-end: auto;
  }

}

[data-flwr].site_wrap .filter_wrap.schedule_wrap {
  min-height: auto;
}

[data-flwr].site_wrap .filter_wrap + .schedule_wrap {
  justify-content: flex-start;
  min-height: auto;
}

[data-flwr].site_wrap .hero_wrap + .schedule_wrap {
  justify-content: flex-start;
  min-height: auto;
}

[data-flwr].site_wrap .about_wrap {
  margin-top: unset;
  margin-bottom: unset;
  padding-top: unset;
}

[data-flwr].site_wrap .nav_background {
  background-color: transparent;
}

[data-flwr].site_wrap .day_row-item--monolink:hover {
  background-color: transparent;
}

[data-flwr].site_wrap .day_row-item--monolink.is-hovered {
  background-color: transparent;
}

[data-flwr].site_wrap .plan_wrap--compact {
  min-height: 0;
}

[data-flwr].site_wrap .plan_wrap--compact + .plan_wrap--compact {
  padding-top: 0;
}

[data-flwr].site_wrap .nav_wrap.menu-is-open .nav_link, [data-flwr].site_wrap .nav_wrap.menu-is-open .nav_menu > a:not(.nav_hamburger) {
  opacity: 0;
  pointer-events: none;
}

[data-flwr].site_wrap .nav_wrap.menu-is-open .nav_hamburger {
  opacity: 1;
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .nav_wrap.menu-is-open {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
  }

  [data-flwr].site_wrap .nav_wrap.menu-is-open .nav_logo {
    position: static;
    transform: none;
  }

  [data-flwr].site_wrap .nav_wrap.menu-is-open .nav_hamburger {
    position: relative;
  }

  [data-flwr].site_wrap .nav_logo {
    position: static;
    left: auto;
    transform: none;
  }

}

[data-flwr].site_wrap .menu-fullscreen_footer {
  padding-top: var(--_spacing---step--5);
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .menu-fullscreen_arrow-icon {
    width: 20px;
    height: 20px;
  }

}

@media (max-width: 767px) {
  [data-flwr].site_wrap .menu-fullscreen_arrow-icon {
    width: 16px;
    height: 16px;
  }

  [data-flwr].site_wrap .menu-fullscreen_link {
    font-size: clamp(1.5rem, 8vw, 2.5rem);
  }

}

@media (max-width: 478px) {
  [data-flwr].site_wrap .menu-fullscreen_arrow-icon {
    width: 14px;
    height: 14px;
  }

  [data-flwr].site_wrap .menu-fullscreen_link {
    font-size: clamp(1.25rem, 7vw, 2rem);
  }

}

[data-flwr].site_wrap .teacher-modal_name {
  font-size: clamp(1.5rem, 3vw + 1rem, 4rem);
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .teacher-modal_content {
    display: flex;
    flex-direction: column;
  }

  [data-flwr].site_wrap .teacher-modal_grid {
    display: flex;
    flex-direction: column;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
  }

  [data-flwr].site_wrap .teacher-modal_image-wrap {
    height: auto;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    position: relative;
    width: 100%;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
  }

  [data-flwr].site_wrap .teacher-modal_name {
    font-size: clamp(1.25rem, 5vw + 0.5rem, 2.5rem);
  }

  [data-flwr].site_wrap .teacher-modal_close {
    position: fixed;
    mix-blend-mode: difference;
    color: var(--_palette---neutral--0);
  }

}

@media (max-width: 767px) {
  [data-flwr].site_wrap .hero_logo_wrap {
    width: min(80%, 280px);
  }

  [data-flwr].site_wrap .hero_date .text-h1 {
    font-size: clamp(1.25rem, 5vw, 1.75rem);
  }

  [data-flwr].site_wrap .hero-collage_title {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  [data-flwr].site_wrap .about_content {
    padding-left: var(--_spacing---page-margin);
    padding-right: var(--_spacing---page-margin);
  }

  [data-flwr].site_wrap .home-about_main-title {
    font-size: clamp(2.5rem, 12vw, 4rem);
  }

  [data-flwr].site_wrap .home-about_date {
    font-size: clamp(1rem, 4vw, 1.5rem);
  }

  [data-flwr].site_wrap .home-about_subtitle {
    font-size: clamp(1.25rem, 5vw, 2rem);
  }

  [data-flwr].site_wrap .teacher_item-thumbnail-wrap {
    width: 60px;
    height: 60px;
  }

  [data-flwr].site_wrap .teacher_info h3 {
    font-size: clamp(1rem, 4vw, 1.25rem);
  }

  [data-flwr].site_wrap .teacher_arrow-icon {
    width: 24px;
    height: 24px;
  }

}

@media (max-width: 478px) {
  [data-flwr].site_wrap .teacher_item {
    grid-template-columns: 50px 1fr;
    row-gap: var(--_spacing---step--2);
    column-gap: var(--_spacing---step--2);
    padding-right: 40px;
  }

  [data-flwr].site_wrap .teacher_item-thumbnail-wrap {
    width: 50px;
    height: 50px;
  }

  [data-flwr].site_wrap .teacher_info h3 {
    font-size: 0.9rem;
  }

  [data-flwr].site_wrap .teacher_eyebrow {
    font-size: 0.65rem;
  }

  [data-flwr].site_wrap .teacher_arrow-icon {
    width: 20px;
    height: 20px;
  }

}

@media (max-width: 991px) {
  [data-flwr].site_wrap .plan_content {
    grid-template-columns: 1fr;
  }

  [data-flwr].site_wrap .pricing_title-sticky {
    position: static;
  }

  [data-flwr].site_wrap .pricing-cards-grid {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 478px) {
  [data-flwr].site_wrap .card_primary_element {
    padding-top: var(--_spacing---step--4);
    padding-right: var(--_spacing---step--4);
    padding-bottom: var(--_spacing---step--4);
    padding-left: var(--_spacing---step--4);
  }

}

@media (max-width: 767px) {
  [data-flwr].site_wrap .footer_content {
    padding-top: var(--_spacing---step--6);
    padding-right: var(--_spacing---page-margin);
    padding-bottom: var(--_spacing---step--6);
    padding-left: var(--_spacing---page-margin);
    row-gap: var(--_spacing---step--6);
    column-gap: var(--_spacing---step--6);
  }

  [data-flwr].site_wrap .footer_grid {
    grid-template-columns: 1fr;
    row-gap: var(--_spacing---step--4);
    column-gap: var(--_spacing---step--4);
  }

}

[data-flwr].site_wrap .video-item_play-button {
  color: var(--_palette---accent--500);
}

[data-flwr].site_wrap .video-item_play-button::before {
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: var(--_palette---accent--500);
}

[data-flwr].site_wrap .video-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: color-mix(in srgb, var(--_palette---neutral--black) 90%, transparent);
}

[data-flwr].site_wrap .video-modal_backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
}

[data-flwr].site_wrap .video-modal_content {
  position: relative;
  width: 90vw;
  height: 80vh;
  max-width: none;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

[data-flwr].site_wrap .video-modal_container {
  width: 100%;
  height: 100%;
  aspect-ratio: unset;
}

[data-flwr].site_wrap .video-modal_container iframe {
  width: 100%;
  height: 100%;
}

[data-flwr].site_wrap .video-modal_close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 1000000;
}

@media (max-width: 767px) {
  [data-flwr].site_wrap .home-lookback_title, [data-flwr].site_wrap .home-lookback_subtitle {
    font-size: clamp(2rem, 10vw, 3.5rem);
    text-align: center;
    align-self: center;
  }

}

@media (max-width: 991px) {
  [data-flwr].site_wrap .home-lookback-video_content {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 767px) {
  [data-flwr].site_wrap .sticky-scroll_image-container {
    height: 50vh;
  }

  [data-flwr].site_wrap .sticky-scroll_text-block {
    padding-top: var(--_spacing---step--6);
    padding-right: var(--_spacing---step--4);
    padding-bottom: var(--_spacing---step--6);
    padding-left: var(--_spacing---step--4);
  }

  [data-flwr].site_wrap .sticky-scroll_text-block h2 {
    font-size: clamp(1.5rem, 6vw, 2rem);
  }

  [data-flwr].site_wrap .hero_date {
    top: calc(50% + min(70%, 280px) * 0.5 + var(--_spacing---step--4));
    bottom: auto;
    left: 50%;
    transform: translateX(-50%);
  }

  [data-flwr].site_wrap .text-display-LG {
    font-size: clamp(2rem, 10vw, 4rem);
  }

}

[data-flwr].site_wrap .teacher_info--offset, [data-flwr].site_wrap .teacher_info--offset-large, [data-flwr].site_wrap .teacher_info--offset-medium {
  margin-right: 0;
}

[data-flwr].site_wrap .teacher_item {
  justify-content: space-between;
  row-gap: 0.5rem;
  column-gap: 0.5rem;
}

[data-flwr].site_wrap .teacher_arrow-icon {
  width: 32px;
  height: 32px;
}

[data-flwr].site_wrap .teacher_info h3 {
  font-size: clamp(1.1rem, 2.2vw, 1.8rem);
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .teacher_info h3 {
    font-size: clamp(1rem, 3vw, 1.4rem);
  }

}

@media (max-width: 767px) {
  [data-flwr].site_wrap .teacher_info h3 {
    font-size: clamp(0.9rem, 4vw, 1.2rem);
  }

  [data-flwr].site_wrap .teacher_arrow-icon {
    width: 24px;
    height: 24px;
  }

}

[data-flwr].site_wrap .hero-collage_title-bottom--long {
  font-size: clamp(2rem, 6vw, 7rem);
}

@media (max-width: 991px) {
  [data-flwr].site_wrap .hero-collage_title-bottom--long {
    font-size: clamp(1.8rem, 5.5vw, 5rem);
  }

  [data-flwr].site_wrap .hero-collage_title-bottom--long {
    font-size: clamp(1.5rem, 8vw, 3.5rem);
  }

}

body:has(.hero-home_wrap) .nav_wrap.menu-is-open .nav_hamburger, body:has(.hero-home_wrap) .nav_wrap.menu-is-open .nav_content > .nav_menu:last-child .nav_hamburger {
  color: var(--_palette---neutral--900);
}

[data-flwr].site_wrap section.hero-home_wrap + section.about_wrap {
  margin-top: 8rem;
  padding-top: 0;
}

@media (max-width: 767px) {
  [data-flwr].site_wrap section.hero-home_wrap + section.about_wrap {
    margin-top: 5rem;
  }

}

body:has(.teacher-modal.is-visible) .nav_hamburger--fixed {
  opacity: 0;
  pointer-events: none;
}

[data-flwr].site_wrap .schedule_hover-badge {
  z-index: 2147483647;
}

[data-flwr].site_wrap .day_wrap, [data-flwr].site_wrap .day_row-item, [data-flwr].site_wrap .day_row, [data-flwr].site_wrap .day_row-text, [data-flwr].site_wrap .day_header, [data-flwr].site_wrap .text-h1, [data-flwr].site_wrap .text-h4, [data-flwr].site_wrap .text-body-lg, [data-flwr].site_wrap .day_wrap *, [data-flwr].site_wrap .schedule_wrap *, [data-flwr].site_wrap .schedule_content, [data-flwr].site_wrap .schedule_content *, [data-flwr].site_wrap .filter_wrap + .schedule_wrap, [data-flwr].site_wrap .filter_wrap + .schedule_wrap *, [data-flwr].site_wrap section.schedule_wrap, [data-flwr].site_wrap section.page_section {
  transform: none;
  will-change: auto;
  z-index: auto;
  isolation: auto;
}

[data-flwr].site_wrap .hover-tooltip {
  position: fixed;
  z-index: 2147483647;
}

[data-flwr].site_wrap .image-wrap__img--top {
  object-position: center top;
}
