/* 999PAWN overrides — only what doesn't exist in original Webflow CSS */

/* ── Light theme palette — override Webflow CSS variables ── */
:root {
  --core--colors--neutral--neutral-100: #EEF4FD;
  --core--colors--neutral--neutral-200: #ffffff;
  --core--colors--neutral--neutral-300: #BFDBFE;
  --core--colors--neutral--neutral-400: rgba(13,27,54,0.45);
  --core--colors--neutral--neutral-500: rgba(13,27,54,0.65);
  --core--colors--neutral--neutral-600: rgba(13,27,54,0.7);
  --core--colors--neutral--neutral-700: rgba(13,27,54,0.1);
  --core--colors--neutral--neutral-800: #0D1B36;

  /* Section spacing — unified, reduced from Webflow defaults (180/140/80 → 80/80/60) */
  --_section-paddings---padding-default: 80px;
  --_section-paddings---padding-medium:  80px;
  --_section-paddings---padding-small:   60px;
}

@media screen and (max-width: 991px) {
  :root {
    --_section-paddings---padding-default: 56px;
    --_section-paddings---padding-medium:  56px;
    --_section-paddings---padding-small:   40px;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --_section-paddings---padding-default: 48px;
    --_section-paddings---padding-medium:  48px;
    --_section-paddings---padding-small:   32px;
  }
}

/* Contact section — white card via ::before on the section itself;
   matches CTA section width (max 1400px, 24px inset each side) exactly */
#contact,
#vendor-apply {
  position: relative;
  margin-top: 80px;
}
#contact::before,
#vendor-apply::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 48px);
  max-width: 1400px;
  background: #ffffff;
  border-radius: 24px;
  z-index: 0;
}
#contact > .container-default,
#vendor-apply > .container-default {
  position: relative;
  z-index: 1;
}
/* Reset inner card div — visual card is now the ::before pseudo-element */
.card.contact-section-card {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0;
  padding: 0;
}
@media (max-width: 767px) {
  #contact,
  #vendor-apply { margin-top: 48px; }
  #contact::before,
  #vendor-apply::before { width: calc(100% - 24px); border-radius: 16px; }
}
@media (max-width: 479px) {
  #contact,
  #vendor-apply { margin-top: 32px; }
  #contact::before,
  #vendor-apply::before { width: 100%; border-radius: 0; }
}

/* Section dividers — text was nearly transparent (rgba 0.1 opacity), make readable */
.section-divider-wrapper { color: #3d3d3d; }

/* Form placeholders — lighter so fields don't look pre-filled */
input::placeholder,
textarea::placeholder,
select.w-select option[value=""] {
  color: rgba(13, 27, 54, 0.3) !important;
  opacity: 1;
}

/* Form field labels — darker than default 0.45 opacity */
.w-form label {
  color: rgba(13, 27, 54, 0.65) !important;
}

/* strong tags — shared CSS sets neutral-700 (0.1 opacity = nearly invisible); make dark */
strong {
  color: var(--core--colors--neutral--neutral-800) !important;
  font-weight: 700 !important;
}

/* Logo images */
.header-logo {
  max-width: none !important;
  width: auto !important;
}
.header-logo-img {
  height: 36px;
  width: auto;
  display: block;
}
.header-logo-mobile-img {
  display: none;
  height: 40px;
  width: auto;
}
.footer-logo-img {
  height: 40px;
  width: auto;
  display: block;
}

/* About mosaic grid */
.about-mosaic-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 220px 220px;
  gap: 4px;
  margin-top: 170px; /* matches .mg-top-170px from original */
}
.about-ph {
  background: #dce8fb;
  width: 100%;
  height: 100%;
}

/* About two column text */
.about-two-col-text {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
.about-two-col-text p {
  font-size: 1rem;
  line-height: 1.75;
}

/* Section label (small uppercase eyebrow text) */
.section-label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
  margin-bottom: 12px;
}
.mg-bottom-xs { margin-bottom: 8px; }

/* Services list */
.services-header-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  margin-bottom: 56px;
  align-items: end;
}
.services-header-grid h2 {
  font-size: 3rem;
  line-height: 1.15em;
}
.italic-title { font-style: italic; }

.services-list-wrapper { display: flex; flex-direction: column; }
.service-list-item {
  display: grid;
  grid-template-columns: 72px 200px 1fr 32px;
  align-items: center;
  gap: 32px;
  padding: 28px 0;
  border-top: 1px solid #BFDBFE;
  color: #0D1B36;
  text-decoration: none;
  transition: padding-left .2s;
}
.service-list-item:last-child { border-bottom: 1px solid #BFDBFE; }
.service-list-item:hover { padding-left: 8px; color: #0D1B36; }
.service-list-item:hover .service-arrow { transform: translateX(6px); }
.service-num  { font-size: 0.875rem; color: rgba(13,27,54,0.45); }
.service-name { font-size: 1.125rem; font-weight: 500; color: #0D1B36; }
.service-desc { font-size: 0.9375rem; color: rgba(13,27,54,0.65); line-height: 1.6; }
.service-arrow{ font-size: 1.1rem; color: rgba(13,27,54,0.45); transition: transform .2s; }

/* Benefits */
.benefits-header { margin-bottom: 56px; }
.benefits-grid-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2px;
}
.benefits-col { display: flex; flex-direction: column; gap: 2px; }
.benefit-card {
  background: #ffffff;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.benefit-featured {
  justify-content: space-between;
  padding: 40px 36px;
}
.heading-medium {
  font-family: "Inter Tight", sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  color: #0D1B36;
  letter-spacing: -.03em;
  line-height: 1.35;
}
.heading-large {
  font-family: "Inter Tight", sans-serif;
  font-size: 1.75rem;
  font-weight: 600;
  color: #0D1B36;
  letter-spacing: -.03em;
  line-height: 1.2;
}

/* Events */
.mg-bottom-medium { margin-bottom: 56px; }
.events-layout-grid {
  display: grid;
  grid-template-columns: 1fr 420px 1fr;
  gap: 40px;
  align-items: start;
}
.events-col { display: flex; flex-direction: column; }
.event-card-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 28px 0;
  border-top: 1px solid #BFDBFE;
  color: #0D1B36;
  text-decoration: none;
  transition: opacity .2s;
}
.event-card-item:last-child { border-bottom: 1px solid #BFDBFE; }
.event-card-item:hover { opacity: .65; color: #0D1B36; }
.event-tag-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
}
.events-center-photo {
  width: 100%;
  aspect-ratio: 2/3;
  background: #dce8fb;
  border-radius: 16px;
}

/* Contact */
.contact-grid-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}
.contact-info-col h2 { font-size: 3rem; font-weight: 500; line-height: 1.15; }
.contact-detail-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9375rem;
  color: rgba(13,27,54,0.65);
  margin-bottom: 10px;
}
.form-row-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.form-field { display: flex; flex-direction: column; }
.field-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(13,27,54,0.45);
  margin-top: 24px;
  margin-bottom: 4px;
}

/* Custom select dropdown — replaces native <select> */
.cs-wrapper {
  position: relative;
}
.cs-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(13,27,54,0.15);
  border-radius: 0;
  padding: 8px 0;
  min-height: 72px;
  color: #0D1B36;
  font-family: "Inter Tight", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  cursor: pointer;
  text-align: left;
  gap: 12px;
}
.cs-trigger:focus { outline: none; }
.cs-trigger-text {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cs-chevron {
  flex-shrink: 0;
  color: rgba(13,27,54,0.4);
  transition: transform .25s ease, color .2s;
}
.cs-trigger.is-open .cs-chevron {
  transform: rotate(180deg);
  color: rgba(13,27,54,0.6);
}
.cs-panel {
  position: absolute;
  top: calc(100% + 2px);
  left: -18px;
  right: -18px;
  background: #ffffff;
  border: 1px solid #BFDBFE;
  border-radius: 10px;
  padding: 6px 0;
  z-index: 200;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  box-shadow: 0 16px 40px rgba(13,27,54,0.12);
}
.cs-panel.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.cs-option {
  padding: 10px 18px;
  font-family: "Inter Tight", sans-serif;
  font-size: 0.9375rem;
  color: rgba(13,27,54,0.5);
  cursor: pointer;
  transition: background .12s, color .12s;
  user-select: none;
}
.cs-option:hover { background: #EEF4FD; color: #0D1B36; }
.cs-option.is-selected { color: #0D1B36; }

/* Lift z-index on parent when panel open so panel doesn't clip under siblings */
.position-relative---z-index-1.cs-active { z-index: 50 !important; }

/* Footer top card — remove card appearance, blend into footer */
.footer-wrapper {
  padding: 0;
}
.card.footer-top-card {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  border-bottom: 1px solid #BFDBFE;
  max-width: 1296px;
  margin: 0 auto;
  padding: 56px 24px !important;
}

/* Footer custom elements */
.footer-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 48px;
  padding-top: 48px;
  padding-bottom: 48px;
}
.footer-nav-col { display: flex; flex-direction: column; gap: 10px; }
.footer-col-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(13,27,54,0.45);
  margin-bottom: 6px;
}
.footer-nav-link { font-size: 0.9375rem; color: rgba(13,27,54,0.65); text-decoration: none; transition: color .2s; }
.footer-nav-link:hover { color: #0D1B36; }
.footer-legal-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 28px;
  border-top: 1px solid #BFDBFE;
  padding-bottom: 28px;
}
.footer-legal-link { font-size: 0.875rem; color: rgba(13,27,54,0.45); text-decoration: none; transition: color .2s; }
.footer-legal-link:hover { color: rgba(13,27,54,0.7); }
.gap-small { gap: 24px; display: flex; }

/* Events page: 4-col grid cards equal height, content top-aligned */
.grid-4-columns .card.testimonial-v2 {
  height: 100%;
  justify-content: flex-start;
  gap: 16px;
}

/* Benefits section — heading goes RIGHT (order trick from original Webflow) */
.benefits-heading-col {
  order: 9999;
}
.perks-grid .perks-row-divider {
  grid-column: span 2;
}
@media (max-width: 860px) {
  .benefits-heading-col {
    order: -9999;
  }
}

/* Service accordion transitions */
.accordion-paragraph-wrapper {
  transition: height 0.45s cubic-bezier(0.4,0,0.2,1),
              opacity 0.35s ease,
              transform 0.35s ease;
  overflow: hidden;
}
.service-image-wrapper {
  transition: height 0.5s cubic-bezier(0.4,0,0.2,1),
              opacity 0.4s ease,
              filter 0.4s ease;
  overflow: hidden;
}
.image.service-image-v1 {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.service-v1-wrapper .icon-link-arrow {
  display: inline-block;
  transition: transform 0.3s ease;
  font-style: normal;
}
.service-v1-wrapper:hover .icon-link-arrow {
  transform: translateX(4px);
}

/* "Trusted by leading industry businesses" — hidden until real logos are ready */
.logo-strip-v1-wrapper,
.logo-strip-wrapper-hero-v4 {
  display: none !important;
}

/* Vendors hero wrap — pushes block down below absolute nav */
.vendors-hero-wrap {
  margin-top: 160px;
}

/* Join hero: fits viewport, image starts below nav */
.join-hero-wrap {
  margin-top: 100px;
  height: calc(100vh - 100px);
  overflow: hidden;
}
.join-hero-wrap > .w-container {
  height: 100%;
}
.join-hero-wrap .section.service-single-hero {
  height: 100%;
  padding-top: 48px !important;
  box-sizing: border-box;
}
.join-hero-wrap .service-hero-content {
  gap: 24px !important;
}

/* about-platform-block inside join-hero-wrap: zero out section margin
   (join-hero-wrap already clears the nav; the standalone margin-top:80px is for about.html where section is not wrapped) */
.join-hero-wrap .section.service-single-hero.about-platform-block {
  margin-top: 0;
}

/* Join form: Webflow shared CSS forces min-height:650px on contact-form-grid (designed for tall forms with textarea).
   Join form has 6 short fields — reset so it doesn't create dead space. */
#joinForm.contact-form-grid {
  min-height: 0 !important;
}

/* First-section nav offset: absolute nav requires extra padding-top on first block */
.section.top.about-hero,
.section.top.events-hero-top {
  padding-top: 260px;
}

/* About page — block 2 platform section */
.section.service-single-hero.about-platform-block {
  border-radius: var(--padding--border-radius--br-size-3);
  margin-top: 80px;
  display: grid !important;
  grid-template-columns: 55% 45%;
  align-items: center;
  padding-top: 48px !important;
  padding-bottom: 48px !important;
  gap: 0;
  overflow: hidden;
}
.about-platform-block .image-wrapper.service-hero-image-wrapper {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  height: 420px;
  border-radius: 16px;
  overflow: hidden;
  order: -1;
  opacity: 1 !important;
}
.about-platform-block .service-hero-content {
  gap: 28px;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  padding-left: 56px;
}

/* Events page — featured block: text LEFT, image RIGHT */
.events-featured-block.section.service-single-hero {
  padding-top: 64px;
  padding-bottom: 64px;
  margin-bottom: 80px;
}
.events-featured-block .service-hero-content {
  margin-left: 0;
  gap: 24px;
}
.events-featured-block .image-wrapper.service-hero-image-wrapper {
  left: auto;
  right: 24px;
  top: 24px;
  bottom: 24px;
}

/* Accordion toggle rotation */
.accordion-line.vertical {
  transition: transform 0.3s ease;
}
.accordion-wrapper.is-open .accordion-line.vertical {
  transform: rotate(0deg) !important;
}

/* Contact form input-line-bottom animation (replaces Webflow IX) */
.position-relative---z-index-1 .input-line-bottom {
  transform: scaleX(0);
  transition: transform 0.35s ease;
}
.position-relative---z-index-1:focus-within .input-line-bottom {
  transform: scaleX(1);
}

/* Interested in: Webflow shared CSS forces span-2; override so it sits col 2 next to Phone */
#w-node-_8692969b-385f-8614-e395-7ff58902ca62-e00a70b8 {
  grid-area: auto;
}

/* Vendor directory — Block 2 (our_vendors.html) */
.vendor-dir-header { margin-bottom: 56px; }

.vendor-dir-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 64px;
  align-items: start;
}

.vendor-dir-nav {
  position: sticky;
  top: 120px;
}

.vendor-dir-nav-label {
  font-size: 0.6875rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
  margin-bottom: 14px;
}

.vendor-dir-nav-list { display: flex; flex-direction: column; }

.vendor-dir-nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid #BFDBFE;
  color: rgba(13,27,54,0.6);
  font-size: 1rem;
  font-weight: 500;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  transition: color .18s;
}

.vendor-dir-nav-link:hover { color: rgba(13,27,54,0.85); }
.vendor-dir-nav-link.active { color: #0D1B36; font-weight: 600; }

.vendor-dir-nav-count {
  font-size: 0.75rem;
  color: rgba(13,27,54,0.4);
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

.vendor-cat-section {
  margin-bottom: 60px;
  scroll-margin-top: 130px;
}

.vendor-cat-section:last-child { margin-bottom: 0; }

.vendor-cat-header {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding-bottom: 16px;
  border-bottom: 1px solid #BFDBFE;
}

.vendor-cat-name {
  font-size: 1.1875rem;
  font-weight: 500;
  letter-spacing: -.02em;
  color: #0D1B36;
}

.vendor-cat-count {
  font-size: 0.6875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
}

.vendor-cat-rows { display: flex; flex-direction: column; }

.vendor-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  padding: 20px 0;
  border-bottom: 1px solid #BFDBFE;
  align-items: start;
}

.vendor-row:last-child { border-bottom: none; }

.vendor-row-name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #0D1B36;
  letter-spacing: -.01em;
  margin-bottom: 5px;
}

.vendor-row-addr { font-size: 0.8125rem; color: rgba(13,27,54,0.45); line-height: 1.5; }

.vendor-row-contacts { display: flex; flex-direction: column; gap: 5px; }

.vendor-contact-line { display: flex; gap: 8px; align-items: flex-start; }

.vendor-contact-label {
  font-size: 0.6875rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
  min-width: 42px;
  flex-shrink: 0;
  padding-top: 2px;
}

.vendor-contact-value { font-size: 0.8125rem; color: rgba(13,27,54,0.65); }
.vendor-contact-value a { color: rgba(13,27,54,0.65); text-decoration: none; transition: color .18s; }
.vendor-contact-value a:hover { color: #0D1B36; }

/* ── Calendar Block 3 ── */
.cal-filters {
  display: flex;
  gap: 24px;
  align-items: flex-end;
  margin-bottom: 48px;
  flex-wrap: wrap;
}
.cal-filter-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cal-filter-label {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
}
.cal-select-wrapper {
  position: relative;
  display: inline-flex;
}
.cal-select {
  appearance: none;
  -webkit-appearance: none;
  background: #ffffff;
  border: 1px solid #BFDBFE;
  border-radius: 8px;
  color: #0D1B36;
  font-family: "Inter Tight", sans-serif;
  font-size: 0.875rem;
  padding: 0 40px 0 16px;
  cursor: pointer;
  min-width: 240px;
  height: 44px;
  box-sizing: border-box;
  transition: border-color .2s;
  line-height: 44px;
}
.cal-select:focus { outline: none; border-color: #2563EB; }
.cal-select option { background: #ffffff; color: #0D1B36; }
.cal-select-arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid rgba(13,27,54,0.45);
  pointer-events: none;
}
.cal-date-nav {
  display: flex;
  align-items: stretch;
  background: #ffffff;
  border: 1px solid #BFDBFE;
  border-radius: 8px;
  overflow: hidden;
  height: 44px;
  box-sizing: border-box;
}
.cal-nav-btn {
  background: none;
  border: none;
  color: rgba(13,27,54,0.45);
  padding: 0 16px;
  cursor: pointer;
  transition: color .2s, background .2s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  flex-shrink: 0;
  height: 100%;
}
.cal-nav-btn:hover { color: #0D1B36; background: #EEF4FD; }
.cal-month-display {
  font-size: 0.875rem;
  font-weight: 500;
  color: #0D1B36;
  padding: 0 24px;
  min-width: 148px;
  text-align: center;
  border-left: 1px solid #BFDBFE;
  border-right: 1px solid #BFDBFE;
  letter-spacing: -.01em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cal-header-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 4px;
}
.cal-weekday {
  text-align: center;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
  padding: 0 0 12px;
}
.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.cal-day {
  min-height: 88px;
  background: #ffffff;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 12px 14px 10px;
  gap: 8px;
  cursor: default;
  position: relative;
  transition: background .15s;
  user-select: none;
  border: 1px solid transparent;
}
.cal-day.has-events {
  cursor: pointer;
  background: #e8f0fc;
  border-color: #BFDBFE;
}
.cal-day.has-events:hover { background: #dce8fb; border-color: #BFDBFE; }
.cal-day.outside { opacity: 0.25; pointer-events: none; }
.cal-day-num {
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(13,27,54,0.2);
  line-height: 1;
}
.cal-day.has-events .cal-day-num { color: #0D1B36; }
.cal-day.today {
  background: #dce8fb;
  border-color: rgba(37,99,235,0.4);
}
.cal-day.today.has-events { background: #c8ddfa; border-color: #2563EB; }
.cal-day.today.has-events:hover { background: #b8d1f9; border-color: #2563EB; }
.cal-day.today .cal-day-num { color: #0D1B36; }
.cal-event-indicators {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.cal-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(13,27,54,0.3);
  flex-shrink: 0;
}
.cal-day.has-events .cal-dot { background: #2563EB; }
.cal-more-count {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: .06em;
  color: rgba(13,27,54,0.5);
  line-height: 1;
}

/* Popover */
.cal-popover {
  position: fixed;
  z-index: 500;
  background: #ffffff;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  padding: 4px;
  min-width: 280px;
  max-width: 340px;
  box-shadow: 0 16px 48px rgba(13,27,54,0.12), 0 0 0 1px rgba(13,27,54,0.04);
  display: none;
}
.cal-popover-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid #BFDBFE;
  margin-bottom: 4px;
}
.cal-popover-date {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
}
.cal-popover-close {
  background: none;
  border: none;
  color: rgba(13,27,54,0.35);
  cursor: pointer;
  padding: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .15s;
  font-family: inherit;
}
.cal-popover-close:hover { color: #0D1B36; }
.cal-popover-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 14px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .15s;
}
.cal-popover-item:hover { background: #EEF4FD; }
.cal-popover-item-type {
  font-size: 0.5875rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
}
.cal-popover-item-title {
  font-size: 0.875rem;
  color: rgba(13,27,54,0.65);
  line-height: 1.4;
  transition: color .15s;
}
.cal-popover-item:hover .cal-popover-item-title { color: #0D1B36; }

/* ══════════════════════════════════════════════════════════
   ANIMATIONS
   ══════════════════════════════════════════════════════════ */

/* ── Hero load animation ── */
@keyframes heroReveal {
  from { opacity: 0; filter: blur(8px); transform: translateY(20px); }
  to   { opacity: 1; filter: blur(0);   transform: translateY(0); }
}
.hero-v1-content {
  animation: heroReveal .9s cubic-bezier(.22,1,.36,1) .1s both;
}
.event-type-content-col {
  animation: heroReveal .9s cubic-bezier(.22,1,.36,1) .2s both;
}
.service-hero-content {
  animation: heroReveal .9s cubic-bezier(.22,1,.36,1) .15s both;
}
/* Hero image appears slightly later */
.event-type-img-col {
  animation: heroReveal 1.1s cubic-bezier(.22,1,.36,1) 0s both;
}

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  filter: blur(6px);
  transition: opacity .7s cubic-bezier(.22,1,.36,1),
              transform .7s cubic-bezier(.22,1,.36,1),
              filter .7s ease;
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
/* Stagger for grid children */
.reveal-stagger .reveal:nth-child(2) { transition-delay: .1s; }
.reveal-stagger .reveal:nth-child(3) { transition-delay: .2s; }
.reveal-stagger .reveal:nth-child(4) { transition-delay: .3s; }
.reveal-stagger .reveal:nth-child(5) { transition-delay: .4s; }
.reveal-stagger .reveal:nth-child(6) { transition-delay: .5s; }

/* ── Section divider animations ── */
.divider-text {
  display: inline-block;
  transform: translateY(115%);
  transition: transform .75s cubic-bezier(.22,1,.36,1);
}
.divider-text.in-view {
  transform: translateY(0);
}
.section-divider {
  width: 0 !important;
  transition: width 1s cubic-bezier(.22,1,.36,1) .1s;
}
.section-divider.in-view {
  width: 100% !important;
}

/* ── Full-page mobile menu: dark solid bg, white links ── */
.full-page-menu-bg-wrapper {
  background-color: #0D1B36 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.full-page-menu-bg-highlight {
  display: none !important;
}
.full-page-menu-wrapper.menu-open .full-page-menu-link {
  color: #ffffff !important;
  opacity: 1 !important;
}
.full-page-menu-wrapper.menu-open .full-page-menu-link:hover {
  color: rgba(255,255,255,0.6) !important;
}

/* ── Mobile menu link animation ── */
.full-page-menu-content .full-page-menu-link {
  display: block;
  opacity: 0;
  transform: translateY(80%) rotate(6deg);
  transition: opacity .45s cubic-bezier(.22,1,.36,1),
              transform .45s cubic-bezier(.22,1,.36,1),
              color .2s;
  transition-property: opacity, transform, color !important;
}
.full-page-menu-wrapper.menu-open .full-page-menu-link {
  opacity: 1;
  transform: translateY(0) rotate(0deg);
}
.full-page-menu-wrapper.menu-open .full-page-menu-link:nth-child(1) { transition-delay: .05s; }
.full-page-menu-wrapper.menu-open .full-page-menu-link:nth-child(2) { transition-delay: .1s; }
.full-page-menu-wrapper.menu-open .full-page-menu-link:nth-child(3) { transition-delay: .15s; }
.full-page-menu-wrapper.menu-open .full-page-menu-link:nth-child(4) { transition-delay: .2s; }
.full-page-menu-wrapper.menu-open .full-page-menu-link:nth-child(5) { transition-delay: .25s; }

/* ── Hamburger ── */
.hamburger-menu {
  display: flex;
}
.hamburger-menu-line {
  transition: transform .3s ease, opacity .3s ease;
}
.hamburger-menu.w--open .hamburger-menu-line.top {
  transform: translateY(8px) rotate(45deg);
}
.hamburger-menu.w--open .hamburger-menu-line.middle {
  opacity: 0;
  transform: scaleX(0);
}
.hamburger-menu.w--open .hamburger-menu-line.bottom {
  transform: translateY(-8px) rotate(-45deg);
}

/* ── Service Detail: badge/plashka ── */
.svc-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  background: #ffffff;
  border: 1px solid #BFDBFE;
  border-radius: 100px;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.45);
  margin-bottom: 20px;
}

/* ── Service Detail: block 2 layout ── */
.svc-details-section .service-tabs-wrapper {
  grid-template-columns: 1.5fr 1fr;
  align-items: start;
}
.svc-details-img-wrap {
  position: sticky;
  top: 100px;
  aspect-ratio: 3 / 4;
  overflow: hidden;
}
.svc-details-img-wrap .image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Event Type Pages ── */
.event-type-hero { padding: 0; }
.event-type-split {
  display: grid;
  grid-template-columns: 58% 42%;
  min-height: 100vh;
}
.event-type-img-col { position: relative; overflow: hidden; }
.event-type-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.event-type-content-col {
  background: #EEF4FD;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 120px 72px 80px;
}
.event-type-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  color: rgba(13,27,54,0.5);
  text-decoration: none;
  transition: color .2s;
  margin-bottom: 40px;
  align-self: flex-start;
}
.event-type-back:hover { color: #0D1B36; }
.event-type-title {
  font-family: "Inter Tight", sans-serif;
  font-size: clamp(2.25rem, 4vw, 3.75rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -.04em;
  color: #0D1B36;
  margin: 0 0 28px;
}
.event-type-sub {
  font-size: 0.9375rem;
  font-weight: 500;
  color: #0D1B36;
  line-height: 1.7;
  margin: 0 0 20px;
}
.event-type-body {
  font-size: 0.875rem;
  color: rgba(13,27,54,0.5);
  line-height: 1.8;
  margin: 0 0 44px;
}

/* Clickable event type cards (events.html block 2) */
a.card.testimonial-v2.event-type-card {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: transform .25s ease;
}
a.card.testimonial-v2.event-type-card:hover {
  transform: translateY(-5px);
  color: inherit;
}
.event-type-card-arrow {
  margin-top: auto;
  padding-top: 20px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(13,27,54,0.2);
  transition: color .25s, gap .25s;
}
a.card.testimonial-v2.event-type-card:hover .event-type-card-arrow {
  color: rgba(13,27,54,0.5);
  gap: 10px;
}

/* Event detail */
.event-detail-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  color: rgba(13,27,54,0.5);
  text-decoration: none;
  transition: color .2s;
}
.event-detail-back:hover { color: #0D1B36; }
.ed-sidebar-img {
  width: 100%;
  border-radius: 12px;
  display: block;
  object-fit: cover;
}

/* Service accordion mobile: hide image from layout, fix title column */
@media (max-width: 991px) {
  .service-v1-wrapper .service-image-wrapper {
    display: none !important;
  }
  .service-v1-wrapper {
    grid-template-columns: 1fr auto !important;
  }
}

/* Responsive */
@media (max-width: 860px) {
  .services-header-grid { grid-template-columns: 1fr; }
  .about-two-col-text { grid-template-columns: 1fr; }
  .benefits-grid-wrapper { grid-template-columns: 1fr; }
  .events-layout-grid { grid-template-columns: 1fr; }
  .contact-grid-layout { grid-template-columns: 1fr; gap: 40px; }
  .footer-bottom-grid { grid-template-columns: 1fr 1fr; }
  .section.top.about-hero,
  .section.top.events-hero-top { padding-top: 120px; }
  .vendor-dir-layout { grid-template-columns: 1fr; }
  .vendor-dir-nav { display: none; }
  .vendors-hero-wrap { margin-top: 100px; }
  .event-type-split { grid-template-columns: 1fr; grid-template-rows: 45vh auto; }
  .event-type-content-col { padding: 56px 40px 72px; justify-content: flex-start; }
  .cal-day { min-height: 60px; padding: 8px 8px 6px; }
  .cal-day-num { font-size: 0.75rem; }
  .cal-month-display { min-width: 110px; padding: 11px 12px; font-size: 0.8125rem; }
  .cal-filters {
    flex-direction: column;
    align-items: center;
  }
  .cal-filter-group { width: 100%; max-width: 320px; }
  .cal-select-wrapper { width: 100%; }
  .cal-select { min-width: 0; width: 100%; }
  .cal-date-nav { width: 100%; justify-content: space-between; }
  /* about-platform-block: 2-col → 1-col, image on top */
  .section.service-single-hero.about-platform-block {
    grid-template-columns: 1fr !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .about-platform-block .image-wrapper.service-hero-image-wrapper {
    height: 280px;
    border-radius: 16px;
  }
  .about-platform-block .service-hero-content {
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 40px;
    padding-bottom: 48px;
    min-height: 0 !important;
  }
  /* events center photo: portrait → landscape on mobile */
  .events-center-photo { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  /* Service detail block 2: release our custom 2-col override so it stacks */
  .svc-details-section .service-tabs-wrapper { grid-template-columns: 1fr; }
  /* Release sticky and constrain image to landscape on mobile */
  .svc-details-img-wrap {
    position: static;
    aspect-ratio: 16 / 9;
    max-height: 300px;
  }
  /* Hero offset wrappers: release fixed viewport height on mobile */
  .join-hero-wrap {
    margin-top: 80px;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible;
  }
  .join-hero-wrap > .w-container { height: auto !important; }
  .join-hero-wrap .section.service-single-hero { height: auto !important; }
  .vendors-hero-wrap { margin-top: 80px; }
}
@media (max-width: 479px) {
  /* perks-grid collapses to 1 col — span 2 creates implicit column, breaks layout */
  .perks-grid .perks-row-divider {
    grid-column: span 1;
  }
  /* show-in-mbp dividers add visual noise between stacked cards — suppress */
  .perks-grid .divider.show-in-mbp {
    display: none;
  }
}

@media (max-width: 640px) {
  .service-list-item { grid-template-columns: 50px 1fr 20px; gap: 12px; }
  .service-desc { display: none; }
  .form-row-grid { grid-template-columns: 1fr; }
  .footer-bottom-grid { grid-template-columns: 1fr; }
  .about-mosaic-grid { margin-top: 0; }
  .about-two-col-text { grid-template-columns: 1fr; }
  .join-hero-wrap { margin-top: 64px; }
  .vendors-hero-wrap { margin-top: 64px; }
  .event-type-content-col { padding: 40px 24px 56px; }
  .event-type-title { font-size: 2rem; }
  .vendor-row { grid-template-columns: 1fr; gap: 12px; }
  .cal-day { min-height: 44px; padding: 6px 4px; gap: 4px; border-radius: 5px; }
  .cal-day-num { font-size: 0.6875rem; }
  .cal-dot { width: 4px; height: 4px; }
  .cal-weekday { font-size: 0.5rem; padding-bottom: 8px; }
  .cal-grid { gap: 2px; }
  .cal-header-row { gap: 2px; }
  .cal-day.today .cal-day-num { font-size: 0.6875rem; }
  /* about-platform-block: tighter padding on small phones */
  .about-platform-block .image-wrapper.service-hero-image-wrapper { height: 220px; }
  .about-platform-block .service-hero-content {
    padding-left: 24px;
    padding-right: 24px;
    padding-top: 32px;
    padding-bottom: 40px;
  }
  /* Large h2 headings: scale down on small phones */
  .services-header-grid h2,
  .contact-info-col h2 { font-size: 2rem; }
  /* join-hero-wrap: release fixed height on very small screens */
  .join-hero-wrap { height: auto !important; min-height: 0 !important; }
}

/* ── Active nav link ── */
.nav-link { opacity: 0.6; transition: opacity 0.3s; }
.nav-link.w--current,
.nav-link:hover { opacity: 1; }
.full-page-menu-link { opacity: 0.6; }
.full-page-menu-link.w--current { opacity: 1; }

/* ── PRIVATE CLUB button ── */
.private-club-btn {
  display: none;
  align-items: center;
  margin-left: 16px;
  padding: 0 28px;
  height: 80px;
  border-radius: 100px;
  background-color: rgba(13,27,54,0.07);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: var(--font--colors--title-light);
  text-decoration: none;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.private-club-btn::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transition: left 0.55s ease;
}
.private-club-btn:hover {
  background-color: rgba(13,27,54,0.12);
}
.private-club-btn:hover::after {
  left: 160%;
}

@media (min-width: 992px) {
  .private-club-btn { display: inline-flex; }
  .hamburger-menu { display: none !important; }
}

/* ── Form consent checkbox ── */
.form-consent-row {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  padding-top: 8px;
}
.form-consent-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  opacity: 0.75;
  line-height: 1.5 !important;
}
.form-consent-label input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 3px;
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: #2563EB;
}
.form-consent-label a {
  color: inherit !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-transform: none !important;
  letter-spacing: normal !important;
  opacity: 1;
  display: inline;
}
.form-consent-label a:hover {
  opacity: 0.85;
}

/* ── Primary buttons: blue accent ── */
.primary-button,
input[type="submit"].w-button {
  background-color: #2563EB !important;
  border-color: #2563EB !important;
  color: #ffffff !important;
}
.primary-button:hover,
input[type="submit"].w-button:hover {
  background-color: #1D4ED8 !important;
}
.primary-button .button-bg {
  background: #1D4ED8 !important;
}
.primary-button .button-text {
  mix-blend-mode: normal !important;
  color: #ffffff !important;
}

/* ── Dark-bg sections: explicit white text ── */
.section.hero-v1 h1, .section.hero-v1 h2, .section.hero-v1 h3, .section.hero-v1 h4,
.section.hero-v1 p, .section.hero-v1 .mid, .section.hero-v1 .display-5,
.section.hero-v1 .inner-container,
.cta-v2-section h1, .cta-v2-section h2, .cta-v2-section h3,
.cta-v2-section p, .cta-v2-section .mid,
.section.cta-v3 h1, .section.cta-v3 h2, .section.cta-v3 h3,
.section.cta-v3 p, .section.cta-v3 .mid,
.cta-footer h1, .cta-footer h2, .cta-footer h3,
.cta-footer p, .cta-footer .mid {
  color: #ffffff !important;
}

/* Hero background — replace Webflow cinema camera image */
.section.hero-v1 {
  background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('../img/hero-bg.jpeg') !important;
  background-size: cover !important;
  background-position: center !important;
}

/* CTA "Looking for trusted vendors?" background */
.cta-v2-section {
  background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('../img/cta-vendors-bg.jpeg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.cta-v2-section .blend-overlay {
  mix-blend-mode: normal;
  color: #ffffff !important;
}

/* Hero h1: warm golden tint via overlay blend (same effect as vendors h2) */
.section.hero-v1 h1 {
  mix-blend-mode: overlay;
}

/* Secondary buttons in dark-bg sections */
.section.hero-v1 .secondary-button,
.cta-v2-section .secondary-button,
.section.cta-v3 .secondary-button,
.cta-footer .secondary-button {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.6) !important;
}
.section.hero-v1 .secondary-button .button-text,
.cta-v2-section .secondary-button .button-text,
.section.cta-v3 .secondary-button .button-text,
.cta-footer .secondary-button .button-text {
  color: #ffffff !important;
}

/* ── Other pages: nav pill visible on light background ── */
body:not(.page-home) .nav-menu-desktop {
  background-color: rgba(13,27,54,0.05) !important;
  box-shadow: inset 0 0 0 1px rgba(13,27,54,0.1) !important;
}

/* ── Mobile header (< 992px) ── */
@media (max-width: 991px) {
  /* Swap to vertical mobile logo */
  .header-logo-img { display: none !important; }
  .header-logo-mobile-img { display: block; }
  /* Hamburger: explicit dark on light mobile header for ALL pages */
  .hamburger-menu-line {
    background-color: #0D1B36 !important;
  }
  .page-home .header-wrapper---absolute .hamburger-menu-line {
    background-color: #0D1B36 !important;
  }
  /* PRIVATE CLUB: solid dark pill, clearly visible */
  .private-club-btn {
    display: inline-flex !important;
    order: 1;
    height: 40px;
    padding: 0 16px;
    font-size: 0.5625rem;
    letter-spacing: .1em;
    margin-left: 0;
    color: #ffffff !important;
    background-color: #0D1B36 !important;
  }
  .private-club-btn:hover {
    background-color: #1a2f56 !important;
  }
  .private-club-btn::after { display: none; }
  .hamburger-menu {
    order: 2;
  }
  .header-right-side {
    gap: 8px;
  }

  /* When nav open: white logo, white X circle, white PRIVATE CLUB */
  body.nav-open .header-logo-mobile-img {
    filter: brightness(0) invert(1);
  }
  body.nav-open .hamburger-menu {
    background-color: rgba(255,255,255,0.2) !important;
  }
  body.nav-open .hamburger-menu-line {
    background-color: #ffffff !important;
  }
  body.nav-open .private-club-btn {
    color: #ffffff !important;
    background-color: rgba(255,255,255,0.15) !important;
  }
}

/* ── Home page only: white nav over full-width dark hero (desktop only) ── */
@media (min-width: 992px) {
  .page-home .header-wrapper---absolute .nav-link {
    color: #ffffff !important;
  }
  .page-home .header-wrapper---absolute .private-club-btn {
    color: #ffffff !important;
    background-color: rgba(255,255,255,0.12) !important;
  }
  .page-home .header-wrapper---absolute .private-club-btn:hover {
    background-color: rgba(255,255,255,0.22) !important;
  }
  .page-home .header-wrapper---absolute .hamburger-menu-line {
    background-color: #ffffff !important;
  }
}
