*{box-sizing:border-box}:root{--ink:#171714;--cream:#f4efe7;--stone:#e8e0d4;--wine:#5b2b3c;--sand:#d8c29e;--white:#fff;--muted:#716b62;--line:rgba(23,23,20,.13)}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:600;margin:0;line-height:.95}.site-header{position:absolute;z-index:20;top:0;left:0;width:100%;padding:25px 5vw;display:flex;align-items:center;justify-content:space-between;color:white}.brand{display:flex;align-items:center;gap:13px;font-size:12px;letter-spacing:.19em;font-weight:700}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid currentColor;font-family:"Cormorant Garamond",serif;font-size:19px;letter-spacing:0}.nav{display:flex;align-items:center;gap:26px;font-size:12px}.nav-cta{padding:10px 17px;border:1px solid rgba(255,255,255,.55);border-radius:99px}.menu-toggle{display:none;background:none;border:0;color:white;font:inherit}.hero{min-height:100svh;display:flex;align-items:flex-end;position:relative;padding:155px 8vw 8vh;color:white;background:linear-gradient(rgba(8,8,7,.15),rgba(8,8,7,.5)),url('assets/spring-race-day-banner.jpg') center/cover no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.56),rgba(0,0,0,.1) 70%)}.hero-content{position:relative;z-index:2;max-width:900px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:10px;font-weight:700;margin:0 0 17px}.eyebrow.dark{color:var(--muted)}.event-chip{display:inline-block;margin-bottom:18px;border:1px solid rgba(255,255,255,.44);border-radius:99px;padding:8px 12px;font-size:10px;letter-spacing:.17em}h1{font-size:clamp(68px,8.5vw,122px)}h1 em,h2 em,h3 em{font-weight:500}.hero-copy{max-width:650px;font-size:clamp(17px,2vw,21px);margin:27px 0 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 23px;border-radius:99px;font-size:12px;font-weight:700;border:1px solid transparent}.btn-light{background:white;color:var(--ink)}.btn-dark{background:var(--ink);color:white}.btn-ghost{border-color:rgba(255,255,255,.52);color:white;background:rgba(255,255,255,.05)}.hero-meta{display:flex;gap:0;margin-top:30px;border-top:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28);width:max-content;max-width:100%}.hero-meta div{padding:14px 40px 14px 0;margin-right:40px}.hero-meta span{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;opacity:.7}.hero-meta strong{font-size:13px}.section{padding:110px 7vw}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:42px}.section h2,.experience h2,.about h2,.closing-cta h2{font-size:clamp(49px,6vw,84px)}.pill-link{border:1px solid var(--line);padding:10px 15px;border-radius:99px;font-size:12px}.spring-grid{display:grid;grid-template-columns:1fr .85fr;gap:7vw;align-items:start}.spring-copy h3{font-size:clamp(38px,4vw,58px);margin-bottom:26px}.spring-copy p{font-size:16px;color:#514c45;max-width:620px;margin:0 0 16px}.ticket-panel{background:white;padding:28px;border-radius:22px;box-shadow:0 22px 60px rgba(18,17,15,.1)}.detail-list{display:grid;gap:10px}.detail-list div{display:grid;grid-template-columns:38px 1fr;border-top:1px solid var(--line);padding:13px 0}.detail-list span{font-size:9px;color:var(--muted);letter-spacing:.17em}.detail-list p{margin:0;font-weight:600;font-size:13px}.full-btn{width:100%;margin-top:19px}.experience{display:grid;grid-template-columns:1.08fr .92fr;min-height:760px}.experience-image{background:url('https://www.remixmagazine.com/assets/SonnaStudios-41-v2__ResizedImageWzYwMCw5MDBd.jpg') center/cover no-repeat}.experience-copy{background:var(--wine);color:white;padding:105px 7vw}.experience-intro{margin:28px 0 0;max-width:560px;color:#e2d7da}.feature-list{margin-top:48px}.feature-list div{display:grid;grid-template-columns:38px 1fr;padding:16px 0;border-top:1px solid rgba(255,255,255,.2)}.feature-list span{font-size:9px;opacity:.65}.feature-list p{margin:0;font-size:13px}.calendar{background:var(--stone)}.calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.calendar-card{background:white;border-radius:22px;padding:29px;min-height:270px;box-shadow:0 18px 45px rgba(15,15,13,.08)}.calendar-card.feature{background:linear-gradient(145deg,var(--wine),#26171e);color:white}.tag{font-size:9px;letter-spacing:.17em;text-transform:uppercase}.calendar-card h3{font-size:40px;margin:18px 0 11px}.calendar-card p{font-size:14px}.calendar-card a{display:inline-block;margin-top:20px;border-bottom:1px solid currentColor;font-size:12px}.about{background:var(--ink);color:white;text-align:center}.about-inner{max-width:980px;margin:auto}.about-inner>p:not(.eyebrow){max-width:760px;margin:28px auto;color:#cec8c0;font-size:17px}.about .btn{margin-top:28px}.closing-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--sand)}footer{background:#11110f;color:#bdb8b0;padding:35px 5vw;display:grid;grid-template-columns:1fr auto auto auto auto;gap:28px;align-items:center;font-size:11px}.footer-brand{display:flex;align-items:center;gap:13px;color:white;letter-spacing:.18em}.footer-brand .brand-mark{width:36px;height:36px}.reveal{opacity:0;transform:translateY(15px);transition:.65s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.nav{display:none;position:absolute;top:74px;left:5vw;right:5vw;flex-direction:column;align-items:flex-start;background:rgba(18,18,16,.97);padding:20px;border-radius:18px}.nav.open{display:flex}.menu-toggle{display:block}.hero{padding:140px 7vw 8vh}.spring-grid,.experience,.calendar-grid{grid-template-columns:1fr}.experience-image{min-height:580px}.closing-cta{flex-direction:column;align-items:flex-start}footer{grid-template-columns:1fr}}@media(max-width:560px){h1{font-size:59px}.section{padding:78px 6vw}.section-heading{align-items:flex-start;flex-direction:column}.hero-meta{width:100%;display:grid;grid-template-columns:1fr 1fr}.hero-meta div{margin:0;padding:12px 12px 12px 0}.hero-actions,.closing-cta .btn{width:100%}.btn{width:100%}.experience-image{min-height:470px}}
.gallery{background:var(--cream)}
.gallery-note{max-width:420px;color:var(--muted);font-size:13px;margin:0}
.gallery-grid{
  display:grid;
  grid-template-columns:1.35fr .8fr 1fr;
  grid-template-rows:310px 250px;
  gap:14px
}
.gallery-item{
  margin:0;
  position:relative;
  overflow:hidden;
  border-radius:20px;
  min-height:240px;
  background-size:cover;
  background-position:center;
  box-shadow:0 14px 40px rgba(20,18,16,.08)
}
.gallery-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.48))
}
.gallery-item figcaption{
  position:absolute;
  left:20px;
  bottom:18px;
  z-index:2;
  color:#fff;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.2em
}
.gallery-large{grid-row:span 2}
.gallery-tall{grid-row:span 2}
.g1{
  background-image:url('https://images.squarespace-cdn.com/content/v1/68836f8018fb8a15dd6989e7/d7d3e01a-96ba-457f-8eaf-591be596976d/JPS_8362-80%2B2.jpg')
}
.g2{
  background-image:url('https://www.remixmagazine.com/assets/A28W0837__ResizedImageWzYwMCw0MDBd.jpg')
}
.g3{
  background-image:url('https://www.aucklandracing.co.nz/wp-content/uploads/2023/11/ARC_KM2022_0194-compressed.jpg')
}
.g4{
  background-image:url('https://www.remixmagazine.com/assets/SonnaStudios-9-1__ResizedImageWzYwMCw0MDBd.jpg')
}
@media(max-width:900px){
  .gallery-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:340px 280px
  }
  .gallery-large,.gallery-tall{grid-row:auto}
}
@media(max-width:560px){
  .gallery-grid{
    grid-template-columns:1fr;
    grid-template-rows:repeat(4,320px)
  }
}


/* Group 1 site logo */
.brand-icon{
  width:55px;
  height:55px;
  object-fit:contain;
  display:block;
  flex:0 0 auto;
}

.footer-brand-icon{
  width:38px;
  height:38px;
}

@media(max-width:560px){
  .brand-icon{
    width:42px;
    height:42px;
  }

  .footer-brand-icon{
    width:36px;
    height:36px;
  }
}


/* =========================================================
   Spring Race Day Sponsorship
   ========================================================= */

.sponsorship-section{
  background:#efe8dc;
}

.sponsor-intro-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:7vw;
  align-items:start;
}

.sponsor-intro-grid h2,
.current-sponsors-wrap h2{
  font-size:clamp(49px,6vw,84px);
}

.sponsor-intro-copy{
  max-width:650px;
}

.sponsor-lead{
  margin:0 0 20px;
  font-family:"Cormorant Garamond",serif;
  font-size:30px;
  line-height:1.08;
  color:var(--ink);
}

.sponsor-intro-copy > p:not(.sponsor-lead){
  margin:0;
  color:#514c45;
  font-size:16px;
}

.sponsor-intro-copy .btn{
  margin-top:28px;
}

.sponsor-packages{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:72px;
}

.sponsor-package{
  min-height:390px;
  display:flex;
  flex-direction:column;
  padding:27px;
  border-radius:22px;
  border:1px solid rgba(23,23,20,.1);
  background:rgba(255,255,255,.72);
  box-shadow:0 16px 42px rgba(18,17,15,.06);
}

.sponsor-package:nth-child(2){
  background:linear-gradient(150deg,var(--wine),#291820);
  color:#fff;
}

.sponsor-package-no,
.sponsor-package-type{
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.sponsor-package-no{
  color:var(--muted);
}

.sponsor-package:nth-child(2) .sponsor-package-no,
.sponsor-package:nth-child(2) .sponsor-package-type{
  color:rgba(255,255,255,.65);
}

.sponsor-package-type{
  margin:40px 0 9px;
  color:var(--muted);
}

.sponsor-package h3{
  font-size:39px;
  margin-bottom:16px;
}

.sponsor-package > p:not(.sponsor-package-type){
  margin:0;
  font-size:14px;
  color:#5b554d;
}

.sponsor-package:nth-child(2) > p:not(.sponsor-package-type){
  color:#e4d9dc;
}

.sponsor-package-link{
  margin-top:auto;
  padding:26px 0 0;
  border:0;
  border-bottom:1px solid currentColor;
  background:none;
  align-self:flex-start;
  font:inherit;
  font-size:11px;
  cursor:pointer;
  color:inherit;
}

.current-sponsors-wrap{
  margin-top:105px;
  padding-top:75px;
  border-top:1px solid rgba(23,23,20,.14);
}

.sponsor-heading-note{
  max-width:390px;
  margin:0;
  font-size:13px;
  color:var(--muted);
}

.current-sponsors-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.sponsor-card{
  display:flex;
  flex-direction:column;
  min-height:290px;
  padding:25px;
  border-radius:21px;
  background:#fff;
  box-shadow:0 16px 42px rgba(18,17,15,.07);
}

.sponsor-logo-wrap{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:26px;
  padding:14px;
  border-bottom:1px solid var(--line);
}

.sponsor-logo{
  display:block;
  max-width:200px;
  max-height:85px;
  width:auto;
  height:auto;
  object-fit:contain;
}

.sponsor-logo-text{
  font-family:"Cormorant Garamond",serif;
  font-size:30px;
  text-align:center;
}

.sponsor-category{
  display:inline-block;
  margin-bottom:8px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--wine);
}

.sponsor-card h3{
  margin:0 0 14px;
  font-size:31px;
}

.sponsor-card-link{
  margin-top:auto;
  align-self:flex-start;
  font-size:11px;
  border-bottom:1px solid currentColor;
}

.sponsor-empty{
  grid-column:1 / -1;
  padding:45px;
  border:1px dashed rgba(23,23,20,.2);
  border-radius:22px;
  text-align:center;
  background:rgba(255,255,255,.45);
}

.sponsor-empty h3{
  font-size:38px;
  margin-bottom:10px;
}

.sponsor-empty p{
  max-width:620px;
  margin:0 auto 22px;
  color:var(--muted);
}

/* Sponsorship modal */
.sponsor-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.sponsor-modal.open{
  display:flex;
}

.sponsor-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,14,12,.72);
  backdrop-filter:blur(6px);
}

.sponsor-modal-dialog{
  position:relative;
  z-index:1;
  width:min(850px,100%);
  max-height:92vh;
  overflow:auto;
  padding:42px;
  border-radius:24px;
  background:var(--cream);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

.sponsor-modal-dialog h2{
  font-size:clamp(42px,5vw,68px);
  margin-bottom:18px;
}

.sponsor-modal-close{
  position:absolute;
  top:17px;
  right:20px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:rgba(23,23,20,.07);
  color:var(--ink);
  font-size:26px;
  cursor:pointer;
}

.sponsor-form-intro{
  max-width:650px;
  margin:0 0 30px;
  color:#575149;
}

.sponsor-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.sponsor-form label{
  display:block;
}

.sponsor-form label > span{
  display:block;
  margin-bottom:7px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--muted);
}

.sponsor-form input,
.sponsor-form select,
.sponsor-form textarea{
  width:100%;
  border:1px solid rgba(23,23,20,.16);
  border-radius:12px;
  background:#fff;
  padding:13px 14px;
  font:inherit;
  color:var(--ink);
}

.sponsor-form textarea{
  resize:vertical;
  min-height:125px;
}

.sponsor-form-full{
  grid-column:1 / -1;
}

.sponsor-submit{
  margin-top:24px;
}

.sponsor-form-note{
  margin:12px 0 0;
  color:var(--muted);
  font-size:11px;
}

body.sponsor-modal-open{
  overflow:hidden;
}

@media(max-width:1050px){
  .sponsor-packages{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:900px){
  .sponsor-intro-grid{
    grid-template-columns:1fr;
  }

  .current-sponsors-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:650px){
  .sponsor-packages,
  .current-sponsors-grid,
  .sponsor-form-grid{
    grid-template-columns:1fr;
  }

  .sponsor-form-full{
    grid-column:auto;
  }

  .sponsor-package{
    min-height:auto;
  }

  .sponsor-package-link{
    margin-top:35px;
  }

  .sponsor-modal{
    padding:10px;
  }

  .sponsor-modal-dialog{
    padding:32px 20px 24px;
    border-radius:18px;
  }
}


/* Configurable sponsorship package states */
.sponsor-package.featured-package{
  background:linear-gradient(150deg,var(--wine),#291820);
  color:#fff;
}

.sponsor-package.featured-package .sponsor-package-no,
.sponsor-package.featured-package .sponsor-package-type{
  color:rgba(255,255,255,.65);
}

.sponsor-package.featured-package > p:not(.sponsor-package-type){
  color:#e4d9dc;
}

.sponsor-package.unavailable-package{
  opacity:.58;
}

.sponsor-package-unavailable{
  margin-top:auto;
  padding-top:26px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--muted);
}


/* =========================================================
   Dynamic homepage gallery + Past Events gallery page
   ========================================================= */
.gallery-heading-actions{max-width:430px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.gallery-heading-actions .pill-link{margin:0}
.gallery-grid-random{grid-template-columns:1.25fr .8fr 1fr;grid-template-rows:280px 230px 220px}
.gallery-grid-random .gallery-item:nth-child(1){grid-row:span 2}
.gallery-grid-random .gallery-item:nth-child(3){grid-row:span 2}
.gallery-grid-random .gallery-item:nth-child(5){grid-column:span 2}
.home-gallery-item{display:block;background-size:cover;background-position:center;border:0;cursor:pointer}
.gallery-event-label{position:absolute;left:20px;bottom:18px;z-index:3;color:white;font-size:10px;text-transform:uppercase;letter-spacing:.18em}
.gallery-page-body{background:var(--cream)}
.gallery-page-header{position:relative;background:var(--ink)}
.gallery-page-hero{padding:100px 7vw 90px;background:linear-gradient(135deg,#e7ddce,var(--cream))}
.gallery-page-hero h1{color:var(--ink);font-size:clamp(64px,8vw,112px)}
.gallery-page-hero>p:last-child{max-width:700px;margin:28px 0 0;color:#514c45;font-size:17px}
.gallery-album{border-top:1px solid var(--line)}
.gallery-album-heading{display:grid;grid-template-columns:1fr .7fr;gap:7vw;align-items:end;margin-bottom:40px}
.gallery-album-heading h2{font-size:clamp(48px,6vw,82px)}
.gallery-album-heading>p{margin:0;color:var(--muted);font-size:14px}
.full-gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:75px;gap:12px}
.full-gallery-item{grid-column:span 4;grid-row:span 4;padding:0;border:0;border-radius:18px;overflow:hidden;background:#ddd;cursor:pointer}
.full-gallery-item:nth-child(1),.full-gallery-item:nth-child(6){grid-column:span 5;grid-row:span 6}
.full-gallery-item:nth-child(2),.full-gallery-item:nth-child(5){grid-column:span 3;grid-row:span 5}
.full-gallery-item:nth-child(3),.full-gallery-item:nth-child(4),.full-gallery-item:nth-child(7){grid-column:span 4;grid-row:span 5}
.full-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.full-gallery-item:hover img{transform:scale(1.025)}
.lightbox{display:none;position:fixed;inset:0;z-index:200;background:rgba(10,9,8,.94);align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex}
.lightbox-content{margin:0;max-width:min(1200px,84vw);max-height:88vh;display:flex;flex-direction:column;align-items:center}
.lightbox-content img{max-width:100%;max-height:80vh;object-fit:contain;display:block}
.lightbox-content figcaption{color:#d9d4cc;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:12px}
.lightbox-close,.lightbox-nav{position:absolute;border:0;background:rgba(255,255,255,.09);color:white;cursor:pointer;border-radius:50%;display:grid;place-items:center}
.lightbox-close{right:22px;top:22px;width:46px;height:46px;font-size:30px}
.lightbox-nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:36px}
.lightbox-prev{left:22px}.lightbox-next{right:22px}
@media(max-width:900px){.gallery-grid-random{grid-template-columns:1fr 1fr;grid-template-rows:300px 260px 260px}.gallery-grid-random .gallery-item:nth-child(n){grid-column:auto;grid-row:auto}.gallery-album-heading{grid-template-columns:1fr}.full-gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:330px}.full-gallery-item:nth-child(n){grid-column:auto;grid-row:auto}.lightbox-nav{width:44px;height:44px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}
@media(max-width:560px){.gallery-grid-random{grid-template-columns:1fr;grid-template-rows:repeat(6,290px)}.full-gallery-grid{grid-template-columns:1fr;grid-auto-rows:420px}.gallery-page-hero{padding:80px 6vw 65px}.lightbox{padding:16px}.lightbox-nav{top:auto;bottom:18px}.lightbox-prev{left:28%}.lightbox-next{right:28%}}

/* Footer build credit */
.footer-credit{
  color:#8f8a82;
  white-space:nowrap;
}
.footer-credit a{
  color:#d5d0c8;
  border-bottom:1px solid rgba(213,208,200,.35);
  transition:color .18s ease,border-color .18s ease;
}
.footer-credit a:hover{
  color:#fff;
  border-color:#fff;
}
@media(max-width:900px){
  .footer-credit{white-space:normal}
}


/* =========================================================
   Gallery album index / scalable event albums
   ========================================================= */
.gallery-albums-index{background:var(--cream)}
.gallery-index-heading{display:grid;grid-template-columns:1fr .7fr;gap:7vw;align-items:end;margin-bottom:46px}
.gallery-index-heading h2{font-size:clamp(48px,6vw,82px)}
.gallery-index-heading>p{margin:0;color:var(--muted);font-size:14px;max-width:520px}
.gallery-album-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.gallery-album-card{display:block;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 18px 50px rgba(18,17,15,.09);transition:transform .22s ease,box-shadow .22s ease}
.gallery-album-card:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(18,17,15,.13)}
.gallery-album-cover{position:relative;height:430px;overflow:hidden;background:#ddd}
.gallery-album-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.gallery-album-card:hover .gallery-album-cover img{transform:scale(1.025)}
.gallery-album-count{position:absolute;right:18px;bottom:18px;padding:8px 11px;border-radius:99px;background:rgba(20,18,16,.78);backdrop-filter:blur(7px);color:#fff;font-size:9px;text-transform:uppercase;letter-spacing:.16em}
.gallery-album-card-copy{padding:25px 27px 28px}
.gallery-album-card-copy h3{font-size:42px;margin:0 0 8px}
.gallery-album-card-copy>p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}
.gallery-album-open{display:inline-block;margin-top:21px;font-size:11px;border-bottom:1px solid currentColor}
.gallery-album-detail{background:var(--cream)}
.gallery-back-link{display:inline-block;margin-bottom:48px;font-size:11px;border-bottom:1px solid currentColor}
.gallery-album-title{font-size:clamp(58px,7vw,96px);color:var(--ink)}
.gallery-album-summary{align-self:end}
.gallery-album-summary p{margin:0 0 15px;color:var(--muted);font-size:14px}
.gallery-album-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--wine)}
@media(max-width:900px){
  .gallery-index-heading{grid-template-columns:1fr}
  .gallery-album-cards{grid-template-columns:1fr}
  .gallery-album-cover{height:420px}
}
@media(max-width:560px){
  .gallery-album-cover{height:330px}
  .gallery-album-card-copy h3{font-size:36px}
  .gallery-back-link{margin-bottom:34px}
}



/* =========================================================
   Group 1 social icon links
   ========================================================= */

.social-icon-link{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid currentColor;
  transition:
    transform .18s ease,
    background .18s ease,
    color .18s ease,
    border-color .18s ease;
}
.social-icon-link svg{
  width:20px;
  height:20px;
  display:block;
}
.social-icon-link:hover{
  transform:translateY(-2px);
}

/* Hero socials */
.hero-socials{
  position:absolute;
  z-index:4;
  top:105px;
  right:5vw;
  display:flex;
  gap:10px;
  color:#fff;
}
.hero-socials .social-icon-link{
  background:rgba(18,18,16,.24);
  border-color:rgba(255,255,255,.50);
  backdrop-filter:blur(7px);
}
.hero-socials .social-icon-link:hover{
  background:#fff;
  border-color:#fff;
  color:var(--wine);
}

/* About socials */
.about-socials{
  margin-top:28px;
  display:flex;
  justify-content:center;
  gap:12px;
}
.about-socials .social-icon-link{
  color:#fff;
  border-color:rgba(255,255,255,.48);
}
.about-socials .social-icon-link:hover{
  background:#fff;
  border-color:#fff;
  color:var(--ink);
}

/* Footer socials */
.footer-socials{
  display:flex;
  align-items:center;
  gap:9px;
}
.footer-socials .social-icon-link{
  width:36px;
  height:36px;
  color:#d5d0c8;
  border-color:rgba(213,208,200,.34);
}
.footer-socials .social-icon-link svg{
  width:17px;
  height:17px;
}
.footer-socials .social-icon-link:hover{
  background:#fff;
  border-color:#fff;
  color:#11110f;
}

@media(max-width:900px){
  .hero-socials{
    top:92px;
    right:6vw;
  }
}

@media(max-width:560px){
  .hero-socials{
    top:auto;
    right:auto;
    left:6vw;
    bottom:8px;
  }
  .hero-socials .social-icon-link{
    width:40px;
    height:40px;
  }
  .about-socials{
    width:100%;
  }
}


/* =========================================================
   Sponsor section layout update - current sponsors first
   Targeted overrides only; existing site styles remain intact.
   ========================================================= */

.current-sponsors-first{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.sponsor-opportunities-wrap{
  margin-top:64px;
  padding-top:50px;
  border-top:1px solid rgba(23,23,20,.14);
}

.sponsor-intro-compact{
  align-items:end;
}

.sponsor-intro-compact h2{
  font-size:clamp(42px,5vw,68px);
}

.sponsor-intro-compact .sponsor-lead{
  margin-bottom:12px;
  font-size:24px;
  line-height:1.08;
}

.sponsor-intro-compact .sponsor-intro-copy > p:not(.sponsor-lead){
  font-size:14px;
  line-height:1.55;
}

.sponsor-intro-compact .sponsor-intro-copy .btn{
  margin-top:20px;
  min-height:48px;
}

.sponsor-packages-compact{
  margin-top:34px;
  gap:12px;
}

.sponsor-packages-compact .sponsor-package{
  min-height:255px;
  padding:21px;
  border-radius:18px;
}

.sponsor-packages-compact .sponsor-package-type{
  margin:18px 0 7px;
}

.sponsor-packages-compact .sponsor-package h3{
  font-size:31px;
  margin-bottom:10px;
}

.sponsor-packages-compact .sponsor-package > p:not(.sponsor-package-type){
  font-size:12.5px;
  line-height:1.5;
}

.sponsor-packages-compact .sponsor-package-link,
.sponsor-packages-compact .sponsor-package-unavailable{
  padding-top:18px;
}

@media(max-width:900px){
  .sponsor-opportunities-wrap{
    margin-top:54px;
    padding-top:44px;
  }
}

@media(max-width:650px){
  .sponsor-opportunities-wrap{
    margin-top:46px;
    padding-top:36px;
  }

  .sponsor-intro-compact h2{
    font-size:clamp(40px,13vw,58px);
  }

  .sponsor-packages-compact .sponsor-package{
    min-height:auto;
  }
}

/* =========================================================
   Sponsor logo background themes
   ========================================================= */
.sponsor-logo-wrap{
  border-radius:14px;
  overflow:hidden;
  transition:background .2s ease;
}

.sponsor-logo-wrap.logo-light{
  background:#fff;
}

.sponsor-logo-wrap.logo-dark{
  background:var(--ink);
  border-bottom-color:transparent;
}

.sponsor-logo-wrap.logo-wine{
  background:var(--wine);
  border-bottom-color:transparent;
}

.sponsor-logo-wrap.logo-dark,
.sponsor-logo-wrap.logo-wine{
  padding:18px;
}

.sponsor-logo-wrap.logo-dark .sponsor-logo-text,
.sponsor-logo-wrap.logo-wine .sponsor-logo-text{
  color:#fff;
}

/* =========================================================
   Mobile hero video
   ========================================================= */
.hero-mobile-video{
  display:none;
}

@media(max-width:700px){
  .hero-mobile-video{
    display:block;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    z-index:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .65s ease;
    background:#111;
  }

  .hero-mobile-video.is-visible{
    opacity:1;
  }

  .hero-overlay{z-index:1;}
  .hero-content{z-index:2;}
  .hero-socials{z-index:4;}
}

@media(prefers-reduced-motion:reduce){
  .hero-mobile-video{
    display:none !important;
  }
}



/* =========================================================
   Goodie Bag sponsor group
   ========================================================= */
.sponsor-card-goodie-bag{
  aspect-ratio:1 / 1;
  min-height:0;
  overflow:hidden;
  background:linear-gradient(145deg,#fff,#f7f2ea);
}
.goodie-bag-card-heading{margin-bottom:18px}
.goodie-bag-card-heading h3{margin:0;font-size:31px}
.goodie-bag-logo-grid{
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:1fr;
  gap:9px;
}
.goodie-bag-logo-link{display:block;min-width:0;min-height:0}
.goodie-bag-logo-tile{
  width:100%;
  height:100%;
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:9px;
  border-radius:11px;
  overflow:hidden;
  border:1px solid rgba(23,23,20,.08);
  transition:transform .18s ease,border-color .18s ease;
}
.goodie-bag-logo-link:hover .goodie-bag-logo-tile{
  transform:translateY(-2px);
  border-color:rgba(23,23,20,.22);
}
.goodie-bag-logo-tile.logo-light{background:#fff;color:var(--ink)}
.goodie-bag-logo-tile.logo-dark{background:var(--ink);color:#fff;border-color:transparent}
.goodie-bag-logo-tile.logo-wine{background:var(--wine);color:#fff;border-color:transparent}
.goodie-bag-logo-tile img{
  display:block;
  max-width:100%;
  max-height:52px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.goodie-bag-logo-tile span{
  font-size:10px;
  line-height:1.25;
  text-align:center;
  font-weight:700;
}
@media(max-width:900px){
  .sponsor-card-goodie-bag{aspect-ratio:auto;min-height:330px}
}
@media(max-width:650px){
  .sponsor-card-goodie-bag{min-height:0}
  .goodie-bag-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .goodie-bag-logo-tile{min-height:82px}
}


/* Mobile hero video reliability overrides */
@media(max-width:700px){
  .hero{overflow:hidden;}
  .hero-mobile-video{visibility:visible;}
}

/* =========================================================
   Hero — Join Group 1 signup
   ========================================================= */
.hero-layout{
  position:relative;
  z-index:2;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(310px,360px);
  gap:clamp(30px,5vw,72px);
  align-items:end;
}

.hero-layout .hero-content{
  max-width:900px;
}

.hero-join-card{
  width:100%;
  padding:26px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:22px;
  background:rgba(20,15,17,.72);
  box-shadow:0 24px 60px rgba(0,0,0,.26);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:#fff;
}

.hero-join-card h2{
  margin:0;
  font-family:Manrope,sans-serif;
  font-weight:700;
  font-size:clamp(38px,4vw,52px);
  line-height:.95;
  color:#fff;
}

.join-eyebrow{
  margin-bottom:10px;
  color:rgba(255,255,255,.72);
}

.hero-join-copy{
  margin:14px 0 20px;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.55;
}

.join-group1-form{
  display:grid;
  gap:11px;
}

.join-field{
  display:block;
}

.join-field > span{
  display:block;
  margin:0 0 5px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.66);
}

.join-field input{
  width:100%;
  min-height:46px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:12px;
  outline:0;
  background:rgba(255,255,255,.09);
  color:#fff;
  font:inherit;
  font-size:13px;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}

.join-field input::placeholder{
  color:rgba(255,255,255,.42);
}

.join-field input:focus{
  border-color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.13);
  box-shadow:0 0 0 3px rgba(255,255,255,.08);
}

.join-submit{
  width:100%;
  margin-top:5px;
  cursor:pointer;
}

.join-submit[disabled]{
  opacity:.65;
  cursor:wait;
}

.join-privacy{
  margin:1px 0 0;
  color:rgba(255,255,255,.52);
  font-size:9.5px;
  line-height:1.45;
}

.join-status{
  min-height:18px;
  margin:0;
  font-size:11px;
  font-weight:600;
  line-height:1.45;
}

.join-status.is-success{color:#fff;}
.join-status.is-error{color:#ffd9df;}

.join-honeypot{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
}

@media(max-width:1050px){
  .hero-layout{
    grid-template-columns:1fr;
    gap:28px;
  }

  .hero-join-card{
    width:min(560px,100%);
  }
}

@media(max-width:560px){
  .hero-layout{
    gap:24px;
  }

  .hero-join-card{
    padding:21px;
    border-radius:18px;
  }

  .hero-join-card h2{
    font-size:42px;
  }

  .join-field input{
    min-height:48px;
    font-size:16px;
  }
}

/* =========================================================
   Join Group 1 popup
   ========================================================= */
.nav-join-trigger{
  appearance:none;
  border:1px solid rgba(255,255,255,.55);
  border-radius:99px;
  padding:10px 17px;
  background:rgba(255,255,255,.08);
  color:inherit;
  font:inherit;
  font-size:12px;
  cursor:pointer;
}

.join-popup{
  position:fixed;
  inset:0;
  z-index:200;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.join-popup.open{
  display:flex;
}

.join-popup-backdrop{
  position:absolute;
  inset:0;
  background:rgba(11,10,9,.78);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}

.join-popup-dialog{
  position:relative;
  z-index:1;
  width:min(470px,100%);
  max-height:92vh;
  overflow:auto;
  padding:34px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:24px;
  background:linear-gradient(155deg,var(--wine),#24151c);
  color:#fff;
  box-shadow:0 30px 90px rgba(0,0,0,.38);
}

.join-popup-dialog h2{
  margin:0;
  font-family:Manrope,sans-serif;
  font-weight:700;
  font-size:clamp(40px,6vw,58px);
  line-height:.95;
  color:#fff;
}

.join-popup-eyebrow{
  margin-bottom:11px;
  color:rgba(255,255,255,.68);
}


.join-popup-promo{
  margin-bottom:0;
}

.join-popup-event-name{
  margin:0 0 10px;
  font-family:Manrope,sans-serif;
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--sand);
}

.join-popup-dialog h2 br{
  display:block;
}

.join-popup-copy{
  margin:16px 0 24px;
  max-width:390px;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.55;
}

.join-popup-close{
  position:absolute;
  top:14px;
  right:15px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  font:inherit;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}

.join-popup .join-field input{
  background:rgba(255,255,255,.1);
}

.join-popup .join-submit{
  margin-top:7px;
}

body.join-popup-open{
  overflow:hidden;
}

@media(max-width:900px){
  .nav-join-trigger{
    width:100%;
    text-align:left;
    border-color:rgba(255,255,255,.28);
  }
}

@media(max-width:560px){
  .join-popup{
    padding:12px;
  }

  .join-popup-dialog{
    padding:30px 20px 22px;
    border-radius:20px;
  }

  .join-popup-dialog h2{
    font-size:42px;
  }

  .join-popup .join-field input{
    min-height:48px;
    font-size:16px;
  }
}

