/*
Theme Name: Noisy Headspace v2
Description: Editorial magazine theme for independent music writing. Reviews, essays, news and a Best New Music badge.
Version: 1.34.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: noisy-headspace-v2
*/
:root{--ink:#0E0E0E;--mu:#5A5A57;--line:#D9D9D6;--red:#D92E12;--blue:#2B3BFF;--pink:#FFB8D0;--green:#1F6B4F;--accent:#DFFF3F;
--hd:'Archivo','Helvetica Neue',Arial,sans-serif;--serif:'Newsreader',Georgia,serif;--mono:'IBM Plex Mono',ui-monospace,monospace}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.4}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.screen-reader-text,.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--accent);padding:10px 14px;z-index:99}
.in{max-width:1320px;margin:0 auto;padding:0 32px}
.lb{font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.mu{color:var(--mu)}.on-dark{color:#C9C9C6}
.hd{font-family:var(--hd);font-weight:800;letter-spacing:-.02em;line-height:1.02;margin:0}
.artlink{display:block}
/* header */
.topbar{background:var(--ink);color:#fff}
.topbar .in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.masthead{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 0 18px}
.wordmark{font-size:clamp(28px,4.2vw,52px);font-weight:600;letter-spacing:-.01em;line-height:1;white-space:nowrap}
.wordmark:hover{text-decoration:none}
.tools{display:flex;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--hd);font-weight:800;font-size:15px;letter-spacing:.04em;text-transform:uppercase;background:var(--ink);color:#fff;border:0;padding:0 28px;min-height:48px;cursor:pointer}
.btn:hover{text-decoration:none;opacity:.88}
.btn--accent{background:var(--accent);color:var(--ink)}
.srch{position:relative}
.srch summary{list-style:none;width:48px;min-height:48px;background:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.srch summary::-webkit-details-marker{display:none}
.srch form{position:absolute;right:0;top:56px;z-index:20;background:#fff;border:2px solid var(--ink);padding:12px;display:flex;gap:8px;width:min(92vw,360px)}
.srch input{flex:1;min-width:0;font:18px var(--serif);padding:0 12px;border:2px solid var(--ink);min-height:48px;border-radius:0}
.nav{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);overflow-x:auto}
.nav-list{display:flex;gap:28px;margin:0;padding:0;list-style:none;white-space:nowrap}
.nav-list a{display:block;font-family:var(--hd);font-weight:700;font-size:15px;letter-spacing:.04em;text-transform:uppercase;padding:14px 0;border-bottom:4px solid transparent}
.nav-list a:hover,.nav-list .current-menu-item a{text-decoration:none;border-bottom-color:var(--ink)}
/* sections */
.sec{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-top:4px solid var(--ink);padding-top:14px;margin-bottom:28px}
.sec h1,.sec h2{font-family:var(--hd);font-weight:800;letter-spacing:-.02em;font-size:40px;line-height:1.02;margin:0}
.block{padding-bottom:80px}
.hero-wrap{padding-top:40px;padding-bottom:72px}
.hero{display:grid;grid-template-columns:1.7fr 1fr;gap:48px}
.kick{margin-top:18px;color:var(--red)}
.lead-title{font-size:clamp(28px,3.6vw,44px);line-height:1.08;margin-top:10px}
.standfirst{font-size:22px;margin:16px 0 0;max-width:640px}
.byline{margin-top:16px}
.rail-h{border-top:4px solid var(--ink);padding-top:14px;margin-bottom:6px}
.rail-item{display:block;padding:16px 0;border-top:1px solid var(--line)}
.rail-item:last-child{border-bottom:1px solid var(--line)}
.rail-title{font-size:22px;font-weight:700;margin-top:6px}
.rail-item:hover{text-decoration:none}.rail-item:hover .rail-title{text-decoration:underline}
/* art + badge */
.art{aspect-ratio:1/1;position:relative;overflow:hidden}
.art--wide{aspect-ratio:16/10}.art--169{aspect-ratio:16/9}
.art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph1{background:var(--blue)}.ph2{background:var(--pink)}.ph3{background:var(--green)}.ph4{background:var(--red)}
.ph:not(.has-img)::before{content:"";position:absolute}
.ph1:not(.has-img)::before{left:18%;top:18%;width:64%;height:64%;border-radius:50%;background:var(--accent)}
.ph2:not(.has-img)::before{left:0;top:0;width:50%;height:100%;background:var(--ink)}
.ph3:not(.has-img)::before{left:12%;top:12%;width:76%;height:76%;border:14px solid #fff}
.ph4:not(.has-img)::before{right:0;bottom:0;width:70%;height:70%;background:var(--ink);border-radius:100% 0 0 0}
.bnm{position:absolute;left:0;bottom:0;z-index:2;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--accent);color:var(--ink);font-family:var(--hd);font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;line-height:1}
/* reviews */
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.card-artist{font-size:20px;margin-top:14px}
.card-album{font-style:italic;font-size:20px}
.card-meta{margin-top:8px}
/* essays */
.essays{background:var(--ink);color:#fff;padding:72px 0 80px;margin-bottom:72px}
.essays .sec{border-top-color:#fff}
.g2{display:grid;grid-template-columns:1.45fr 1fr;gap:64px}
.kick--accent{color:var(--accent)}
.es-lead-title{font-size:clamp(30px,4vw,48px);margin-top:10px}
.es-deck{font-size:21px;margin:14px 0 0;color:var(--line);max-width:620px}
.es-item{display:block;padding:26px 0;border-top:1px solid #4A4A47}
.es-item:first-child{border-top:0;padding-top:0}
.es-item-title{font-size:28px;line-height:1.15;margin-top:8px;font-weight:500}
.es-item .byline-s{margin-top:10px}
/* news */
.row{display:grid;grid-template-columns:84px 1fr auto;gap:20px;padding:18px 0;border-top:1px solid var(--line);align-items:baseline}
.row:last-of-type{border-bottom:1px solid var(--line)}
.row-title{font-size:22px;font-weight:700}
.mr{display:flex;gap:18px;padding:16px 0;border-top:1px solid var(--line);align-items:center}
.mr:last-child{border-bottom:1px solid var(--line)}
.mr-n{font-family:var(--hd);font-weight:800;font-size:44px;line-height:1;padding:0 10px}
.mr:first-child .mr-n{background:var(--accent)}
.mr-t{font-family:var(--hd);font-weight:700;font-size:20px;line-height:1.1}
.news-side .sec h2{font-size:28px}
/* newsletter + footer */
.newsletter{background:var(--accent)}
.nl-in{padding-top:56px;padding-bottom:56px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.nl-in h2{font-size:clamp(32px,4.5vw,56px);max-width:620px}
.foot{padding-top:48px;padding-bottom:40px}
.foot-top{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
.foot .nav-list{gap:24px;flex-wrap:wrap}
.foot .nav-list a{font:500 12px var(--mono);padding:0;border:0}
.foot-bot{margin-top:32px;border-top:1px solid var(--line);padding-top:16px}
/* single + archive */
.nh-single{max-width:1100px;padding-top:56px;padding-bottom:80px}
.s-head{max-width:760px;margin:0 auto}
.nh-single h1{font-size:clamp(34px,5vw,60px);margin-top:10px}
.deck{font-size:24px;line-height:1.3;color:var(--mu);margin:18px 0 0}
.s-img{margin:36px auto 0;max-width:980px}
.rv-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;align-items:start;margin-bottom:48px}
.facts{margin:22px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 20px;align-items:baseline}
.facts dt{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}
.facts dd{margin:0;font-size:21px}
.entry{max-width:680px;margin:40px auto 0;font-size:21px;line-height:1.6}
.entry p{margin:0 0 1.2em}
.entry h2,.entry h3{font-family:var(--hd);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:1.6em 0 .6em}
.entry a{text-decoration:underline;text-underline-offset:3px}
.entry blockquote{margin:1.6em 0;padding-left:20px;border-left:6px solid var(--accent);font-size:24px;font-style:italic}
.entry figure{margin:1.6em 0}.entry figcaption,.wp-caption-text{font:12px var(--mono);color:var(--mu);margin-top:8px}
.alignleft{float:left;margin:0 24px 12px 0}.alignright{float:right;margin:0 0 12px 24px}.aligncenter{margin-left:auto;margin-right:auto}
.tags{max-width:680px;margin:40px auto 0;display:flex;gap:10px;flex-wrap:wrap}
.tags a{border:2px solid var(--ink);padding:6px 10px}
.pager{margin-top:48px}
.pager .nav-links{display:flex;gap:12px;flex-wrap:wrap;font:500 13px var(--mono)}
.pager .page-numbers{border:2px solid var(--ink);padding:8px 14px}
.pager .current{background:var(--ink);color:#fff}
@media(max-width:900px){.hero,.g2,.rv-head{grid-template-columns:1fr;gap:40px}.g4{grid-template-columns:1fr 1fr}.row{grid-template-columns:64px 1fr}.row .tg{display:none}}
@media(max-width:560px){.g4{grid-template-columns:1fr}.in{padding:0 20px}}
/* interviews */
.art--portrait{aspect-ratio:4/5}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.interviews{background:var(--pink);padding:72px 0 80px}
.interviews .mu{color:var(--ink)}
.iv-kick{margin-top:18px}
.iv-title{font-size:26px;line-height:1.08;margin-top:8px}
.iv-quote{font-size:20px;font-style:italic;line-height:1.3;margin:12px 0 0}
.iv-quote::before{content:"\201C"}.iv-quote::after{content:"\201D"}
.iv-meta{margin-top:12px}
.pull{font-size:26px;font-style:italic;line-height:1.25;margin:22px 0 0;border-left:6px solid var(--accent);padding-left:18px}
.pull::before{content:"\201C"}.pull::after{content:"\201D"}
@media(max-width:900px){.g3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.g3{grid-template-columns:1fr}}
/* article cards (news, essays, categories, search) */
.cp-kick{margin-top:16px}
.cp-title{font-size:24px;line-height:1.1;margin-top:8px}
.cp-deck{font-size:18px;color:var(--mu);margin:10px 0 12px;line-height:1.35}
.card-post .cp-deck+.lb{margin-top:0}
.feat{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;margin-bottom:56px;padding-bottom:56px;border-bottom:1px solid var(--line)}
.feat .cp-kick{margin-top:0}
.feat-title{font-size:clamp(30px,4vw,48px);margin-top:10px}
@media(max-width:900px){.feat{grid-template-columns:1fr;gap:24px}}
/* about page */
.ab-hero{padding-top:56px;padding-bottom:56px}
.ab-h1{font-size:clamp(36px,6vw,84px);letter-spacing:-.035em;line-height:1;max-width:1000px;margin-top:14px}
.ab-lead{font-size:clamp(20px,2.2vw,26px);line-height:1.35;max-width:720px;margin:28px 0 0}
.ab-body{display:grid;grid-template-columns:1.5fr 1fr;gap:64px;padding-bottom:80px;align-items:start}
.ab-body--solo{grid-template-columns:1fr}
.ab-body .entry{margin:0;max-width:none}
.glance{background:var(--accent);padding:28px;border-top:6px solid var(--ink)}
.gl-row{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-top:1px solid var(--ink);margin-top:12px}
.gl-n{font-family:var(--hd);font-weight:800;font-size:44px;line-height:1}
.ab-dark{background:var(--ink);color:#fff;padding:72px 0 80px;margin-bottom:72px}
.ab-dark .sec{border-top-color:#fff}
.ab-num{font-size:56px;color:var(--accent)}
.ab-ptitle{font-size:28px;margin-top:14px}
.ab-ptext{font-size:20px;line-height:1.4;color:var(--line);margin:12px 0 0;max-width:340px}
.ab-sec{padding-bottom:80px}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:180px;padding:24px;color:#fff}
.tile.ph2{color:var(--ink)}
.tile:hover{text-decoration:none}
.tile-t{font-size:34px}
.tile-d{font-size:18px;line-height:1.3;max-width:240px}
.arr{font-size:30px}
@media(prefers-reduced-motion:no-preference){.arr{transition:transform .2s}.tile:hover .arr{transform:translateX(8px)}}
.contrib{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 32px}
.ct{display:flex;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.ct:hover{text-decoration:none}.ct:hover .ct-name{text-decoration:underline}
.ct-av{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 22px var(--hd);color:#fff;flex:none}
.ct-av.ph2{color:var(--ink)}
.ct-name{font-size:20px}
.pitch{border:2px solid var(--ink);padding:32px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:56px}
.pitch h3{font-size:32px}
@media(max-width:900px){.ab-body{grid-template-columns:1fr;gap:40px}}

/* review card tag */
.card-type{margin-top:14px}
.rtag{display:inline-block;border:2px solid var(--ink);padding:2px 8px}
.card-artist{margin-top:10px}

/* review + interview page: cover beside the headline, text in a centred column below */
.rv-head{align-items:center;margin-bottom:56px}
.rv-cover{margin:0;max-width:none}
.rv-info h1{font-size:clamp(30px,3.6vw,44px);line-height:1.08;margin-top:10px}
.rv-body{max-width:720px;margin:0 auto}
.rv-body .entry{margin:0;max-width:none}
.rv-body .tags{margin:36px 0 0;max-width:none}
.facts-line{margin-top:18px}

/* Reviews page banner: latest Best New Music */
.bnm-banner{background:var(--accent);border-bottom:2px solid var(--ink)}
.bnm-in{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:56px;align-items:center;padding-top:56px;padding-bottom:56px}
.bnm-banner .bnm{display:none}
.bnm-kick{display:flex;align-items:center;gap:8px}
.bnm-banner .card-type{margin-top:18px}
.bnm-artist{font-size:clamp(36px,5vw,64px);margin-top:12px}
.bnm-release{font-style:italic;font-size:clamp(22px,2.4vw,30px);margin-top:10px}
.bnm-meta{margin-top:14px}
.bnm-deck{font-size:21px;line-height:1.35;margin:18px 0 0;max-width:620px}
.bnm-banner .btn{margin-top:26px}
@media(max-width:900px){.bnm-in{grid-template-columns:1fr;gap:28px}.bnm-cover{max-width:420px}}

/* New releases strip (homepage) */
.nr{padding-bottom:72px}
.nr-box{border-top:4px solid var(--ink);border-bottom:1px solid var(--ink)}
.nr-head{display:flex;justify-content:space-between;align-items:baseline;padding-top:14px}
.nr-head h2{font-size:22px}
.nr-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:8px}
.nr-item{display:flex;gap:18px;align-items:center;padding:20px 24px 20px 0}
.nr-item+.nr-item{border-left:1px solid var(--ink);padding-left:24px}
.nr-thumb{width:96px;flex:none}
.nr-thumb.ph3:not(.has-img)::before{border-width:7px}
.nr-artist{display:block;font-size:20px;margin-top:8px}
.nr-rel{display:block;font-style:italic;font-size:19px;line-height:1.2}
.nr-link{display:block;margin-top:8px;text-decoration:underline;text-underline-offset:3px}
.nr-item:hover{text-decoration:none}
@media(max-width:900px){.nr-grid{grid-template-columns:1fr}.nr-item+.nr-item{border-left:0;border-top:1px solid var(--line);padding-left:0}}

/* review page headline: artist, then release name in italic */
.rv-artist{display:block}
.rv-release{display:block;font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;font-size:.64em;line-height:1.15;margin-top:12px}

.nr-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* author page */
.au-head{margin-bottom:56px}
.au-name{font-size:clamp(36px,5vw,64px);margin-top:12px}
.au-bio{font-size:22px;line-height:1.5;max-width:680px;margin-top:22px;color:var(--mu)}
.au-bio p{margin:0 0 1em}

/* About page: tidy long text (headings become small labels, lists become columns, .note becomes a boxed note) */
.ab-body .entry h2,.ab-body .entry h3{font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;border-top:2px solid var(--ink);padding-top:12px;margin:48px 0 16px}
.ab-body .entry hr{border:0;border-top:1px solid var(--line);margin:40px 0}
.ab-body .entry ul{list-style:none;padding:0;margin:0 0 1.2em;columns:3;column-gap:32px;font-size:19px;line-height:1.7}
.ab-body .entry ul li{break-inside:avoid;margin:0}
.entry .note{border:2px solid var(--ink);padding:20px 24px;font-size:17px;line-height:1.5;margin:0 0 1.2em}
@media(max-width:700px){.ab-body .entry ul{columns:2}}
