
html, body {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
.full-width-wrap {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
html {
  margin-top: 0 !important;
}

body.admin-bar {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#wpadminbar {
  display: none !important;
}

html, body {
  margin: 0 !important;
  padding: 0 !important;
  background: #07140d !important;
}

.wp-site-blocks,
.wp-block-post-content,
.site-main,
.entry-content,
.post-content,
.page-content {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
}

.full-width-wrap {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}

.hero {
  min-height: 100vh;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 7rem 1.5rem 16rem;
  overflow: hidden;
}







    /* ── Sponsors ── */
    .section-sponsors {
      background: #0b1a10;
      padding: 6rem 1.5rem;
      border-top: 1px solid rgba(201,168,76,.12);
    }
    .sponsors-header { text-align: center; margin-bottom: 3.5rem; }
    .sponsors-tier { margin-bottom: 2.5rem; }
    .sponsors-tier-label {
      font-size: .68rem; font-weight: 800;
      letter-spacing: .16em; text-transform: uppercase;
      color: rgba(255,255,255,.35);
      text-align: center; margin-bottom: 1.5rem;
    }
    .sponsors-logos {
      display: flex; flex-wrap: wrap;
      justify-content: center; gap: 1.2rem;
    }
    .sponsor-card {
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 4px;
      padding: 1.8rem 2rem;
      text-align: center;
      min-width: 200px; max-width: 320px;
      flex: 1;
      transition: border-color .3s, background .3s;
    }
    .sponsor-card:hover {
      border-color: rgba(201,168,76,.3);
      background: rgba(255,255,255,.07);
    }
    .sponsor-card-featured {
      border-color: rgba(201,168,76,.2);
      max-width: 400px;
    }
    .sponsor-card-tbd {
      border-style: dashed;
      opacity: .5;
    }
    .sponsor-name {
      font-family: 'Lora', serif;
      font-weight: 700; font-size: 1.1rem;
      color: var(--white); margin-bottom: .3rem;
    }
    .sponsor-type {
      font-size: .72rem; font-weight: 600;
      letter-spacing: .1em; text-transform: uppercase;
      color: var(--gold-light);
    }
    .sponsor-desc {
      font-size: .82rem; line-height: 1.7;
      color: rgba(255,255,255,.5); margin-top: .8rem;
    }
    .sponsors-divider {
      border: none; border-top: 1px solid rgba(255,255,255,.07);
      margin: 2.5rem 0;
    }

    /* ── Photo Gallery ── */
    .section-gallery {
      background: var(--charcoal);
      padding: 6rem 1.5rem;
      position: relative;
      overflow: hidden;
    }
    .section-gallery::before {
      content: '';
      position: absolute; inset: 0;
      background-image:
        linear-gradient(rgba(77,184,112,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(77,184,112,.03) 1px, transparent 1px);
      background-size: 64px 64px;
    }
    .gallery-header {
      text-align: center; margin-bottom: 3.5rem;
      position: relative; z-index: 1;
    }
    .gallery-header .label { color: var(--gold-light); }
    .gallery-header h2 { color: var(--white); }
    .gallery-grid {
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 1.5rem;
      max-width: 1120px; margin: 0 auto;
      position: relative; z-index: 1;
    }
    @media(max-width: 800px) {
      .gallery-grid { grid-template-columns: 1fr; }
    }
    .gallery-card {
      position: relative; overflow: hidden;
      border-radius: 4px;
      border: 1px solid rgba(255,255,255,.07);
    }
    .gallery-card img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
      transition: transform .5s ease;
    }
    .gallery-card:hover img { transform: scale(1.03); }
    .gallery-card .caption {
      position: absolute; bottom: 0; left: 0; right: 0;
      padding: 1.5rem 1.4rem 1.2rem;
      background: linear-gradient(to top, rgba(6,15,9,.95) 0%, transparent 100%);
    }
    .gallery-card .caption-title {
      font-family: 'Lora', serif;
      font-weight: 700; font-size: .95rem;
      color: var(--white); margin-bottom: .2rem;
    }
    .gallery-card .caption-sub {
      font-size: .78rem; color: rgba(255,255,255,.5);
    }
    .gallery-card-tall { min-height: 520px; }
    .gallery-card-wide { min-height: 320px; }

    /* ── WordPress isolation ── */
    html, body {
      margin: 0 !important;
      padding: 0 !important;
      overflow-x: hidden;
    }
    /* Hide WP admin bar space shift */
    #wpadminbar ~ * { padding-top: 0 !important; }
    /* Override common theme resets that could break layout */
    *, *::before, *::after { box-sizing: border-box; }
    img { max-width: 100%; height: auto; }
    a { text-decoration: none; }

    :root {
      --green-darkest: #07140d;
      --green-dark:    #0d2418;
      --green-deep:    #183320;
      --green-mid:     #2d6b47;
      --green-bright:  #4db870;
      --gold:          #c9a84c;
      --gold-light:    #e2c06a;
      --cream:         #f2ece0;
      --white:         #ffffff;
      --charcoal:      #111111;
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'DM Sans', sans-serif;
      background: var(--green-darkest);
      color: var(--white);
      overflow-x: hidden;
    }

    /* ─────────── NAV ─────────── */
    nav {
      position: fixed; top: var(--wp-admin-bar-height, 0px); left: 0; right: 0; z-index: 99998;
      display: flex; align-items: center; justify-content: space-between;
      padding: 1rem 3.5rem;
      background: rgba(7,20,13,0.96);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(201,168,76,0.2);
    }
    .nav-logo img {
      height: 36px; width: auto; display: block;
    }
    .nav-right {
      display: flex; align-items: center; gap: 1.6rem;
    }
    .nav-date {
      font-size: .78rem; font-weight: 500;
      letter-spacing: .08em; text-transform: uppercase;
      color: rgba(255,255,255,0.4);
    }
    .btn-primary {
      background: var(--gold);
      color: #0d2418;
      font-weight: 700; font-size: .82rem;
      padding: .65rem 1.6rem;
      border-radius: 2px;
      text-decoration: none;
      letter-spacing: .08em; text-transform: uppercase;
      transition: background .2s, transform .15s;
      white-space: nowrap;
    }
    .btn-primary:hover { background: var(--gold-light); transform: translateY(-1px); }
    @media(max-width:600px) {
      nav { padding: .85rem 1.2rem; }
      .nav-date { display: none; }
    }

    /* ─────────── HERO ─────────── */
    .hero {
      min-height: 100vh;
      position: relative;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      padding: 9rem 1.5rem 16rem;
      overflow: hidden;
    }
    .hero-bg {
      position: absolute; inset: 0; z-index: 0;
      background:
        radial-gradient(ellipse 110% 60% at 50% -10%, rgba(77,184,112,.18) 0%, transparent 65%),
        radial-gradient(ellipse 60% 50% at 10% 90%, rgba(45,107,71,.16) 0%, transparent 60%),
        linear-gradient(180deg, #071610 0%, #0d2418 45%, #060f09 100%);
    }
    .hero-grain {
      position: absolute; inset: 0; z-index: 1;
      opacity: .025;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
      background-repeat: repeat;
      background-size: 200px 200px;
    }
    .hero-grid {
      position: absolute; inset: 0; z-index: 1;
      background-image:
        linear-gradient(rgba(201,168,76,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,168,76,.04) 1px, transparent 1px);
      background-size: 80px 80px;
    }
    /* skyline */
    .hero-skyline { height: 320px;
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 2;
    }
    .skyline-gradient {
      position: absolute; bottom: 0; left: 0; right: 0; height: 140px;
      background: linear-gradient(to top, #060f09 20%, transparent 100%);
      z-index: 3;
    }

    .hero-inner {
      position: relative; z-index: 5;
      max-width: 960px; text-align: center;
      display: flex; flex-direction: column; align-items: center;
    }
    .hero-logo {
      margin-bottom: 2.2rem;
      animation: fadeUp .6s ease both;
    }
    .hero-logo img { height: 52px; width: auto; }

    .hero-pill {
      display: inline-flex; align-items: center; gap: .65rem;
      background: rgba(201,168,76,.1);
      border: 1px solid rgba(201,168,76,.35);
      border-radius: 100px;
      padding: .38rem 1.1rem;
      font-size: .72rem; font-weight: 600;
      letter-spacing: .14em; text-transform: uppercase;
      color: var(--gold-light);
      margin-bottom: 1.8rem;
      animation: fadeUp .7s .05s ease both;
    }
    .pulse {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--gold);
      animation: pulse 2.2s ease infinite;
    }
    @keyframes pulse {
      0%,100% { opacity:1; transform:scale(1); }
      50% { opacity:.3; transform:scale(1.6); }
    }

    .hero-title {
      margin-bottom: 1.6rem;
      animation: fadeUp .85s .1s ease both;
      line-height: .92;
    }
    .t-cannabis {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(5.5rem, 15vw, 12rem);
      letter-spacing: .03em;
      color: var(--white);
      display: block;
      text-shadow: 0 2px 60px rgba(0,0,0,.6);
    }
    .t-equity {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(4.5rem, 12vw, 9.5rem);
      letter-spacing: .05em;
      display: block;
      background: linear-gradient(135deg, var(--green-bright), #7de09d);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .t-summit {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(4.5rem, 12vw, 9.5rem);
      letter-spacing: .05em;
      display: block;
      color: var(--white);
      text-shadow: 0 2px 60px rgba(0,0,0,.6);
    }

    .hero-sub {
      font-family: 'Lora', serif;
      font-style: italic;
      font-size: clamp(.95rem, 2vw, 1.15rem);
      color: rgba(255,255,255,.6);
      max-width: 540px; line-height: 1.8;
      margin-bottom: 2.8rem;
      animation: fadeUp 1s .18s ease both;
    }

    .hero-meta {
      display: flex; flex-wrap: wrap; justify-content: center;
      gap: 0;
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 4px;
      overflow: hidden;
      margin-bottom: 2.8rem;
      animation: fadeUp 1s .25s ease both;
    }
    .meta-item {
      display: flex; align-items: center; gap: .6rem;
      padding: .9rem 2rem;
      font-size: .85rem; font-weight: 600;
      color: rgba(255,255,255,.85);
      background: rgba(255,255,255,.04);
      border-right: 1px solid rgba(255,255,255,.1);
    }
    .meta-item:last-child { border-right: none; }
    .meta-icon {
      width: 20px; height: 20px; flex-shrink: 0;
      opacity: .7;
    }
    @media(max-width:600px) {
      .meta-item { padding: .7rem 1.1rem; font-size: .78rem; }
    }

    .hero-body {
      font-size: .95rem; line-height: 1.8;
      color: rgba(255,255,255,.5);
      max-width: 560px; margin: 0 auto 2.2rem;
      text-align: center;
      animation: fadeUp 1s .28s ease both;
    }
    .hero-ctas {
      display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem;
      animation: fadeUp 1s .32s ease both;
    }
    .btn-hero {
      display: inline-flex; align-items: center; gap: .55rem;
      background: var(--gold);
      color: #0d2418;
      font-weight: 800; font-size: .95rem;
      padding: 1.1rem 2.5rem;
      border-radius: 2px;
      text-decoration: none;
      letter-spacing: .07em; text-transform: uppercase;
      box-shadow: 0 4px 32px rgba(201,168,76,.25);
      transition: background .2s, transform .15s, box-shadow .2s;
    }
    .btn-hero:hover {
      background: var(--gold-light);
      transform: translateY(-2px);
      box-shadow: 0 8px 40px rgba(201,168,76,.35);
    }
    .btn-ghost {
      display: inline-flex; align-items: center; gap: .5rem;
      background: transparent; color: rgba(255,255,255,.75);
      font-weight: 500; font-size: .92rem;
      padding: 1.1rem 2rem;
      border-radius: 2px;
      text-decoration: none;
      border: 1px solid rgba(255,255,255,.2);
      transition: all .2s;
    }
    .btn-ghost:hover {
      border-color: rgba(255,255,255,.5);
      background: rgba(255,255,255,.06);
      color: var(--white);
    }

    .scroll-hint {
      position: absolute; bottom: 2.2rem; left: 50%; transform: translateX(-50%);
      z-index: 6;
      display: flex; flex-direction: column; align-items: center; gap: .4rem;
    }
    .scroll-hint span {
      font-size: .62rem; letter-spacing: .14em; text-transform: uppercase;
      color: rgba(255,255,255,.25);
    }
    .scroll-bar {
      width: 1px; height: 38px;
      background: linear-gradient(to bottom, rgba(201,168,76,.6), transparent);
      animation: scrollAnim 2.2s ease infinite;
    }
    @keyframes scrollAnim {
      0%,100% { opacity:.5; transform:scaleY(1); }
      50% { opacity:1; transform:scaleY(1.25); }
    }
    @keyframes fadeUp {
      from { opacity:0; transform:translateY(20px); }
      to { opacity:1; transform:translateY(0); }
    }

    /* ─────────── ABOUT ─────────── */
    .section-about {
      background: var(--cream);
      padding: 7rem 1.5rem;
      position: relative;
    }
    .section-about::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0; height: 4px;
      background: linear-gradient(90deg, var(--green-mid), var(--gold), var(--green-bright), var(--gold), var(--green-mid));
    }
    .container { max-width: 1120px; margin: 0 auto; }

    .about-grid {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 6rem; align-items: center;
    }
    @media(max-width:800px) { .about-grid { grid-template-columns:1fr; gap:3.5rem; } }

    .label {
      font-size: .68rem; font-weight: 800;
      letter-spacing: .18em; text-transform: uppercase;
      color: var(--green-mid); margin-bottom: .8rem;
      display: block;
    }
    h2 {
      font-family: 'Lora', serif;
      font-weight: 700;
      font-size: clamp(1.9rem, 4.5vw, 3rem);
      line-height: 1.12;
      color: #0d2418;
      margin-bottom: 1.3rem;
    }
    .body-text {
      font-size: 1.05rem; line-height: 1.9; color: #3a4a3a;
    }
    .body-text + .body-text { margin-top: .9rem; }

    .quote-card { border-left: 4px solid var(--gold);
      background: var(--green-deep);
      border-radius: 3px; padding: 2.8rem;
      position: relative; overflow: hidden;
      margin-bottom: 1.4rem;
    }
    .quote-card::before {rit
      content: '“';
      position: absolute; top: -1.5rem; left: 1.8rem;
      font-family: 'Lora', serif;
      font-size: 10rem; line-height: 1;
      color: rgba(77,184,112,.12);
      pointer-events: none;
    }
    .quote-card::after {
      content: '';
      position: absolute; bottom: -20px; right: -20px;
      width: 120px; height: 120px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(201,168,76,.1) 0%, transparent 70%);
    }
    .quote-text {
      font-family: 'Lora', serif; font-style: italic;
      font-size: 1rem; line-height: 1.8;
      color: rgba(255,255,255,.82);
      position: relative; z-index: 1;
    }
    .quote-attr {
      margin-top: 1.1rem;
      font-size: .78rem; font-weight: 700;
      color: var(--gold-light);
      letter-spacing: .05em;
      position: relative; z-index: 1;
    }

    .stats {
      display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem;
    }
    .stat {
      border: 1px solid rgba(45,107,71,.2);
      border-radius: 3px; padding: 1.3rem 1rem; text-align: center;
      background: rgba(45,107,71,.05);
    }
    .stat-n {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2.8rem; letter-spacing: .03em;
      color: var(--green-mid);
    }
    .stat-l { font-size: .68rem; color: #6a7a6a; margin-top: .15rem; line-height: 1.4; }

    /* ─────────── EXPECT ─────────── */
    .section-expect {
      background: #0b1a10;
      padding: 7rem 1.5rem;
      position: relative; overflow: hidden;
    }
    .section-expect::before {
      content: '';
      position: absolute; inset: 0;
      background-image:
        linear-gradient(rgba(77,184,112,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(77,184,112,.04) 1px, transparent 1px);
      background-size: 64px 64px;
    }
    .section-header {
      text-align: center; margin-bottom: 4rem;
      position: relative; z-index: 1;
    }
    .section-header .label { color: var(--gold-light); }
    .section-header h2 { color: var(--white); }

    .cards {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 1.2rem;
      position: relative; z-index: 1;
    }
    .card {
      background: rgba(255,255,255,.03);
      border: 1px solid rgba(255,255,255,.07);
      border-radius: 3px; padding: 2.2rem 2rem;
      transition: border-color .3s, background .3s, transform .25s;
    }
    .card:hover {
      border-color: rgba(201,168,76,.4);
      background: rgba(255,255,255,.06);
      transform: translateY(-4px);
      box-shadow: 0 12px 40px rgba(0,0,0,.3);
    }
    .card-num {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2.8rem; line-height: 1;
      color: rgba(77,184,112,.35);
      margin-bottom: .8rem;
      letter-spacing: .04em;
    }
    .card-title {
      font-family: 'Lora', serif;
      font-weight: 700; font-size: 1.05rem;
      color: var(--white); margin-bottom: .6rem;
    }
    .card-body {
      font-size: .88rem; line-height: 1.8;
      color: rgba(255,255,255,.5);
    }

    /* ─────────── WHO ─────────── */
    .section-who {
      background: var(--green-deep);
      padding: 7rem 1.5rem;
    }
    .who-grid {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 5rem; align-items: start;
    }
    @media(max-width:800px) { .who-grid { grid-template-columns:1fr; gap:3rem; } }

    .who-left .label { color: var(--gold-light); }
    .who-left h2 { color: var(--white); }
    .who-left .body-text { color: rgba(255,255,255,.6); margin-bottom: 2rem; }

    .audience { list-style: none; }
    .audience li {
      display: flex; align-items: flex-start; gap: 1rem;
      padding: 1.1rem 0;
      border-bottom: 1px solid rgba(255,255,255,.08);
      font-size: .93rem; color: rgba(255,255,255,.8); line-height: 1.65;
    }
    .audience li:last-child { border-bottom: none; }
    .aud-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--gold); flex-shrink: 0; margin-top: .5rem;
    }

    .info-box { transition: border-color .25s, box-shadow .25s;
      background: rgba(0,0,0,.2);
      border: 1px solid rgba(201,168,76,.18);
      border-radius: 3px; padding: 2rem;
      margin-bottom: 1.2rem;
    }
    .info-box:last-child { margin-bottom: 0; }
    .info-box:hover { border-color: rgba(201,168,76,.35); box-shadow: 0 4px 20px rgba(0,0,0,.2); }
    .info-title {
      font-family: 'Lora', serif; font-weight: 700; font-size: .95rem;
      color: var(--gold-light); margin-bottom: .75rem;
      text-transform: uppercase; letter-spacing: .06em; font-style: normal;
    }
    .info-body {
      font-size: .88rem; line-height: 1.8; color: rgba(255,255,255,.58);
    }
    .info-links { margin-top: 1rem; display: flex; flex-direction: column; gap: .35rem; }
    .info-links a {
      color: var(--gold-light); font-size: .86rem;
      text-decoration: none; transition: color .2s;
      display: inline-flex; align-items: center; gap: .4rem;
    }
    .info-links a:hover { color: var(--white); }

    /* ─────────── PARTNER BAND ─────────── */

    .section-rsvp {
      background: var(--green-deep);
      padding: 6rem 1.5rem;
      border-top: 1px solid rgba(201,168,76,.15);
      border-bottom: 1px solid rgba(201,168,76,.15);
    }
    .rsvp-inner {
      max-width: 680px; margin: 0 auto; text-align: center;
    }
    .rsvp-body {
      font-size: 1rem; line-height: 1.85;
      color: rgba(255,255,255,.6);
      margin-bottom: .6rem;
    }
    .section-partner {
      background: var(--green-darkest);
      border-top: 1px solid rgba(201,168,76,.12);
      border-bottom: 1px solid rgba(201,168,76,.12);
      padding: 3.5rem 1.5rem;
    }
    .partner-inner {
      max-width: 1000px; margin: 0 auto;
      display: flex; flex-wrap: wrap; align-items: center; gap: 2.5rem;
    }
    .partner-left { flex-shrink: 0; }
    .partner-label-sm {
      font-size: .66rem; font-weight: 700;
      letter-spacing: .14em; text-transform: uppercase;
      color: rgba(255,255,255,.3); margin-bottom: .4rem;
    }
    .partner-name {
      font-family: 'Lora', serif; font-weight: 700;
      font-size: 1.3rem; color: var(--gold-light);
    }
    .partner-right {
      flex: 1; min-width: 260px;
      font-size: .88rem; line-height: 1.8;
      color: rgba(255,255,255,.5);
    }
    .divider-line {
      width: 1px; height: 48px;
      background: rgba(201,168,76,.2);
      flex-shrink: 0;
    }
    @media(max-width:640px) { .divider-line { display:none; } }

    /* ─────────── CTA ─────────── */
    .section-cta {
      padding: 8rem 1.5rem;
      text-align: center; position: relative; overflow: hidden;
      background:
        radial-gradient(ellipse 90% 60% at 50% 50%, rgba(45,107,71,.18) 0%, transparent 70%),
        linear-gradient(180deg, #091510 0%, #0d2018 100%);
    }
    .cta-grid {
      position: absolute; inset: 0;
      background-image:
        linear-gradient(rgba(201,168,76,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,168,76,.04) 1px, transparent 1px);
      background-size: 88px 88px;
    }
    .cta-inner { position: relative; z-index: 1; }
    .cta-label {
      font-size: .68rem; font-weight: 800;
      letter-spacing: .18em; text-transform: uppercase;
      color: var(--gold-light); margin-bottom: 1rem;
    }
    .cta-h2 {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(3rem, 8vw, 6.5rem);
      letter-spacing: .03em; line-height: .95;
      color: var(--white); margin-bottom: 1rem;
    }
    .cta-sub {
      font-family: 'Lora', serif; font-style: italic;
      font-size: 1.05rem; color: rgba(255,255,255,.5);
      max-width: 500px; margin: 0 auto 3rem; line-height: 1.8;
    }
    .cta-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
    .btn-outline {
      display: inline-flex; align-items: center; gap: .5rem;
      background: transparent; color: var(--gold-light);
      font-weight: 600; font-size: .88rem;
      padding: 1.05rem 1.9rem; border-radius: 2px;
      text-decoration: none;
      border: 1px solid rgba(201,168,76,.38);
      transition: all .2s;
    }
    .btn-outline:hover {
      border-color: var(--gold);
      background: rgba(201,168,76,.08);
      color: var(--gold);
    }

    /* ─────────── FOOTER ─────────── */
    footer {
      background: #040b06;
      padding: 3rem 1.5rem;
      border-top: 3px solid var(--green-mid);
    }
    .footer-inner {
      max-width: 1120px; margin: 0 auto;
      display: flex; flex-wrap: wrap;
      align-items: center; justify-content: space-between; gap: 1.5rem;
    }
    .footer-logo img { height: 30px; width: auto; }
    .footer-right { text-align: right; }
    .footer-links {
      display: flex; gap: 2rem; flex-wrap: wrap; justify-content: flex-end;
      margin-bottom: .5rem;
    }
    .footer-links a {
      font-size: .78rem; color: rgba(255,255,255,.3);
      text-decoration: none; transition: color .2s;
    }
    .footer-links a:hover { color: var(--gold-light); }
    .footer-copy { font-size: .72rem; color: rgba(255,255,255,.18); }
  
    /* Scroll progress bar */
    .scroll-progress {
      position: fixed; top: 0; left: 0; z-index: 300;
      height: 3px; width: 0%;
      background: linear-gradient(90deg, var(--green-bright), var(--gold));
      transition: width .1s linear;
      pointer-events: none;
    }

  
    /* ── GALLERY ── */
    .section-gallery {
      background: #0b1a10;
      padding: 6rem 1.5rem;
      position: relative;
    }
    .gallery-header {
      text-align: center;
      margin-bottom: 3rem;
    }
    .gallery-header h2 {
      color: var(--white);
      max-width: 600px;
      margin: 0 auto;
    }
    .gallery-grid {
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 1.5rem;
      align-items: start;
    }
    @media(max-width: 800px) {
      .gallery-grid { grid-template-columns: 1fr; }
    }
    .gallery-card {
      border-radius: 6px;
      overflow: hidden;
      background: rgba(255,255,255,.03);
      border: 1px solid rgba(255,255,255,.08);
      transition: transform .3s, border-color .3s;
    }
    .gallery-card:hover {
      transform: translateY(-4px);
      border-color: rgba(201,168,76,.3);
    }
    .gallery-img-wrap {
      overflow: hidden;
      width: 100%;
    }
    .gallery-card--tall .gallery-img-wrap {
      height: 520px;
    }
    .gallery-card--wide .gallery-img-wrap {
      height: 340px;
    }
    .gallery-img-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
      display: block;
      transition: transform .5s ease;
    }
    .gallery-card:hover .gallery-img-wrap img {
      transform: scale(1.03);
    }
    .gallery-caption {
      padding: 1.2rem 1.4rem;
      display: flex;
      flex-direction: column;
      gap: .5rem;
    }
    .gallery-tag {
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--gold-light);
    }
    .gallery-caption p {
      font-size: .85rem;
      line-height: 1.65;
      color: rgba(255,255,255,.55);
      margin: 0;
    }
    @media(max-width: 800px) {
      .gallery-card--tall .gallery-img-wrap { height: 400px; }
      .gallery-card--wide .gallery-img-wrap { height: 260px; }
    }

  


.skyline-group { animation: skyrise 6s ease-in-out infinite; }
@keyframes skyrise {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}


/* ============================================================================
   ELEMENTOR COMPATIBILITY LAYER — Cannabis Equity Summit
   ----------------------------------------------------------------------------
   The stylesheet above is the ORIGINAL launched CSS, untouched.

   Elementor wraps every widget in its own markup:

       <div class="elementor-element  YOUR-CLASS  elementor-widget-heading">
         <div class="elementor-widget-container">
           <h2 class="elementor-heading-title"> ... </h2>

   ...so a class you assign lands on the OUTER div, not on the element the
   original CSS was written for. This layer re-points each rule at the node
   Elementor actually renders, so the page is pixel-identical to the launched
   HTML while every string stays editable in the visual builder.

   Nothing here changes the DESIGN. It only re-targets it.
   Do not edit unless you are comfortable with CSS.
   ========================================================================= */

/* ---- 0. Zero Elementor's container box-model defaults ------------------- */
/* Every Elementor container ships `padding:10px` and `gap:20px` through CSS
   custom properties. Those beat the original class rules (`.card{padding:2.2rem
   2rem}`, `.sponsor-card{padding:1.8rem 2rem}`), so cards silently collapsed to
   10px. Zero the variables once, here, and let the launched stylesheet own the
   box model. Rules that genuinely need a gap set `gap:` directly and still win.
   This file only loads on the Summit page, so the blanket scope is safe. */
.elementor .e-con {
  --padding-top: 0px; --padding-right: 0px;
  --padding-bottom: 0px; --padding-left: 0px;
  --padding-block-start: 0px; --padding-block-end: 0px;
  --padding-inline-start: 0px; --padding-inline-end: 0px;
  --margin-top: 0px; --margin-right: 0px;
  --margin-bottom: 0px; --margin-left: 0px;
  --margin-block-start: 0px; --margin-block-end: 0px;
  --margin-inline-start: 0px; --margin-inline-end: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
}

/* ---- 1. Neutralise Elementor's container defaults ----------------------- */
/* Elementor containers ship `display:flex; flex-direction:column`. Every rule
   below that needs a row or a block MUST say so explicitly, because
   `.elementor .e-con` (0,2,0) outranks a bare `.hero` (0,1,0) from the
   original sheet. This is the single biggest source of drift in a port. */
.elementor .e-con.section-about,
.elementor .e-con.section-expect,
.elementor .e-con.section-who,
.elementor .e-con.section-partner,
.elementor .e-con.section-sponsors,
.elementor .e-con.section-rsvp,
.elementor .e-con.section-cta,
.elementor .e-con.site-footer {
  --width: 100%;
  --content-width: 100%;
  --padding-top: 0; --padding-right: 0;
  --padding-bottom: 0; --padding-left: 0;
  --gap: 0;
  max-width: 100%;
  display: block;
}
/* the section classes above already supply their own padding/background */

.elementor .e-con > .e-con-inner { max-width: 100%; padding: 0; width: 100%; }

/* The hero is the one section that was itself a centred flex column -------- */
.elementor .e-con.hero {
  --width: 100%; --content-width: 100%;
  --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
  --gap: 0; max-width: 100%;
  min-height: 100vh; position: relative;
  display: flex; flex-direction: column;
  align-items: center; justify-content: flex-start;
  padding: 7rem 1.5rem 16rem; overflow: hidden;
}
/* children of the hero shrink-to-fit exactly as they did in the original */
.elementor .e-con.hero > .elementor-element { width: auto; max-width: 100%; }
.elementor .e-con.hero-inner { width: auto; max-width: 960px; }

/* Section 5 painted its gold from an inline style; own it in CSS so the port
   does not depend on an Elementor background setting surviving an edit. */
.elementor .e-con.section-partner { background-color: #d4b46a; }

/* Inner layout containers keep the original display model ----------------- */
.elementor .e-con.container      { max-width: 1120px; margin: 0 auto; display: block; }
.elementor .e-con.about-grid     { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; align-items: center; max-width: 1120px; margin: 0 auto; }
.elementor .e-con.who-grid       { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; max-width: 1120px; margin: 0 auto; }
.elementor .e-con.cards          { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.2rem; }
.elementor .e-con.stats          { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.elementor .e-con.sponsors-logos { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 1.2rem; }
.elementor .e-con.hero-inner     { position: relative; z-index: 5; text-align: center; display: flex; flex-direction: column; align-items: center; }
.elementor .e-con.hero-ctas,
.elementor .e-con.cta-btns       { display: flex; flex-direction: row; flex-wrap: wrap; gap: 1rem; justify-content: center; align-items: normal; width: auto; }
.elementor .e-con.partner-left   { width: auto; flex: 0 0 auto; }
.elementor .e-con.partner-inner  { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 2.5rem; }
.elementor .e-con.rsvp-inner     { max-width: 680px; margin: 0 auto; text-align: center; display: block; }
.elementor .e-con.cta-inner      { position: relative; z-index: 1; display: block; text-align: center; }
.elementor .e-con.sponsors-tier  { margin-bottom: 2.5rem; display: block; }
.elementor .e-con.sponsors-header,
.elementor .e-con.section-header { display: block; }
.elementor .e-con.ces-center-block { display: block; text-align: center; margin-top: 3rem; }

/* Cards / boxes keep their own chrome ------------------------------------- */
.elementor .e-con.card,
.elementor .e-con.stat,
.elementor .e-con.info-box,
.elementor .e-con.sponsor-card { display: block; }
.elementor .e-con.sponsor-card { flex: 1; min-width: 200px; max-width: 320px; }
.elementor .e-con.sponsor-card.sponsor-card-featured { max-width: 400px; }

/* ---- 2. Let widget wrappers pass typography straight through ------------ */
/* `ces-x` is added to every content widget by the generator.               */
.elementor .ces-x > .elementor-widget-container { margin: 0; padding: 0; }
.elementor .ces-x .elementor-heading-title,
.elementor .ces-x .elementor-widget-container > p,
.elementor .ces-x .elementor-widget-container > div > p {
  font-family: inherit; font-size: inherit; font-weight: inherit;
  line-height: inherit; letter-spacing: inherit; text-transform: inherit;
  color: inherit; margin: 0; font-style: inherit;
}
/* text-editor emits <p>; the original markup was a single element ---------- */
.elementor .ces-x .elementor-widget-container > p:last-child { margin-bottom: 0; }
/* The launched sheet spaced consecutive body paragraphs with the sibling
   selector `.body-text + .body-text`. Elementor puts all four paragraphs
   inside ONE text widget, so that selector can never match - restore the
   same .9rem rhythm between <p> siblings instead. */
.elementor .body-text .elementor-widget-container > p + p { margin-top: .9rem; }

/* Buttons sitting in a flex row must size to their content, or each widget
   div claims the full row and the row wraps. */
.elementor .e-con.hero-ctas > .elementor-element,
.elementor .e-con.cta-btns  > .elementor-element { width: auto; flex: 0 0 auto; }
.elementor .elementor-button-wrapper { display: inline-block; }

/* Decorative-only widgets must not add spacing --------------------------- */
.elementor .ces-decor > .elementor-widget-container { margin: 0; padding: 0; line-height: 0; }

/* ---- 3. Buttons -------------------------------------------------------- */
/* CRITICAL: `.btn-hero` &c. land on the WIDGET WRAPPER, and the original sheet
   styles those classes with a full box model (padding/background/border).
   Re-applying the same skin to the inner <a> would paint it twice and add
   80x36px of phantom padding to every button. Strip the wrapper back to a
   bare flex box first, then skin only the <a> Elementor actually renders. */
.elementor .btn-hero, .elementor .btn-ghost, .elementor .btn-outline {
  padding: 0; background: none; border: 0; box-shadow: none;
  width: auto; letter-spacing: normal; text-transform: none;
}

/* Re-apply the original button skins to Elementor's <a class="elementor-button"> */
.elementor .btn-hero .elementor-button {
  display: inline-flex; align-items: center; gap: .55rem;
  background: var(--gold); color: #0d2418;
  font-family: 'DM Sans', sans-serif;
  font-weight: 800; font-size: .95rem;
  padding: 1.1rem 2.5rem; border-radius: 2px;
  text-decoration: none; letter-spacing: .07em; text-transform: uppercase;
  box-shadow: 0 4px 32px rgba(201,168,76,.25);
  transition: background .2s, transform .15s, box-shadow .2s;
  border: 0; fill: #0d2418;
}
.elementor .btn-hero .elementor-button:hover {
  background: var(--gold-light); transform: translateY(-2px);
  box-shadow: 0 8px 40px rgba(201,168,76,.35);
}
.elementor .btn-ghost .elementor-button {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: rgba(255,255,255,.75);
  font-family: 'DM Sans', sans-serif;
  font-weight: 500; font-size: .92rem;
  padding: 1.1rem 2rem; border-radius: 2px; text-decoration: none;
  border: 1px solid rgba(255,255,255,.2); transition: all .2s;
}
.elementor .btn-ghost .elementor-button:hover {
  border-color: rgba(255,255,255,.45); color: #fff;
}
.elementor .btn-outline .elementor-button {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: var(--gold-light);
  font-family: 'DM Sans', sans-serif;
  font-weight: 600; font-size: .88rem;
  padding: 1.05rem 1.9rem; border-radius: 2px; text-decoration: none;
  border: 1px solid rgba(201,168,76,.38); transition: all .2s;
}
.elementor .btn-outline .elementor-button:hover {
  border-color: var(--gold); background: rgba(201,168,76,.08); color: var(--gold);
}
/* the launched buttons carry a leading arrow glyph */
.elementor .btn-hero .elementor-button-text::before {
  content: ""; display: inline-block; width: 16px; height: 16px;
  margin-right: .55rem; vertical-align: -2px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d2418' stroke-width='2.5'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* ---- 4. Images --------------------------------------------------------- */
.elementor .hero-logo img      { height: 52px; width: auto; }
.elementor .footer-logo img    { height: 30px; width: auto; }
.elementor .partner-logo img   { max-width: 200px; height: auto; }
/* tier 1: natural size inside the card, exactly as launched */
.elementor .sponsor-logo img   { max-width: 100%; max-height: 124px; height: auto;
                                 width: auto; display: block; margin: 0 auto .8rem; }
/* tier 2: the launched page pinned these to 44px tall via an inline style */
.elementor .sponsor-logo-sm img { height: 44px; width: auto; opacity: .9; }
.elementor .hero-logo,
.elementor .sponsor-logo,
.elementor .partner-logo       { text-align: center; }
.elementor .hero-logo          { margin-bottom: 2.2rem; animation: fadeUp .6s ease both; }

/* ---- 5. Icon lists ----------------------------------------------------- */
/* hero meta strip: three pills with stroked line-icons                      */
.elementor .hero-meta .elementor-icon-list-items {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0;
  border: 1px solid rgba(255,255,255,.1); border-radius: 4px;
  overflow: hidden; margin: 0; padding: 0; list-style: none;
}
.elementor .hero-meta { margin-bottom: 2.8rem; animation: fadeUp 1s .25s ease both; }
.elementor .hero-meta .elementor-icon-list-item {
  display: flex; align-items: center; gap: .6rem;
  padding: .9rem 2rem; font-size: .85rem; font-weight: 600;
  font-family: 'DM Sans', sans-serif;
  color: rgba(255,255,255,.85); background: rgba(255,255,255,.04);
  border-right: 1px solid rgba(255,255,255,.1); margin: 0;
}
.elementor .hero-meta .elementor-icon-list-item:last-child { border-right: none; }
.elementor .hero-meta .elementor-icon-list-icon { display: none; }
.elementor .hero-meta .elementor-icon-list-text::before {
  content: ""; display: inline-block; width: 20px; height: 20px;
  margin-right: .6rem; vertical-align: -5px; opacity: .7;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.elementor .hero-meta .elementor-icon-list-item:nth-child(1) .elementor-icon-list-text::before {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}
.elementor .hero-meta .elementor-icon-list-item:nth-child(2) .elementor-icon-list-text::before {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
.elementor .hero-meta .elementor-icon-list-item:nth-child(3) .elementor-icon-list-text::before {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
}

/* audience list: gold dot + rule between rows ---------------------------- */
.elementor .audience .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.elementor .audience .elementor-icon-list-item {
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,.08);
  font-family: 'DM Sans', sans-serif;
  font-size: .93rem; color: rgba(255,255,255,.8); line-height: 1.65; margin: 0;
}
.elementor .audience .elementor-icon-list-item:last-child { border-bottom: none; }
.elementor .audience .elementor-icon-list-icon { display: none; }
.elementor .audience .elementor-icon-list-text { display: block; }
.elementor .audience .elementor-icon-list-text::before {
  content: ""; display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; background: var(--gold);
  flex-shrink: 0; margin-right: 1rem; vertical-align: 3px;
}
.elementor .audience .elementor-icon-list-text strong { color: #fff; font-weight: 700; }

/* ---- 5b. Blocks promoted from raw HTML to native widgets ---------------- */
/* The hero pill carries the DATE and the pull-quote carries real copy, so both
   became editable widgets rather than locked HTML. Their decorative parts (the
   pulsing dot, the oversized quote mark) move into pseudo-elements. */
.elementor .hero-pill {
  display: inline-flex; align-items: center; gap: .65rem;
  background: rgba(201,168,76,.1); border: 1px solid rgba(201,168,76,.35);
  border-radius: 100px; padding: .38rem 1.1rem;
  width: auto; align-self: center;
}
.elementor .hero-pill .elementor-widget-container { display: inline-flex; align-items: center; }
.elementor .hero-pill p::before {
  content: ""; display: inline-block; vertical-align: middle;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold); margin-right: .65rem;
  animation: pulse 2.2s ease infinite;
}
.elementor .e-con.quote-card {
  display: block; position: relative; overflow: hidden;
  border-left: 4px solid var(--gold); background: var(--green-deep);
  border-radius: 3px; padding: 2.8rem; margin-bottom: 1.4rem;
}
.elementor .e-con.quote-card::before {
  content: '\201C'; position: absolute; top: -1.5rem; left: 1.8rem;
  font-family: 'Lora', serif; font-size: 10rem; line-height: 1;
  color: rgba(77,184,112,.12); pointer-events: none;
}
.elementor .e-con.quote-card::after {
  content: ''; position: absolute; bottom: -20px; right: -20px;
  width: 120px; height: 120px; border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,.1) 0%, transparent 70%);
}

/* ---- 6. Per-widget helpers used by the generator ----------------------- */
/* The original sheet styled section headings with a bare `h2` ELEMENT rule.
   Elementor's `.elementor-heading-title` (0,1,0) outranks `h2` (0,0,1), and
   the inherit rule in block 2 then pulls type from the wrapper - so a wrapper
   with no type class would silently fall back to the body font. Every plain
   section heading therefore carries `ces-h2`, which restates the original
   `h2` rule on the wrapper for the inner <h2> to inherit. */
.elementor .ces-h2 {
  font-family: 'Lora', serif; font-weight: 700;
  font-size: clamp(1.9rem, 4.5vw, 3rem); line-height: 1.12;
  color: #0d2418; margin-bottom: 1.3rem; display: block;
}
/* The original sheet re-coloured headings CONTEXTUALLY (`.section-header h2`,
   `.who-left h2` -> white). Those selectors target the inner <h2>, which now
   inherits from the wrapper - so the context override has to move up too, or
   dark-section headings render in the cream section's near-black ink. */
.elementor .section-header .ces-h2,
.elementor .who-left .ces-h2 { color: var(--white); }

/* Buttons: keep the whole chain flex so no inline line-box inflates the row. */
.elementor .btn-hero, .elementor .btn-ghost, .elementor .btn-outline { display: flex; }
.elementor .btn-hero > .elementor-widget-container,
.elementor .btn-ghost > .elementor-widget-container,
.elementor .btn-outline > .elementor-widget-container { display: flex; }
.elementor .btn-hero .elementor-button-wrapper,
.elementor .btn-ghost .elementor-button-wrapper,
.elementor .btn-outline .elementor-button-wrapper { display: flex; }

.elementor .ces-kicker  { font-family: 'Lora', serif; font-style: italic;
                          color: #3a5a3a; font-size: 1rem; margin-bottom: 1.2rem; }
.elementor .ces-gold-center  { color: var(--gold-light); text-align: center; }
.elementor .ces-white-center { color: var(--white); text-align: center; }
/* max-width belongs only to the RSVP heading - see .ces-narrow below */
.elementor .ces-mb      { margin-bottom: 2.5rem; }
.elementor .spon-sub    { text-align: center; color: rgba(255,255,255,.5);
                          font-size: .9rem; max-width: 520px; margin: .8rem auto 0; }
.elementor .spon-cta-text { font-size: .85rem; color: rgba(255,255,255,.4); margin-bottom: 1rem; }
.elementor .rsvp-body strong { color: rgba(255,255,255,.9); }
.elementor .info-links a { font-size: .82rem; color: var(--gold-light);
                           text-decoration: none; transition: color .2s; }
.elementor .info-links a:hover { color: var(--gold); }

/* Section 5 sits on gold — force the dark ink the original used ---------- */
.elementor .section-partner .partner-right,
.elementor .section-partner .partner-left { color: #1a1a1a; }

/* ---- 7. Footer --------------------------------------------------------- */
.elementor .e-con.site-footer { background: #040b06; padding: 3rem 1.5rem;
                                border-top: 3px solid var(--green-mid); }
.elementor .e-con.footer-inner {
  max-width: 1120px; margin: 0 auto; display: flex; flex-direction: row;
  flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.elementor .e-con.footer-right { text-align: right; display: block; }
.elementor .footer-links .elementor-icon-list-items {
  display: flex; gap: 2rem; flex-wrap: wrap; justify-content: flex-end;
  margin: 0 0 .5rem; padding: 0; list-style: none;
}
.elementor .footer-links .elementor-icon-list-item { margin: 0; }
.elementor .footer-links .elementor-icon-list-icon { display: none; }
.elementor .footer-links a,
.elementor .footer-links .elementor-icon-list-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem; color: rgba(255,255,255,.3);
  text-decoration: none; transition: color .2s;
}
.elementor .footer-links a:hover { color: var(--gold-light); }
.elementor .footer-copy { font-size: .72rem; color: rgba(255,255,255,.18); }

/* ---- 8. Editor-only affordances --------------------------------------- */
/* Inside the Elementor editor, flag the locked decorative blocks so the
   client can see at a glance what is safe to touch.                        */
body.elementor-editor-active .ces-decor { outline: 1px dashed rgba(201,168,76,.45); outline-offset: 2px; }
body.elementor-editor-active .ces-decor::after {
  content: "design element — no need to edit";
  position: absolute; top: 2px; left: 4px; z-index: 999;
  font: 600 9px/1 'DM Sans', sans-serif; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(201,168,76,.9);
  background: rgba(7,20,13,.85); padding: 3px 6px; border-radius: 2px;
  pointer-events: none;
}

/* ---- 9. Responsive parity --------------------------------------------- */
@media (max-width: 800px) {
  .elementor .e-con.about-grid,
  .elementor .e-con.who-grid  { grid-template-columns: 1fr; gap: 3rem; }
  .elementor .e-con.stats     { grid-template-columns: 1fr; }
  .elementor .e-con.partner-inner { flex-direction: column; text-align: center; }
  .elementor .e-con.footer-inner  { flex-direction: column; text-align: center; }
  .elementor .footer-links .elementor-icon-list-items,
  .elementor .e-con.footer-right  { justify-content: center; text-align: center; }
}
@media (max-width: 600px) {
  .elementor .hero-meta .elementor-icon-list-items { flex-direction: column; }
  .elementor .hero-meta .elementor-icon-list-item  { border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.1); justify-content: center;
    padding: .7rem 1.1rem; font-size: .78rem; }   /* original @600px override */
  .elementor .btn-hero .elementor-button,
  .elementor .btn-ghost .elementor-button,
  .elementor .btn-outline .elementor-button { width: 100%; justify-content: center; }
}

/* ============================================================================
   10. ELEMENTOR GLOBAL-KIT OVERRIDES  — must stay last in this file
   ----------------------------------------------------------------------------
   Elementor ships a "Default Kit" that assigns its own Global Colors to every
   heading and button:

       .elementor-widget-heading .elementor-heading-title { color: var(--e-global-color-primary) }
       .elementor-widget-button  .elementor-button        { background: var(--e-global-color-accent) }

   That kit stylesheet is injected per-page AFTER any plugin stylesheet, so it
   wins on source order no matter how this file is enqueued. The result: every
   heading rendered pale blue and every button bright green, while the fonts
   and layout were already correct.

   Colour is the only thing the kit touches, so these are the only declarations
   that need forcing. Everything above stays specificity-driven.
   ========================================================================= */

/* Headings inherit the colour from their wrapper class, always. */
.elementor .ces-x .elementor-heading-title { color: inherit !important; }

/* Section headings: dark ink on the cream section, white on the dark ones. */
.elementor .ces-h2                { color: #0d2418 !important; }
.elementor .section-header .ces-h2,
.elementor .who-left .ces-h2,
.elementor .ces-white-center      { color: var(--white) !important; }
.elementor .card-title            { color: var(--white) !important; }
.elementor .cta-h2                { color: var(--white) !important; }
.elementor .hero-title            { color: var(--white) !important; }

/* The hero wordmark is three separately-coloured spans - protect them. */
.elementor .hero-title .t-cannabis,
.elementor .hero-title .t-summit  { color: var(--white) !important; }
.elementor .hero-title .t-equity  { color: transparent !important; }

/* Buttons: gold fill, gold ghost, gold outline - never the kit's accent. */
.elementor .btn-hero .elementor-button {
  background-color: var(--gold) !important;
  color: #0d2418 !important;
}
.elementor .btn-hero .elementor-button:hover {
  background-color: var(--gold-light) !important;
}
.elementor .btn-ghost .elementor-button {
  background-color: transparent !important;
  color: rgba(255,255,255,.75) !important;
  border: 1px solid rgba(255,255,255,.2) !important;
}
.elementor .btn-ghost .elementor-button:hover {
  color: #fff !important;
  border-color: rgba(255,255,255,.45) !important;
}
.elementor .btn-outline .elementor-button {
  background-color: transparent !important;
  color: var(--gold-light) !important;
  border: 1px solid rgba(201,168,76,.38) !important;
}
.elementor .btn-outline .elementor-button:hover {
  color: var(--gold) !important;
  border-color: var(--gold) !important;
  background-color: rgba(201,168,76,.08) !important;
}

/* ============================================================================
   11. RESTORE THE ORIGINAL BOX MODEL  — must stay after block 10
   ----------------------------------------------------------------------------
   Block 0 zeroes Elementor's container padding variables. That alone is not
   enough: Elementor renders `padding-block-start: var(--padding-block-start)`
   at specificity (0,2,0), which OUTRANKS the launched sheet's
   `.section-about { padding: 7rem 1.5rem }` at (0,1,0). Zeroing the variable
   therefore zeroed the real padding too, and every section collapsed.

   So each padded element restates its launched value here, with enough weight
   to beat Elementor's variable plumbing. These numbers are lifted verbatim
   from the original stylesheet - nothing is invented.
   ========================================================================= */

/* Section padding ---------------------------------------------------------- */
.elementor .e-con.hero             { padding: 7rem 1.5rem 16rem !important; }
.elementor .e-con.section-about,
.elementor .e-con.section-expect,
.elementor .e-con.section-who      { padding: 7rem 1.5rem !important; }
.elementor .e-con.section-partner  { padding: 3.5rem 1.5rem !important; }
.elementor .e-con.section-sponsors,
.elementor .e-con.section-rsvp     { padding: 6rem 1.5rem !important; }
.elementor .e-con.section-cta      { padding: 8rem 1.5rem !important; }
.elementor .e-con.site-footer      { padding: 3rem 1.5rem !important; }

/* Card / box padding ------------------------------------------------------- */
.elementor .e-con.card             { padding: 2.2rem 2rem !important; }
.elementor .e-con.stat             { padding: 1.3rem 1rem !important; }
.elementor .e-con.info-box         { padding: 2rem !important; margin-bottom: 1.2rem !important; }
.elementor .e-con.info-box:last-child { margin-bottom: 0 !important; }
.elementor .e-con.sponsor-card     { padding: 1.8rem 2rem !important; }
.elementor .e-con.quote-card       { padding: 2.8rem !important; margin-bottom: 1.4rem !important; }

/* Grid and flex gaps ------------------------------------------------------- */
.elementor .e-con.about-grid       { gap: 6rem !important; }
.elementor .e-con.who-grid         { gap: 5rem !important; }
.elementor .e-con.cards            { gap: 1.2rem !important; }
.elementor .e-con.stats            { gap: 1rem !important; }
.elementor .e-con.sponsors-logos   { gap: 1.2rem !important; }
.elementor .e-con.hero-ctas,
.elementor .e-con.cta-btns         { gap: 1rem !important; }
.elementor .e-con.partner-inner    { gap: 2.5rem !important; }
.elementor .e-con.footer-inner     { gap: 1.5rem !important; }

/* Elementor's kit puts 20px under every widget. The launched design spaced
   things with per-element margins instead, so zero the blanket rule and let
   those margins do their job. */
.elementor .elementor-widget:not(:last-child) { margin-block-end: 0; }
.elementor { --widgets-spacing: 0px 0px; --widgets-spacing-row: 0px;
             --widgets-spacing-column: 0px; }

/* Per-element margins, verbatim from the launched stylesheet --------------- */
.elementor .label          { margin-bottom: .8rem !important; }
.elementor .ces-h2         { margin-bottom: 1.3rem !important; }
.elementor .ces-kicker     { margin-bottom: 1.2rem !important; }
.elementor .hero-logo      { margin-bottom: 2.2rem !important; }
.elementor .hero-pill      { margin-bottom: 1.8rem !important; }
.elementor .hero-title     { margin-bottom: 1.6rem !important; }
.elementor .hero-sub       { margin-bottom: 2.8rem !important; }
.elementor .hero-body      { margin-bottom: 2.2rem !important; }
.elementor .hero-meta      { margin-bottom: 2.8rem !important; }
.elementor .card-num       { margin-bottom: .8rem !important; }
.elementor .card-title     { margin-bottom: .6rem !important; }
.elementor .info-title     { margin-bottom: .75rem !important; }
.elementor .quote-attr     { margin-top: 1.1rem !important; }
.elementor .stat-l         { margin-top: .15rem !important; }
.elementor .sponsor-name   { margin-bottom: .3rem !important; }
.elementor .sponsors-tier-label { margin-bottom: 1.5rem !important; }
.elementor .sponsors-header     { margin-bottom: 3.5rem !important; }
.elementor .section-header      { margin-bottom: 4rem !important; }
.elementor .rsvp-body      { margin-bottom: .6rem !important; }
.elementor .cta-label      { margin-bottom: 1rem !important; }
.elementor .cta-h2         { margin-bottom: 1rem !important; }
.elementor .cta-sub        { margin: 0 auto 3rem !important; }
.elementor .who-left .body-text { margin-bottom: 2rem !important; }
.elementor .body-text .elementor-widget-container > p + p { margin-top: .9rem !important; }

/* Overrides that must outrank the per-element margins restated above ------- */
.elementor .ces-mb                 { margin-bottom: 2.5rem !important; }
.elementor .e-con.sponsors-tier    { margin-bottom: 2.5rem !important; }
.elementor .e-con.ces-center-block { margin-top: 3rem !important; }
.elementor .rsvp-inner .ces-h2     { margin: 0 auto 1.2rem !important; }

/* The decorative-widget reset zeroes line-height, which also swallowed the
   divider rules' own margins. Restore them explicitly. */
.elementor .ces-decor .sponsors-divider {
  margin: 2.5rem 0 !important; display: block;
  border: none; border-top: 1px solid rgba(255,255,255,.07);
}

/* The launched page constrained ONLY the RSVP heading to 600px. Applying it to
   the sponsors heading too made "Thank You to Our Partners" wrap onto a second
   line and grew that section by 54px. */
.elementor .ces-narrow .elementor-heading-title { max-width: 600px; margin: 0 auto 1.2rem !important; }

/* The audience list put the gold dot in its OWN flex cell beside the text, so
   the copy wrapped inside a 498px column. Rendering the dot as an inline
   ::before on the text let the copy reflow wider and lose two lines. Restore
   the original two-cell flex row. */
.elementor .audience .elementor-icon-list-item {
  display: flex; align-items: flex-start; gap: 1rem;
}
.elementor .audience .elementor-icon-list-item::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold); flex-shrink: 0; margin-top: .5rem;
}
.elementor .audience .elementor-icon-list-text::before { content: none !important; }
.elementor .audience .elementor-icon-list-text { flex: 1; }

/* The sponsors CTA block centred its text fine, but the button sat hard left:
   `text-align:center` cannot centre the button because Elementor's
   `.elementor-button-wrapper` is a block-level flex box. Centre the children
   explicitly. Measured drift before this rule: 410px. */
.elementor .e-con.ces-center-block {
  display: flex !important; flex-direction: column; align-items: center;
  text-align: center; margin-top: 3rem !important;
}
.elementor .e-con.ces-center-block > .elementor-element { width: auto; max-width: 100%; }

/* Same guard for every other button row, so a button can never drift out of
   its centred block again. */
.elementor .rsvp-inner .elementor-widget-button,
.elementor .cta-inner  .elementor-widget-button,
.elementor .ces-center-block .elementor-widget-button { display: flex; justify-content: center; }
