/*
Theme Name: Toronto Music Week
Theme URI: https://example.com/toronto-music-week
Author: Toronto Music Week
Description: Premium editorial WordPress theme for Toronto Music Week — music, nightlife, culture, venues, editorial, schedules and passes.
Version: 1.11.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: toronto-music-week
*/

:root{
  --tmw-black:#0a0a0a;
  --tmw-charcoal:#151515;
  --tmw-ivory:#f2efe8;
  --tmw-muted:#a7a39b;
  --tmw-accent:#ff4d00;
  --tmw-line:rgba(242,239,232,.18);
  --tmw-max:1440px;
  --tmw-pad:clamp(20px,4vw,64px);
  --tmw-display: "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --tmw-body: Inter, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--tmw-black)}
body{margin:0;background:var(--tmw-black);color:var(--tmw-ivory);font-family:var(--tmw-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
::selection{background:var(--tmw-accent);color:#fff}
.tmw-shell{width:min(100%,var(--tmw-max));margin:auto;padding-inline:var(--tmw-pad)}
.tmw-kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--tmw-muted)}
.tmw-display{font-family:var(--tmw-display);text-transform:uppercase;letter-spacing:-.045em;line-height:.86;font-weight:800}
.tmw-rule{border-top:1px solid var(--tmw-line)}
.tmw-link{display:inline-flex;gap:12px;align-items:center;text-transform:uppercase;letter-spacing:.12em;font-size:12px;border-bottom:1px solid currentColor;padding-bottom:6px}
.tmw-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid var(--tmw-ivory);text-transform:uppercase;font-size:12px;letter-spacing:.13em;transition:.25s ease;cursor:pointer;background:transparent;color:var(--tmw-ivory)}
.tmw-btn:hover,.tmw-btn:focus-visible{background:var(--tmw-ivory);color:var(--tmw-black)}
.tmw-btn--accent{background:var(--tmw-accent);border-color:var(--tmw-accent);color:#fff}
.tmw-btn--accent:hover{background:#fff;border-color:#fff;color:#000}

/* announcement */
.tmw-announcement{height:32px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--tmw-line);background:#000;font-size:11px;letter-spacing:.16em;text-transform:uppercase;position:relative;z-index:80}

/* Header */
.tmw-header{position:fixed;top:32px;left:0;right:0;z-index:70;transition:background .3s ease,border-color .3s ease;backdrop-filter:blur(0px)}
.tmw-header.is-scrolled{background:rgba(10,10,10,.86);border-bottom:1px solid var(--tmw-line);backdrop-filter:blur(16px)}
.tmw-header__inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.tmw-logo{display:inline-flex;align-items:center;justify-content:center;width:210px;height:62px;background:#fff;overflow:hidden;flex:0 0 auto}
.tmw-logo__image{width:100%;height:100%;object-fit:contain;display:block}
.tmw-mobile-logo{display:inline-flex;width:210px;height:62px;background:#fff;overflow:hidden}
.tmw-mobile-logo img{width:100%;height:100%;object-fit:contain}
.tmw-nav{display:flex;align-items:center;gap:28px}
.tmw-nav a{font-size:11px;letter-spacing:.11em;text-transform:uppercase;position:relative}
.tmw-nav a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--tmw-ivory);transition:.25s}
.tmw-nav a:hover:after{width:100%}
.tmw-nav__passes:after{display:none}
.tmw-menu-toggle{display:none;border:0;background:none;color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:11px}

/* Mobile menu */
.tmw-mobile-menu{position:fixed;inset:0;background:var(--tmw-black);z-index:100;transform:translateY(-100%);opacity:0;visibility:hidden;pointer-events:none;overflow-y:auto;overflow-x:hidden;transition:transform .55s cubic-bezier(.77,0,.18,1),opacity .25s ease,visibility 0s linear .55s;display:flex;flex-direction:column;padding:24px var(--tmw-pad) 36px}
.tmw-mobile-menu.is-open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;transition:transform .55s cubic-bezier(.77,0,.18,1),opacity .25s ease,visibility 0s linear 0s}
.tmw-mobile-menu__top{display:flex;justify-content:space-between;align-items:center}
.tmw-mobile-menu__links{margin:auto 0;display:flex;flex-direction:column}
.tmw-mobile-menu__links a{font-family:var(--tmw-display);font-size:clamp(44px,12vw,74px);font-weight:800;line-height:.93;text-transform:uppercase;letter-spacing:-.045em;border-top:1px solid var(--tmw-line);padding:10px 0}
.tmw-mobile-menu__links a:last-child{border-bottom:1px solid var(--tmw-line)}

/* Hero */
.tmw-hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:#0d0d0d}
.tmw-hero__media{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.035);transition:transform 8s ease}
.tmw-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.08) 40%,rgba(0,0,0,.76) 100%)}
.tmw-hero__fallback{position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(255,77,0,.18),transparent 28%),#101010}
.tmw-hero__grain{position:absolute;inset:0;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.tmw-hero__content{position:relative;z-index:2;width:100%;padding-top:180px;padding-bottom:52px}
.tmw-hero__meta{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:28px}
.tmw-hero__city{font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.tmw-hero h1{margin:0;font-size:clamp(70px,11.3vw,176px);max-width:1320px}
.tmw-hero__bottom{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;margin-top:32px}
.tmw-hero__statement{font-size:clamp(18px,2vw,30px);max-width:540px;line-height:1.14}
.tmw-hero__actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}

/* Sections */
.tmw-section{padding:clamp(84px,10vw,160px) 0}
.tmw-intro__statement{font-size:clamp(48px,7.4vw,116px);max-width:1280px;margin:0 0 54px}
.tmw-intro__grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;border-top:1px solid var(--tmw-line);padding-top:26px}
.tmw-intro__grid p{max-width:650px;color:#d0cdc6;font-size:clamp(18px,1.8vw,27px);line-height:1.35;margin:0}

/* Artist grid */
.tmw-section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}
.tmw-section-head h2{font-size:clamp(56px,8vw,120px);margin:0}
.tmw-artists{display:grid;grid-template-columns:1.25fr .85fr;gap:18px}
.tmw-artist{position:relative;min-height:680px;overflow:hidden;background:#181818}
.tmw-artist:nth-child(2){min-height:540px;margin-top:140px}
.tmw-artist__image{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.tmw-artist:hover .tmw-artist__image{transform:scale(1.035)}
.tmw-artist__shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.85))}
.tmw-artist__copy{position:absolute;inset:auto 26px 25px;z-index:2}
.tmw-artist__name{font-family:var(--tmw-display);font-size:clamp(52px,6vw,92px);font-weight:800;text-transform:uppercase;letter-spacing:-.05em;line-height:.86}
.tmw-artist__meta{font-size:11px;letter-spacing:.13em;text-transform:uppercase;margin-top:10px;color:#d9d6d0}

/* Marquee */
.tmw-marquee-wrap{overflow:hidden;border-top:1px solid var(--tmw-line);border-bottom:1px solid var(--tmw-line);padding:20px 0}
.tmw-marquee{display:flex;width:max-content;gap:36px;animation:tmw-marquee 28s linear infinite}
.tmw-marquee span{font-family:var(--tmw-display);font-size:clamp(54px,7vw,104px);font-weight:800;letter-spacing:-.04em;text-transform:uppercase;white-space:nowrap}
.tmw-marquee span:after{content:"•";color:var(--tmw-accent);margin-left:36px}
@keyframes tmw-marquee{to{transform:translateX(-50%)}}

/* Categories */
.tmw-category-list{border-top:1px solid var(--tmw-line)}
.tmw-category{display:grid;grid-template-columns:70px 1fr auto;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--tmw-line);transition:.25s}
.tmw-category:hover{padding-left:12px;color:var(--tmw-accent)}
.tmw-category__num{font-size:11px;letter-spacing:.12em;color:var(--tmw-muted)}
.tmw-category__name{font-family:var(--tmw-display);font-size:clamp(36px,5vw,76px);font-weight:800;text-transform:uppercase;letter-spacing:-.04em}
.tmw-category__arrow{font-size:28px}

/* schedule */
.tmw-schedule{display:grid;grid-template-columns:220px 1fr;gap:40px}
.tmw-schedule__days{position:sticky;top:148px;align-self:start;display:flex;flex-direction:column;border-top:1px solid var(--tmw-line)}
.tmw-schedule__day{padding:14px 0;text-align:left;background:none;border:0;border-bottom:1px solid var(--tmw-line);color:var(--tmw-muted);font-family:var(--tmw-display);font-size:34px;font-weight:800;text-transform:uppercase;cursor:pointer}
.tmw-schedule__day.is-active{color:var(--tmw-ivory)}
.tmw-schedule__events{border-top:1px solid var(--tmw-line)}
.tmw-event{display:grid;grid-template-columns:110px 1fr 230px 120px 46px;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--tmw-line)}
.tmw-event__time,.tmw-event__venue,.tmw-event__category{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#b8b4ad}
.tmw-event__name{font-family:var(--tmw-display);font-weight:800;font-size:clamp(30px,3vw,52px);letter-spacing:-.03em;text-transform:uppercase;line-height:.95}
.tmw-fav{width:42px;height:42px;border:1px solid var(--tmw-line);background:none;color:#fff;cursor:pointer;font-size:18px}
.tmw-fav.is-saved{background:var(--tmw-accent);border-color:var(--tmw-accent)}

/* venue */
.tmw-venue-feature{display:grid;grid-template-columns:1.15fr .85fr;min-height:740px;border-top:1px solid var(--tmw-line);border-bottom:1px solid var(--tmw-line)}
.tmw-venue-feature__image{background:#171717;background-position:center;background-size:cover;min-height:520px}
.tmw-venue-feature__copy{padding:clamp(32px,5vw,70px);display:flex;flex-direction:column;justify-content:space-between}
.tmw-venue-feature h3{font-size:clamp(58px,8vw,118px);margin:0}
.tmw-venue-feature p{font-size:20px;max-width:520px;color:#d0cdc6}

/* split day/night */
.tmw-daynight{display:grid;grid-template-columns:1fr 1fr;min-height:78vh}
.tmw-daynight__panel{padding:52px var(--tmw-pad);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;background-size:cover;background-position:center}
.tmw-daynight__panel:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35)}
.tmw-daynight__panel > *{position:relative;z-index:1}
.tmw-daynight__panel h3{font-size:clamp(60px,9vw,138px);margin:0}
.tmw-daynight__tags{font-size:12px;letter-spacing:.12em;text-transform:uppercase;max-width:460px}

/* Passes */
.tmw-passes{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--tmw-line);border-left:1px solid var(--tmw-line)}
.tmw-pass{min-height:440px;padding:26px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--tmw-line);border-bottom:1px solid var(--tmw-line);transition:.25s}
.tmw-pass:hover{background:var(--tmw-ivory);color:#000}
.tmw-pass__name{font-family:var(--tmw-display);font-size:44px;text-transform:uppercase;letter-spacing:-.035em;font-weight:800;line-height:.9}
.tmw-pass__price{font-size:30px}
.tmw-pass ul{list-style:none;padding:0;margin:30px 0;color:inherit;opacity:.74;font-size:14px}

/* Editorial */
.tmw-stories{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.tmw-story{border-top:1px solid var(--tmw-line);padding-top:14px}
.tmw-story__image{aspect-ratio:16/10;background:#1a1a1a;background-size:cover;background-position:center;overflow:hidden}
.tmw-story:nth-child(2) .tmw-story__image{aspect-ratio:4/5}
.tmw-story h3{font-family:var(--tmw-display);font-size:clamp(34px,4vw,60px);line-height:.95;text-transform:uppercase;letter-spacing:-.035em;margin:18px 0 8px}
.tmw-story p{color:#b8b4ad;margin:0;max-width:580px}

/* Newsletter */
.tmw-newsletter{padding:100px 0 120px;background:var(--tmw-accent);color:#fff}
.tmw-newsletter h2{font-size:clamp(64px,10vw,150px);margin:0 0 40px;max-width:1200px}
.tmw-newsletter form{display:grid;grid-template-columns:1fr auto;gap:12px;max-width:850px}
.tmw-newsletter input{height:58px;background:transparent;border:0;border-bottom:1px solid #fff;color:#fff;border-radius:0;outline:none;font-size:20px}
.tmw-newsletter input::placeholder{color:rgba(255,255,255,.7)}
.tmw-newsletter small{display:block;margin-top:14px;opacity:.75;max-width:700px}

/* Footer */
.tmw-footer{padding:70px 0 34px;background:#050505}
.tmw-footer__brand{display:inline-flex;background:#fff;width:min(440px,100%);margin:28px 0 54px}
.tmw-footer__brand img{width:100%;height:auto}
.tmw-footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;border-top:1px solid var(--tmw-line);padding-top:24px}
.tmw-footer__grid a{display:block;color:#c7c3bc;margin:8px 0;font-size:14px}
.tmw-footer__bottom{display:flex;justify-content:space-between;gap:20px;margin-top:58px;padding-top:20px;border-top:1px solid var(--tmw-line);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--tmw-muted)}

/* Interior pages */
.tmw-page-hero{padding:220px 0 70px;border-bottom:1px solid var(--tmw-line)}
.tmw-page-hero h1{font-size:clamp(72px,11vw,160px);margin:0}
.tmw-page-hero p{max-width:720px;font-size:clamp(18px,2vw,30px);color:#c9c5bd;margin:30px 0 0}
.tmw-content{padding:70px 0 120px}
.tmw-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tmw-directory-card{border-top:1px solid var(--tmw-line);padding-top:14px;margin-bottom:40px}
.tmw-directory-card__media{aspect-ratio:4/5;background:#1a1a1a;background-size:cover;background-position:center}
.tmw-directory-card h3{font-family:var(--tmw-display);font-size:42px;text-transform:uppercase;letter-spacing:-.035em;margin:14px 0 4px}
.tmw-filterbar{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 46px}
.tmw-filterbar button{border:1px solid var(--tmw-line);background:none;color:#fff;padding:10px 14px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;cursor:pointer}
.tmw-filterbar button.is-active{background:#fff;color:#000}

/* Contact */
.tmw-contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}
.tmw-contact-list{border-top:1px solid var(--tmw-line)}
.tmw-contact-list div{padding:18px 0;border-bottom:1px solid var(--tmw-line)}
.tmw-form{display:grid;gap:18px}
.tmw-form label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#b8b4ad}
.tmw-form input,.tmw-form select,.tmw-form textarea{width:100%;background:transparent;color:#fff;border:0;border-bottom:1px solid var(--tmw-line);border-radius:0;padding:12px 0;outline:none}
.tmw-form textarea{min-height:150px;resize:vertical}
.tmw-form select option{color:#000}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
[data-reveal].is-visible{opacity:1;transform:none}

@media(max-width:1050px){
  .tmw-nav{display:none}.tmw-menu-toggle{display:block}
  .tmw-hero__bottom{grid-template-columns:1fr}.tmw-hero__actions{justify-content:flex-start}
  .tmw-artists{grid-template-columns:1fr}.tmw-artist:nth-child(2){margin-top:0;min-height:650px}
  .tmw-schedule{grid-template-columns:1fr}.tmw-schedule__days{position:static;flex-direction:row;overflow:auto;gap:20px;border:0}.tmw-schedule__day{white-space:nowrap;border-bottom:0}
  .tmw-event{grid-template-columns:80px 1fr 42px}.tmw-event__venue,.tmw-event__category{grid-column:2 / 3}.tmw-event__category{display:none}
  .tmw-venue-feature{grid-template-columns:1fr}.tmw-daynight{grid-template-columns:1fr;min-height:auto}.tmw-daynight__panel{min-height:70vh}
  .tmw-passes{grid-template-columns:1fr 1fr}.tmw-footer__grid{grid-template-columns:1fr 1fr}.tmw-grid-3{grid-template-columns:1fr 1fr}.tmw-contact-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .tmw-announcement{font-size:9px}.tmw-header__inner{height:70px}.tmw-logo{width:166px;height:54px}.tmw-mobile-logo{width:172px;height:56px}
  .tmw-hero__content{padding-bottom:28px}.tmw-hero h1{font-size:clamp(62px,20vw,94px)}.tmw-hero__meta{align-items:flex-start;flex-direction:column;gap:8px}
  .tmw-intro__grid{grid-template-columns:1fr;gap:24px}.tmw-artists .tmw-artist{min-height:68vh}.tmw-artist__copy{inset:auto 18px 20px}
  .tmw-event{grid-template-columns:65px 1fr 42px;gap:10px}.tmw-event__name{font-size:34px}
  .tmw-passes{grid-template-columns:1fr}.tmw-pass{min-height:340px}.tmw-stories{grid-template-columns:1fr}.tmw-story:nth-child(2) .tmw-story__image{aspect-ratio:16/10}
  .tmw-newsletter form{grid-template-columns:1fr}.tmw-footer__grid{grid-template-columns:1fr 1fr;gap:24px}.tmw-footer__bottom{flex-direction:column}.tmw-grid-3{grid-template-columns:1fr}
  .tmw-category{grid-template-columns:40px 1fr auto}.tmw-page-hero{padding-top:165px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}[data-reveal]{opacity:1!important;transform:none!important}}

/* Version 1.1 — supplied Toronto Music Week identity + site builder content */
.tmw-page-content{max-width:1100px}
.tmw-page-content > *:first-child{margin-top:0}
.tmw-prose{font-size:18px;color:#d6d2cb}
.tmw-prose .tmw-lead{font-family:var(--tmw-display);font-weight:800;text-transform:uppercase;letter-spacing:-.035em;line-height:.95;font-size:clamp(38px,5.6vw,82px);color:var(--tmw-ivory);max-width:1180px;margin:0 0 72px}
.tmw-prose h2{font-family:var(--tmw-display);text-transform:uppercase;letter-spacing:-.035em;line-height:.95;font-size:clamp(36px,4vw,64px);color:var(--tmw-ivory);margin:56px 0 16px}
.tmw-prose p{max-width:760px}
.tmw-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--tmw-line);border-left:1px solid var(--tmw-line);margin-top:46px}
.tmw-feature-grid section{padding:30px;min-height:300px;border-right:1px solid var(--tmw-line);border-bottom:1px solid var(--tmw-line)}
.tmw-feature-grid section > span,.tmw-feature-grid small{font-size:11px;letter-spacing:.15em;color:var(--tmw-muted)}
.tmw-feature-grid h2{font-size:clamp(32px,3vw,48px);margin:70px 0 16px}
.tmw-feature-grid p{font-size:15px;color:#b9b5ae}
.tmw-editorial-list{border-top:1px solid var(--tmw-line);margin-top:50px}
.tmw-editorial-list div{font-family:var(--tmw-display);font-size:clamp(44px,7vw,100px);font-weight:800;letter-spacing:-.04em;line-height:.9;padding:15px 0;border-bottom:1px solid var(--tmw-line);color:var(--tmw-ivory)}
.tmw-pass-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--tmw-line);border-left:1px solid var(--tmw-line);margin-top:50px}
.tmw-pass-grid article{min-height:360px;padding:28px;border-right:1px solid var(--tmw-line);border-bottom:1px solid var(--tmw-line);display:flex;flex-direction:column;align-items:flex-start}
.tmw-pass-grid h2{margin:50px 0 12px;font-size:clamp(42px,5vw,74px)}
.tmw-pass-grid p{margin:0 0 auto;color:#b9b5ae}
.tmw-pass-grid .tmw-link{margin-top:55px}
.tmw-detail-hero{min-height:78vh;position:relative;display:flex;align-items:flex-end;background:#111 center/cover no-repeat;border-bottom:1px solid var(--tmw-line)}
.tmw-detail-hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.88))}
.tmw-detail-hero__content{position:relative;z-index:2;padding-top:210px;padding-bottom:60px}
.tmw-detail-hero h1{font-size:clamp(72px,12vw,178px);margin:0;max-width:1350px}
.tmw-detail-hero p{font-size:clamp(17px,2vw,28px);text-transform:uppercase;letter-spacing:.08em;margin:24px 0 0}
.tmw-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:9vw;align-items:start}
.tmw-detail-aside{position:sticky;top:150px;border-top:1px solid var(--tmw-line);display:grid;gap:0}
.tmw-detail-aside > div{padding:18px 0;border-bottom:1px solid var(--tmw-line)}
.tmw-detail-aside span{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--tmw-muted);margin-bottom:6px}
.tmw-detail-aside strong{font-weight:500;font-size:16px}
.tmw-detail-aside .tmw-btn,.tmw-detail-aside .tmw-link{margin-top:18px}
.tmw-news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:54px 20px}
.tmw-news-card{border-top:1px solid var(--tmw-line);padding-top:12px}
.tmw-news-card__media{aspect-ratio:16/10;background:#171717 center/cover no-repeat;margin-bottom:18px}
.tmw-news-card h2{font-family:var(--tmw-display);font-size:clamp(36px,4vw,62px);text-transform:uppercase;letter-spacing:-.035em;line-height:.92;margin:12px 0}
.tmw-news-card p{color:#aaa69f;max-width:650px}

@media(max-width:1180px){
  .tmw-nav{gap:16px}.tmw-nav a{font-size:10px}.tmw-logo{width:180px;height:58px}
}
@media(max-width:1050px){
  .tmw-feature-grid{grid-template-columns:1fr 1fr}.tmw-detail-grid{grid-template-columns:1fr}.tmw-detail-aside{position:static}.tmw-news-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .tmw-feature-grid,.tmw-pass-grid{grid-template-columns:1fr}.tmw-feature-grid section{min-height:250px}.tmw-feature-grid h2{margin-top:45px}.tmw-detail-hero{min-height:72vh}.tmw-detail-hero__content{padding-top:170px}.tmw-detail-hero h1{font-size:clamp(60px,18vw,100px)}
}


/* Version 1.2 — inverted identity, refined type scale, white directional link arrows */
body{font-size:15px}

/* Supplied Toronto Music Week logo: invert the black-on-white artwork at render time,
   then use screen blending so the image background disappears into the dark theme. */
.tmw-logo,.tmw-mobile-logo,.tmw-footer__brand{background:transparent}
.tmw-logo{width:188px;height:56px}
.tmw-mobile-logo{width:188px;height:56px}
.tmw-logo__image--invert{filter:invert(1) grayscale(1) contrast(2.35);mix-blend-mode:screen}
.tmw-footer__brand{width:min(390px,100%);margin:22px 0 46px;overflow:hidden}

/* Consistent editorial link treatment: all page-action links use a separate white arrow. */
.tmw-link{gap:10px;font-size:11px;color:inherit}
.tmw-link::after{content:"→";display:inline-block;color:#fff!important;font-size:15px;font-weight:400;line-height:1;transition:transform .22s ease;flex:0 0 auto}
.tmw-link:hover::after,.tmw-link:focus-visible::after{transform:translateX(4px)}
.tmw-category__arrow{color:#fff!important;font-size:22px;line-height:1;transition:transform .22s ease}
.tmw-category:hover .tmw-category__arrow,.tmw-category:focus-visible .tmw-category__arrow{transform:translateX(4px)}

/* Keep pass hover dark so the requested white arrow remains visible and premium. */
.tmw-pass:hover{background:#1a1a1a;color:var(--tmw-ivory)}

/* Refined smaller typography — still editorial, with more breathing room and less visual crowding. */
.tmw-hero h1{font-size:clamp(56px,8.8vw,132px);max-width:1120px}
.tmw-intro__statement{font-size:clamp(40px,5.8vw,84px);max-width:1080px}
.tmw-section-head h2{font-size:clamp(44px,6.2vw,88px)}
.tmw-artist__name{font-size:clamp(38px,5vw,68px)}
.tmw-marquee span{font-size:clamp(42px,5.6vw,78px)}
.tmw-category__name{font-size:clamp(30px,4.1vw,58px)}
.tmw-schedule__day{font-size:28px}
.tmw-event__name{font-size:clamp(26px,2.5vw,40px)}
.tmw-venue-feature h3{font-size:clamp(44px,6vw,84px)}
.tmw-venue-feature p{font-size:18px}
.tmw-daynight__panel h3{font-size:clamp(48px,7vw,96px)}
.tmw-pass__name{font-size:36px}
.tmw-story h3{font-size:clamp(30px,3.2vw,48px)}
.tmw-newsletter h2{font-size:clamp(52px,7.5vw,108px);max-width:980px}
.tmw-page-hero h1{font-size:clamp(56px,8vw,112px)}
.tmw-page-hero p{font-size:clamp(17px,1.7vw,24px)}
.tmw-directory-card h3{font-size:34px}
.tmw-prose{font-size:17px}
.tmw-prose .tmw-lead{font-size:clamp(32px,4.6vw,64px);max-width:1000px}
.tmw-prose h2{font-size:clamp(30px,3.4vw,50px)}
.tmw-feature-grid h2{font-size:clamp(28px,2.4vw,40px)}
.tmw-editorial-list div{font-size:clamp(36px,5.5vw,72px)}
.tmw-pass-grid h2{font-size:clamp(34px,4.2vw,56px)}
.tmw-detail-hero h1{font-size:clamp(56px,9vw,124px);max-width:1120px}
.tmw-news-card h2{font-size:clamp(30px,3.4vw,48px)}

/* Inline homepage section headings that were previously oversized. */
.tmw-section .tmw-display[style*="font-size"]{font-size:clamp(44px,6.2vw,88px)!important}

@media(max-width:1180px){
  .tmw-logo{width:172px;height:52px}
}
@media(max-width:680px){
  .tmw-logo{width:150px;height:46px}
  .tmw-mobile-logo{width:158px;height:48px}
  .tmw-mobile-menu__links a{font-size:clamp(38px,10vw,58px)}
  .tmw-hero h1{font-size:clamp(52px,16vw,76px)}
  .tmw-intro__statement{font-size:clamp(38px,11vw,58px)}
  .tmw-section-head h2{font-size:clamp(40px,12vw,60px)}
  .tmw-event__name{font-size:30px}
  .tmw-page-hero h1{font-size:clamp(48px,14vw,74px)}
  .tmw-detail-hero h1{font-size:clamp(50px,15vw,80px)}
}


/* Version 1.3 — larger blended white identity + supplied festival photography */
.tmw-header__inner{height:104px}
.tmw-logo{
  width:272px;
  height:90px;
  background:transparent!important;
  overflow:visible;
  isolation:isolate;
}
.tmw-logo__image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
}
.tmw-logo__image--invert{
  filter:invert(1) grayscale(1) contrast(3.1) brightness(1.18)!important;
  mix-blend-mode:screen;
  background:transparent!important;
}
.tmw-mobile-logo{
  width:246px;
  height:88px;
  background:transparent!important;
  overflow:visible;
  isolation:isolate;
}
.tmw-mobile-logo img{object-position:left center}
.tmw-footer__brand{
  width:min(540px,100%);
  background:transparent!important;
  overflow:visible;
  isolation:isolate;
  margin:30px 0 64px;
}
.tmw-footer__brand img{object-fit:contain;object-position:left center}

/* Images supplied with the theme should feel photographic rather than like empty placeholders. */
.tmw-artist__image,.tmw-venue-feature__image,.tmw-daynight__panel,.tmw-story__image,.tmw-directory-card__media,.tmw-news-card__media{
  background-repeat:no-repeat;
  background-size:cover;
}
.tmw-venue-feature__image{background-position:center 58%}
.tmw-daynight__panel{background-position:center}
.tmw-story__image,.tmw-directory-card__media,.tmw-news-card__media{background-position:center}

/* Keep directional action icons consistently white. */
.tmw-link::after,.tmw-category__arrow{color:#fff!important}
.tmw-link:hover::after,.tmw-link:focus-visible::after{transform:translateX(5px)}

@media(max-width:1180px){
  .tmw-logo{width:236px;height:80px}
  .tmw-header__inner{height:94px}
}
@media(max-width:680px){
  .tmw-header__inner{height:82px}
  .tmw-logo{width:206px;height:72px}
  .tmw-mobile-logo{width:224px;height:82px}
  .tmw-footer__brand{width:min(420px,100%);margin-bottom:46px}
}

/* Version 1.4 — true transparent white identity + cleaned supplied stage photography */
.tmw-logo,
.tmw-mobile-logo,
.tmw-footer__brand{
  background:transparent!important;
}
.tmw-logo__image,
.tmw-logo__image--invert{
  filter:none!important;
  mix-blend-mode:normal!important;
  background:transparent!important;
  opacity:1;
}
.tmw-logo{
  width:296px;
  height:96px;
}
.tmw-mobile-logo{
  width:260px;
  height:92px;
}
.tmw-footer__brand{
  width:min(580px,100%);
}
.tmw-footer__brand img{
  width:100%;
  height:auto;
}
/* Keep the identity legible over photography without adding a box behind it. */
.tmw-header:not(.is-scrolled) .tmw-logo__image{
  filter:drop-shadow(0 2px 12px rgba(0,0,0,.22))!important;
}
@media(max-width:1180px){
  .tmw-logo{width:258px;height:86px}
}
@media(max-width:680px){
  .tmw-logo{width:218px;height:76px}
  .tmw-mobile-logo{width:232px;height:82px}
  .tmw-footer__brand{width:min(460px,100%)}
}


/* Version 1.5 — new supplied TMW3–TMW6 festival photography */
/* TMW3 is the primary campaign image. Keep the booth/crowd centered across wide and mobile crops. */
.tmw-hero__media{background-position:center 54%}
/* Portrait artist photography receives intentional editorial crops. */
.tmw-artist:nth-child(1) .tmw-artist__image{background-position:center 34%}
.tmw-artist:nth-child(2) .tmw-artist__image{background-position:center 30%}
.tmw-daynight__panel--day{background-position:center 28%}
.tmw-daynight__panel--night{background-position:center 46%}
.tmw-venue-feature__image{background-position:center 44%}
/* Preserve legibility over both bright and dark supplied images. */
.tmw-daynight__panel:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.68));pointer-events:none}
.tmw-daynight__panel > *{position:relative;z-index:1}
@media(max-width:680px){
  .tmw-hero__media{background-position:center center}
  .tmw-daynight__panel--day{background-position:center 25%}
  .tmw-daynight__panel--night{background-position:center 42%}
}

/* Version 1.6 — footer identity refinement */
/* The supplied transparent Toronto Music Week logo is the only large footer identity. */
.tmw-footer__brand{margin-top:28px;margin-bottom:58px}
@media(max-width:680px){.tmw-footer__brand{margin-bottom:42px}}


/* Version 1.8 — prevent hidden mobile CTA overflow from appearing in desktop browser mode */
.tmw-mobile-menu:not(.is-open){
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
}
.tmw-mobile-menu:not(.is-open) > .tmw-btn{
  visibility:hidden!important;
}
.tmw-mobile-menu.is-open > .tmw-btn{
  visibility:visible!important;
}


/* Version 1.9 — expanded supplied festival photography system */
/* Crowd image: city/venue storytelling. Portrait DJ images: lineup/editorial. */
.tmw-venue-feature__image{background-position:center 56%}
.tmw-artist:nth-child(1) .tmw-artist__image{background-position:center 32%}
.tmw-artist:nth-child(2) .tmw-artist__image{background-position:center 38%}
.tmw-daynight__panel--day{background-position:center 42%}
.tmw-daynight__panel--night{background-position:center 50%}
.tmw-stories .tmw-story:first-child .tmw-story__image{background-position:center 48%}
.tmw-stories .tmw-story:nth-child(2) .tmw-story__image{background-position:center 36%}
@media(max-width:680px){
  .tmw-venue-feature__image{background-position:center 52%}
  .tmw-daynight__panel--day{background-position:center 36%}
  .tmw-daynight__panel--night{background-position:center 48%}
}


/* Version 1.11 — dedicated supplied imagery for homepage Stories */
.tmw-stories .tmw-story:first-child .tmw-story__image{background-position:center 58%}
.tmw-stories .tmw-story:nth-child(2) .tmw-story__image{background-position:center 28%}
