*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#171814;
  --black:#0f100d;
  --cream:#f5f0e6;
  --paper:#fbf8f1;
  --gold:#d4bf78;
  --gold-soft:#eee4be;
  --forest:#26382f;
  --sage:#bdc8b5;
  --terracotta:#b9694e;
  --muted:#73756f;
  --line:rgba(23,24,20,.14);
}
html{scroll-behavior:smooth}
body{font-family:"DM Sans",sans-serif;background:var(--cream);color:var(--ink);line-height:1.6;overflow-x:hidden}
body.menu-open,body.modal-open{overflow:hidden}
a{text-decoration:none;color:inherit}
button{font:inherit}
img{display:block;max-width:100%}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
.section{padding:105px 0}
h1,h2,h3,.brand{font-family:"League Spartan",sans-serif}
h1{font-size:clamp(4.5rem,10vw,9rem);line-height:.8;letter-spacing:-.06em}
h2{font-size:clamp(3rem,6vw,5.4rem);line-height:.9;letter-spacing:-.05em}
h3{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1}
p{color:var(--muted)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:700;letter-spacing:.16em}
.eyebrow:before{content:"";width:30px;height:2px;background:currentColor}
.eyebrow.light{color:var(--gold-soft)}
.eyebrow.dark{color:#846f2c}
.btn{min-height:54px;padding:0 24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:.25s}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-outline{border:1px solid rgba(255,255,255,.42);color:white}
.btn-light{background:white;color:var(--ink)}
.btn-dark{background:var(--ink);color:white}
.btn-white{background:white;color:var(--ink)}
.text-link{font-weight:700;border-bottom:1px solid currentColor;padding-bottom:3px}
.light-link{color:var(--gold-soft)}

.site-header{position:fixed;top:0;left:0;right:0;z-index:100;transition:.3s}
.site-header.scrolled{background:rgba(15,16,13,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-wrap{height:84px;display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:12px;color:white;font-weight:700}
.brand-mark{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--ink);font-size:.72rem}
.brand-name{font-size:1.06rem}
.main-nav{display:flex;align-items:center;gap:28px;color:white;font-size:.9rem;font-weight:600}
.nav-cta{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:10px 18px}
.menu-toggle{display:none;border:0;background:transparent;width:44px;height:44px;position:relative;z-index:2}
.menu-toggle span{display:block;width:24px;height:2px;background:white;margin:6px auto;transition:.2s}

.hero{min-height:100vh;position:relative;background:
linear-gradient(90deg,rgba(15,16,13,.9),rgba(15,16,13,.42)),
url("https://images.unsplash.com/photo-1552674605-db6ffd4facb5?auto=format&fit=crop&w=1800&q=88") center/cover;
display:flex;align-items:center;color:white}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.22))}
.hero-content{position:relative;z-index:2;padding-top:80px}
.hero-content h1{max-width:1000px;margin:18px 0 26px}
.hero-content p{max-width:600px;color:rgba(255,255,255,.67);font-size:1.08rem}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:2;color:white;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.62rem;letter-spacing:.18em}
.scroll-cue i{display:block;width:1px;height:44px;background:rgba(255,255,255,.5)}

.statement-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:end}
.statement-copy p{font-size:1.12rem;margin-bottom:28px;max-width:570px}

.featured-event{background:var(--forest);color:white}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:46px}
.section-heading>p{max-width:430px}
.section-heading.inverse>p{color:rgba(255,255,255,.58)}
.featured-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px}
.featured-flyer{min-height:640px;border-radius:30px;background:var(--gold);color:var(--ink);padding:30px;display:flex;flex-direction:column;justify-content:space-between}
.flyer-top,.flyer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:.68rem;font-weight:700;letter-spacing:.1em}
.flyer-center{text-align:center;display:flex;flex-direction:column;align-items:center}
.flyer-center small,.flyer-center span{font-size:.7rem;font-weight:700;letter-spacing:.16em}
.flyer-center strong{font-family:"League Spartan";font-size:clamp(4rem,7vw,6.4rem);line-height:.72;margin:24px 0}
.flyer-bottom>div{display:flex;flex-direction:column}
.flyer-bottom small{font-size:.6rem}
.flyer-bottom strong{font-size:1rem}
.featured-info{background:#1b2b22;border-radius:30px;padding:48px}
.countdown-label{font-size:.7rem;letter-spacing:.14em;color:rgba(255,255,255,.45);font-weight:700}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);margin:18px 0 34px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.countdown div{text-align:center;padding:20px 5px;border-right:1px solid rgba(255,255,255,.12)}
.countdown div:last-child{border-right:0}
.countdown strong,.countdown span{display:block}
.countdown strong{font-family:"League Spartan";font-size:2.3rem}
.countdown span{font-size:.63rem;color:rgba(255,255,255,.48);text-transform:uppercase}
.event-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.event-meta>div{padding:18px;border:1px solid rgba(255,255,255,.1);border-radius:15px}
.event-meta span,.event-meta strong{display:block}
.event-meta span{font-size:.62rem;letter-spacing:.12em;color:rgba(255,255,255,.43)}
.event-location{display:flex;gap:16px;margin:28px 0}
.location-icon{width:46px;height:46px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-size:1.4rem}
.event-location small,.event-location strong{display:block}
.event-location small{font-size:.62rem;letter-spacing:.1em;color:rgba(255,255,255,.45)}
.event-location p{color:rgba(255,255,255,.48);font-size:.88rem}
.event-buttons{display:flex;gap:10px;flex-wrap:wrap}

.route-panel{display:grid;grid-template-columns:1.2fr .8fr;background:#1b2b22;border-radius:30px;overflow:hidden;margin-top:24px}
.route-map{min-height:430px;position:relative;background:
linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px),
#223328;background-size:40px 40px}
.route-line{position:absolute;left:14%;top:18%;width:68%;height:64%;border:8px solid var(--gold);border-radius:48% 52% 40% 60%/54% 38% 62% 46%;transform:rotate(-8deg)}
.route-start,.route-finish{position:absolute;width:19px;height:19px;border-radius:50%;background:white;border:5px solid var(--terracotta)}
.route-start{left:4%;bottom:10%}
.route-finish{right:6%;top:9%}
.map-label{position:absolute;background:white;color:var(--ink);padding:7px 10px;border-radius:999px;font-size:.56rem;font-weight:700;letter-spacing:.08em}
.label-one{left:10%;bottom:12%}.label-two{right:16%;top:47%}.label-three{right:4%;top:15%}
.route-copy{padding:48px}
.route-copy>p{color:rgba(255,255,255,.56);margin:18px 0 25px}
.route-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:25px}
.route-stats>div{border-top:1px solid rgba(255,255,255,.14);padding-top:14px}
.route-stats strong,.route-stats span{display:block}
.route-stats strong{font-size:1.2rem}
.route-stats span{font-size:.67rem;color:rgba(255,255,255,.42)}

.partner-card{display:grid;grid-template-columns:1fr 1fr;background:var(--paper);color:var(--ink);border-radius:30px;overflow:hidden;margin-top:24px}
.partner-image{min-height:430px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.65)),url("images/cafeLogo.jpg") center/cover;padding:28px;color:white;display:flex;align-items:flex-end;font-size:.7rem;font-weight:700;letter-spacing:.13em}
.partner-copy{padding:55px;display:flex;flex-direction:column;justify-content:center}
.partner-copy p{margin:20px 0 25px}

.vendors-block{margin-top:95px}
.vendor-track{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.vendor-card{background:var(--paper);color:var(--ink);border-radius:22px;overflow:hidden}
.vendor-visual{height:220px;display:grid;place-items:center;font-family:"League Spartan";font-size:2.8rem;font-weight:800}
.vendor-a{background:#c7d2bd}.vendor-b{background:#dfbaa7}.vendor-c{background:#c2ccd4}.vendor-d{background:#d9ceab}
.vendor-copy{padding:23px}
.vendor-copy small{font-size:.62rem;color:#846f2c;letter-spacing:.13em;font-weight:700}
.vendor-copy p{min-height:66px;font-size:.88rem;margin:10px 0 15px}
.vendor-copy a{font-weight:700}
.nfc-note{margin-top:24px;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px;display:flex;align-items:center;gap:15px}
.nfc-note>span{width:50px;height:50px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-size:.68rem;font-weight:800}
.nfc-note p{color:rgba(255,255,255,.55)}
.nfc-note code{color:var(--gold-soft)}

.upcoming-runs{background:var(--paper)}
.carousel-shell{position:relative}
.flyer-carousel{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding:8px 2px 18px;scrollbar-width:none}
.flyer-carousel::-webkit-scrollbar{display:none}
.run-slide{flex:0 0 calc(33.333% - 12px);scroll-snap-align:start; border:3px solid black; border-radius:28px; overflow:hidden; background:var(--paper); color:var(--ink); display:flex; flex-direction:column; justify-content:space-between; cursor:pointer; transition:.25s}
.run-flyer{width:100%;aspect-ratio:4/5;border:0;border-radius:24px;padding:25px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;color:var(--ink);transition:.25s}
.run-flyer:hover{transform:translateY(-6px)}
.run-flyer strong{font-family:"League Spartan";font-size:clamp(2.5rem,5vw,4.2rem);line-height:.78}
.run-type,.run-flyer small,.run-flyer em{font-size:.66rem;font-weight:700;letter-spacing:.13em;font-style:normal}
.normal-flyer.one{background:var(--gold)}
.normal-flyer.two{background:var(--sage)}
.normal-flyer.three{background:#d8af9d}
.normal-flyer.four{background:#d7d0b7}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:50px;height:50px;border-radius:50%;border:0;background:var(--ink);color:white;font-size:1.2rem;cursor:pointer}
.carousel-btn.prev{left:-25px}.carousel-btn.next{right:-25px}
.carousel-help{text-align:center;margin-top:8px;font-size:.83rem}

.community-section{background:var(--gold-soft)}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.values-grid article{background:rgba(255,255,255,.35);border:1px solid var(--line);border-radius:24px;padding:32px}
.values-grid article>span{font-size:.7rem;font-weight:700;letter-spacing:.12em;color:#846f2c}
.values-grid h3{margin:24px 0 10px}
.community-numbers{display:grid;grid-template-columns:repeat(4,1fr);margin-top:65px;border-top:1px solid rgba(23,24,20,.18);border-bottom:1px solid rgba(23,24,20,.18)}
.community-numbers>div{text-align:center;padding:36px 10px;border-right:1px solid rgba(23,24,20,.18)}
.community-numbers>div:last-child{border-right:0}
.community-numbers strong,.community-numbers span{display:block}
.community-numbers strong{font-family:"League Spartan";font-size:3rem}
.community-numbers span{font-size:.75rem;color:var(--muted)}

.gallery-grid{display:flex;}
.gallery-item{border-radius:50px;overflow:hidden;padding:22px;display:flex;align-items:flex-end;color:white;font-size:.68rem;font-weight:700;letter-spacing:.12em;background-position:center;background-size:cover; border-radius: 50px; overflow: hidden; padding: 22px; display: flex; align-items: flex-end; color: white; font-size: .68rem; font-weight: 700; letter-spacing: .12em; background-position: center; background-size: cover;}
.gallery-item.tall{grid-row:span 2}
.gallery-item.wide{grid-column:span 2}
.image-one{background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.65)),url("https://images.unsplash.com/photo-1571008887538-b36bb32f4571?auto=format&fit=crop&w=1000&q=85")}
.image-two{background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.65)),url("https://images.unsplash.com/photo-1552674605-db6ffd4facb5?auto=format&fit=crop&w=900&q=85")}
.image-three{background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.65)),url("https://images.unsplash.com/photo-1526676037777-05a232554f77?auto=format&fit=crop&w=900&q=85")}
.image-four{background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.65)),url("https://images.unsplash.com/photo-1513593771513-7b58b6c4af38?auto=format&fit=crop&w=1200&q=85")}
.image-five{background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.65)),url("https://images.unsplash.com/photo-1476480862126-209bfaa8edc8?auto=format&fit=crop&w=900&q=85")}

.centered{justify-content:center;text-align:center}
.sponsors-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sponsors-grid>div{height:145px;border:1px solid var(--line);border-radius:20px;display:grid;place-items:center;text-align:center;font-family:"League Spartan";font-weight:800;line-height:.85;background:rgba(255,255,255,.36)}
.sponsors-grid .k-digital{background:var(--ink);color:white}
.sponsor-img{height:145px;border-radius:50%;object-fit:cover}

.faq-section{background:#22251f;color:white}
.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px}
.faq-grid>div:first-child p{color:rgba(255,255,255,.55);margin-top:18px}
.faq-list{border-top:1px solid rgba(255,255,255,.14)}
.faq-list article{border-bottom:1px solid rgba(255,255,255,.14)}
.faq-list button{width:100%;border:0;background:transparent;color:white;padding:24px 0;display:flex;justify-content:space-between;text-align:left;font-weight:700;cursor:pointer}
.faq-list button span{font-size:1.5rem;color:var(--gold-soft);transition:.2s}
.faq-list article.open button span{transform:rotate(45deg)}
.answer{max-height:0;overflow:hidden;transition:.28s}
.answer p{padding:0 30px 24px 0;color:rgba(255,255,255,.58)}

.join-section{background:var(--gold)}
.join-card{display:flex;justify-content:space-between;align-items:center;gap:40px}
.join-card p{max-width:650px;margin-top:17px;color:rgba(23,24,20,.62)}
.join-actions{display:flex;gap:10px;flex-wrap:wrap}

footer{background:var(--black);color:white;padding:65px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.5fr .75fr .75fr;gap:55px}
.footer-grid p{max-width:380px;margin-top:18px;color:rgba(255,255,255,.45)}
.footer-grid>div:not(:first-child){display:grid;gap:10px;align-content:start;color:rgba(255,255,255,.65)}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);margin-top:50px;padding-top:20px;font-size:.76rem;color:rgba(255,255,255,.4)}
.footer-bottom a{color:var(--gold-soft)}

.run-modal{position:fixed;inset:0;z-index:200;display:none}
.run-modal.open{display:grid;place-items:center}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.76);backdrop-filter:blur(8px)}
.modal-card{position:relative;z-index:2;width:min(900px,calc(100% - 28px));max-height:90vh;overflow:auto;background:var(--paper);border-radius:28px;display:grid;grid-template-columns:.85fr 1.15fr}
.modal-close{position:absolute;right:18px;top:15px;z-index:3;width:42px;height:42px;border-radius:50%;border:0;background:white;font-size:1.5rem;cursor:pointer}
.modal-flyer{min-height:580px;background:var(--gold);padding:35px;display:flex;align-items:center;justify-content:center;font-family:"League Spartan";font-size:4rem;text-align:center;line-height:.78}
.modal-content{padding:55px;display:flex;flex-direction:column;justify-content:center}
.modal-content p{margin-top:10px}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}

@media(max-width:980px){
  .main-nav{position:fixed;inset:0;background:rgba(15,16,13,.98);display:flex;flex-direction:column;justify-content:center;visibility:hidden;opacity:0;transition:.2s}
  .main-nav.open{visibility:visible;opacity:1}
  .main-nav a{font-size:1.35rem}
  .menu-toggle{display:block}
  .menu-toggle.open span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle.open span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .statement-grid,.featured-grid,.route-panel,.partner-card,.faq-grid{grid-template-columns:1fr}
  .featured-flyer{min-height:580px}
  .vendor-track,.sponsors-grid{grid-template-columns:repeat(2,1fr)}
  .run-slide{flex-basis:calc(50% - 9px)}
  .carousel-btn{display:none}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .gallery-item.wide{grid-column:span 1}
}
@media(max-width:700px){
  .container{width:calc(100% - 28px)}
  .section{padding:76px 0}
  .brand-name{font-size:.9rem}
  h1{font-size:clamp(4rem,18vw,6.6rem)}
  .hero{min-height:860px;background-position:62% center}
  .statement-grid,.section-heading,.join-card,.footer-bottom{display:flex;flex-direction:column;align-items:flex-start}
  .statement-grid{gap:32px}
  .featured-info,.route-copy,.partner-copy{padding:32px 24px}
  .event-meta{grid-template-columns:1fr}
  .countdown strong{font-size:1.7rem}
  .route-map{min-height:330px}
  .route-stats{grid-template-columns:1fr}
  .vendor-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}
  .vendor-card{flex:0 0 82%;scroll-snap-align:start}
  .run-slide{flex-basis:86%}
  .values-grid,.community-numbers,.sponsors-grid{grid-template-columns:1fr 1fr}
  .community-numbers>div:nth-child(2){border-right:0}
  .community-numbers>div:nth-child(-n+2){border-bottom:1px solid rgba(23,24,20,.18)}
  .gallery-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}
  .gallery-item{flex:0 0 84%;min-height:420px;scroll-snap-align:start; border-radius:40px;overflow:hidden;padding:22px;display:flex;align-items:flex-end;color:white;font-size:.68rem;font-weight:700;letter-spacing:.12em;background-position:center;background-size:cover}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1/-1}
  .modal-card{grid-template-columns:1fr}
  .modal-flyer{min-height:420px}
  .modal-content{padding:35px 24px}
}


.run-flyer{
    border:none;
    background:none;
    padding:0;
    cursor:pointer;
    width:100%;
}

.run-flyer img{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    border-radius:24px;
    display:block;
    transition:.25s;
}

.run-flyer img:hover{
    transform:translateY(-6px);
}

