/* Roasted Run brand adaptations, with a wider desktop frame matching the supplied visual comparison. */
:root{--teal:var(--blue);--orange:var(--pink)}
@media(min-width:1101px){.wrap{width:min(1500px,calc(100% - 112px))}}
.teal-text{color:var(--blue)}.orange-text{color:var(--pink)}
.brand{width:172px}.brand img{width:100%;height:102px;aspect-ratio:auto;object-fit:contain}
.footer-brand img{height:107px;aspect-ratio:auto;object-fit:contain;filter:none;object-position:left center}
.campaign-corner img{aspect-ratio:1880/837;object-fit:contain}
.campaign-title .title-main{color:var(--blue)}
.campaign-copy .campaign-perks{max-width:none}
.city-san-diego,.city-irvine{--city-accent:var(--blue)}.city-orlando,.city-west-palm-beach{--city-accent:var(--pink)}
.motion-paused .marquee-track{animation-play-state:paused}
.mascot-runner img{aspect-ratio:1/1;object-fit:contain}
.mascot-runway .mascot-note{font-size:18px}
.faq a{text-decoration:underline;text-underline-offset:4px}
/* Maintain legible small labels within the reference's original layout. */
.nav-links,.eyebrow,.text-link,.section-index,.city-poster-top,.city-status,.campaign-bottom,.perk-tags span,.footer-col h3,.footer-col a{font-size:14px}
.vibe-points p{font-size:16px}.vibe-points .num{font-size:13px}
.campaign-copy>.eyebrow{font-size:13px}.campaign-print figcaption{font-size:13px;letter-spacing:.06em}
.footer-col a{line-height:1.55}.footer-brand p{font-size:16px}
body.event-page .event-hero{padding:62px 0 68px}
body.event-page .event-hero-grid{grid-template-columns:1.2fr .8fr;gap:65px}
body.event-page .event-hero h1{font-size:clamp(4.5rem,7.4vw,7.5rem);letter-spacing:-.025em}
body.event-page .event-hero p{font-size:17px;color:var(--muted)}
body.event-page .event-hero .event-tagline{color:var(--paper)}
body.event-page .back-link{font-size:14px;margin-bottom:30px}
body.event-page .race-ticket{padding:32px;box-shadow:7px 7px 0 var(--blue)}
body.event-page .race-ticket p{color:#555b66}
body.event-page .ticket-day{font-size:115px}
body.event-page .event-story{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,64px);padding-block:64px 72px}
body.event-page .story-photo{width:calc(100% - 14px);max-width:none;margin:9px 10px 16px 4px;padding:6px 6px 0;box-shadow:7px 8px 0 var(--blue);transform:rotate(-1deg)}
body.event-page .story-photo img{aspect-ratio:7/4;object-fit:cover;object-position:center}
body.event-page .story-photo figcaption{padding:14px 12px;font-size:22px;line-height:1.2}
body.event-page .event-story h2{font-size:clamp(2.5rem,3.6vw,3.5rem);margin-bottom:20px}
body.event-page .event-story p{font-size:17px;line-height:1.65}
body.event-page .details-grid>.event-facts{background:none;color:var(--paper);padding:0;border:0;box-shadow:none;transform:none}
body.event-page .details-grid>.event-facts:before{display:none}
body.event-page .details-grid>.event-facts dd span{color:var(--muted)}
body.event-page .details-grid,.schedule-grid,.awards-section{gap:65px}
body.event-page .included-heading{margin-block:35px}
body.event-page .inclusions,body.event-page .coffee-feature{margin-top:32px}
body.event-page .coffee-feature h3{font-style:italic}
body.event-page .faq-grid{padding-block:80px}
body.event-page .questions{border-top:1px solid var(--line)}
body.event-page .questions details{border-bottom:1px solid var(--line)}
body.event-page .questions summary{list-style:none;position:relative;padding:23px 35px 23px 0;font-size:18px;font-weight:700;cursor:pointer}
body.event-page .questions summary::-webkit-details-marker{display:none}
body.event-page .questions summary:after{content:'+';position:absolute;right:0;top:20px;font-size:25px;color:var(--blue)}
body.event-page .questions details[open] summary:after{content:'−'}
body.event-page .questions p{font-size:17px;line-height:1.6;color:var(--muted);padding-bottom:23px}
body.event-page .questions a{text-decoration:underline;text-underline-offset:4px}
body.event-page .status{display:inline-block;font-size:13px;font-weight:700;border:1px solid var(--line);border-bottom:3px solid var(--blue);padding:7px 10px;text-transform:uppercase}
body.event-page .event-story .perk-tags span{border-bottom:3px solid var(--blue)}
body.event-page .upcoming-hero{padding-block:48px 65px}
body.event-page .upcoming-grid{gap:65px}
body.event-page .upcoming-grid h1{font-size:clamp(4rem,7.4vw,7.5rem);letter-spacing:-.025em}
body.event-page .upcoming-grid p{font-size:17px;line-height:1.65}
body.event-page .final-cta p{color:var(--ink)}
@media(min-width:851px) and (max-width:1100px){.nav-links{gap:21px;font-size:13px}.brand{width:154px}.desktop-cta .button{padding-inline:18px}.nav-inner{gap:18px}}
@media(max-width:850px){
 .brand{width:145px}.brand img{height:86px}.mobile-nav a{font-size:30px}.menu-toggle{margin-left:auto}
 body.event-page .event-hero-grid{gap:35px}
 body.event-page .event-hero h1{font-size:4.5rem}
 body.event-page .event-story{grid-template-columns:minmax(0,1fr);gap:28px;padding-block:45px 52px}
 body.event-page .story-photo{max-width:500px;margin:8px auto 12px}
 body.event-page .event-story h2{font-size:clamp(2.5rem,6vw,3.25rem)}
 body.event-page .race-ticket{padding:26px}
 body.event-page .event-hero{padding:48px 0 60px}
 body.event-page .upcoming-grid{gap:35px}
}


@media(max-width:600px){
 .brand{width:145px}.brand img{height:70px}.footer-brand img{height:98px}
 .campaign-title{grid-template-columns:max-content max-content;justify-content:start;column-gap:13px}
 .campaign-title .title-lead,.campaign-title .title-main{font-size:clamp(31px,9.2vw,46px);line-height:1.12;letter-spacing:0;margin:0;padding:0;background:none}
 .campaign-title .title-lead{grid-column:1}.campaign-title .title-main{grid-column:2}
 .campaign-title .title-distance{grid-column:1/-1;font-size:clamp(76px,23vw,118px);line-height:1.06;margin:5px 0 0}
 .campaign-inner{padding:23px 0 19px}
 .campaign-copy .campaign-rule{font-size:clamp(19px,5.1vw,25px);line-height:1.2;margin:15px 0 10px}
 .campaign-copy>.eyebrow{font-size:12px;letter-spacing:.035em}
 .hero-offer{font-size:17px}
 .campaign-copy .text-link{font-size:14px}
 .campaign-bottom{font-size:12px}
 .section-index{font-size:12px;letter-spacing:.05em}
 .intro-heading p{font-size:16px}.vibe-points p{font-size:16px;line-height:1.6}.vibe-points .num{font-size:13px}
 .mascot-runway .mascot-note{font-size:16px}
 .tour-section .section-heading>p{font-size:16px}
 .city-poster-top,.city-status{font-size:12px}
 .city-mood{font-size:16px}.perk-tags span{font-size:13px}
 .campaign-print figcaption{font-size:12px;letter-spacing:.04em}
 .sweet-copy h2{font-size:clamp(2.8rem,10vw,3.6rem)}
 .faq summary{font-size:17px}.faq details p{font-size:16px}
 .footer-col h3{font-size:13px}.footer-col a{font-size:14px}.footer-brand p{font-size:15px}
 .final-cta .button{font-size:18px}.final-cta h2{font-size:clamp(2.8rem,11vw,4rem)}
 body.event-page .event-hero{padding:38px 0 43px}
 body.event-page .event-hero-grid{grid-template-columns:1fr;gap:43px}
 body.event-page .event-hero h1{font-size:clamp(3.4rem,13vw,5.3rem);line-height:1.14}
 body.event-page .event-hero .button{font-size:18px;min-height:49px}
 body.event-page .event-story{padding-block:32px 42px;gap:24px}
 body.event-page .story-photo{padding:5px 5px 0;box-shadow:5px 6px 0 var(--blue);transform:rotate(-.8deg)}
 body.event-page .story-photo figcaption{padding:11px 10px;font-size:19px}
 body.event-page .event-story h2{font-size:2.7rem;line-height:1.1;margin-bottom:18px}
 body.event-page .event-story p{font-size:16px}
 body.event-page .details-grid,body.event-page .schedule-grid,body.event-page .awards-section{gap:30px}
 body.event-page .race-ticket{width:calc(100% - 12px);margin:0 6px 12px;max-width:none;padding:29px}
 body.event-page .faq-grid{padding-block:60px}
 body.event-page .upcoming-hero{padding-block:38px 43px}
 body.event-page .upcoming-grid{grid-template-columns:1fr;gap:28px}
 body.event-page .upcoming-grid h1{font-size:clamp(3.4rem,13vw,5.3rem)}
}
@media(prefers-reduced-motion:reduce){.mascot-runner{transform:none!important}.motion-band .marquee-track{animation:none}.marquee-toggle{display:none}}
.campaign-print img{object-position:center}
.mobile-shortcuts{display:none}
@media(max-width:850px){
 .site-header{--mobile-header-height:94px;backdrop-filter:none;-webkit-backdrop-filter:none}
 /* Keep the open panel outside the header's former fixed-position containing block. */
 .site-header .mobile-nav:not([hidden]){display:flex;position:absolute;top:100%;bottom:auto;inset-inline:0;height:calc(100vh - var(--mobile-header-height));height:calc(100dvh - var(--mobile-header-height));min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--ink);z-index:40;padding-bottom:max(28px,env(safe-area-inset-bottom))}
 .site-header .mobile-nav[hidden]{display:none}
 .menu-toggle{display:flex;align-items:center;justify-content:center;gap:10px;width:auto;min-width:94px;min-height:46px;padding:10px 13px;color:var(--paper);border-color:#7d858d}
 .menu-toggle .menu-label{font:700 .875rem/1.2 var(--body)}
 .menu-toggle .menu-bars{display:block;flex:0 0 18px}
 .menu-toggle .menu-bars span{height:2px;margin:5px 0;background:currentColor}
 .mobile-shortcuts{display:block;background:var(--blue);color:var(--ink);border-bottom:1px solid #11131333}
 .mobile-shortcuts .wrap{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
 .mobile-shortcuts a{display:flex;align-items:center;justify-content:center;min-height:50px;padding:12px 10px;font:800 .875rem/1.4 var(--body);text-align:center;text-transform:uppercase;text-decoration:none}
 .mobile-shortcuts a+a{border-left:1px solid #11131333}
 .mobile-shortcuts a:hover,.mobile-shortcuts a[aria-current=page]{box-shadow:inset 0 -4px 0 var(--ink)}
 .mobile-shortcuts a:focus-visible{outline:3px solid var(--ink);outline-offset:-4px}
}
@media(min-width:601px) and (max-width:850px){body.event-page .ticket-day{font-size:78px;gap:9px}body.event-page .ticket-day>span{font-size:24px}body.event-page .race-ticket{padding:23px 18px}}

/* The photo decoration is used only in the mobile campaign. */
.campaign-photo-trim{display:none}

/* Make the finish-line food offer a clear part of the hero. */
.home-page .campaign-copy .campaign-perks{width:fit-content;max-width:100%;margin:0 0 28px;padding:13px 22px 14px;background:var(--blue);border-left:6px solid var(--pink);box-shadow:5px 5px 0 var(--pink);transform:skewX(-4deg)}
.home-page .hero-offer{display:block;margin:0;padding:0;border:0;color:var(--ink);font:italic 400 clamp(1.75rem,2.7vw,2.4rem)/1.15 var(--display);text-transform:uppercase;transform:skewX(4deg)}
.home-page .hero-offer-note{display:block;margin-top:5px;font:800 .875rem/1.4 var(--body);letter-spacing:.12em}

/* Desktop reading scale and prominent numbered callouts. */
@media(min-width:851px){
 body{--reading-size:clamp(1.125rem,1.4vw,1.375rem);font-size:var(--reading-size)}
 .eyebrow,.section-index,.text-link,.city-poster-top,.city-status,
 .campaign-bottom,.perk-tags span{font-size:1rem}
 .campaign-copy>.eyebrow,.home-page .hero-offer-note{font-size:1rem}
 .home-page .intro-heading p,.home-page .vibe-points p,
 .home-page .tour-section .section-heading>p,.home-page .city-mood,
 .home-page .sweet-copy>p,.home-page .faq-intro p,.home-page .faq details p,
 .final-cta p{font-size:var(--reading-size);line-height:1.6}
 .home-page .intro-heading p{max-width:540px;color:#c1c4c9}
 .home-page .vibe-points article{display:grid;grid-template-columns:clamp(76px,6.4vw,106px) minmax(0,1fr);gap:10px clamp(18px,1.8vw,28px);align-content:start;padding:28px 0}
 .home-page .vibe-points .num{grid-column:1;grid-row:1/3;align-self:start;display:block;margin:0;font:italic 400 clamp(64px,5.4vw,88px)/1 var(--display);letter-spacing:-.025em;color:var(--blue)}
 .home-page .vibe-points h3{grid-column:2;grid-row:1;margin:0;font-size:clamp(1.75rem,2.2vw,2.25rem);line-height:1.15}
 .home-page .vibe-points p{grid-column:2;grid-row:2;margin:0;color:#c1c4c9}
 .home-page .vibe-points .text-link{font-size:1rem;margin-top:28px}
 .home-page .tour-section .section-heading>p{max-width:440px}
 .home-page .sweet-copy>p{max-width:540px}
 .home-page .faq summary{font-size:clamp(1.25rem,1.5vw,1.5rem);line-height:1.45}
 .campaign-print figcaption{font-size:1rem}
 .mascot-runway{--note-size:290px}
 .mascot-runway .mascot-note{font-size:1.5rem}
 .mascot-finish{font-size:1rem}
 body .footer-brand p{font-size:1.125rem;max-width:280px}
 .footer-col h3,.footer-col a{font-size:1rem}
 .footer-bottom{font-size:.875rem}
 body.event-page .event-hero p,body.event-page .event-story p,
 body.event-page .upcoming-grid p,body.event-page .race-ticket p,
 body.event-page .inclusions p,body.event-page .award-categories p,
 body.event-page .questions p{font-size:var(--reading-size);line-height:1.6}
 body.event-page .event-hero .event-tagline{font-size:1.75rem}
 body.event-page .event-facts dd span{font-size:1.125rem}
 body.event-page .event-facts dt,body.event-page .event-facts dd a,
 body.event-page .back-link,body.event-page .status,body.event-page .ticket-month,
 body.event-page .coming-facts dt,body.event-page .perk-tags>span,
 body.event-page .coffee-feature strong,body.event-page .timeline small{font-size:1rem}
 body.event-page .questions summary{font-size:clamp(1.25rem,1.5vw,1.5rem)}
 body.event-page .timeline h3{font-size:1.25rem}
 body.event-page .award-categories h3{font-size:1.875rem}
 body.community-page .partner-lead>p,body.community-page .partner-section-heading>p,
 body.community-page .partner-card p,body.community-page .partner-card ul,
 body.community-page .partner-invite p,body.community-page .partner-steps li,
 body.community-page .contact-lead>p,body.community-page .contact-panel>p,
 body.community-page .contact-help p{font-size:var(--reading-size);line-height:1.6}
 body.community-page .partner-next .partner-next-date{font-size:1.8rem}
 body.community-page .eyebrow,body.community-page .text-link,
 body.community-page .contact-panel label,body.community-page .contact-direct>span:first-child,
 body.community-page .contact-copy{font-size:1rem}
 body.community-page .contact-panel select{font-size:1.125rem}
 body.community-page .contact-panel .contact-email-note{font-size:1rem}
 body.community-page .partner-next .partner-next-more{font-size:1.125rem}
}
@media(min-width:1101px){
 .nav-links{font-size:1rem;gap:clamp(18px,1.6vw,28px)}
 .desktop-cta .button{font-size:1.25rem}
}

/* Selected blue treatment on desktop; comparison pages retain their own colors. */
@media(min-width:851px){
 .home-page:not(.gradient-preview) .campaign-hero:after{
  background:linear-gradient(90deg,#073e59fa 0%,#075779ef 22%,#159bd0aa 42%,#4acbfa30 64%,transparent 82%),linear-gradient(0deg,#063149e8 0%,transparent 27%);
 }
 .home-page:not(.gradient-preview) .campaign-copy{text-shadow:0 2px 12px #11131359}
 .home-page:not(.gradient-preview) .campaign-perks,
 .home-page:not(.gradient-preview) .actions>.button{text-shadow:none}
}

/* Mobile campaign: image, gradient, copy and actions share one hero. */
@media(max-width:600px){
 .site-header{--mobile-header-height:76px}
 .home-page .campaign-hero{display:block;position:relative;isolation:isolate;min-height:0;padding:0;overflow:hidden}
 .home-page .campaign-image{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:54% center;z-index:0}
 .home-page .campaign-hero:after{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;background:linear-gradient(90deg,#111313f5 0%,#111313db 34%,#1113134d 68%,#1113130d 100%),linear-gradient(0deg,#111313 0%,#111313ed 16%,#11131391 36%,transparent 66%),linear-gradient(180deg,#11131340 0%,transparent 25%)}
 .home-page .campaign-hero>.wrap{display:block;position:relative;width:calc(100% - 40px);z-index:2}
 .home-page .campaign-inner{display:flex;flex-direction:column;position:relative;min-height:650px;padding:28px 0 36px}
 .home-page .campaign-copy{display:block;max-width:none}
 .home-page .campaign-copy>.eyebrow{display:block;max-width:calc(100% - 108px);margin:0 0 16px;font-size:.875rem;line-height:1.5;letter-spacing:.035em;color:var(--blue)}
 .home-page .campaign-title{display:block;width:fit-content;max-width:100%;margin:0 0 18px;font-size:clamp(3.25rem,16vw,5.75rem);line-height:1;letter-spacing:-.015em;overflow-wrap:anywhere;transform:skewX(-5deg);transform-origin:left center;text-shadow:0 2px 14px #11131380}
 .home-page .campaign-title .title-lead,.home-page .campaign-title .title-main,.home-page .campaign-title .title-distance{display:block;grid-column:auto;width:auto;max-width:none;padding:0;background:none;letter-spacing:inherit}
 .home-page .campaign-title .title-lead{font-size:.55em;line-height:1.2;margin:0 0 6px;color:var(--paper)}
 .home-page .campaign-title .title-main{font-size:1em;line-height:1.06;margin:0;color:var(--blue)}
 .home-page .campaign-title .title-distance{font-size:1.28em;line-height:1.02;margin:3px 0 0;color:var(--pink);text-shadow:0 2px 14px #11131380}
 .home-page .campaign-copy .campaign-rule{display:block;max-width:260px;margin:0 0 20px;font-size:clamp(1.2rem,4.6vw,1.5rem);line-height:1.25;text-shadow:0 2px 8px var(--ink)}
 .home-page .campaign-rule br{display:initial}
 .home-page .campaign-copy .campaign-perks{width:fit-content;max-width:calc(100% - 8px);margin:0 0 0 3px;padding:11px 16px 12px;text-align:left}
 .home-page .hero-offer{font-size:clamp(1.65rem,6.8vw,2rem);line-height:1.15}
 .home-page .hero-offer-note{font-size:.875rem;line-height:1.4}
 .home-page .campaign-copy .actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin:24px 0 0}
 .home-page .campaign-copy .actions>.button{width:auto;min-height:52px;padding:14px 20px;font-size:1.25rem;justify-content:center}
 .home-page .campaign-copy .actions>.text-link{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:8px 0;font-size:.875rem;line-height:1.4;color:var(--paper)}
 .home-page .campaign-bottom{position:static;display:flex;flex-direction:column;align-items:flex-start;gap:5px;max-width:calc(100% - 54px);margin:24px 0 0;font-size:.875rem;line-height:1.5;letter-spacing:.03em;text-align:left}
 .home-page .campaign-bottom span:first-child,.home-page .campaign-bottom span:last-child{display:block;max-width:none;text-align:left}
 .home-page .campaign-corner{display:block;position:absolute;top:28px;right:2px;bottom:auto;left:auto;width:92px;margin:0;padding:3px;background:var(--ink);box-shadow:3px 3px 0 var(--blue),6px 6px 0 var(--pink);transform:rotate(-5deg);z-index:3;pointer-events:none}
 .home-page .campaign-corner img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
 .home-page .campaign-photo-trim{display:block;position:absolute;inset:0;overflow:hidden;z-index:3;pointer-events:none;box-shadow:inset 0 -4px 0 var(--blue)}
 .home-page .campaign-photo-trim:before{content:'';position:absolute;left:-6px;top:0;width:104px;height:7px;background:var(--blue);transform:skewX(-25deg);box-shadow:24px 7px 0 var(--pink)}
 .home-page .campaign-photo-trim:after{content:'';position:absolute;right:-10px;bottom:17px;width:56px;height:20px;transform:skewX(-22deg);background:linear-gradient(90deg,var(--blue) 0 20%,transparent 20% 32%,var(--pink) 32% 67%,transparent 67% 79%,var(--blue) 79% 100%)}
}
