/* Design tokens map to the Wix Editor Site Design panel: theme colours and text themes.
   Font: Poppins (headings 700, body 400) is in the Wix Editor font list (support.wix.com/en/article/about-fonts-available-in-wix). */
:root{--g:20px;--purple:#7E01FF;--deep:#5B00B8;--ink:#141414;--grey:#5f5f6b;--light:#F4EFFB;--line:#e4dcef;--white:#fff;--w:980px}
*{box-sizing:border-box}
body{margin:0;font-family:Poppins,Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.6;background:#fff}
h1,h2,h3{font-family:Poppins,Arial,sans-serif;font-weight:700;color:var(--ink);line-height:1.15;margin:0 0 14px;letter-spacing:-.5px}
h1{font-size:48px}h2{font-size:36px}h3{font-size:22px}
p{margin:0 0 14px}
a{color:var(--deep)}
.wrap{width:min(100%,calc(var(--w) + 2*var(--g)));margin:0 auto;padding-left:var(--g);padding-right:var(--g)}
.strip{padding:72px 0}
.strip.light{background:var(--light)}
.strip.dark{background:var(--ink);color:#fff}.strip.dark h2,.strip.dark h3{color:#fff}
.strip.purple{background:var(--deep);color:#fff}.strip.purple h2,.strip.purple h3{color:#fff}
.eyebrow{font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--purple);margin-bottom:8px}
.dark .eyebrow,.purple .eyebrow,.hero .eyebrow{color:#d9b8ff}
.btn{display:inline-block;padding:13px 28px;border-radius:4px;background:var(--purple);color:#fff;text-decoration:none;font-weight:600;font-size:15px;margin:4px 8px 4px 0;border:2px solid var(--purple)}
.btn.ghost{background:transparent;color:var(--purple)}
.dark .btn.ghost,.purple .btn.ghost,.hero .btn.ghost{color:#fff;border-color:#fff}
.btn.white{background:#fff;color:var(--deep);border-color:#fff}
.tbc{display:inline-block;background:#FFF3C4;color:#6b5200;border:1px dashed #c9a400;font-size:12px;padding:1px 7px;border-radius:3px;font-weight:600;white-space:nowrap}
.src{font-size:12px;color:var(--grey)}
.dark .src,.purple .src,.hero .src{color:#cfc4e0}
/* header: Wix header with Freeze header, horizontal menu with submenus, social bar, button */
.topbar{background:var(--ink);color:#fff;font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:38px}
.social{display:flex;gap:10px}
.social a{display:inline-flex;width:26px;height:26px;border-radius:50%;background:#fff;color:var(--ink);align-items:center;justify-content:center;font-size:11px;font-weight:700;text-decoration:none}
header.site{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:92px}
header.site img.logo{height:68px}
nav.menu{display:flex;gap:2px;align-items:center}
nav.menu>div{position:relative}
nav.menu a.top{display:block;padding:10px 11px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:500}
nav.menu a.top.on{color:var(--purple)}
nav.menu .sub{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--line);min-width:220px;padding:6px 0;box-shadow:0 6px 18px rgba(0,0,0,.08)}
nav.menu>div:hover .sub{display:block}
nav.menu .sub a{display:block;padding:8px 16px;font-size:14px;text-decoration:none;color:var(--ink)}
nav.menu .sub a:hover{background:var(--light)}
.burger{display:none;font-size:28px;text-decoration:none;color:var(--ink)}
.subtog{display:none}
/* hero: full-width strip, image background at reduced opacity over black */
.hero{position:relative;color:#fff;background:#000}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.55}
.hero .wrap{position:relative;padding:120px var(--g) 110px}
.hero h1{color:#fff;font-size:60px;max-width:700px}
.hero .lead{font-size:20px;max-width:620px}
.hero.short .wrap{padding:80px var(--g) 70px}.hero.short h1{font-size:48px}
.cols{display:grid;gap:32px}
.c2{grid-template-columns:1fr 1fr}.c3{grid-template-columns:repeat(3,1fr)}.c4{grid-template-columns:repeat(4,1fr)}
.c2-1{grid-template-columns:1.4fr 1fr}.c1-2{grid-template-columns:1fr 1.4fr}
.card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.card .img{aspect-ratio:3/2;background-size:cover;background-position:center}
.card .body{padding:18px 20px 22px}
.card h3{font-size:20px;margin-bottom:6px}
.stat{font-family:Poppins,Arial,sans-serif;font-size:44px;font-weight:700;color:var(--purple);line-height:1.1}
.dark .stat,.purple .stat{color:#fff}
.statbox{border-left:4px solid var(--purple);padding:6px 0 6px 18px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gallery div{aspect-ratio:3/2;background-size:cover;background-position:center;border-radius:3px}
.poster{width:100%;max-width:380px;border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.35);display:block}
.year{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:34px 0;border-top:1px solid var(--line)}
.year .yr{font-family:Poppins,Arial,sans-serif;font-size:44px;font-weight:700;color:var(--purple);line-height:1}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tile{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.tile .img{aspect-ratio:16/10;background-size:cover;background-position:center}
.tile .t{padding:12px 14px}.tile .t b{display:block;font-size:15px}.tile .t span{font-size:13px;color:var(--grey)}
.yearstrip{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.yearstrip a{display:block;text-decoration:none;color:#fff;border-radius:6px;overflow:hidden;position:relative;aspect-ratio:3/4;background:#000}
.yearstrip a .img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.6}
.yearstrip a .t{position:absolute;left:14px;bottom:12px;right:12px}
.yearstrip a .t b{font-family:Poppins,Arial,sans-serif;font-size:34px;display:block;line-height:1}
.yearstrip a .t span{font-size:13px}
table.pk{width:100%;border-collapse:collapse;font-size:15px}
table.pk td,table.pk th{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}
.pkg{border:1px solid var(--line);border-radius:6px;padding:22px;background:#fff;position:relative}
.pkg h3{margin-bottom:4px}.pkg .price{font-size:26px;font-weight:700;color:var(--deep);margin-bottom:10px;font-family:Poppins,Arial,sans-serif}
.pkg ul{padding-left:18px;margin:0;font-size:14.5px}.pkg li{margin-bottom:6px}
.pkg.sold{background:#f6f6f6;color:#777}.pkg.sold .price{color:#999;text-decoration:line-through}
.badge{position:absolute;top:16px;right:16px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;background:var(--purple);color:#fff;letter-spacing:1px}
.badge.sold{background:#444}
.form{background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px}
.form label{display:block;font-size:13px;font-weight:600;margin:10px 0 4px}
.form .in{height:44px;border:1px solid #cfc6dc;border-radius:4px;background:#fff}
.form .in.big{height:120px}
.form .chk{display:flex;gap:10px;font-size:13px;margin:12px 0;color:var(--grey)}
.form .chk i{flex:0 0 18px;height:18px;border:1px solid #999;border-radius:2px;margin-top:2px}
.amts{display:flex;gap:10px;margin:6px 0}.amts span{flex:1;text-align:center;border:2px solid var(--purple);border-radius:4px;padding:10px 0;font-weight:700;color:var(--deep)}
.amts span.on{background:var(--purple);color:#fff}
.prod .img{aspect-ratio:1/1;background-size:cover;background-position:center;background-color:var(--light)}
.prod .was{text-decoration:line-through;color:var(--grey);font-size:14px;margin-right:6px}
.prod .now{font-weight:700;color:var(--deep)}
.ph{display:flex;align-items:center;justify-content:center;background:#efe8f8;border:1px dashed #b9a6d6;color:var(--grey);font-size:13px;text-align:center;padding:10px}
.breadcrumb{font-size:13px;color:var(--grey);margin-bottom:10px}.hero .breadcrumb{color:#e5d8f7}.hero .breadcrumb a{color:#fff}
footer.site{background:var(--ink);color:#d8d8d8;padding:56px 0 26px;font-size:14px}
footer.site h4{color:#fff;font-size:15px;margin:0 0 10px;font-family:Poppins,sans-serif}
footer.site a{color:#d8d8d8;text-decoration:none;display:block;margin-bottom:4px}
footer.site .social a{display:inline-flex;margin:0}
footer.site .legal{border-top:1px solid #333;margin-top:30px;padding-top:18px;display:flex;justify-content:space-between;align-items:center}
footer.site .regs{display:flex;gap:14px;align-items:center}footer.site .regs img{height:46px;background:#fff;padding:4px;border-radius:3px}
.note{font-size:13px;background:#FFF9E3;border-left:4px solid #c9a400;padding:10px 14px;margin:14px 0;color:#5a4800}
/* Mobile: in the classic Wix Editor this is a separate mobile layout built in the Mobile Editor (same content, re-arranged and stacked). */
@media (max-width:700px){
 :root{--w:100%}
 .wrap{padding:0 20px}
 h1{font-size:34px}h2{font-size:28px}
 .topbar .wrap>span{display:none}.topbar .wrap{justify-content:center}
 nav.menu,header.site .btn{display:none}.burger{display:block}
 header.site .wrap{height:72px}header.site img.logo{height:50px}
 .hero .wrap{padding:70px 20px 60px}.hero h1,.hero.short h1{font-size:36px}.hero .lead{font-size:17px}
 .strip{padding:48px 0}
 .c2,.c3,.c4,.c2-1,.c1-2,.tiles{grid-template-columns:1fr}
 .gallery{grid-template-columns:1fr 1fr}
 .yearstrip{grid-template-columns:1fr 1fr}
 .year{grid-template-columns:1fr;gap:8px}
 .poster{max-width:100%}
 footer.site .legal{flex-direction:column;gap:14px;align-items:flex-start}
 .stat{font-size:36px}
}
/* Home components from the approved wireframe */
.heroflex{display:flex;align-items:center;justify-content:space-between;gap:40px}
.herotext{max-width:600px}
.evcard{background:#fff;color:var(--ink);border-radius:8px;padding:22px;width:300px;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.evcard img{width:100%;border-radius:4px;margin-bottom:12px;display:block}
.evcard h3{font-size:20px;margin-bottom:6px}.evcard p{font-size:14px}
.evcard .eyebrow{color:var(--purple)}
.evlink{display:block;text-align:center;font-size:13px;margin-top:10px;color:var(--deep)}
.scard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}
.scard b{display:block;font-size:19px;color:var(--deep);margin-bottom:4px}.scard span{font-size:13px;color:var(--grey)}
.pgrid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;gap:10px}
.pgrid div{background-size:cover;background-position:center;border-radius:6px}
.pgrid .big{grid-row:span 2}
.icard{border:1px solid var(--line);border-radius:8px;padding:22px;font-size:14px;color:var(--grey)}
.icard .stat{margin-bottom:6px}
.amts.dk span{border-color:var(--purple);color:#fff}
.amts.dk span.on{background:var(--purple)}
.tile .t span{display:block}
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:16px}
.logos>div{height:90px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;background:#fff;padding:8px}
.logos img{max-height:70px;max-width:100%}
.nl{display:flex;gap:10px}.nl .in{flex:1;height:48px;border:1px solid #cfc6dc;border-radius:24px;background:#fff;padding:12px 18px;color:#888;font-size:14px}
.nl .btn{border-radius:24px}
@media (max-width:700px){
 .heroflex{flex-direction:column;align-items:flex-start}.evcard{width:100%}
 .pgrid{grid-template-columns:1fr 1fr;grid-template-rows:200px 120px 120px}.pgrid .big{grid-column:span 2;grid-row:auto}
 .logos{grid-template-columns:1fr 1fr}
 .nl{flex-direction:column}
}
.donbox{background:#1f1f24;border:1px solid #333;border-radius:8px;padding:26px}
.year .yr.small{font-size:26px}
/* ---- round 3 additions ---- */
.hero.banner .wrap{padding:0 var(--g) 60px;min-height:440px;display:flex;flex-direction:column;justify-content:flex-end}
.hero.banner h1{font-size:52px}
.hero.banner .bg{opacity:.5}
.hero.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.55));pointer-events:none}
.hero.banner .wrap{z-index:1}
.feature{background:linear-gradient(135deg,#14002b 0%,#2d0063 55%,#5B00B8 100%);color:#fff;padding:80px 0}
.featflex{display:flex;gap:60px;align-items:center}
.fposter{flex:0 0 420px}.fposter img{width:100%;display:block;border-radius:6px;box-shadow:0 20px 50px rgba(0,0,0,.55)}
.ftext{flex:1}.ftext h2{color:#fff;font-size:48px;margin:6px 0 12px}.feature .eyebrow{color:#d9b8ff}
.fmeta{font-size:20px;font-weight:600}.ftag{font-size:20px;color:#e6d6ff}
.fprices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0 26px}
.fprices div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:14px 16px}
.fprices b{display:block;font-size:26px}.fprices span{font-size:13px;color:#e6d6ff}
.btn.big{padding:16px 30px;font-size:17px}
.feature .btn.ghost{color:#fff;border-color:#fff}
.giftaid{border-left:3px solid var(--purple);padding-left:10px;font-size:14px;color:#cfc4e0}
.pnames{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:16px}
.pname{border:1px solid var(--line);border-radius:6px;padding:16px 14px;background:#fff;min-height:96px;display:flex;flex-direction:column;justify-content:center}
.pname b{font-size:15px;line-height:1.3}.pname span{font-size:12.5px;color:var(--grey);margin-top:4px}
.card.team .img{aspect-ratio:4/5;background-position:center 25%}
.evrow{display:grid;grid-template-columns:340px 1fr;margin-top:18px}
.evp{background:#14002b;display:flex;align-items:center;justify-content:center;padding:18px}.evp img{width:100%;max-width:300px;display:block}
.galahero{background:radial-gradient(ellipse at 75% 40%,#5B00B8 0%,#2d0063 40%,#0b0016 85%)}
.galahero .wrap{padding:90px var(--g) 90px}
.galahero .poster{max-width:420px;margin-left:auto}
.price.small{font-size:16px}
.small{font-size:13px;color:var(--grey)}
.ysub{font-size:13px;color:var(--grey);margin-top:6px}
.tile.wide{grid-column:span 3;display:grid;grid-template-columns:1fr 2fr}.tile.wide .img{aspect-ratio:auto;min-height:200px}.tile.wide .t{padding:22px 26px;display:flex;flex-direction:column;justify-content:center}.tile.wide .t span{font-size:15px;color:var(--ink)}
.prod .img{position:relative;aspect-ratio:1/1}
.ribbon{position:absolute;top:10px;left:10px;background:var(--purple);color:#fff;font-size:12px;font-weight:600;padding:3px 10px;border-radius:3px}
.oos{display:inline-block;font-size:13px;font-weight:600;color:#7a7a7a;border:1px solid #ccc;border-radius:3px;padding:2px 8px;margin-top:4px}
.map{width:100%;height:240px;border:0;border-radius:6px;margin-top:16px}
.pgrid{grid-template-rows:none}.pgrid div{aspect-ratio:3/2}.pgrid .big{aspect-ratio:auto}
@media(max-width:820px){
 .hero.banner .wrap{min-height:320px;padding:0 var(--g) 36px}.hero.banner h1{font-size:34px}
 .featflex{flex-direction:column;gap:28px;padding:0 20px}.fposter{flex:none;width:100%;max-width:340px}.ftext h2{font-size:34px}
 .feature{padding:48px 0}.fprices{grid-template-columns:1fr}
 .pnames{grid-template-columns:1fr 1fr}
 .evrow{grid-template-columns:1fr}
 .galahero .wrap{padding:60px var(--g)}.galahero .poster{margin:24px auto 0;max-width:300px}
 .tile.wide{grid-column:auto;grid-template-columns:1fr}.tile.wide .img{min-height:180px}
 .pgrid{grid-template-columns:1fr 1fr;grid-template-rows:none}.pgrid .big{grid-column:span 2;aspect-ratio:3/2}
}
img.map{object-fit:cover;display:block;height:auto;aspect-ratio:840/390}
.hero.banner.grad{background:radial-gradient(ellipse at 80% 30%,#5B00B8 0%,#2d0063 45%,#0b0016 90%)}
.yearstrip a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.75))}
.yearstrip a .t{z-index:1}

/* ---- round 4: Kendall preferred the previous floating hero card, slightly bigger (about 20%) ---- */
.hero .evcard{width:350px;padding:26px;flex:0 0 auto;border-radius:10px}
.evcard img{border-radius:5px;margin-bottom:14px}
.evcard h3{font-size:24px;margin-bottom:8px;color:var(--ink)}
.evcard p{font-size:15px;line-height:1.5;margin-bottom:10px}
.evcard .evaddr{font-size:13.5px;color:var(--grey)}
.evcard .evprice{font-size:13.5px;color:var(--ink);background:#f4eefc;border-radius:6px;padding:8px 10px;margin:4px 0 14px}
.hero .evcard .btn{padding:13px 20px;font-size:15px}
.hero .evcard .btn.ghost.evbtn2{display:block;width:100%;text-align:center;margin:10px 0 0;color:var(--deep);border-color:var(--purple);background:#fff}
@media (max-width:700px){
 .hero .evcard{width:100%;padding:22px}
 .evcard img{max-width:300px;margin-left:auto;margin-right:auto}
 .heroflex{gap:32px}
}

/* ---- responsive pass (8 Oct 2026): tablet layout, working mobile menu, bigger tap targets ---- */
/* Header: burger menu below 1020px (Wix: mobile menu / hamburger menu element) */
@media (max-width:1020px){
 header.site .wrap{position:static}
 .arr{display:none}
 .burger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:none;font:inherit;font-size:28px;line-height:1;color:var(--ink);cursor:pointer;flex:0 0 44px}
 header.site .btn{display:inline-block;margin:0 10px 0 auto}
 nav.menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 14px 28px rgba(0,0,0,.14);padding:4px var(--g) 12px;max-height:calc(100vh - 110px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0}
 header.site.open nav.menu{display:flex}
 nav.menu>div{display:flex;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}
 nav.menu>div:last-child{border-bottom:0}
 nav.menu a.top{flex:1;padding:12px 0;font-size:16px;min-height:48px}
 nav.menu .subtog{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;background:none;font:inherit;font-size:24px;color:var(--deep);cursor:pointer}
 nav.menu .subtog::before{content:"+"}
 nav.menu>div.open .subtog::before{content:"\2212"}
 nav.menu>div:hover .sub{display:none}
 nav.menu .sub{position:static;width:100%;border:0;box-shadow:none;background:none;min-width:0;padding:0 0 8px 14px}
 nav.menu>div.open .sub{display:block}
 nav.menu .sub a{padding:10px 0;font-size:15px;color:var(--grey);min-height:44px}
 nav.menu .sub a:hover{background:none;color:var(--deep)}
 /* ticket table stacks into one block per ticket */
 table.pk,table.pk tbody,table.pk tr,table.pk td{display:block;width:100%}
 table.pk tr:first-child{display:none}
 table.pk tr{border-bottom:1px solid var(--line);padding:12px 0}
 table.pk td{border:0;padding:0}
 table.pk td:nth-child(2){font-weight:700;color:var(--deep);font-size:18px;margin:4px 0 2px}
 table.pk td:nth-child(3){font-size:13px;color:var(--grey)}
}
/* Tablet (iPad portrait up to small laptops) */
@media (min-width:701px) and (max-width:1020px){
 :root{--g:32px}
 .hero h1{font-size:46px}
 .hero .lead{font-size:18px}
 .heroflex{gap:32px}
 .hero .evcard{width:300px;padding:22px}
 .evcard h3{font-size:21px}
 .c4{grid-template-columns:1fr 1fr}
 .pnames{grid-template-columns:repeat(3,1fr)}
 .cols.pkgs{grid-template-columns:1fr 1fr}
 .tile.wide{grid-column:1/-1;grid-template-columns:1fr 2fr}.tile.wide .img{min-height:200px}
 .yearstrip a .t b{font-size:28px}
 .yearstrip a .t span{display:block;font-size:12.5px;line-height:1.4;margin-top:4px}
}
/* Phones */
@media (max-width:700px){
 header.site .btn{padding:9px 16px;font-size:14px;margin:0 6px 0 auto}
 .topbar .wrap{height:48px}
 .social{gap:12px}
 .social a{width:40px;height:40px;font-size:13px}
 footer.site .cols{grid-template-columns:1fr 1fr;gap:26px 20px}
 footer.site .cols>div:nth-child(-n+2){grid-column:span 2}
 footer.site a{padding:9px 0;margin:0}
 footer.site .social a{padding:0}
 footer.site .legal span{font-size:13px}
 .price.small a,.card .body>a{display:inline-block;padding:9px 0}
 .breadcrumb a{display:inline-block;padding:10px 0;margin:-10px 0}
 .gallery>div:last-child:nth-child(odd){grid-column:span 2;aspect-ratio:16/9}
 .yearstrip a:last-child:nth-child(odd){grid-column:span 2;aspect-ratio:16/9}
}

/* Run 4 Eoin 2026 route map: light, slim (v4) */
.routestrip{background:linear-gradient(180deg,#fff 0,#faf7ff 50%,#fff 100%);color:#2a2340;padding:56px 0}
.routestrip .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;align-items:center}
.routestrip .eyebrow{color:#7E01FF}.routestrip h2{color:#4a1a8c;margin:4px 0 10px;font-size:clamp(26px,3vw,36px)}
.routelead{max-width:460px;color:#5d5675;font-size:14px;line-height:1.55;margin:0}
.routestats{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.routestats div{background:#7E01FF;color:#fff;border-radius:999px;padding:9px 16px;line-height:1.15}
.routestats b{display:block;font-size:15px;font-weight:700;color:#fff}.routestats span{font-size:11px;color:#eadcff}
.routefig{margin:0}.routefig figcaption{font-size:11px;color:#8d87a3;margin-top:4px;text-align:right}
.routemap{display:block;width:100%;height:auto;max-height:380px;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 78%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 78%,transparent 100%)}
.routemap text{font-family:Poppins,Arial,sans-serif}
.rm-line{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.rm-big{font-size:12.5px;fill:#2e1a5c;font-weight:500;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.rm-town,.rm-stop{cursor:pointer;outline:none}.rm-town:hover circle,.rm-town:focus-visible circle{stroke:#7E01FF}
.routemap.anim .rm-line{stroke-dasharray:1;stroke-dashoffset:1}
.routemap.anim .rm-town,.routemap.anim .rm-stop{opacity:0}
.routemap.in .rm-line{transition:stroke-dashoffset 2.4s ease-in-out;stroke-dashoffset:0}
.routemap.in .rm-l2{transition-delay:.9s}.routemap.in .rm-l3{transition-delay:1.8s}
.routemap.in .rm-town,.routemap.in .rm-stop{transition:opacity .5s var(--d);opacity:1}
@media(max-width:860px){.routestrip{padding:40px 0}.routestrip .wrap{grid-template-columns:1fr;gap:14px}.routefig figcaption{text-align:left}}
@media(max-width:600px){.rm-big{font-size:19px;stroke-width:4px}.routemap{max-height:none}.routestats div{padding:8px 13px}}

/* partners page */
.sponsorcta{padding:0;margin-top:-40px;position:relative;z-index:2}
.scta{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:radial-gradient(ellipse at 0 0,#3a1a8a 0,#120c2e 70%);color:#fff;border-radius:16px;padding:38px 42px;box-shadow:0 24px 60px rgba(40,10,90,.35);border:1px solid rgba(217,184,255,.25)}
.scta h2{color:#fff;margin:0 0 8px}.scta p{color:#d8cff0;max-width:620px;margin:0}.scta .eyebrow{color:#d9b8ff}
.scta .btn.ghost{color:#fff;border-color:#d9b8ff}
.sgroup{margin-top:38px}.sgroup h3{display:flex;align-items:center;gap:14px;font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--purple);margin:0 0 16px}
.sgroup h3:after{content:"";flex:1;height:1px;background:var(--line)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.stile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
a.stile:hover,a.stile:focus-visible{transform:translateY(-3px);box-shadow:0 14px 34px rgba(91,0,184,.14);border-color:#c9a8f5}
.stile .sl{height:160px;display:flex;align-items:center;justify-content:center;padding:26px 30px}
.stile .sl img{max-width:100%;max-height:100px;width:auto;height:auto;object-fit:contain}
.stile .sw{font-weight:700;font-size:22px;text-align:center;line-height:1.2;color:var(--deep)}
.stile .sm{border-top:1px solid var(--line);padding:12px 16px;border-left:4px solid var(--purple)}
.stile .sm b{display:block;font-size:15px}.stile .sm span{font-size:13px;color:var(--grey)}
@media(max-width:700px){.scta{padding:28px 22px}.sponsorcta{margin-top:-24px}.stile .sl{height:130px}}
/* Run 4 Eoin 2026 film block (click-to-play, lazy iframe) */
.film{margin-top:26px}
.filmcover,.film iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:18px;overflow:hidden;background:#0b0614}
.filmcover{position:relative;padding:0;cursor:pointer;box-shadow:0 30px 60px -30px rgba(40,0,90,.6);font-family:inherit}
.filmcover:disabled{cursor:default}
.filmcover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.filmcover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,6,20,.85),rgba(11,6,20,.1) 55%),radial-gradient(circle at 50% 50%,transparent 30%,rgba(11,6,20,.35))}
.filmcover:not(:disabled):hover img{transform:scale(1.04)}
.filmplay{position:absolute;z-index:2;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(126,1,255,.85);box-shadow:0 0 0 10px rgba(255,255,255,.15);transition:transform .3s}
.filmcover:not(:disabled):hover .filmplay,.filmcover:focus-visible .filmplay{transform:scale(1.08)}
.filmtitle{position:absolute;z-index:2;left:32px;bottom:26px;color:#fff;text-align:left;font-size:30px;font-weight:700;line-height:1.15}
.filmtitle small{display:block;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:#d6b8ff;font-weight:600;margin-bottom:4px}
.filmnote{margin:10px 0 0;font-size:13px;color:var(--grey);background:#fff8e1;border:1px dashed #e0b84c;border-radius:8px;padding:8px 12px}
@media(max-width:700px){.filmtitle{font-size:19px;left:18px;bottom:14px}.filmplay{width:64px;height:64px;margin:-32px 0 0 -32px}.filmcover,.film iframe{border-radius:12px}}
/* Our Eoin: compact centred header above the card fan */
.fanhead{text-align:center;margin-bottom:6px}.fanhead h2{font-size:52px;letter-spacing:-1px;margin:0;color:#fff}
@media(max-width:700px){.fanhead h2{font-size:38px}}
/* Section intro paragraph under kicker + H2, then a gap before the grid */
.sectlead{max-width:720px;font-size:17px;line-height:1.75;margin:0 0 40px}
@media(max-width:700px){.sectlead{font-size:16px;margin-bottom:28px}}
/* Logo grids (charities + sponsors): borderless white tiles, soft layered shadow, logos fill ~80% */
.clogos{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:22px!important;margin-top:22px}
.clogos>div{background:#fff!important;border:0!important;border-radius:14px!important;aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;padding:0!important;box-shadow:0 1px 2px rgba(20,10,40,.06),0 4px 10px rgba(20,10,40,.05),0 14px 30px -10px rgba(60,20,120,.14);transition:transform .25s,box-shadow .25s}
.clogos>div:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(20,10,40,.06),0 10px 20px rgba(20,10,40,.07),0 24px 44px -12px rgba(60,20,120,.22)}
.clogos img{width:auto!important;height:auto!important;max-width:80%!important;max-height:72%!important;object-fit:contain}
.stile{border:0!important;box-shadow:0 1px 2px rgba(20,10,40,.06),0 4px 10px rgba(20,10,40,.05),0 14px 30px -10px rgba(60,20,120,.14)}
a.stile:hover,a.stile:focus-visible{box-shadow:0 2px 4px rgba(20,10,40,.06),0 10px 20px rgba(20,10,40,.07),0 24px 44px -12px rgba(60,20,120,.22)}
.sgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.stile .sl{height:200px;padding:0}.stile .sl img{max-width:80%;max-height:75%}
.stile .sm{border-top:1px solid #f0eaf7}
@media(max-width:1020px){.clogos{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:700px){.clogos{grid-template-columns:repeat(2,1fr)!important;gap:14px!important}.sgrid{grid-template-columns:repeat(2,1fr);gap:14px}.stile .sl{height:120px}.stile .sm{padding:10px 12px}}
/* Impact band (Run 4 Eoin 2026 stats) */
.ib{margin:28px 0;border-radius:14px;padding:18px 26px 14px;color:#fff;background:linear-gradient(135deg,#3a0a78 0%,#1e0644 60%,#140330 100%);position:relative;overflow:hidden;box-shadow:0 18px 40px -28px rgba(40,0,90,.5)}

.ib-k{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#c9a6ff;font-weight:600}
.ib-big{font-size:38px;font-weight:600;line-height:1.1;letter-spacing:-1px;color:#fff;margin:2px 0 0;font-variant-numeric:tabular-nums}
.ib-sub{color:#d9cdee;font-size:13px}
.ib-row{display:grid;grid-template-columns:repeat(4,1fr);margin-top:12px;border-top:1px solid rgba(255,255,255,.1);position:relative;z-index:1}
.ib-row>div{padding:10px 14px 0 0;display:flex;gap:14px;align-items:flex-start}.ib-row>div+div{border-left:1px solid rgba(255,255,255,.1);padding-left:14px}
.ib-row svg{color:#b98aff;flex:none;margin-top:4px}.ib-row b{display:block;font-size:14px;font-weight:600;line-height:1.25;color:#fff}.ib-row span{font-size:11px;color:#b9abcf}
@media(max-width:900px){.ib-big{font-size:96px}.ib-row{grid-template-columns:1fr 1fr}.ib-row>div{padding:18px 10px 14px 0}.ib-row>div:nth-child(3){border-left:0;padding-left:0}.ib-row>div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}}
@media(max-width:700px){.ib{padding:14px 14px 12px;border-radius:12px}.ib-big{font-size:29px;letter-spacing:-.5px}.ib-sub{font-size:12px}.ib-row b{font-size:13px}.ib-row>div+div{padding-left:12px}.ib-row svg{width:18px;height:18px}}
.ib-row svg{width:16px;height:16px;margin-top:2px}@media(max-width:700px){.ib-row svg{width:14px;height:14px}}
@media(min-width:901px){.ib{display:grid;grid-template-columns:auto 1fr;column-gap:34px;align-items:center;padding:16px 26px}.ib>*{grid-column:1}.ib-row{grid-column:2;grid-row:1/span 3;margin:0;border-top:0;border-left:1px solid rgba(255,255,255,.1)}.ib-row>div{padding:4px 0 4px 16px}.ib-row>div+div{padding-left:16px}}
@media(max-width:700px){.ib-row span{line-height:1.3;display:block}.ib-row>div{padding:8px 8px 2px 0}.ib-row b{line-height:1.2}}
/* Gala sponsorship: borderless soft-shadow cards (match charity logo tiles) */
#sponsor .statbox,.pkg{border:0;border-radius:16px;background:#fff;box-shadow:0 1px 2px rgba(20,10,40,.06),0 4px 10px rgba(20,10,40,.05),0 14px 30px -10px rgba(60,20,120,.14)}
#sponsor .statbox{padding:18px 20px}
.pkg{padding:24px}
.pkg.sold{background:#f7f6f9;color:#888;box-shadow:0 1px 2px rgba(20,10,40,.04),0 6px 16px -10px rgba(20,10,40,.12)}
/* self-hosted films */
.hvids{display:grid;gap:24px;margin-top:14px}.hvids.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.hvid{margin:0 auto;width:100%;max-width:1100px}.hvid video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#111;border-radius:16px;box-shadow:0 10px 30px rgba(20,10,40,.16),0 2px 6px rgba(20,10,40,.08);object-fit:contain}
.hvid figcaption{margin-top:10px;font-weight:600;font-size:15px}.hvid figcaption span{font-weight:400;opacity:.65;margin-left:6px}
/* Team tiles: smaller so portraits are not upscaled (16 Oct) */
.teamgrid{max-width:820px;margin-left:auto;margin-right:auto;gap:28px}
.teamgrid .card.team{border:0;border-radius:16px;box-shadow:0 6px 20px rgba(0,0,0,.08)}
.teamgrid .card.team .body{padding:14px 16px 18px;text-align:center}
@media (max-width:700px){.teamgrid{max-width:300px;grid-template-columns:1fr}}

/* ===== v1 refinements (CCS, 8 Oct 2026). Sage's style.css above is unchanged; these rules only polish it. ===== */
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700.woff2) format("woff2")}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:100px}
img{max-width:100%;height:auto}
header.site img.logo{width:auto}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--deep);padding:10px 16px;z-index:60;font-weight:600}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
.hero :focus-visible,.dark :focus-visible,footer.site :focus-visible,.topbar :focus-visible,.galahero :focus-visible{outline-color:#d9b8ff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* images as real <img> inside Sage's existing boxes (same crops, now with alt text, srcset and lazy loading) */
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.hero.banner img.bg{opacity:.5}
.img>img{width:100%;height:100%;object-fit:cover;display:block}
.card .img,.tile .img,.prod .img,.yearstrip a .img{overflow:hidden}
.pgrid>a,.gallery>a{display:block;border-radius:6px;overflow:hidden;aspect-ratio:3/2;background:#eee}
.gallery>a{border-radius:3px}
.pgrid>a img,.gallery>a img{width:100%;height:100%;object-fit:cover;display:block}
.pgrid .big{aspect-ratio:auto}
/* home hero: the photo reads brighter, with a scrim only behind the text */
.hero.home img.bg{opacity:.9}
.hero.home::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.45) 48%,rgba(0,0,0,.12) 100%);pointer-events:none}
.hero.home .wrap{z-index:1}
/* gentle hover only (Hey Woozy sparse-motion rule) */
.tile,.card.prod{transition:box-shadow .2s,transform .2s}
.tile:hover,.card.prod:hover{box-shadow:0 10px 24px rgba(91,0,184,.14);transform:translateY(-2px)}
.tile .img img,.yearstrip .img img,.gallery img,.pgrid img,.card .img img{transition:transform .5s ease}
.tile:hover .img img,.yearstrip a:hover .img img,.gallery a:hover img,.pgrid a:hover img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
/* header and social icons */
nav.menu>div:focus-within .sub{display:block}
.social a svg{width:14px;height:14px;fill:currentColor}
.topbar .social a{width:28px;height:28px}
footer.site .fh{color:#fff;font-size:15px;margin:0 0 10px;font-weight:700;letter-spacing:0;line-height:1.3}
footer.site address{font-style:normal}
footer.site .social a{color:var(--ink)}
footer.site .logo-f{width:auto;height:46px;width:auto;background:#fff;padding:6px;border-radius:4px}
/* stats: no awkward wraps */
.icard{display:flex;flex-direction:column}
.icard .stat{font-size:38px;white-space:nowrap}
.stat small{display:block;font-size:13px;font-weight:600;color:var(--grey);letter-spacing:1px;text-transform:uppercase;line-height:1.2;margin-bottom:2px}
.dark .stat small,.purple .stat small{color:#cfc4e0}
/* contrast fixes (WCAG AA) */
.pkg.sold{color:#555}.pkg.sold .price{color:#666}
.oos{color:#555;border-color:#999}
/* forms: real fields in Sage's form boxes */
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=number],.form textarea,.form select{width:100%;height:44px;border:1px solid #cfc6dc;border-radius:4px;background:#fff;padding:10px 12px;font:inherit;font-size:15px;color:var(--ink)}
.form textarea{height:120px;resize:vertical}
.form .chk{align-items:flex-start}
.form .chk input{flex:0 0 18px;width:18px;height:18px;margin:3px 0 0;accent-color:var(--purple)}
.form fieldset{border:0;padding:0;margin:0}
.form legend{font-size:13px;font-weight:600;margin:10px 0 4px;padding:0}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.amts{flex-wrap:wrap}
.amts label{flex:1 1 70px;position:relative;margin:0;cursor:pointer}
.amts input{position:absolute;opacity:0;width:1px;height:1px}
.amts label span{display:block;text-align:center;border:2px solid var(--purple);border-radius:4px;padding:10px 0;font-weight:700;color:var(--deep);font-size:16px}
.amts input:checked+span{background:var(--purple);color:#fff}
.amts input:focus-visible+span{outline:3px solid var(--deep);outline-offset:2px}
.gapreview{background:var(--light);border-radius:6px;padding:10px 12px;font-size:14px;margin:12px 0;color:var(--ink)}
.gapreview b{color:var(--deep)}
.reveal-when[hidden]{display:none}
.formmsg{margin-top:12px;font-size:14px;padding:10px 12px;border-radius:4px;background:#f4eefc;color:#3d0080}
.form button.btn,.nl button.btn,.pdp button.btn{font:inherit;font-weight:600;cursor:pointer}
.nl input[type=email]{flex:1;height:48px;border:1px solid #cfc6dc;border-radius:24px;padding:12px 18px;font:inherit;font-size:15px;background:#fff}
.small-print{font-size:12.5px;color:var(--grey);margin-top:8px}
.trust{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--grey);margin:14px 0 0;padding:0;list-style:none}
.trust li::before{content:"\2713\00a0";color:var(--purple);font-weight:700}
.dark .trust{color:#d8cfe6}.dark .trust li::before{color:#d9b8ff}
/* Gala 2027 */
.galahero{position:relative;overflow:hidden}
.galahero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}
.galahero .wrap{position:relative}
.galahero .lead{color:#fff}
.countfacts{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 6px}
.countfacts span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:5px 14px;font-size:14px}
table.pk .btn{padding:8px 16px;font-size:14px;margin:0;white-space:nowrap}
table.pk .status{display:inline-block;font-size:12px;font-weight:700;border-radius:12px;padding:2px 9px;background:#ece0ff;color:#3d0080;margin-top:4px}
table.pk .status.later{background:#eee;color:#444}
.evening{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.evening div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;font-size:14.5px}
.evening b{display:block;color:var(--deep);font-size:16px;margin-bottom:4px}
.pkgs{align-items:stretch}
.pkg{display:flex;flex-direction:column}
.pkg ul{flex:1}
.pkg .pkgcta{margin-top:16px;font-size:14px;font-weight:600}
.pkg.sold .pkgcta{color:#555}
.pkg .pkvat{margin:-4px 0 12px;font-size:13px;font-weight:600;color:#555}
.photorow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.photorow img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
/* charity logos (Support grants) */
.clogos{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-top:18px}
.clogos div{background:#fff;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;padding:10px;aspect-ratio:3/2}
.clogos img{max-height:62px;width:auto;object-fit:contain}
.clogos>div{min-width:0}.clogos img{max-width:100%;min-width:0;height:auto}
/* lightbox (progressive: without JS each photo link opens the full image) */
dialog.lb{padding:0;border:0;background:transparent;max-width:94vw;max-height:94vh;color:#fff}
dialog.lb::backdrop{background:rgba(10,0,20,.92)}
dialog.lb img{max-width:94vw;max-height:82vh;display:block;border-radius:4px;margin:0 auto}
dialog.lb .lbbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px}
dialog.lb button{background:#fff;color:var(--ink);border:0;border-radius:50%;width:44px;height:44px;font-size:20px;cursor:pointer;flex:0 0 44px}
/* product pages */
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.pdp .pimg{background:var(--light);border-radius:8px;overflow:hidden}
.pdp .pimg img{width:100%;height:auto;display:block}
.pdp .form{margin-top:18px}
.prod .body b a{color:var(--ink);text-decoration:none}
.prod .body b a:hover{color:var(--deep)}
.prose{max-width:760px}
.prose h2{margin-top:28px}
.factlist{list-style:none;padding:0;margin:0 0 14px}
.factlist li{padding:8px 0;border-bottom:1px solid var(--line)}
.prevnext{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}
.prevnext a{font-weight:600;text-decoration:none}
.quote{border-left:4px solid var(--purple);padding:4px 0 4px 18px;margin:18px 0;font-size:17px}
.quote cite{display:block;font-style:normal;font-size:14px;color:var(--grey);margin-top:6px}
@media (max-width:1020px){.evening{grid-template-columns:1fr 1fr}.clogos{grid-template-columns:repeat(4,1fr)}}
@media (max-width:700px){
 .hero.home::after{background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.6) 100%)}
 .hero .evcard img{max-width:210px}
 .icard .stat{font-size:32px}
 .form .row2{grid-template-columns:1fr}
 .pdp{grid-template-columns:1fr;gap:24px}
 .clogos{grid-template-columns:repeat(3,1fr)}
 .photorow{grid-template-columns:1fr 1fr}.photorow img:last-child{display:none}
 .evening{grid-template-columns:1fr}
 table.pk .btn{margin-top:8px}
}
footer.site .regs img{width:auto}
@media (max-width:700px){.donbox .amts a{padding:12px 0;min-width:0;flex:1 1 0}}
/* top bar: taller and more readable (Marcell: "too thin"); carries the live Gala ticket message */
.topbar{font-size:14px;line-height:1.35}
.topbar .wrap{height:auto;min-height:46px;padding-top:6px;padding-bottom:6px;gap:24px}
.topbar .tb-org{color:#e9e2f3;white-space:nowrap}
.topbar .tb-event{color:#fff;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap}
.topbar .tb-event:hover .tb-long,.topbar .tb-event:hover .tb-short,.topbar .tb-event:focus-visible .tb-long{text-decoration:underline;text-underline-offset:3px}
.topbar .tb-pill{background:var(--purple);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:20px;padding:3px 9px;line-height:1.3}
.topbar .tb-short{display:none}
.topbar .social{gap:10px}
.topbar .social a{width:30px;height:30px}
.topbar .social a svg{width:15px;height:15px}
@media (max-width:1060px){.topbar .tb-total{display:none}}
@media (max-width:860px){.topbar .tb-long{display:none}.topbar .tb-short{display:inline}}
@media (max-width:700px){
 .topbar{font-size:14px}
 .topbar .wrap{min-height:52px;justify-content:space-between;gap:12px}
 .topbar .tb-org{display:none}
 .topbar .tb-event{margin-left:0}
 .topbar .social a{width:36px;height:36px}
}
@media (max-width:380px){.topbar .tb-pill{display:none}.topbar .social{gap:6px}}
/* ---- large and ultrawide screens (v1c): fluid container + proportional scale; 1279px and below unchanged ----
   --u is a "scaled pixel": 1px at 1280, ~1.12px at 1920, 1.25px at 2560, ~1.42px at 3440, max 1.5px (3840+).
   Container: side gutter clamp(48px,8vw,260px) (v1d, was clamp(40px,5vw,128px)), content up to 2800px. */
@media (min-width:1280px){
 :root{--u:clamp(1px,calc(.0195vw + .75px),1.5px);--g:clamp(48px,8vw,260px);--w:2800px}
 body{font-size:calc(16*var(--u))}
 h1{font-size:calc(48*var(--u))}
 h2{font-size:calc(36*var(--u))}
 h3{font-size:calc(22*var(--u))}
 .eyebrow{font-size:calc(13*var(--u))}
 .btn{font-size:calc(15*var(--u))}
 .tbc{font-size:calc(12*var(--u))}
 .src{font-size:calc(12*var(--u))}
 .topbar{font-size:calc(13*var(--u))}
 .social a{font-size:calc(11*var(--u))}
 nav.menu a.top{font-size:calc(14*var(--u))}
 nav.menu .sub a{font-size:calc(14*var(--u))}
 .burger{font-size:calc(28*var(--u))}
 .hero h1{font-size:calc(60*var(--u))}
 .hero .lead{font-size:calc(20*var(--u))}
 .hero.short h1{font-size:calc(48*var(--u))}
 .card h3{font-size:calc(20*var(--u))}
 .stat{font-size:calc(44*var(--u))}
 .year .yr{font-size:calc(44*var(--u))}
 .tile .t b{font-size:calc(15*var(--u))}
 .tile .t span{font-size:calc(13*var(--u))}
 .yearstrip a .t b{font-size:calc(34*var(--u))}
 .yearstrip a .t span{font-size:calc(13*var(--u))}
 table.pk{font-size:calc(15*var(--u))}
 .pkg .price{font-size:calc(26*var(--u))}
 .pkg ul{font-size:calc(14.5*var(--u))}
 .badge{font-size:calc(12*var(--u))}
 .form label{font-size:calc(13*var(--u))}
 .form .chk{font-size:calc(13*var(--u))}
 .prod .was{font-size:calc(14*var(--u))}
 .ph{font-size:calc(13*var(--u))}
 .breadcrumb{font-size:calc(13*var(--u))}
 footer.site{font-size:calc(14*var(--u))}
 footer.site h4{font-size:calc(15*var(--u))}
 .note{font-size:calc(13*var(--u))}
 .evcard h3{font-size:calc(20*var(--u))}
 .evcard p{font-size:calc(14*var(--u))}
 .evlink{font-size:calc(13*var(--u))}
 .scard b{font-size:calc(19*var(--u))}
 .scard span{font-size:calc(13*var(--u))}
 .icard{font-size:calc(14*var(--u))}
 .nl .in{font-size:calc(14*var(--u))}
 .year .yr.small{font-size:calc(26*var(--u))}
 .hero.banner h1{font-size:calc(52*var(--u))}
 .ftext h2{font-size:calc(48*var(--u))}
 .fmeta{font-size:calc(20*var(--u))}
 .ftag{font-size:calc(20*var(--u))}
 .fprices b{font-size:calc(26*var(--u))}
 .fprices span{font-size:calc(13*var(--u))}
 .btn.big{font-size:calc(17*var(--u))}
 .giftaid{font-size:calc(14*var(--u))}
 .pname b{font-size:calc(15*var(--u))}
 .pname span{font-size:calc(12.5*var(--u))}
 .price.small{font-size:calc(16*var(--u))}
 .small{font-size:calc(13*var(--u))}
 .ysub{font-size:calc(13*var(--u))}
 .tile.wide .t span{font-size:calc(15*var(--u))}
 .ribbon{font-size:calc(12*var(--u))}
 .oos{font-size:calc(13*var(--u))}
 .evcard h3{font-size:calc(24*var(--u))}
 .evcard p{font-size:calc(15*var(--u))}
 .evcard .evaddr{font-size:calc(13.5*var(--u))}
 .evcard .evprice{font-size:calc(13.5*var(--u))}
 .hero .evcard .btn{font-size:calc(15*var(--u))}
 .routelead{font-size:calc(14*var(--u))}
 .routestats b{font-size:calc(15*var(--u))}
 .routestats span{font-size:calc(11*var(--u))}
 .routefig figcaption{font-size:calc(11*var(--u))}
 .rm-big{font-size:calc(12.5*var(--u))}
 .sgroup h3{font-size:calc(15*var(--u))}
 .stile .sw{font-size:calc(22*var(--u))}
 .stile .sm b{font-size:calc(15*var(--u))}
 .stile .sm span{font-size:calc(13*var(--u))}
 .filmtitle{font-size:calc(30*var(--u))}
 .filmtitle small{font-size:calc(12*var(--u))}
 .filmnote{font-size:calc(13*var(--u))}
 .fanhead h2{font-size:calc(52*var(--u))}
 .sectlead{font-size:calc(17*var(--u))}
 .ib-k{font-size:calc(10*var(--u))}
 .ib-big{font-size:calc(38*var(--u))}
 .ib-sub{font-size:calc(13*var(--u))}
 .ib-row b{font-size:calc(14*var(--u))}
 .ib-row span{font-size:calc(11*var(--u))}
 .hvid figcaption{font-size:calc(15*var(--u))}
 footer.site .fh{font-size:calc(15*var(--u))}
 .icard .stat{font-size:calc(38*var(--u))}
 .stat small{font-size:calc(13*var(--u))}
 .form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=number],.form textarea,.form select{font-size:calc(15*var(--u))}
 .form legend{font-size:calc(13*var(--u))}
 .amts label span{font-size:calc(16*var(--u))}
 .gapreview{font-size:calc(14*var(--u))}
 .formmsg{font-size:calc(14*var(--u))}
 .nl input[type=email]{font-size:calc(15*var(--u))}
 .small-print{font-size:calc(12.5*var(--u))}
 .trust{font-size:calc(13.5*var(--u))}
 .countfacts span{font-size:calc(14*var(--u))}
 table.pk .btn{font-size:calc(14*var(--u))}
 table.pk .status{font-size:calc(12*var(--u))}
 .evening div{font-size:calc(14.5*var(--u))}
 .evening b{font-size:calc(16*var(--u))}
 .pkg .pkgcta{font-size:calc(14*var(--u))}
 .pkg .pkvat{font-size:calc(13*var(--u))}
 dialog.lb .lbbar{font-size:calc(14*var(--u))}
 dialog.lb button{font-size:calc(20*var(--u))}
 .quote{font-size:calc(17*var(--u))}
 .quote cite{font-size:calc(14*var(--u))}
 .topbar{font-size:calc(14*var(--u))}
 .topbar .tb-pill{font-size:calc(11.5*var(--u))}
 [style*="font-size:13px"]{font-size:calc(13*var(--u))!important}
 [style*="font-size:14.5px"]{font-size:calc(14.5*var(--u))!important}
 [style*="font-size:18px"]{font-size:calc(18*var(--u))!important}
 [style*="font-size:20px"]{font-size:calc(20*var(--u))!important}
 [style*="font-size:24px"]{font-size:calc(24*var(--u))!important}
 [style*="font-size:30px"]{font-size:calc(30*var(--u))!important}
 [style*="font-size:32px"]{font-size:calc(32*var(--u))!important}
 [style*="font-size:34px"]{font-size:calc(34*var(--u))!important}
 body{font-size:calc(17*var(--u))}
 h1{font-size:calc(54*var(--u))}h2{font-size:calc(40*var(--u))}h3{font-size:calc(23*var(--u))}
 h1,h2,h3{margin-bottom:calc(14*var(--u))}p{margin-bottom:calc(14*var(--u))}
 main p,main li{max-width:72ch}main p[style*="max-width"]{max-width:72ch!important}
 .eyebrow{font-size:calc(13*var(--u));letter-spacing:calc(2*var(--u));margin-bottom:calc(8*var(--u))}
 .btn{font-size:calc(15*var(--u));padding:calc(13*var(--u)) calc(28*var(--u))}
 .strip{padding:calc(84*var(--u)) 0}
 .cols{gap:calc(28*var(--u))}
 /* top bar + header */
 .topbar{font-size:calc(14*var(--u))}
 .topbar .wrap{min-height:calc(46*var(--u))}
 .topbar .tb-pill{font-size:calc(11.5*var(--u))}
 .topbar .social a{width:calc(30*var(--u));height:calc(30*var(--u))}
 .social a svg{width:calc(14*var(--u));height:calc(14*var(--u))}
 header.site .wrap{height:calc(92*var(--u))}
 header.site img.logo{height:calc(68*var(--u))}
 nav.menu a.top{font-size:calc(14*var(--u));padding:calc(10*var(--u)) calc(11*var(--u))}
 nav.menu .sub{min-width:calc(220*var(--u))}nav.menu .sub a{font-size:calc(14*var(--u));padding:calc(8*var(--u)) calc(16*var(--u))}
 /* home hero (photo stays edge to edge) */
 .hero .wrap{padding:calc(132*var(--u)) var(--g) calc(122*var(--u))}
 .hero h1{font-size:calc(66*var(--u));max-width:12em}
 .hero .lead{font-size:calc(21*var(--u));max-width:32em}
 .herotext{max-width:calc(690*var(--u))}
 .heroflex{gap:calc(40*var(--u))}
 .hero .evcard{width:calc(380*var(--u));padding:calc(28*var(--u));border-radius:calc(10*var(--u))}
 .evcard img{margin-bottom:calc(14*var(--u))}
 .hero .evcard h2.h3{font-size:calc(24*var(--u))!important;margin-bottom:calc(8*var(--u))!important}
 .evcard p{font-size:calc(15*var(--u));max-width:none}
 .evcard .evaddr,.evcard .evprice{font-size:calc(13.5*var(--u))}
 .evcard .evprice{padding:calc(8*var(--u)) calc(10*var(--u));margin:calc(4*var(--u)) 0 calc(14*var(--u))}
 .hero .evcard .btn{font-size:calc(15*var(--u));padding:calc(13*var(--u)) calc(20*var(--u))}
 .hero .evcard .btn.ghost.evbtn2{margin-top:calc(10*var(--u))}
 /* inner banners + gala hero */
 .hero.banner .wrap{min-height:calc(480*var(--u));padding-bottom:calc(68*var(--u))}
 .hero.banner h1{font-size:calc(58*var(--u))}
 .breadcrumb{font-size:calc(14*var(--u))}
 .galahero .wrap{padding:calc(104*var(--u)) var(--g)}
 .galahero .poster{max-width:calc(460*var(--u))}
 .countfacts span{font-size:calc(13*var(--u))}
 /* cards, tiles, grids */
 .tiles{gap:calc(22*var(--u))}
 .tile .t{padding:calc(14*var(--u)) calc(16*var(--u))}.tile .t b{font-size:calc(16*var(--u))}.tile .t span{font-size:calc(14*var(--u))}
 .tile.wide .t span{font-size:calc(15*var(--u))}
 .yearstrip{gap:calc(18*var(--u))}
 .gallery{gap:calc(12*var(--u))}
 .card .body{padding:calc(18*var(--u)) calc(20*var(--u)) calc(22*var(--u))}
 .card .body p,.card .body a{font-size:inherit}
 .stat{font-size:calc(44*var(--u))}
 .evrow{grid-template-columns:calc(400*var(--u)) 1fr}
 .year{grid-template-columns:calc(150*var(--u)) 1fr;gap:calc(34*var(--u));padding:calc(34*var(--u)) 0}
 .clogos{gap:calc(12*var(--u))}.clogos div{padding:calc(10*var(--u))}.clogos img{max-height:calc(62*var(--u))}
 .evening{gap:calc(14*var(--u))}
 .strip img[style*="max-width:400px"]{max-width:calc(400*var(--u))!important}
 .scard b{font-size:calc(19*var(--u))}
 .form input,.form select,.form textarea{font-size:calc(15*var(--u));padding:calc(10*var(--u)) calc(12*var(--u))}
 .amts label span{font-size:calc(16*var(--u));padding:calc(10*var(--u)) 0}
 .trust{font-size:calc(13.5*var(--u))}
 .quote cite,.small-print{font-size:calc(13*var(--u))}
 /* footer */
 footer.site{font-size:calc(14*var(--u));padding:calc(56*var(--u)) 0 calc(26*var(--u))}
 footer.site .fh{font-size:calc(15*var(--u))}
 footer.site .logo-f{height:calc(46*var(--u))}
 footer.site .regs img{height:calc(46*var(--u))}
}
@media (min-width:1600px){.gallery{grid-template-columns:repeat(4,1fr)}.strip img[style*="max-width:400px"]{max-width:calc(520*var(--u))!important}}
@media (min-width:2200px){.gallery{grid-template-columns:repeat(5,1fr)}.year .tiles{grid-template-columns:repeat(4,1fr)}}
@media (min-width:2900px){.gallery{grid-template-columns:repeat(6,1fr)}}

/* Sold-out product state (9 Oct 2026) */
.btn.btn-soldout,.btn.btn-soldout:hover,.btn.btn-soldout:focus{background:#e4e1e8;color:#3a3640;border-color:#c9c4cf;cursor:not-allowed;box-shadow:none;transform:none;opacity:1;font-family:inherit;font-weight:600}

/* ===== LAUNCH additions on top of v1 (same look): focus points, payment states, ticket quantity, terms draft note, mobile polish ===== */
/* focus points from images.json (object-position per breakpoint) */
img[style*="--fx"]{object-position:var(--fx,50%) var(--fy,50%)}
@media (min-width:701px) and (max-width:1020px){img[style*="--fxt"]{object-position:var(--fxt) var(--fyt)}}
@media (max-width:700px){img[style*="--fxm"]{object-position:var(--fxm) var(--fym)}}
@media (min-width:1600px){img[style*="--fxw"]{object-position:var(--fxw) var(--fyw)}}
/* form replies from /api */
.formmsg.ok{background:#e8f6ee;color:#14532b}
.formmsg.err{background:#fdecec;color:#7a1414}
.formmsg .btn{margin:10px 0 0}
.formmsg:empty{display:none}
/* Gala tickets: quantity + Book in the v1 table */
table.pk .tform{display:flex;gap:8px;align-items:center;margin:0}
table.pk .tform select.qty{width:auto;min-width:62px;height:40px;border:1px solid #cfc6dc;border-radius:4px;background:#fff;padding:6px 8px;font:inherit;font-size:15px;color:var(--ink)}
table.pk .btn-soldout{padding:8px 16px;font-size:14px;margin:0}
table.pk td:last-child{white-space:nowrap}
/* donate: one-off / monthly */
.amts.amts2 label{flex:1 1 120px}
.freq{margin-bottom:4px}
/* draft note on legal pages */
.draftnote{background:#fff6dc;border-left:4px solid #c79200;padding:12px 16px;border-radius:4px;margin:0 0 22px;font-size:15px}
@media (max-width:820px){
 /* donate: the form comes straight after the page title on phones and tablets (desktop layout unchanged) */
 .donwrap>form{order:-1}
}
@media (max-width:700px){
 table.pk td:last-child{white-space:normal;margin-top:10px}
 table.pk .tform{flex-wrap:nowrap}
 table.pk .tform .btn{flex:1;text-align:center;padding:11px 16px}
}

/* tap targets >= 24px (WCAG 2.2 2.5.8) */
.breadcrumb a,.jump a,.card .body b a,.pcard .body b a{display:inline-block;min-height:24px;line-height:24px;padding:0 2px}
.jump{line-height:2}
.card .body>a{display:inline-block;min-height:24px;line-height:24px}
a[aria-hidden=true][tabindex="-1"]{display:block}
input[type=checkbox]{min-width:20px;min-height:20px}
table.pk .tform select.qty{font-size:calc(15*var(--u))}
 table.pk .btn-soldout{font-size:calc(14*var(--u))}
 .draftnote{font-size:calc(15*var(--u))}
 .ph{font-size:calc(14*var(--u))}
 .ph b{font-size:calc(12*var(--u))}
 .pcard b{font-size:calc(15*var(--u))}
 .pcard span{font-size:calc(12.5*var(--u))}
 .plogo.empty{font-size:calc(26*var(--u))}
 .gempty{font-size:calc(14*var(--u))}
 .vid .play{font-size:calc(26*var(--u))}
 .vid .vt{font-size:calc(14*var(--u))}
 .quote p{font-size:calc(18*var(--u))}
 .galgroup-h{font-size:calc(15*var(--u))}
 .pname .pl .sw{font-size:calc(16*var(--u))}
 .pname b{font-size:calc(13*var(--u))}
 .pname span{font-size:calc(11.5*var(--u))}
/* Oct 2026: about pages, partners, galleries */
.ph{border:2px dashed #c58b00;background:#fff8e1;color:#5a4300;border-radius:6px;padding:12px 14px;margin:14px 0;font-size:14px}
.ph b{display:inline-block;background:#c58b00;color:#fff;border-radius:3px;padding:1px 7px;margin-right:8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.tier{margin-top:28px}.tier h3{margin-bottom:12px}
.pgrid2{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.pcard{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px 16px;display:flex;flex-direction:column;gap:4px;min-height:150px}
.pcard b{font-size:15px;line-height:1.3}.pcard span{font-size:12.5px;color:var(--grey)}
.plogo{height:64px;display:flex;align-items:center;margin-bottom:8px}.plogo img{max-height:64px;width:auto;max-width:100%;object-fit:contain}
.plogo.empty{width:64px;border-radius:50%;justify-content:center;background:var(--line);font-size:26px;font-weight:700;color:var(--grey)}
.gempty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ecebe6,#d9d7cf);aspect-ratio:3/2;color:var(--grey);font-size:14px}
.gallery a{display:block;overflow:hidden;border-radius:3px;aspect-ratio:3/2;background:#e9e7e1}
.gallery a img{width:100%;height:100%;object-fit:cover;display:block}
.vids{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.vid,.vidf{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:6px;overflow:hidden;background:#111;cursor:pointer;padding:0}
.vid img{width:100%;height:100%;object-fit:cover;opacity:.85}
.vid .play{position:absolute;inset:0;margin:auto;width:68px;height:68px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:26px;line-height:68px;text-align:center}
.vid .vt{position:absolute;left:12px;bottom:10px;color:#fff;font-size:14px;text-shadow:0 1px 3px #000}
.quote p{font-size:18px;font-style:italic}
@media (max-width:1020px){.pgrid2{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.pgrid2,.vids{grid-template-columns:1fr}}
/* Oct 2026: hero headings sit closer to the top on laptop / short viewports (Kendall). Large, tall screens (>=1600px wide AND >950px tall) keep the original balanced layout.
   The site header is sticky (in flow), so it never overlaps the hero. */
@media (min-width:1021px) and (max-width:1599px),(min-width:1021px) and (max-height:950px){
 .hero.home .wrap{padding-top:clamp(28px,5vh,64px);padding-bottom:clamp(36px,6vh,72px)}
 .hero.home .heroflex{align-items:flex-start}
 .hero.home .herotext{padding-top:clamp(12px,6vh,72px)}
 .hero.banner .wrap{min-height:clamp(280px,46vh,420px);justify-content:center;padding-top:clamp(28px,5vh,56px);padding-bottom:clamp(28px,5vh,56px)}
}
@media (max-width:700px){.hero.banner .wrap{min-height:clamp(240px,38vh,320px);justify-content:flex-end}}
.gal-links{display:flex;flex-wrap:wrap;gap:10px}.gal-links .btn{margin:0}
/* Masonry gallery (all gallery grids) */
.gallery.masonry{display:block!important;column-count:1;column-gap:1rem;grid-template-columns:none}
@media(min-width:640px){.gallery.masonry{column-count:2}}
@media(min-width:1024px){.gallery.masonry{column-count:3}}
@media(min-width:1280px){.gallery.masonry{column-count:4}}
.gallery.masonry>a{display:block;break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 1rem;aspect-ratio:auto!important;height:auto;border-radius:16px!important;overflow:hidden;background:#efedf3;box-shadow:0 1px 2px rgba(20,10,40,.06),0 4px 10px rgba(20,10,40,.05),0 14px 30px -10px rgba(60,20,120,.14);transition:box-shadow .3s ease;will-change:auto;transform-style:preserve-3d}
.gallery.masonry>a:hover{box-shadow:0 2px 4px rgba(20,10,40,.06),0 10px 20px rgba(20,10,40,.08),0 26px 48px -12px rgba(60,20,120,.26)}
.gallery.masonry>a:active{scale:.97}
.gallery.masonry>a img{width:100%!important;height:auto!important;object-fit:initial!important;display:block;transform:none!important}
.gallery.masonry>a:last-child:nth-child(odd){grid-column:auto}
.gallery.masonry.m-js>a{opacity:0;translate:0 30px;scale:.95;transition:opacity .5s cubic-bezier(.16,1,.3,1),translate .5s cubic-bezier(.16,1,.3,1),scale .5s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.gallery.masonry.m-js>a.m-in{opacity:1;translate:0 0;scale:1}
.gallery.masonry.m-js>a.m-in:active{scale:.97}
@media(prefers-reduced-motion:reduce){.gallery.masonry>a{transition:none!important;opacity:1!important;translate:none!important;scale:none!important}}
/* Global tile unison: borderless, 16px corners, soft cast shadow */
.tile,.card,.scard,.icard,.logos>div,.pname,.stile,.evening div,.pcard{border:0!important;border-radius:16px!important;background:#fff;box-shadow:0 1px 2px rgba(20,10,40,.06),0 4px 10px rgba(20,10,40,.05),0 14px 30px -10px rgba(60,20,120,.14)}
.tile,.card,.stile{overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.tile:hover,.card.prod:hover,.stile:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(20,10,40,.06),0 10px 20px rgba(20,10,40,.08),0 24px 44px -12px rgba(60,20,120,.24)}
.strip.dark .tile,.strip.dark .card{box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}
/* Gala story pages: grouped gallery + related strip after CTAs */
.galgroup+.galgroup{margin-top:34px}
.galgroup-h{font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--purple);margin:18px 0 14px;display:flex;align-items:center;gap:14px}
.galgroup-h:after{content:"";flex:1;height:1px;background:var(--line)}
.alsostrip{margin-top:40px}
/* Contact hero: lighter treatment (Kendall 14 Oct). Photo shows near-full strength; a soft left/bottom scrim keeps the heading legible. */
.hero.banner.bright{background:#2a2a2a}
.hero.banner.bright .bg,.hero.banner.bright img.bg{opacity:.92;object-position:60% 55%}
.hero.banner.bright::after{background:linear-gradient(90deg,rgba(10,6,20,.62) 0,rgba(10,6,20,.38) 38%,rgba(10,6,20,0) 66%)}
.hero.banner.bright h1,.hero.banner.bright .eyebrow,.hero.banner.bright .breadcrumb{text-shadow:0 1px 14px rgba(0,0,0,.45)}
@media (max-width:700px){.hero.banner.bright .bg,.hero.banner.bright img.bg{object-position:62% 50%}.hero.banner.bright::after{background:linear-gradient(0deg,rgba(10,6,20,.66) 0,rgba(10,6,20,.3) 42%,rgba(10,6,20,0) 70%)}}
/* Home partners strip: logos fill each tile (Kendall 14 Oct) */
.pname{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:18px 14px 16px;min-height:0;text-align:center}
.pname .pl{flex:1 1 auto;width:100%;min-height:72px;display:flex;align-items:center;justify-content:center;padding:4px 6px}
.pname .pl img{max-width:88%;max-height:64px;width:auto;height:auto;object-fit:contain}
.pname .pl .sw{font-weight:700;font-size:16px;line-height:1.2;color:var(--deep)}
.pname b{font-size:13px;line-height:1.25;margin-top:2px}.pname span{font-size:11.5px;color:var(--grey);margin-top:0}
@media(min-width:1021px){.pname{min-height:168px}.pname .pl{min-height:88px}.pname .pl img{max-height:78px}}
@media(max-width:700px){.pname{padding:14px 10px 12px}.pname .pl{min-height:56px}.pname .pl img{max-height:48px}}
/* lit banner: lighter overlay like .bright but keeps per-image focus vars */
.hero.banner.lit{background:#2a2a2a}
.hero.banner.lit img.bg{opacity:.95}
.hero.banner.lit::after{background:linear-gradient(90deg,rgba(10,6,20,.66) 0,rgba(10,6,20,.4) 36%,rgba(10,6,20,0) 62%)}
.hero.banner.lit h1,.hero.banner.lit .eyebrow,.hero.banner.lit .breadcrumb,.hero.banner.lit .lead{text-shadow:0 1px 14px rgba(0,0,0,.5)}
@media (max-width:700px){.hero.banner.lit::after{background:linear-gradient(0deg,rgba(10,6,20,.72) 0,rgba(10,6,20,.35) 45%,rgba(10,6,20,0) 72%)}}
/* stack banner (mobile): group photo shown whole above the title, no faces under text */
@media (max-width:700px){.hero.banner.stack{display:flex;flex-direction:column;background:#14091f}.hero.banner.stack img.bg{position:relative;inset:auto;display:block;width:100%;height:57vw;opacity:1;object-position:var(--fxm,50%) var(--fym,50%)}.hero.banner.stack::after{display:none}.hero.banner.stack .wrap{min-height:0;padding-top:18px;padding-bottom:26px}}
@media (max-width:700px){.hero.stackm{display:flex;flex-direction:column;background:#14091f}.hero.stackm img.bg{position:relative;inset:auto;display:block;width:100%;height:57vw;opacity:1;object-position:var(--fxm,50%) var(--fym,50%)}.hero.stackm::after{display:none}.hero.stackm .wrap{min-height:0;padding-top:18px;padding-bottom:26px}}
/* stack banner on desktop too: crowd photo in its own band, title below it on a dark band (no faces under text) */
@media (min-width:701px){.hero.banner.stack{display:flex;flex-direction:column;background:#14091f}.hero.banner.stack img.bg{position:relative;inset:auto;display:block;width:100%;height:clamp(300px,30vw,520px);opacity:1}.hero.banner.stack::after{display:none}.hero.banner.stack .wrap{min-height:0;padding-top:24px;padding-bottom:34px}}
/* home hero (IMG_4539, Kendall 15 Oct): lighter overlay; on phones the convoy photo sits in its own band above the headline */
.hero.home img.bg{opacity:1}
.hero.home::after{background:linear-gradient(90deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.3) 45%,rgba(0,0,0,.05) 100%)}
@media (max-width:700px){.hero.home{display:flex;flex-direction:column;background:#14091f}.hero.home img.bg{position:relative;inset:auto;display:block;width:100%;height:62vw;object-position:var(--fxm,20%) var(--fym,50%)}.hero.home::after{display:none}}
/* home hero: card sits next to the headline (balanced), not pushed to the far right */
@media (min-width:1021px){.hero.home .evcard{margin-right:clamp(24px,calc(8vw - 60px),110px)}}
