/* 404 Weekend 2027: template styles (home, schedule, blog, article, event, utility pages) */

/* ---------- Home hero ---------- */
.hero{background:var(--ink);color:var(--paper);position:relative;overflow:hidden;padding:56px 0 88px}
.hero::before{content:"";position:absolute;inset:0;background:var(--hero-bg,none) center/cover;opacity:.18;filter:grayscale(1)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.hero-logo{width:100%;max-width:520px;height:auto;filter:drop-shadow(10px 12px 0 rgba(0,0,0,.45));display:block}
.hero h1{font:400 clamp(56px,7vw,104px)/.92 var(--display);text-transform:uppercase;margin:14px 0 18px}
.date-chip{display:inline-block;background:var(--paper);color:var(--ink);font:400 30px/1 var(--display);padding:12px 20px 10px;text-transform:uppercase}
.hero p.sub{font-size:18px;max-width:460px;margin:20px 0 28px;color:var(--muted-2)}
.hero .btns.small{margin-top:12px}

/* ---------- Countdown ---------- */
.countdown{background:var(--paper);padding:56px 0 8px;text-align:center}
.countdown[hidden]{display:none}
.countdown .lbl{font:800 13px var(--body);letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:880px;margin:0 auto}
.cd .blk{padding:22px 8px 16px;color:var(--ink);box-shadow:8px 8px 0 var(--ink)}
.cd .blk:nth-child(1){background:var(--red);color:#fff;transform:rotate(-1.2deg)}
.cd .blk:nth-child(2){background:var(--yellow);transform:rotate(1deg)}
.cd .blk:nth-child(3){background:var(--pink);transform:rotate(-.8deg)}
.cd .blk:nth-child(4){background:var(--green);color:#fff;transform:rotate(1.2deg)}
.cd .num{display:block;font:400 clamp(44px,9vw,112px)/1 var(--display);font-variant-numeric:tabular-nums}
.cd .num.pop{animation:pop .45s ease-out}
@keyframes pop{0%{transform:translateY(-14px) scale(1.18);opacity:.3}60%{transform:translateY(2px) scale(.97);opacity:1}100%{transform:none}}
.cd .unit{display:block;font:800 clamp(10px,1.6vw,14px) var(--body);letter-spacing:.14em;text-transform:uppercase;margin-top:6px}
.cd .blk:hover{transform:rotate(0) translateY(-4px);transition:transform .15s}
@media(prefers-reduced-motion:reduce){.cd .num.pop{animation:none}.cd .blk:hover{transform:none}}

/* ---------- Week strip ---------- */
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.day{padding:18px 14px 20px;min-height:150px;color:var(--ink);display:block}
.day .dn{font:400 15px var(--display);letter-spacing:.06em;text-transform:uppercase;opacity:.75}
.day .dd{font:400 54px/1 var(--display)}
.day:nth-child(7n+1){background:var(--pink)} .day:nth-child(7n+2){background:var(--yellow)}
.day:nth-child(7n+3){background:var(--orange)} .day:nth-child(7n+4){background:var(--green);color:#fff}
.day:nth-child(7n+5){background:var(--brown);color:#fff} .day:nth-child(7n+6){background:var(--red);color:#fff}
.day:last-child{background:var(--ink);color:var(--yellow);outline:4px solid var(--yellow);outline-offset:-4px}
.day:nth-child(odd){transform:rotate(-1deg)} .day:nth-child(even){transform:rotate(1deg) translateY(8px)}

/* ---------- Lineup ---------- */
.events{background:var(--ink);color:var(--paper)}
.events .label{background:var(--yellow);color:var(--ink)}
.events .lede{color:var(--muted)}
.grid.soon .cs .img{background:var(--c);display:flex;align-items:center;justify-content:center;text-align:center}
.grid.soon .cs .img span{font:400 clamp(40px,4vw,60px)/.9 var(--display);text-transform:uppercase;color:var(--ink)}
.grid.soon .cs:nth-child(3) .img span{color:#fff}
.grid.soon .cs{border-top:none}

/* ---------- Partner events ---------- */
.pe{border:3px dashed var(--ink);background:#fff;box-shadow:8px 8px 0 var(--ink);display:grid;grid-template-columns:1.2fr 1fr;align-items:stretch}
.pe .l{padding:44px 40px;display:flex;flex-direction:column;justify-content:center}
.pe .l .big{font:400 clamp(30px,3.6vw,48px)/1 var(--display);text-transform:uppercase}
.pe .l p{margin-top:12px;font-size:17px;max-width:420px}
.pe .r{background:var(--green);color:#fff;padding:44px 40px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.pe .r h3{font:400 34px/1 var(--display);text-transform:uppercase;margin-bottom:10px}
.pe .r p{margin-bottom:18px}
.pgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.pgrid .card{border-top:none;background:#fff;box-shadow:6px 6px 0 var(--ink)}
.pgrid .card h3{font-size:24px}
.slot{border:3px dashed var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;min-height:300px}
.slot h3,.slot .slot-title{font:400 30px/1 var(--display);text-transform:uppercase;margin-bottom:10px}
.slot p{margin-bottom:16px}

/* ---------- Gala ---------- */
.gala{background:#0e0d0c;color:var(--paper)}
.gala .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.gala .label{background:var(--yellow);color:var(--ink)}
.gala h2{color:var(--paper)} .gala h2 em{font-style:normal;color:var(--yellow)}
.gala p{font-size:18px;color:var(--muted-2);max-width:480px;margin-bottom:12px}
.gala .rule{width:80px;height:4px;background:var(--yellow);margin:18px 0 22px}
.gala .btns{margin-top:22px}
.gphotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gphotos img{aspect-ratio:3/2;width:100%;height:100%;object-fit:cover;display:block;outline:1px solid rgba(244,239,235,.25);outline-offset:-1px;background:#222}

/* ---------- Get involved ---------- */
.involve{background:var(--yellow)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
.tile{background:var(--ink);color:var(--paper);padding:28px 22px 26px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between}
.tile h3{font:400 36px/1 var(--display);text-transform:uppercase}
.tile p{font-size:15px;color:var(--muted);margin:10px 0 18px}
.tile:nth-child(4n+1) h3{color:var(--pink)} .tile:nth-child(4n+2) h3{color:var(--green)}
.tile:nth-child(4n+3) h3{color:var(--orange)} .tile:nth-child(4n+4) h3{color:var(--yellow)}
.tile .arrow{font:800 13px var(--body);text-transform:uppercase;letter-spacing:.08em}
a.tile:hover .arrow{color:var(--yellow);text-decoration:underline}
a.tile:focus-visible{outline-color:var(--ink);box-shadow:0 0 0 6px var(--paper)}

/* ---------- Sponsors ---------- */
.sponsors{text-align:center}
.collective{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:12px}
.collective .lt{height:120px;display:flex;align-items:center;justify-content:center;padding:6% 8%}
.collective .lt img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.collective .lt img.w78{width:78%;max-height:none}
.collective .lt img.h88{max-height:88%}
.sponsors .ph2{margin-top:56px}
.sponsors .sp-lede{font-size:18px;max-width:520px;margin:0 auto}
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:40px;margin-top:30px}
.logos img{height:90px;width:auto;max-width:220px;object-fit:contain;display:block}
.sponsors .become{margin-top:28px}

/* ---------- Schedule ---------- */
.jump{background:var(--yellow);position:sticky;top:var(--nav-h);z-index:40}
.admin-bar .jump{top:calc(var(--nav-h) + 32px)}
.jump .wrap{display:flex;gap:8px;padding-top:10px;padding-bottom:10px;overflow-x:auto}
.jump a{font:400 18px var(--display);text-transform:uppercase;background:var(--ink);color:var(--paper);padding:8px 14px;white-space:nowrap}
.jump a small{font:inherit;opacity:.6;margin-left:6px}
.daysec{padding:64px 0 56px}
.daysec:nth-of-type(even){background:var(--paper-2)}
.dayhead{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:26px}
.dayhead .big{font:400 clamp(60px,8vw,110px)/.85 var(--display);text-transform:uppercase;margin:0}
.dayhead .dt{font:400 clamp(26px,3vw,40px)/1 var(--display);text-transform:uppercase;padding:10px 16px 8px;color:var(--ink);background:var(--c,var(--yellow))}
.dayhead .dt.lt{color:#fff}
.dayhead .dt.dk{color:var(--yellow)}
.daysec .sub{font:800 12px var(--body);letter-spacing:.14em;text-transform:uppercase;margin:6px 0 14px;color:var(--brown)}
.daysec .grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:30px}
.daysec .card{background:#fff;display:grid;grid-template-columns:210px 1fr;column-gap:18px;grid-template-rows:auto auto auto 1fr;align-content:start}
.daysec .card .img{grid-row:1/6;margin-bottom:0;align-self:start}
.daysec .card .img.ph{font-size:24px;padding:12px;overflow-wrap:anywhere}
.daysec .card h3,.daysec .card .meta,.daysec .card .loc{grid-column:2}
.daysec .card h3{font-size:24px}
.daysec .card .btn{grid-column:2;justify-self:start;margin:14px 0 0;align-self:end}
.daysec .partner-card{border-top:none;box-shadow:6px 6px 0 var(--ink)}
.daysec .slot{min-height:260px;max-width:640px;margin:0 auto}
.empty{border:3px solid var(--ink);padding:22px 26px;text-align:left;font:800 14px var(--body);text-transform:uppercase;letter-spacing:.06em;max-width:520px}

/* ---------- Blog index ---------- */
.ph{background:var(--ink);color:var(--paper);padding:64px 0 72px;position:relative;overflow:hidden}
.ph::before{content:"";position:absolute;inset:0;background:var(--phead-bg,none) center/cover;opacity:.15;filter:grayscale(1)}
.ph .wrap{position:relative}
.ph h1{font:400 clamp(56px,8vw,112px)/.92 var(--display);text-transform:uppercase;margin:14px 0 16px}
.ph p{font-size:18px;max-width:560px;color:var(--muted-2)}
.feat{display:grid;grid-template-columns:1.1fr 1fr;background:var(--ink);color:var(--paper);box-shadow:10px 10px 0 var(--red);margin-top:-40px;position:relative}
.feat .fi{background:var(--yellow) center/cover;min-height:380px;display:flex;flex-direction:column;justify-content:center;padding:36px;color:var(--ink);overflow:hidden;position:relative}
.feat .fi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feat .fi .m{font:400 clamp(56px,7vw,100px)/.9 var(--display);text-transform:uppercase}
.feat .fi .d{font:400 clamp(110px,15vw,220px)/.85 var(--display)}
.feat .ft{padding:44px 40px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.feat h2{font-size:clamp(34px,4vw,56px);margin:10px 0 14px}
.feat p{color:var(--muted-2);font-size:17px;margin-bottom:22px}
.dt-line{font:800 12px var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--yellow)}
.bl{padding:72px 0 88px}
.bl .grid,.more .grid{margin-top:26px}
.bl .card,.more .card{box-shadow:6px 6px 0 var(--ink);border:3px solid var(--ink)}
.bl .card:nth-child(4n+1),.more .card:nth-child(4n+1){border-top:10px solid var(--red)} .bl .card:nth-child(4n+2),.more .card:nth-child(4n+2){border-top:10px solid var(--yellow)}
.bl .card:nth-child(4n+3),.more .card:nth-child(4n+3){border-top:10px solid var(--green)} .bl .card:nth-child(4n+4),.more .card:nth-child(4n+4){border-top:10px solid var(--pink)}
.post-card .img{aspect-ratio:16/10;display:flex;align-items:flex-end;padding:14px 16px;color:var(--ink)}
.post-card .img.has-img{padding:0}
.post-card .img .m{font:400 44px/1 var(--display);text-transform:uppercase}
.post-card .img .d{font:400 44px/1 var(--display);margin-left:10px;opacity:.55}
.post-card:nth-child(4n+1) .img{background-color:var(--red);color:#fff} .post-card:nth-child(4n+2) .img{background-color:var(--yellow)}
.post-card:nth-child(4n+3) .img{background-color:var(--green);color:#fff} .post-card:nth-child(4n+4) .img{background-color:var(--pink)}
.post-card h3{font-size:26px}
.post-card .ex{font-size:15px;padding:8px 6px 0;color:#444}
.post-card .btn{margin-top:16px}
.empty-note{font:800 16px var(--body);text-transform:uppercase;letter-spacing:.06em;margin-top:20px}

/* pagination */
.pagination{margin-top:48px}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px}
.pagination .page-numbers{font:400 20px/1 var(--display);background:var(--ink);color:var(--paper);padding:12px 16px;text-transform:uppercase}
.pagination .page-numbers.current{background:var(--yellow);color:var(--ink)}
.pagination a.page-numbers:hover{background:var(--red)}

/* ---------- Article ---------- */
.ah{background:var(--ink);color:var(--paper);padding:56px 0 64px}
.ah .wrap{max-width:900px}
.ah .back{font:800 12px var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--yellow)}
.ah h1{font:400 clamp(40px,6.4vw,84px)/.98 var(--display);text-transform:uppercase;margin:18px 0 18px;overflow-wrap:break-word}
.byline{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;font:800 12px var(--body);text-transform:uppercase;letter-spacing:.1em}
.byline .pill{display:inline-block;background:var(--yellow);color:var(--ink);padding:6px 12px}
.byline .pill.alt{background:transparent;color:var(--paper);border:2px solid #555;padding:4px 10px}
.art{background:var(--paper);padding:56px 0 72px}
.art .fimg{max-width:900px;margin:-96px auto 48px;padding:0 24px;position:relative}
.art .fimg img{width:100%;height:auto;display:block;box-shadow:10px 10px 0 var(--ink)}
.art .fimg .noimg{aspect-ratio:21/9;background:var(--red) var(--phead-bg,none) center/cover;background-blend-mode:multiply;box-shadow:10px 10px 0 var(--ink);display:flex;align-items:flex-end;padding:20px 24px;color:#fff;font:400 clamp(36px,6vw,72px)/.9 var(--display);text-transform:uppercase}
.body{max-width:70ch;margin:0 auto;padding:0 24px;font-size:19px;line-height:1.75;color:#222}
.body>*{margin-top:0}
.body p{margin:0 0 1.2em}
.body h2{font:400 clamp(32px,4vw,44px)/1.05 var(--display);text-transform:uppercase;margin:1.6em 0 .5em;border-left:10px solid var(--red);padding-left:14px}
.body h3{font:400 28px/1.1 var(--display);text-transform:uppercase;margin:1.4em 0 .4em;color:var(--brown)}
.body h4{font:800 20px/1.3 var(--body);margin:1.2em 0 .4em}
.body ul,.body ol{margin:0 0 1.3em 1.3em}.body li{margin-bottom:.45em}
.body a{color:#C42522;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.body strong{font-weight:800}
.body blockquote{border-left:8px solid var(--yellow);padding:4px 0 4px 18px;margin:1.4em 0;font-size:21px;font-weight:600}
.body section{padding:0;margin:0 0 .5em}
.body .hero-subhead{font-size:22px;line-height:1.55;font-weight:600}
.body .guide-toc{background:#fff;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:20px 24px;margin:1.4em 0}
.body .guide-toc h2{border:0;padding:0;margin:0 0 .4em;font-size:30px}
.body .event-listing{background:#fff;border-left:10px solid var(--yellow);padding:6px 22px 10px;margin:1.2em 0;box-shadow:5px 5px 0 var(--ink)}
.body .event-listing h3{margin-top:.6em;color:var(--ink)}
.body table{width:100%;border-collapse:collapse;margin:1em 0;font-size:16px}.body td,.body th{border:2px solid var(--ink);padding:8px 10px;text-align:left}
.body img,.body video,.body iframe{max-width:100%;height:auto}
.body figure{margin:1.4em 0}
.body figcaption{font-size:14px;color:#555;margin-top:6px}
.body .alignwide,.body .alignfull{max-width:100%}
.body .wp-block-button__link{background:var(--ink);color:var(--paper);text-decoration:none;font:800 14px var(--body);text-transform:uppercase;letter-spacing:.06em;padding:14px 22px;border-radius:0;display:inline-block}
.more{background:var(--ink);color:var(--paper);padding:72px 0 88px}
.more .label{background:var(--yellow);color:var(--ink)}
.more .all{margin-top:34px}

/* ---------- Single event ---------- */
.ev{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:48px;align-items:start}
.ev .flyer{background:#fff;padding:10px;box-shadow:10px 10px 0 var(--ink);border-top:10px solid var(--red)}
.ev .flyer img{width:100%;height:auto;display:block}
.ev .flyer .noflyer{aspect-ratio:4/5;background:var(--red);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font:400 44px/1 var(--display);text-transform:uppercase;padding:20px}
.ev .facts{display:grid;gap:12px;margin-bottom:28px}
.ev .fact{background:var(--ink);color:var(--paper);padding:18px 20px}
.ev .fact .k{font:800 11px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.ev .fact .v{font:400 28px/1.1 var(--display);text-transform:uppercase;margin-top:6px}
.ev .fact .v.soon{font:800 18px var(--body);font-variant:small-caps;text-transform:none;letter-spacing:.06em}
.ev .body{padding:0;margin:0 0 28px;max-width:none}

/* ---------- Search / 404 ---------- */
.search-form{display:flex;gap:10px;max-width:560px;margin-top:24px}
.search-form input[type=search]{flex:1;padding:14px 16px;border:3px solid var(--ink);font:600 16px var(--body);background:#fff;color:var(--ink);min-width:0}
.phead .search-form input[type=search]{border-color:var(--paper)}
.search-form button{background:var(--yellow);color:var(--ink);border:0;font:800 14px var(--body);text-transform:uppercase;letter-spacing:.06em;padding:0 22px;cursor:pointer}
.big404{font:400 clamp(120px,22vw,280px)/.8 var(--display);display:flex;gap:.04em;margin:10px 0 18px}
.big404 span:nth-child(1){color:var(--red)} .big404 span:nth-child(2){color:var(--yellow)} .big404 span:nth-child(3){color:var(--pink)}

/* ---------- Mobile ---------- */
@media(max-width:980px){.pgrid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  .hero{padding:30px 0 70px}
  .hero .wrap{grid-template-columns:1fr;gap:24px;text-align:left}
  .hero-logo{max-width:300px;margin:0 auto}
  .hero h1{font-size:54px}
  .date-chip{font-size:22px}
  .cd{gap:8px}.cd .blk{padding:14px 2px 10px;box-shadow:4px 4px 0 var(--ink)}
  .countdown{padding-top:40px}
  .week{grid-template-columns:1fr 1fr}
  .day{min-height:120px} .day .dd{font-size:40px}
  .day:last-child:nth-child(odd){grid-column:1/-1}
  .tiles{grid-template-columns:1fr 1fr;gap:14px}
  .tile{min-height:180px;padding:20px 16px} .tile h3{font-size:28px}
  .pe{grid-template-columns:1fr}.pe .l,.pe .r{padding:30px 22px}
  .gala .wrap{grid-template-columns:1fr;gap:32px}
  .collective{grid-template-columns:1fr 1fr;gap:12px}
  .collective .lt{height:90px}
  .logos{gap:24px}.logos img{height:64px}
  .jump{top:var(--nav-h)}
  .dayhead .big{font-size:56px}
  .daysec .grid{grid-template-columns:1fr}
  .daysec .card{grid-template-columns:130px 1fr;column-gap:12px}
  .daysec .card h3{font-size:20px;padding:0}
  .daysec .card .img.ph{font-size:17px;padding:8px}
  .daysec .card .meta,.daysec .card .loc{padding-left:0}
  .feat{grid-template-columns:1fr;margin-top:-30px}.feat .fi{min-height:220px;padding:24px}.feat .ft{padding:28px 22px}
  .ph{padding:40px 0 60px}.bl{padding:52px 0 64px}
  .ah{padding:36px 0 56px}.art{padding:40px 0 52px}.art .fimg{margin:-80px auto 32px;padding:0 16px}
  .body{font-size:18px;padding:0 20px}.more{padding:52px 0 64px}
  .ev{grid-template-columns:1fr;gap:32px}
}
@media(max-width:560px){.pgrid{grid-template-columns:1fr}}

/* Coming Soon flyer placeholder */
.card .img.ph span:not(.ph-tag){font:400 clamp(40px,4vw,60px)/.9 var(--display);text-transform:uppercase}
.daysec .card .img.ph span:not(.ph-tag){font-size:30px}
@media(max-width:820px){.daysec .card .img.ph span:not(.ph-tag){font-size:22px}}

/* ---------- Hero background video ---------- */
.hero-video{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .8s ease}
.hero-video.on{opacity:.42}
.hero-video iframe{position:absolute;top:50%;left:50%;border:0;width:100%;height:100%;transform:translate(-50%,-50%)}
.hero.video-on::before{opacity:0}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}

/* ---------- Google preferred source badge ---------- */
.pref-badge{display:inline-block;margin-top:14px;line-height:0;border-bottom:0!important}
.pref-badge img{width:169px;height:auto;display:block}
.pref-badge:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.pref-cta{margin-top:40px;padding-top:24px;border-top:2px solid var(--ink)}
.pref-cta p{margin:0 0 4px;font-weight:600}
