.marathon-festival{background:#f3fbff;color:#23495b}.marathon-festival .marathon-page{max-width:none;margin:0;padding:0;background:transparent}.marathon-page>.breadcrumbs{max-width:1160px;margin:auto;padding:32px 24px 14px;font-size:12px}.marathon-layout{line-height:1.85}.marathon-layout h1,.marathon-layout h2,.marathon-layout h3{color:#175c80!important;font-family:'Zen Maru Gothic',sans-serif}.marathon-layout .marathon-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;align-items:center;max-width:none;padding:28px max(24px,calc((100vw - 1112px)/2));background:#2abbe5;background-image:radial-gradient(#ffffff65 2px,transparent 3px);background-size:32px 32px;border-bottom:3px solid #175c80}.marathon-hero-copy{padding:24px;background:white;border:2px solid #175c80;border-radius:20px;box-shadow:4px 5px 0 #175c80;gap:14px!important;min-width:0}.marathon-hero h1{font-size:clamp(30px,3.2vw,44px)!important}.marathon-hero-visual{min-width:0;transform:none!important}.marathon-hero-visual img{display:block;width:100%;height:auto;max-height:640px;object-fit:contain;border:0;border-radius:0;box-shadow:none}.marathon-hero-visual figure{margin:0}.marathon-hero>.section-note{grid-column:1/-1;margin:0;background:#effaff;padding:10px 14px;font-size:12px}.marathon-panel{background:#fff;border-bottom:2px solid #c6e8f5;margin:0!important}.marathon-panel:nth-child(even){background:#e8f7ff}.marathon-panel-inner{max-width:1160px!important;margin:auto!important;padding:30px 24px!important;gap:22px!important}.marathon-layout>.marathon-official-section,.marathon-layout>.marathon-talk{max-width:none;padding:30px max(24px,calc((100vw - 1112px)/2))!important;border-radius:0}.marathon-dog-heading{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.marathon-dog-heading>img{width:90px;height:100px;object-fit:contain}.marathon-dog-heading h2{margin:0!important;font-size:clamp(24px,2.8vw,32px)!important}.marathon-festival .button,.marathon-layout a[style*="background: #222222"]{background:#2abbe5!important;color:#103f55!important;border:2px solid #175c80!important;border-radius:12px!important;box-shadow:3px 4px 0 #175c80;font-weight:700}.marathon-festival .button:hover{background:#bceefa!important}.marathon-panel-inner>div[style*="flex-wrap"]{gap:22px!important}.marathon-page>.related-pages{max-width:1160px;margin:auto;padding:28px 24px}.marathon-page .page-index-links{gap:12px}.marathon-page .page-index-links a{background:white;border:1px solid #b9deef;border-radius:12px;padding:12px}.marathon-festival footer{background:#fff}
@media(max-width:800px){.marathon-layout .marathon-hero{grid-template-columns:1fr;padding:22px 18px;gap:18px}.marathon-hero-visual{grid-row:1}.marathon-hero-visual img{max-height:none}.marathon-hero-copy{padding:18px}.marathon-hero-copy>div{flex-direction:column!important}.marathon-hero-copy>div>div{flex:auto!important}.marathon-hero-copy .button{width:100%}.marathon-panel-inner{padding:24px 18px!important}.marathon-layout>.marathon-official-section,.marathon-layout>.marathon-talk{padding:24px 18px!important}.marathon-panel-inner>div[style*="flex-wrap"]{flex-direction:column!important;align-items:stretch!important;gap:18px!important}.marathon-panel-inner>div[style*="flex-wrap"]>div{flex:auto!important;min-width:0;width:100%}.marathon-dog-heading{gap:8px}.marathon-dog-heading>img{width:70px;height:80px;flex:0 0 70px}.marathon-layout [style*="flex: 0 0"]{flex:1 1 100%!important}.marathon-benefit-gallery,.marathon-talk-layout{grid-template-columns:1fr!important}.marathon-page>.breadcrumbs{padding:28px 18px 12px}}

/* A single festival hero with no detached white text card. */
.marathon-layout .marathon-hero{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:24px 32px;align-items:center;background-color:#2abbe5;padding-top:30px;padding-bottom:24px}
.marathon-hero .marathon-hero-copy{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;gap:16px!important}
.marathon-hero-copy>span,.marathon-hero-copy>p{color:#103f55!important}
.marathon-hero-copy h1{color:#fff!important;text-shadow:2px 3px 0 #175c80;font-size:clamp(32px,3.6vw,48px)!important;line-height:1.35!important}
.marathon-hero-badges>span{background:#ffdf58!important;color:#103f55!important;font-size:14px!important;padding:5px 16px!important;border:1px solid #175c80}
.marathon-hero .marathon-hero-visual img{max-height:540px}
.marathon-hero-facts{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:0;background:#dff6ff;border-top:4px solid #ffdf58;border-bottom:1px solid #175c80}
.marathon-hero-facts>div{padding:14px 18px!important;background:transparent!important;border-radius:0!important;border-right:1px solid #97d8ed;gap:4px}
.marathon-hero-facts>div:last-child{border-right:0}
.marathon-hero-facts span{color:#103f55!important}
.marathon-hero-actions a:first-child{background:#ffdf58!important;color:#103f55!important;border-color:#175c80!important}
.marathon-hero-actions a:last-child{background:#175c80!important;color:#fff!important;border:2px solid #175c80;border-radius:12px!important;box-shadow:3px 4px 0 #175c80}
.marathon-hero>.section-note{background:transparent;padding:0;color:#103f55!important}
.marathon-panel:nth-child(even){background:#dff5ff}
@media(max-width:800px){.marathon-layout .marathon-hero{grid-template-columns:1fr;padding:20px 18px;gap:18px}.marathon-hero .marathon-hero-visual img{max-height:none}.marathon-hero-badges{flex-direction:row!important}.marathon-hero-facts{grid-template-columns:1fr}.marathon-hero-facts>div{border-right:0;border-bottom:1px solid #97d8ed}.marathon-hero-facts>div:last-child{border-bottom:0}.marathon-hero-actions a{width:100%}.marathon-hero-copy h1{font-size:34px!important}}

/* Explicit grid areas keep the poster beside the headline. */
.marathon-layout .marathon-hero{grid-template-areas:"copy visual" "facts facts" "note note"}
.marathon-hero-copy{grid-area:copy}.marathon-hero-visual{grid-area:visual;align-self:center;width:100%}
.marathon-hero .marathon-hero-visual img{width:100%;height:auto;max-height:600px;object-fit:contain}
.marathon-hero-facts{grid-area:facts;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:none;border:0}
.marathon-hero>.section-note{grid-area:note}
.marathon-hero-facts>.race-fact{display:flex;flex-direction:column;align-items:flex-start;background:#fff!important;border:2px solid #175c80!important;border-radius:0!important;padding:20px!important;box-shadow:4px 5px 0 #175c80;gap:8px}
.race-fact-label{display:inline-block;background:#ffdf58;padding:4px 12px;font-weight:900;font-size:14px}
.race-fact p{margin:0;color:#103f55}.race-fact-pre{font-size:13px;margin-top:4px!important}.race-fact-value{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(24px,2.4vw,34px);font-weight:900;line-height:1.4}.race-fact-value span{font-size:.6em;margin-left:4px}.race-fact:last-child .race-fact-value{font-size:46px;line-height:1.1}.race-fact-note{font-size:14px;line-height:1.7}.race-fact-note strong{font-size:17px}
@media(max-width:800px){.marathon-layout .marathon-hero{grid-template-areas:"visual" "copy" "facts" "note"}.marathon-hero-visual{grid-row:auto}.marathon-hero-facts{grid-template-columns:1fr;gap:12px}.marathon-hero-facts>.race-fact{padding:16px!important}.marathon-hero .marathon-hero-visual img{max-height:none}}

.race-fact .race-price{font-size:clamp(44px,4vw,60px);line-height:1.2;color:#087b9e;margin:4px 0!important}.race-price span{font-size:.45em}

/* Participation benefits: compact icons and short descriptions */
.marathon-festival #benefits .benefit-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 18px}
.marathon-festival #benefits .benefit-card{display:flex;align-items:flex-start;gap:14px;padding:20px;background:#fff;border:2px solid #b9e8f5;border-top:5px solid #2abbe5;min-width:0}
.marathon-festival #benefits .benefit-icon{width:56px;height:56px;flex:0 0 56px;color:#185e7c;background:#e4f8ff;padding:7px;box-sizing:border-box}
.marathon-festival #benefits .benefit-card h3{margin:0 0 8px;font-size:19px;line-height:1.5;color:#185e7c}
.marathon-festival #benefits .benefit-card p{margin:0;font-size:15px;line-height:1.8}
.marathon-festival #benefits .benefit-designs{margin-top:16px;border-top:1px solid #b9e8f5;padding-top:14px}
.marathon-festival #benefits .benefit-designs summary{cursor:pointer;font-weight:700;color:#185e7c}
.marathon-festival #benefits .benefit-designs .marathon-benefit-gallery{margin-top:18px}
@media(max-width:1000px){.marathon-festival #benefits .benefit-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.marathon-festival #benefits .benefit-cards{grid-template-columns:1fr;gap:12px;margin-top:18px}.marathon-festival #benefits .benefit-card{padding:16px}.marathon-festival #benefits .benefit-card h3{font-size:18px}}

/* Illustrated benefits */
.marathon-festival #benefits .benefit-card{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}
.marathon-festival #benefits .benefit-card>div:not(.benefit-products){padding:18px}
.marathon-festival #benefits .benefit-scene{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.marathon-festival #benefits .benefit-products{display:flex;align-items:center;gap:6px;width:100%;aspect-ratio:3/2;padding:10px;box-sizing:border-box;background:white}
.marathon-festival #benefits .benefit-products figure{margin:0;flex:1;min-width:0}
.marathon-festival #benefits .benefit-products img{width:100%;height:130px;object-fit:contain;display:block}
.marathon-festival #benefits .benefit-products figcaption{font-size:11px;text-align:center;margin:6px 0 0;line-height:1.4}

/* Application options */
.marathon-festival #applications .application-intro{text-align:center;margin:0 0 20px}
.marathon-festival .application-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.marathon-festival .application-option{display:flex;flex-direction:column;background:white;border:2px solid #185e7c;border-top:7px solid #2abbe5;padding:24px;min-width:0}
.marathon-festival .application-option.application-set{border-top-color:#ffe15a;background:#fffdf0}
.marathon-festival .application-option h3{font-size:22px;color:#185e7c;line-height:1.5;margin:0 0 16px}
.marathon-festival .application-option .application-price{font-size:clamp(40px,4vw,58px);font-weight:900;line-height:1.2;color:#185e7c;margin:0 0 16px}
.marathon-festival .application-price span{font-size:22px;margin-left:4px}
.marathon-festival .application-option .application-description{font-size:15px;line-height:1.8;margin:0 0 20px}
.marathon-festival .application-option .button{margin-top:auto;width:100%;box-sizing:border-box;text-align:center;justify-content:center;font-size:15px;border-radius:0;transform:none;white-space:normal}
.marathon-festival .application-option button:disabled{opacity:.65;cursor:default;box-shadow:none}
@media(max-width:760px){.marathon-festival .application-options{grid-template-columns:1fr}.marathon-festival .application-option{padding:20px}.marathon-festival .application-option h3{font-size:21px}}

/* Benefits match the rounded home cards, without horizontal accent rules. */
.marathon-festival #benefits .benefit-card{border:0;border-radius:24px;overflow:hidden;box-shadow:0 3px 12px rgba(24,94,124,.08)}
.marathon-festival #benefits .benefit-products{gap:14px;padding:16px}
.marathon-festival #benefits .benefit-products img{height:clamp(140px,15vw,210px);object-fit:contain}
@media(max-width:640px){.marathon-festival #benefits .benefit-card{border-radius:20px}.marathon-festival #benefits .benefit-products img{height:180px}}

/* Venue access: map first, address second. */
.marathon-festival #marathon-access .access-map-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:start;margin-top:22px}
.marathon-festival #marathon-access .access-google-map{display:block;width:100%;height:420px;border:0;border-radius:20px;background:#e4f8ff}
.marathon-festival #marathon-access .access-address{min-width:0}
.marathon-festival #marathon-access .access-address h3{margin-top:0}
@media(max-width:760px){.marathon-festival #marathon-access .access-map-layout{grid-template-columns:1fr;gap:20px}.marathon-festival #marathon-access .access-google-map{height:320px}}

/* Friendly, scannable race rules */
.marathon-festival #race-rules>h2,.marathon-festival #benefits .benefit-card h3{text-align:center}
.marathon-festival .race-rule-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.marathon-festival .race-rule-card{background:#fff;border-radius:24px;padding:24px;box-shadow:0 3px 12px rgba(24,94,124,.08);min-width:0}
.marathon-festival .race-rule-tag{display:table;margin:0 auto 12px;background:#fff0a4;color:#185e7c;border-radius:30px;padding:5px 14px;font-size:13px;font-weight:700}
.marathon-festival .race-rule-card h3{text-align:center;margin:0 0 18px;color:#185e7c;font-size:21px;line-height:1.5}
.marathon-festival .race-rule-card p,.marathon-festival .race-rule-checks{font-size:15px;line-height:1.85;margin:0 0 14px}
.marathon-festival .race-rule-checks{padding-left:22px}.marathon-festival .race-rule-checks li{margin-bottom:12px}.marathon-festival .race-rule-checks li::marker{color:#2abbe5}
.marathon-festival .race-rule-card .race-rule-tip{background:#e8f8fe;border-radius:12px;padding:12px 14px;margin:16px 0 0;font-size:14px}
.marathon-festival .race-start-order{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:16px;color:#185e7c;font-size:14px;font-weight:700}
.marathon-festival .race-start-order span{background:#def6ff;border-radius:10px;padding:8px 9px}
.marathon-festival .race-wear-sizes{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.marathon-festival .race-wear-sizes span{background:#def6ff;color:#185e7c;border-radius:8px;padding:4px 10px;font-size:14px;font-weight:700}
.marathon-festival .race-rule-card .race-size-label{margin-bottom:6px;font-size:13px;font-weight:700}
@media(max-width:900px){.marathon-festival .race-rule-cards{grid-template-columns:1fr}.marathon-festival .race-rule-card{padding:22px}.marathon-festival .race-start-order{justify-content:flex-start}}

.marathon-festival .application-options{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.marathon-festival .application-options{grid-template-columns:1fr}}
