:root {
  --ub-black: #171717;
  --ub-white: #fff;
  --ub-off: #f7f5f0;
  --ub-gold: #c5a15a;
  --ub-border: rgba(23, 23, 23, 0.18);
  --ub-pad: clamp(1.25rem, 4vw, 4.5rem);
}
/* Elementor 4-safe section widgets */
.elementor-widget[class*="elementor-widget-umbrella-"] {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
}
.elementor-widget[class*="elementor-widget-umbrella-"]
  > .elementor-widget-container {
  width: 100%;
}
.elementor-widget[class*="elementor-widget-umbrella-"] figure {
  margin: 0;
}
.elementor-widget[class*="elementor-widget-umbrella-"] a {
  text-decoration: none;
}
.elementor-widget[class*="elementor-widget-umbrella-"] h1,
.elementor-widget[class*="elementor-widget-umbrella-"] h2,
.elementor-widget[class*="elementor-widget-umbrella-"] h3,
.elementor-widget[class*="elementor-widget-umbrella-"] p {
  margin-top: 0;
}
.elementor-widget-umbrella-header {
  position: sticky !important;
  top: 0;
  z-index: 99;
}
.ub-header .ub-nav {
  display: flex;
  justify-content: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
}
.ub-header > .ub-button,
.ub-hero .ub-button,
.ub-events .ub-button {
  display: inline-block;
  border: 1px solid var(--ub-black);
  background: var(--ub-black);
  color: var(--ub-white);
  padding: 1rem 1.25rem;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}
.ub-hero .ub-button,
.ub-events .ub-button {
  margin-top: 1.4rem;
}
.ub-hero-copy {
  display: flex;
  flex-direction: column;
}
.ub-hero-title {
  font-size: clamp(5.2rem, 10vw, 10rem);
  line-height: 0.82;
  margin-bottom: 0;
}
.ub-display {
  font-size: clamp(2.8rem, 5vw, 5.4rem);
  line-height: 0.86;
  text-transform: uppercase;
}
.ub-section-title {
  font-size: clamp(4rem, 8vw, 9rem);
  font-weight: 400;
  line-height: 0.84;
  letter-spacing: -0.045em;
  text-transform: uppercase;
}
.ub-number {
  font-size: clamp(4rem, 7vw, 8rem);
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.13);
}
.ub-ribbon-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(3rem, 5vw, 5.25rem);
}
.ub-food-ribbon {
  display: grid;
}
.ub-ribbon-image img,
.ub-events-image img,
.ub-about-image img,
.ub-hero-main img,
.ub-hero-inset img {
  display: block;
  width: 100%;
}
.ub-about-intro {
  font-size: clamp(1.5rem, 2.2vw, 2.25rem);
  line-height: 1.3;
  margin-bottom: 2rem;
}
.ub-footer-title {
  font-size: clamp(5rem, 13vw, 14rem);
  font-weight: 400;
  line-height: 0.82;
  letter-spacing: -0.045em;
  text-transform: uppercase;
}
.ub-footer-links {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  margin: 4rem 0 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #444;
}
.ub-footer-links a,
.ub-footer-bottom a {
  color: var(--ub-white);
}
html {
  scroll-behavior: smooth;
}
.elementor-page {
  color: var(--ub-black);
}
.elementor-page h1,
.elementor-page h2,
.elementor-page h3 {
  font-weight: 400;
  letter-spacing: -0.045em;
  text-transform: uppercase;
}
.ub-header {
  position: sticky !important;
  top: 0;
  z-index: 99;
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: 2rem !important;
  min-height: 90px;
  padding: 0 var(--ub-pad) !important;
  background: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid var(--ub-border);
  backdrop-filter: blur(12px);
}
.ub-header .ub-brand .elementor-widget-container {
  display: flex;
  align-items: center;
}
.ub-brand-mark {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--ub-black);
  font-size: 1.45rem;
  font-weight: 500;
  line-height: 0.8;
}
.ub-brand-mark svg {
  width: 2.2rem;
  height: 2.2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
}
.ub-brand-mark small {
  display: block;
  margin-top: 0.35rem;
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1;
}
.ub-nav .elementor-widget-container {
  display: flex;
  justify-content: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
}
.ub-nav a {
  font-size: 0.82rem;
  color: var(--ub-black);
}
.ub-hero {
  display: grid !important;
  grid-template-columns: 1.05fr 0.95fr !important;
  gap: clamp(2rem, 5vw, 6rem) !important;
  min-height: calc(100vh - 90px);
  padding: clamp(2rem, 5vw, 6rem) var(--ub-pad) !important;
  overflow: hidden;
}
.ub-hero-copy {
  justify-content: space-between !important;
}
.ub-eyebrow {
  font-size: 0.73rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.ub-hero-title .elementor-heading-title {
  font-size: clamp(5.2rem, 10vw, 10rem);
  line-height: 0.82;
}
.ub-hero-title em {
  font-style: normal;
}
.ub-hero-bottom {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 2rem !important;
  align-items: end !important;
  margin-top: 4rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--ub-border);
}
.ub-display .elementor-heading-title {
  font-size: clamp(2.8rem, 5vw, 5.4rem);
  line-height: 0.86;
}
.ub-manifesto {
  padding-left: 1.5rem;
  border-left: 1px solid var(--ub-gold);
}
.ub-manifesto p {
  font-size: clamp(1.1rem, 1.7vw, 1.55rem);
  line-height: 1.28;
}
.ub-hero-collage {
  position: relative !important;
  min-height: 650px;
}
.ub-hero-main {
  position: absolute !important;
  top: 0;
  right: 0;
  width: 82% !important;
  height: 82%;
}
.ub-hero-main img,
.ub-hero-inset img {
  height: 100% !important;
  object-fit: cover;
}
.ub-hero-inset {
  position: absolute !important;
  left: 0;
  bottom: 0;
  width: 46% !important;
  height: 45%;
  border: 10px solid var(--ub-white);
}
.ub-roundel {
  position: absolute !important;
  right: -1rem;
  bottom: 4rem;
  width: 8.2rem !important;
  height: 8.2rem;
  display: grid !important;
  place-items: center;
  border-radius: 50%;
  background: var(--ub-black);
  color: var(--ub-white);
  border: 1px solid var(--ub-gold);
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  transform: rotate(10deg);
}
.ub-dark {
  background: var(--ub-black);
  color: var(--ub-white);
}
.ub-join {
  display: grid !important;
  grid-template-columns: 0.3fr 1fr 1fr !important;
  gap: clamp(2rem, 6vw, 7rem) !important;
  padding: clamp(5rem, 9vw, 10rem) var(--ub-pad) !important;
}
.ub-section-title em {
  font-style: normal;
}
.ub-form-shortcode {
  align-self: end;
}
.ub-form-shortcode .wpcf7-form-control-wrap {
  display: block;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  margin-bottom: 1.8rem;
}
.ub-form-shortcode label {
  display: block;
  color: #aaa;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.ub-form-shortcode input,
.ub-form-shortcode textarea {
  width: 100%;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  padding: 0.85rem 0 !important;
  box-shadow: none !important;
}
.ub-form-shortcode input[type="submit"] {
  background: var(--ub-white) !important;
  color: var(--ub-black) !important;
  border: 1px solid var(--ub-white) !important;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  cursor: pointer;
}
.ub-form-shortcode .wpcf7-list-item {
  margin: 0 0.65rem 0.65rem 0;
}
.ub-form-shortcode .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid currentColor;
  padding: 0.6rem 0.8rem;
}
.ub-contact .ub-form-shortcode .wpcf7-form-control-wrap {
  border-color: var(--ub-border);
}
.ub-contact .ub-form-shortcode label {
  color: #666;
}
.ub-contact .ub-form-shortcode input,
.ub-contact .ub-form-shortcode textarea {
  color: var(--ub-black) !important;
}
.ub-contact .ub-form-shortcode input[type="submit"] {
  background: var(--ub-black) !important;
  color: var(--ub-white) !important;
}
.ub-experience {
  padding: clamp(5rem, 9vw, 10rem) var(--ub-pad) !important;
  background: var(--ub-off);
}
.ub-section-head {
  display: grid !important;
  grid-template-columns: 0.55fr 1.45fr !important;
  gap: 2rem !important;
  align-items: start !important;
  margin-bottom: clamp(4rem, 7vw, 7rem);
}
.ub-section-head .ub-section-title {
  text-align: right;
}
.ub-ribbon-stack {
  gap: clamp(3rem, 5vw, 5.25rem) !important;
}
.ub-food-ribbon {
  display: grid !important;
  grid-template-columns: 0.22fr 1.2fr 0.75fr !important;
  align-items: center !important;
  min-height: 160px;
  margin-right: 8%;
}
.ub-food-ribbon:nth-child(even) {
  grid-template-columns: 0.75fr 1.2fr 0.22fr !important;
  margin: 0 0 0 8%;
}
.ub-food-ribbon:nth-child(even) .ub-ribbon-icon {
  grid-column: 3;
  grid-row: 1;
}
.ub-food-ribbon:nth-child(even) .ub-ribbon-image {
  grid-column: 2;
  grid-row: 1;
}
.ub-food-ribbon:nth-child(even) .ub-ribbon-copy {
  grid-column: 1;
  grid-row: 1;
  text-align: right;
  padding: 1rem 2rem 1rem 0;
}
.ub-ribbon-icon {
  display: grid !important;
  place-items: center !important;
  height: 100%;
  padding: 1.25rem;
}
.ub-ribbon-icon img {
  width: clamp(2.25rem, 3.2vw, 3.5rem) !important;
  height: auto !important;
  object-fit: contain;
}
.ub-ribbon-image {
  height: 150px;
}
.ub-ribbon-image img {
  height: 150px !important;
  object-fit: cover;
}
.ub-ribbon-copy {
  padding: 1rem 0 1rem 2rem;
}
.ub-ribbon-copy h3 {
  font-size: clamp(1.5rem, 2.4vw, 2.75rem);
  line-height: 0.95;
  margin: 0;
}
.ub-ribbon-copy p {
  font-size: 0.84rem;
  line-height: 1.35;
}
.ub-experience-note {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  margin-top: clamp(4rem, 7vw, 7rem);
  padding-top: 1.4rem;
}
.ub-events {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  background: var(--ub-off);
}
.ub-events-image {
  min-height: 850px;
}
.ub-events-image img {
  height: 850px !important;
  object-fit: cover;
}
.ub-events-copy {
  padding: clamp(4rem, 8vw, 9rem) var(--ub-pad) !important;
}
.ub-events-copy .ub-section-title {
  margin-bottom: 2rem;
}
.ub-event-types {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  margin: 2rem 0;
}
.ub-event-type {
  padding: 1rem 0;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ub-quote .elementor-heading-title {
  font-size: 2rem;
  line-height: 1.1;
}
.ub-black-card {
  display: grid !important;
  grid-template-columns: 0.28fr 0.9fr 1fr !important;
  gap: clamp(2rem, 5vw, 6rem) !important;
  padding: clamp(5rem, 9vw, 10rem) var(--ub-pad) !important;
}
.ub-black-intro {
  grid-column: 2/4;
}
.ub-card-stage {
  grid-column: 1/3;
  min-height: 500px;
  display: grid !important;
  place-items: center !important;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.08),
    transparent 62%
  );
}
.ub-loyalty-card {
  width: min(460px, 85%);
  aspect-ratio: 1.586;
  padding: 2rem;
  border: 1px solid #4a4a4a;
  border-radius: 18px;
  background: linear-gradient(145deg, #222, #090909);
  box-shadow: 0 35px 60px #000;
  transform: rotate(-7deg);
  color: #fff;
}
.ub-loyalty-card strong {
  font-size: 2rem;
  font-weight: 400;
}
.ub-loyalty-card small {
  font-size: 1.05rem;
  font-weight: 400;
}
.ub-black-copy {
  align-self: center;
}
.ub-benefits {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
}
.ub-benefit {
  padding: 1.2rem 1rem 1.5rem 0;
}
.ub-benefit h3 {
  font-size: 1.8rem;
  margin: 0.4rem 0;
}
.ub-benefit p {
  font-size: 0.85rem;
  color: #aaa;
}
.ub-about {
  display: grid !important;
  grid-template-columns: 0.85fr 1.15fr !important;
  gap: clamp(3rem, 9vw, 11rem) !important;
  padding: clamp(5rem, 9vw, 10rem) var(--ub-pad) !important;
}
.ub-about-image {
  width: 65% !important;
  height: 340px;
  margin: 3rem 0 0 auto;
}
.ub-about-image img {
  height: 340px !important;
  object-fit: cover;
}
.ub-about-copy {
  padding-top: 7rem;
}
.ub-about-copy .elementor-widget-text-editor:first-child {
  font-size: clamp(1.5rem, 2.2vw, 2.25rem);
  line-height: 1.3;
  margin-bottom: 2rem;
}
.ub-contact {
  display: grid !important;
  grid-template-columns: 0.8fr 1.2fr !important;
  gap: clamp(3rem, 9vw, 11rem) !important;
  padding: clamp(5rem, 9vw, 10rem) var(--ub-pad) !important;
  background: var(--ub-off);
}
.ub-footer {
  padding: clamp(4rem, 7vw, 7rem) var(--ub-pad) 2rem !important;
  background: var(--ub-black);
  color: var(--ub-white);
}
.ub-footer-title .elementor-heading-title {
  font-size: clamp(5rem, 13vw, 14rem);
  line-height: 0.82;
  color: var(--ub-white);
}
.ub-footer-title em {
  font-style: normal;
}
.ub-footer-links .elementor-widget-container {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  margin: 4rem 0 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #444;
}
.ub-footer-links a {
  color: var(--ub-white);
  font-size: 0.8rem;
}
.ub-footer-bottom {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  color: #777;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
@media (max-width: 1024px) {
  .ub-hero {
    grid-template-columns: 1fr !important;
  }
  .ub-join {
    grid-template-columns: 0.25fr 1fr !important;
  }
  .ub-form-shortcode {
    grid-column: 2;
  }
  .ub-food-ribbon {
    margin-right: 3%;
  }
  .ub-food-ribbon:nth-child(even) {
    margin-left: 3%;
  }
  .ub-black-card {
    grid-template-columns: 0.2fr 1fr !important;
  }
  .ub-black-intro {
    grid-column: 2;
  }
  .ub-card-stage {
    grid-column: 1/3;
  }
  .ub-black-copy {
    grid-column: 2;
  }
  .ub-about {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 767px) {
  .ub-header {
    position: relative !important;
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    padding: 1rem var(--ub-pad) !important;
  }
  .ub-header .ub-nav {
    justify-content: flex-start;
    gap: 0.75rem;
    flex-wrap: wrap;
  }
  .ub-header > .ub-button,
  .ub-header-cta {
    display: none;
  }
  .ub-hero {
    padding-top: 3rem !important;
  }
  .ub-hero-bottom {
    grid-template-columns: 1fr !important;
  }
  .ub-hero-collage {
    min-height: 520px;
  }
  .ub-join,
  .ub-section-head,
  .ub-events,
  .ub-black-card,
  .ub-about,
  .ub-contact {
    grid-template-columns: 1fr !important;
  }
  .ub-join .ub-number {
    display: none;
  }
  .ub-form-shortcode,
  .ub-black-intro,
  .ub-card-stage,
  .ub-black-copy {
    grid-column: 1;
  }
  .ub-section-head .ub-section-title {
    text-align: left;
  }
  .ub-food-ribbon,
  .ub-food-ribbon:nth-child(even) {
    grid-template-columns: 48px 1fr !important;
    margin: 0;
  }
  .ub-food-ribbon .ub-ribbon-icon,
  .ub-food-ribbon:nth-child(even) .ub-ribbon-icon {
    grid-column: 1;
    grid-row: 1/3;
    padding: 0.55rem;
    align-items: start !important;
  }
  .ub-food-ribbon .ub-ribbon-image,
  .ub-food-ribbon:nth-child(even) .ub-ribbon-image {
    grid-column: 2;
    grid-row: 1;
    height: 190px;
  }
  .ub-food-ribbon .ub-ribbon-copy,
  .ub-food-ribbon:nth-child(even) .ub-ribbon-copy {
    grid-column: 2;
    grid-row: 2;
    text-align: left;
    padding: 1.1rem 0 1.8rem;
  }
  .ub-events-image {
    min-height: 620px;
  }
  .ub-events-image img {
    height: 620px !important;
  }
  .ub-about-copy {
    padding-top: 0;
  }
  .ub-footer-bottom {
    gap: 1rem !important;
  }
  .ub-experience-note {
    display: block !important;
  }
}

/* v2.2 — proportion, legibility and form refinements */
.ub-header {
  min-height: 82px;
}
.ub-brand-mark {
  font-size: 1.65rem;
}
.ub-brand-mark svg {
  width: 2.45rem;
  height: 2.45rem;
}
.ub-nav a {
  font-size: 0.9rem;
}
.ub-header > .ub-button {
  font-size: 0.8rem;
  padding: 1.05rem 1.4rem;
}
.ub-manifesto strong {
  display: block;
  margin: 1rem 0 0.65rem;
}
.ub-manifesto .ub-button {
  margin-top: 0.65rem;
}
.ub-events-copy > div:not(.ub-event-types),
.ub-black-copy > p,
.ub-about-copy > div,
.ub-contact > div > p {
  font-size: 1rem;
  line-height: 1.65;
}
.ub-event-type {
  font-size: 0.82rem;
}
.ub-about-copy {
  padding-top: 4rem;
}
.ub-about-intro {
  font-size: clamp(1.4rem, 1.9vw, 2rem);
}
.ub-benefit {
  position: relative;
  padding: 1.4rem 1.5rem 1.7rem 0;
}
.ub-benefit-icon {
  display: block;
  width: 25px;
  height: 25px;
  object-fit: contain;
  filter: grayscale(1) brightness(0) invert(1);
  margin: 0 0 1rem;
}
.ub-benefit h3 {
  font-size: 2rem;
}
.ub-benefit p {
  font-size: 0.95rem;
  line-height: 1.5;
}
.ub-loyalty-card-custom {
  width: min(520px, 88%);
  margin: 0;
}
.ub-loyalty-card-custom img {
  display: block;
  width: 100%;
  height: auto;
}
.ub-contact {
  grid-template-columns: 0.9fr 1.1fr !important;
  gap: clamp(3rem, 6vw, 7rem) !important;
}
.ub-form-shortcode label {
  font-size: 0.76rem;
}
.ub-form-shortcode input,
.ub-form-shortcode textarea {
  font-size: 1rem;
}
.ub-contact .wpcf7-radio {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  padding: 0.45rem 0 0.75rem;
}
.ub-contact .wpcf7-radio .wpcf7-list-item {
  margin: 0;
}
.ub-contact .wpcf7-radio .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  border: 0 !important;
  padding: 0.25rem 0 !important;
  color: #444;
}
.ub-contact .wpcf7-radio input {
  width: auto !important;
  margin: 0;
}
.ub-contact .wpcf7-not-valid-tip {
  font-size: 0.72rem;
  line-height: 1.35;
}
.ub-contact .wpcf7-response-output {
  font-size: 0.9rem;
  line-height: 1.4;
}
.ub-footer-links a {
  font-size: 0.9rem;
}
.ub-footer-bottom {
  font-size: 0.8rem;
}
.ub-footer > p {
  font-size: 1.05rem;
}

@media (min-width: 1025px) {
  .ub-hero {
    height: calc(100vh - 82px);
    min-height: 610px;
    max-height: 760px;
    padding: clamp(1.75rem, 3.2vh, 2.75rem) var(--ub-pad) !important;
    gap: clamp(2rem, 4vw, 4.5rem) !important;
  }
  .ub-hero-title {
    font-size: clamp(4.6rem, 7.1vw, 7.6rem);
    line-height: 0.8;
  }
  .ub-hero-bottom {
    margin-top: clamp(1.5rem, 3vh, 2.5rem);
    padding-top: 1rem;
  }
  .ub-display {
    font-size: clamp(2.5rem, 3.8vw, 4.25rem);
  }
  .ub-manifesto p {
    font-size: clamp(1rem, 1.25vw, 1.3rem);
    margin-bottom: 0.5rem;
  }
  .ub-hero-collage {
    min-height: 0;
    height: 100%;
  }
  .ub-hero-main {
    height: 78%;
  }
  .ub-hero-inset {
    height: 42%;
    border-width: 8px;
  }
  .ub-roundel {
    width: 7rem !important;
    height: 7rem;
    bottom: 2rem;
    font-size: 0.65rem;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .ub-header {
    min-height: 76px;
  }
  .ub-hero {
    min-height: auto;
  }
  .ub-hero-title {
    font-size: clamp(5rem, 12vw, 7.5rem);
  }
  .ub-hero-collage {
    min-height: 600px;
  }
  .ub-contact {
    grid-template-columns: 1fr !important;
  }
  .ub-contact .ub-form-shortcode {
    grid-column: 1;
  }
}

@media (max-width: 767px) {
  .ub-brand-mark {
    font-size: 1.45rem;
  }
  .ub-header .ub-nav {
    font-size: 0.82rem;
  }
  .ub-manifesto strong {
    margin-bottom: 0.75rem;
  }
  .ub-benefit-icon {
    width: 22px;
    height: 22px;
  }
  .ub-contact .wpcf7-radio {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 1rem;
  }
  .ub-footer-links {
    gap: 1rem 1.5rem;
  }
  .ub-footer-bottom {
    flex-direction: column !important;
  }
}

/* v2.4 — solid sticky navigation and event icons */
#join,
#experience,
#events,
#black-card,
#about,
#contact {
  scroll-margin-top: 90px;
}
.ub-header {
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.ub-event-type {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.ub-event-type img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex: 0 0 22px;
}
@media (min-width: 768px) {
  .ub-sticky-shell {
    position: sticky !important;
    position: -webkit-sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    background: #fff !important;
    overflow: visible !important;
  }
  .ub-sticky-shell > .e-con-inner {
    max-width: none !important;
    width: 100% !important;
  }
  .ub-sticky-shell .elementor-widget-umbrella-header,
  .ub-sticky-shell .ub-header {
    position: relative !important;
    top: auto !important;
  }
  .admin-bar .ub-sticky-shell {
    top: 32px !important;
  }
}
@media (max-width: 767px) {
  .ub-sticky-shell {
    position: relative !important;
    top: auto !important;
  }
  .ub-event-type img {
    width: 19px;
    height: 19px;
    flex-basis: 19px;
  }
}

/* v3 — native Elementor widget compatibility */
.ub-event-type .elementor-widget-container {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.ub-event-icon {
  width: 22px !important;
  height: 22px !important;
  object-fit: contain;
  flex: 0 0 22px;
}
.ub-benefit > .e-con-inner > .ub-benefit-icon,
.ub-benefit-icon {
  width: 25px !important;
  height: 25px !important;
  object-fit: contain;
  filter: grayscale(1) brightness(0) invert(1);
  margin: 0 0 1rem;
}
@media (max-width: 767px) {
  .ub-event-icon {
    width: 19px !important;
    height: 19px !important;
    flex-basis: 19px;
  }
  .ub-benefit-icon {
    width: 22px !important;
    height: 22px !important;
  }
}

/* Elementor 4 wraps Container children in .e-con-inner. Move every layout
   relationship to that editable native layer. */
.ub-header > .e-con-inner,
.ub-hero > .e-con-inner,
.ub-join > .e-con-inner,
.ub-experience > .e-con-inner,
.ub-events > .e-con-inner,
.ub-black-card > .e-con-inner,
.ub-about > .e-con-inner,
.ub-contact > .e-con-inner,
.ub-footer > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
}
.ub-header > .e-con-inner {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: 2rem !important;
}
.ub-hero > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1.05fr 0.95fr !important;
  gap: clamp(2rem, 5vw, 6rem) !important;
  min-height: 100%;
}
.ub-hero-copy > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100%;
}
.ub-hero-bottom > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 2rem !important;
  align-items: end !important;
}
.ub-manifesto > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
.ub-hero-collage > .e-con-inner {
  position: relative !important;
  width: 100%;
  height: 100%;
  min-height: inherit;
}
.ub-join > .e-con-inner {
  display: grid !important;
  grid-template-columns: 0.3fr 1fr 1fr !important;
  gap: clamp(2rem, 6vw, 7rem) !important;
  align-items: start !important;
}
.ub-section-head > .e-con-inner {
  display: grid !important;
  grid-template-columns: 0.55fr 1.45fr !important;
  gap: 2rem !important;
  align-items: start !important;
}
.ub-ribbon-stack > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(3rem, 5vw, 5.25rem) !important;
}
.ub-food-ribbon > .e-con-inner {
  display: grid !important;
  grid-template-columns: 0.22fr 1.2fr 0.75fr !important;
  align-items: center !important;
  width: 100%;
  max-width: none !important;
}
.ub-food-ribbon:nth-child(even) > .e-con-inner {
  grid-template-columns: 0.75fr 1.2fr 0.22fr !important;
}
.ub-ribbon-copy > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
}
.ub-experience-note > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
}
.ub-events > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
}
.ub-events-copy > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
}
.ub-event-types > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
}
.ub-black-card > .e-con-inner {
  display: grid !important;
  grid-template-columns: 0.28fr 0.9fr 1fr !important;
  gap: clamp(2rem, 5vw, 6rem) !important;
}
.ub-black-intro {
  grid-column: 2/4;
}
.ub-card-stage {
  grid-column: 1/3;
}
.ub-black-copy {
  grid-column: 3;
  align-self: center;
}
.ub-benefits > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
}
.ub-about > .e-con-inner {
  display: grid !important;
  grid-template-columns: 0.85fr 1.15fr !important;
  gap: clamp(3rem, 9vw, 11rem) !important;
}
.ub-contact > .e-con-inner {
  display: grid !important;
  grid-template-columns: 0.9fr 1.1fr !important;
  gap: clamp(3rem, 6vw, 7rem) !important;
}
.ub-footer-bottom > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  width: 100%;
  max-width: none !important;
}

@media (max-width: 1024px) {
  .ub-hero > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .ub-join > .e-con-inner {
    grid-template-columns: 0.25fr 1fr !important;
  }
  .ub-black-card > .e-con-inner {
    grid-template-columns: 0.2fr 1fr !important;
  }
  .ub-black-intro {
    grid-column: 2;
  }
  .ub-card-stage {
    grid-column: 1/3;
  }
  .ub-black-copy {
    grid-column: 2;
  }
  .ub-about > .e-con-inner {
    grid-template-columns: 1fr 1fr !important;
  }
  .ub-contact > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .ub-contact .ub-form-shortcode {
    grid-column: 1;
  }
}
@media (max-width: 767px) {
  .ub-header > .e-con-inner,
  .ub-hero > .e-con-inner,
  .ub-join > .e-con-inner,
  .ub-section-head > .e-con-inner,
  .ub-events > .e-con-inner,
  .ub-black-card > .e-con-inner,
  .ub-about > .e-con-inner,
  .ub-contact > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .ub-hero-bottom > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .ub-food-ribbon > .e-con-inner,
  .ub-food-ribbon:nth-child(even) > .e-con-inner {
    grid-template-columns: 48px 1fr !important;
  }
  .ub-experience-note > .e-con-inner {
    display: block !important;
  }
  .ub-footer-bottom > .e-con-inner {
    flex-direction: column !important;
    gap: 1rem;
  }
  .ub-black-intro,
  .ub-card-stage,
  .ub-black-copy {
    grid-column: 1;
  }
}
.ub-card-stage .elementor-widget-container {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}
.ub-card-stage img {
  display: block;
  width: min(520px, 88%) !important;
  height: auto !important;
}

/* v3.1 — identical geometry in Elementor editor and published page */
:is(
  .ub-header,
  .ub-hero,
  .ub-join,
  .ub-experience,
  .ub-events,
  .ub-black-card,
  .ub-about,
  .ub-contact,
  .ub-footer
) {
  --container-max-width: none !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
:is(
    .ub-header,
    .ub-hero,
    .ub-join,
    .ub-experience,
    .ub-events,
    .ub-black-card,
    .ub-about,
    .ub-contact,
    .ub-footer
  )
  > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
.elementor-edit-area
  :is(
    .ub-header,
    .ub-hero,
    .ub-join,
    .ub-experience,
    .ub-events,
    .ub-black-card,
    .ub-about,
    .ub-contact,
    .ub-footer
  ),
.elementor-editor-active
  :is(
    .ub-header,
    .ub-hero,
    .ub-join,
    .ub-experience,
    .ub-events,
    .ub-black-card,
    .ub-about,
    .ub-contact,
    .ub-footer
  ) {
  width: 100% !important;
  max-width: none !important;
}
.ub-brand {
  width: 190px !important;
  max-width: 190px !important;
  justify-self: start;
  align-self: center;
}
.ub-brand .elementor-widget-container {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 60px;
}
.ub-brand a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
}
.ub-brand img {
  display: block;
  width: auto !important;
  max-width: 180px !important;
  height: auto !important;
  max-height: 58px !important;
  object-fit: contain;
  object-position: left center;
}
.ub-header > .e-con-inner {
  min-height: 82px;
}
.ub-nav {
  min-width: 0;
}
.ub-nav .elementor-widget-container {
  flex-wrap: wrap;
}
.ub-hero-copy,
.ub-hero-collage,
.ub-events-image,
.ub-events-copy,
.ub-black-copy,
.ub-about-copy {
  min-width: 0 !important;
}
.ub-card-stage {
  width: auto !important;
  max-width: none !important;
}
.ub-back-top {
  width: auto !important;
  max-width: max-content !important;
  margin-left: auto;
}

@media (min-width: 1025px) {
  .ub-hero > .e-con-inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
  }
  .ub-join > .e-con-inner {
    grid-template-columns: minmax(90px, 0.3fr) minmax(0, 1fr) minmax(300px, 1fr) !important;
  }
  .ub-events > .e-con-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }
  .ub-black-card > .e-con-inner {
    grid-template-columns: minmax(80px, 0.28fr) minmax(340px, 0.9fr) minmax(
        340px,
        1fr
      ) !important;
  }
  .ub-about > .e-con-inner {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr) !important;
  }
  .ub-contact > .e-con-inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr) !important;
  }
}
@media (max-width: 767px) {
  .ub-brand {
    width: 150px !important;
    max-width: 150px !important;
  }
  .ub-brand .elementor-widget-container {
    height: 48px;
  }
  .ub-brand img {
    max-width: 145px !important;
    max-height: 46px !important;
  }
  .ub-back-top {
    margin-left: 0;
  }
  .ub-back-top .elementor-button-wrapper {
    text-align: left;
  }
}

/* v3.2 — approved Black Card composition and dependable Umbrella bullets */
.ub-event-icon,
.ub-benefit-icon {
  display: none !important;
}
.ub-event-type .elementor-widget-container:before,
.ub-benefit > .e-con-inner:before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  background: url("../images/umbrella-icon.png") center/contain no-repeat;
}
.ub-event-type .elementor-widget-container:before {
  margin-right: 0.75rem;
}
.ub-benefit > .e-con-inner:before {
  margin: 0 0 1rem;
  filter: grayscale(1) brightness(0) invert(1);
}

.ub-black-card {
  padding-top: clamp(5rem, 8vw, 8rem) !important;
  padding-bottom: clamp(5rem, 8vw, 8rem) !important;
}
.ub-black-card > .e-con-inner {
  align-items: center !important;
}
.ub-black-intro {
  align-self: start !important;
  margin-bottom: 1.5rem;
}
.ub-card-stage {
  width: 100% !important;
  max-width: none !important;
  min-height: 520px !important;
  align-self: stretch !important;
  background: radial-gradient(
    circle at 48% 52%,
    rgba(255, 255, 255, 0.09),
    transparent 58%
  ) !important;
}
.ub-card-stage .elementor-widget-container {
  width: 100% !important;
  min-height: 520px !important;
}
.ub-card-stage img {
  width: min(560px, 88%) !important;
  max-width: 560px !important;
}
.ub-black-copy {
  width: 100% !important;
  max-width: none !important;
  align-self: center !important;
}
.ub-black-copy > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: none !important;
}
.ub-black-copy > .e-con-inner > .elementor-widget-text-editor:first-child {
  font-size: 1rem;
  line-height: 1.65;
  margin-bottom: 1.5rem;
}
.ub-benefits {
  width: 100% !important;
  max-width: none !important;
}
.ub-benefits > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: none !important;
  column-gap: 1.5rem !important;
}
.ub-benefit {
  width: 100% !important;
  min-width: 0 !important;
  padding: 1.35rem 1rem 1.65rem 0 !important;
}
.ub-benefit > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: 100% !important;
  max-width: none !important;
}

@media (min-width: 1025px) {
  .ub-black-card > .e-con-inner {
    grid-template-columns: minmax(72px, 0.22fr) minmax(390px, 0.95fr) minmax(
        430px,
        1.05fr
      ) !important;
    column-gap: clamp(2rem, 4vw, 5rem) !important;
  }
  .ub-black-intro {
    grid-column: 2/4 !important;
  }
  .ub-card-stage {
    grid-column: 1/3 !important;
  }
  .ub-black-copy {
    grid-column: 3 !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .ub-black-card > .e-con-inner {
    grid-template-columns: minmax(60px, 0.18fr) minmax(0, 1fr) !important;
  }
  .ub-black-intro {
    grid-column: 2 !important;
  }
  .ub-card-stage {
    grid-column: 1/3 !important;
  }
  .ub-black-copy {
    grid-column: 2 !important;
  }
  .ub-card-stage,
  .ub-card-stage .elementor-widget-container {
    min-height: 430px !important;
  }
}
@media (max-width: 767px) {
  .ub-event-type .elementor-widget-container:before {
    width: 19px;
    height: 19px;
    margin-right: 0.6rem;
  }
  .ub-benefits > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .ub-card-stage,
  .ub-card-stage .elementor-widget-container {
    min-height: 340px !important;
  }
  .ub-card-stage img {
    width: min(430px, 92%) !important;
  }
}

/* v3.3 — theme-resolved icons and the approved vertical Events rail */
.ub-event-type .elementor-widget-container:before,
.ub-benefit > .e-con-inner:before {
  background-image: none !important;
  -webkit-mask: var(--ub-umbrella-icon) center/contain no-repeat;
  mask: var(--ub-umbrella-icon) center/contain no-repeat;
}
.ub-event-type .elementor-widget-container:before {
  background-color: var(--ub-black) !important;
}
.ub-benefit > .e-con-inner:before {
  background-color: var(--ub-white) !important;
  filter: none !important;
}
.ub-events-image {
  position: relative !important;
  overflow: visible !important;
}
.ub-events-image .elementor-widget-container {
  position: relative !important;
  height: 100% !important;
  overflow: visible !important;
}
.ub-events-rail {
  position: absolute;
  z-index: 5;
  top: 2rem;
  right: 0;
  bottom: 2rem;
  width: clamp(58px, 5.2vw, 92px);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-top: 2rem;
  background: var(--ub-black);
  color: var(--ub-white);
  font-size: clamp(0.76rem, 1vw, 1rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
@media (max-width: 767px) {
  .ub-events-rail {
    top: 1.25rem;
    bottom: 1.25rem;
    width: 48px;
    padding-top: 1.25rem;
    font-size: 0.7rem;
  }
}

/* v3.4 — visible Elementor-native Events rail and Umbrella bullets */
.ub-event-type .elementor-widget-container:before,
.ub-benefit > .e-con-inner:before,
.ub-events-rail {
  display: none !important;
}
.ub-events-visual {
  position: relative !important;
  min-height: 850px !important;
  overflow: visible !important;
}
.ub-events-visual > .e-con-inner {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 850px !important;
}
.ub-events-visual .ub-events-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 850px !important;
}
.ub-events-visual .ub-events-image .elementor-widget-container,
.ub-events-visual .ub-events-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 850px !important;
  object-fit: cover !important;
}
/* Prevents a line break before Elementor applies the native rotation. This
   does not control the rail's position, dimensions, margins or alignment. */
.ub-events-rail-heading-native .elementor-heading-title {
  white-space: nowrap;
}
.ub-event-item-native {
  width: 100% !important;
  min-width: 0 !important;
  padding: 1rem 0 !important;
}
.ub-event-item-native > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.75rem !important;
  width: 100% !important;
  max-width: none !important;
}
.ub-event-item-native .ub-event-type {
  padding: 0 !important;
  border: 0 !important;
  width: auto !important;
}
.ub-event-bullet-native {
  width: 22px !important;
  max-width: 22px !important;
  flex: 0 0 22px !important;
}
.ub-event-bullet-native img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  object-fit: contain !important;
}
.ub-benefit-bullet-native {
  display: block !important;
  width: 25px !important;
  max-width: 25px !important;
  margin: 0 0 1rem !important;
}
.ub-benefit-bullet-native img {
  display: block !important;
  width: 25px !important;
  height: 25px !important;
  object-fit: contain !important;
  filter: grayscale(1) brightness(0) invert(1) !important;
}
@media (max-width: 767px) {
  .ub-events-visual,
  .ub-events-visual > .e-con-inner,
  .ub-events-visual .ub-events-image,
  .ub-events-visual .ub-events-image img {
    min-height: 620px !important;
  }
  .ub-event-bullet-native {
    width: 19px !important;
    max-width: 19px !important;
    flex-basis: 19px !important;
  }
  .ub-event-bullet-native img {
    width: 19px !important;
    height: 19px !important;
  }
  .ub-benefit-bullet-native,
  .ub-benefit-bullet-native img {
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
  }
}

/* v3.5 — editor-safe widget styling. Layout no longer depends on removable
   Text Editor tags such as span, p, em or div. */