/* ACM public site — Insights section styles (listing, sector, article).
   Nav/footer/theme toggle are injected by /assets/site-chrome.js. */
:root{--gold:#C8A96E;--gold-deep:#B3945C;--ink:#050505;}
[data-theme="dark"]{
  --base-bg:#050505;--base-bg2:#0A0A0A;--base-text:#F0EDE6;
  --base-muted:rgba(240,237,230,0.55);--base-dim:rgba(240,237,230,0.35);
  --base-faint:rgba(240,237,230,0.12);--base-legal:rgba(240,237,230,0.30);
  --accent:#C8A96E;--nav-bg:rgba(5,5,5,0.88);
}
[data-theme="light"]{
  --base-bg:#FBFAF7;--base-bg2:#F5F2EB;--base-text:#141210;
  --base-muted:rgba(20,18,16,0.62);--base-dim:rgba(20,18,16,0.42);
  --base-faint:rgba(20,18,16,0.10);--base-legal:rgba(20,18,16,0.38);
  --accent:#A9884D;--nav-bg:rgba(251,250,247,0.88);
}
*{margin:0;padding:0;box-sizing:border-box;}
[hidden]{display:none !important;}
body{background:var(--base-bg);color:var(--base-text);font-family:'DM Sans',sans-serif;font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease;}
a{color:inherit;}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.wrap{width:100%;max-width:1560px;margin:0 auto;padding:0 clamp(28px,5vw,96px);}
.label{font-size:11px;font-weight:500;letter-spacing:0.34em;text-transform:uppercase;color:var(--accent);margin-bottom:26px;}
.kicker{font-size:10px;font-weight:500;letter-spacing:0.28em;text-transform:uppercase;color:var(--accent);}

/* ---------- Masthead ---------- */
.masthead{padding-top:84px;}
.kicker-line{font-size:11px;font-weight:500;letter-spacing:0.34em;text-transform:uppercase;color:var(--accent);margin-bottom:22px;}
.masthead h1{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(44px,6vw,84px);line-height:1.04;letter-spacing:-0.01em;max-width:14ch;}
.dek{margin-top:18px;font-size:16px;line-height:1.6;color:var(--base-muted);max-width:62ch;}
.masthead-row{margin-top:40px;}
.masthead-row .sector-row{border-top:1px solid var(--base-faint);border-bottom:1px solid var(--base-faint);margin-bottom:0;}

/* Sector row — publication-style, shared by listing, sector and article pages */
.sector-row{position:relative;border-bottom:1px solid var(--base-faint);margin-bottom:44px;}
.sector-row-inner{display:flex;flex-wrap:nowrap;gap:28px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.sector-row-inner::-webkit-scrollbar{display:none;}
.sector-row::after{content:'';position:absolute;top:0;right:0;bottom:1px;width:56px;background:linear-gradient(to right,rgba(0,0,0,0),var(--base-bg));pointer-events:none;opacity:0;transition:opacity .2s ease;}
.sector-row.overflow::after{opacity:1;}
.sector-link{font-size:10.5px;font-weight:500;letter-spacing:0.26em;text-transform:uppercase;color:var(--base-dim);text-decoration:none;padding:16px 0 17px;line-height:1.2;border-bottom:1px solid transparent;margin-bottom:-1px;white-space:nowrap;flex-shrink:0;transition:color .2s ease,border-color .2s ease;}
.sector-link:hover{color:var(--accent);}
.sector-link.active{color:var(--base-text);border-bottom-color:var(--accent);}
.article-row{padding-top:28px;}
.article-row .sector-row{margin-bottom:0;}

/* ---------- Covers (shared) ---------- */
.cover-real{background-size:cover;background-position:center 24%;}
.cover-typo{position:relative;overflow:hidden;}
.cover-typo .cover-fill{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;}
.cover-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-style:italic;font-size:40px;color:var(--accent);opacity:.45;background:linear-gradient(135deg, rgba(200,169,110,0.28), rgba(200,169,110,0.06));}

/* ---------- Byline row (lead + article) ---------- */
.byline-row{display:flex;align-items:center;gap:12px;}
.byline-row .avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:center 20%;flex-shrink:0;}
.byline-row .who{font-size:12.5px;font-weight:400;color:var(--base-text);letter-spacing:0.02em;}
.byline-row .meta{font-size:10px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--base-dim);margin-top:2px;}

/* ---------- Lead story ---------- */
.lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);padding:64px 0 72px;align-items:center;}
.lead-text{min-width:0;}
.sector-label{display:inline-block;font-size:10.5px;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:var(--accent);text-decoration:none;margin-bottom:22px;}
a.sector-label:hover{text-decoration:underline;text-underline-offset:4px;}
.lead h2{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(30px,3.4vw,50px);line-height:1.14;margin-bottom:20px;}
.lead h2 a{text-decoration:none;}
.lead h2 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;}
.lead-excerpt{font-size:16px;line-height:1.7;color:var(--base-muted);max-width:52ch;}
.lead .byline-row{margin-top:30px;}
.lead-cover{display:block;text-decoration:none;min-width:0;}
.lead-cover-img{aspect-ratio:1200/630;width:100%;}
@media (max-width:900px){
  .lead{grid-template-columns:1fr;gap:28px;padding:40px 0 48px;align-items:start;}
  .lead-cover{order:-1;}
}

/* ---------- Latest (text-led list) ---------- */
.section-head{font-size:10.5px;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:var(--accent);padding-bottom:16px;border-bottom:1px solid var(--base-faint);}
.row{display:grid;grid-template-columns:110px minmax(0,1fr);column-gap:28px;padding:26px 0;border-bottom:1px solid var(--base-faint);}
.row-head{display:contents;}
.row-date{grid-column:1;grid-row:1/3;font-size:10px;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--base-dim);padding-top:4px;white-space:nowrap;}
.row-sector{grid-column:2;grid-row:1;display:inline-block;font-size:10px;font-weight:500;letter-spacing:0.28em;text-transform:uppercase;color:var(--accent);text-decoration:none;margin-bottom:8px;justify-self:start;}
a.row-sector:hover{text-decoration:underline;text-underline-offset:4px;}
.row-body{grid-column:2;grid-row:2;min-width:0;}
.row h3{font-family:'Playfair Display',serif;font-weight:500;font-size:22px;line-height:1.3;margin-bottom:8px;}
.row h3 a{text-decoration:none;}
.row h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;}
.row-excerpt{font-size:14px;line-height:1.6;color:var(--base-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;}
.row-read{display:block;margin-top:10px;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--base-dim);}
@media (max-width:700px){
  .row{display:block;padding:22px 0;}
  .row-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin-bottom:10px;}
  .row-date{padding-top:0;}
  .row-sector{margin-bottom:0;}
  .row h3{font-size:20px;}
  .row-excerpt{font-size:16px;}
}
/* Phone tap targets: extend the hit area of inline title links and labels to ≥44px without moving the type. */
@media (max-width:768px){
  .row h3 a,.lead h2 a{display:inline-block;padding:10px 0;margin:-10px 0;}
  .sector-label,.row-sector{line-height:1.2;padding:16px 0;margin:-16px 0 -8px;}
  .lead .sector-label{margin-bottom:6px;}
}
@media (max-width:430px){.row-excerpt{display:none;}}
.empty{padding:60px 0;color:var(--base-dim);font-size:14px;}
.empty-state{padding:70px 0 20px;max-width:560px;}
.empty-title{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(20px,2.2vw,28px);line-height:1.3;margin-bottom:12px;}
.empty-state p{font-size:14px;color:var(--base-muted);}
.load-more-row{display:flex;justify-content:center;padding:36px 0 10px;}
.btn{display:inline-block;font-size:11px;font-weight:500;letter-spacing:0.26em;text-transform:uppercase;text-decoration:none;padding:16px 30px;line-height:1.2;min-height:44px;cursor:pointer;font-family:inherit;transition:background .25s ease,color .25s ease,border-color .25s ease;}
.btn-line{color:var(--accent);border:1px solid var(--accent);background:transparent;}
.btn-line:hover{background:var(--gold);border-color:var(--gold);color:var(--ink);}
.btn:disabled{opacity:.5;cursor:default;}
.back{display:inline-block;margin-top:40px;font-size:10.5px;font-weight:500;letter-spacing:0.26em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--base-faint);padding-bottom:5px;}
.back:hover{border-color:var(--accent);}

/* ---------- Research updates (subscribe band) ---------- */
.subscribe-band{margin-top:72px;border-top:1px solid var(--base-faint);padding-top:44px;}
.sub-label{font-size:10.5px;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;}
.sub-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,46%);gap:16px 48px;align-items:center;}
.sub-copy{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(20px,2.2vw,28px);line-height:1.3;color:var(--base-text);}
.sub-row{display:flex;gap:10px;}
.sub-row input{flex:1;min-width:0;background:transparent;border:0;border-bottom:1px solid var(--base-faint);color:var(--base-text);font-family:inherit;font-size:16px;font-weight:300;padding:12px 0;min-height:44px;outline:none;transition:border-color .2s ease;}
.sub-row input::placeholder{color:var(--base-dim);}
.sub-row input:focus{border-bottom-color:var(--accent);}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
.sub-status{grid-column:2;font-size:12.5px;min-height:1.4em;color:var(--base-dim);}
.sub-status.ok{color:var(--accent);}
.sub-status.err{color:#D98C7A;}
.sub-note{margin-top:18px;font-size:11px;color:var(--base-legal);line-height:1.6;}
@media (max-width:820px){.sub-form{grid-template-columns:1fr;gap:18px;}.sub-status{grid-column:1;}}
@media (max-width:480px){.sub-row{flex-direction:column;}.sub-row .btn{width:100%;}}

/* ---------- Article page ---------- */
.article-layout{--col-gap:clamp(40px,5vw,96px);display:grid;grid-template-columns:68% minmax(0,1fr);gap:var(--col-gap);padding:52px 0 100px;align-items:start;}
@media (max-width:1023px){.article-layout{grid-template-columns:1fr;gap:56px;}}
article{min-width:0;}
article>*{max-width:72ch;}
article>.cover{max-width:none;}
.cover{margin:0 0 36px;}
.cover-img{aspect-ratio:1200/630;width:100%;}
.cover-img.cover-real{border:1px solid var(--base-faint);}
.cover figcaption{margin-top:10px;font-size:11.5px;color:var(--base-dim);line-height:1.6;}
article .kicker{display:block;margin-bottom:16px;}
article h1{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(28px,3.6vw,44px);line-height:1.22;margin-bottom:24px;}
.byline{padding-bottom:26px;margin-bottom:32px;border-bottom:1px solid var(--base-faint);}
/* Measure: ~72ch for text; figures may opt out with data-layout="wide"
   (full column width) or "full" (column plus half the column gap). */
article>.body{max-width:none;}
.body{font-size:16px;line-height:1.8;color:var(--base-muted);}
.body>*{max-width:72ch;}
.body>*+*{margin-top:18px;}
.body figure[data-layout="wide"]{max-width:none;}
.body figure[data-layout="full"]{max-width:none;width:calc(100% + var(--col-gap) / 2);}
@media (max-width:1023px){.body figure[data-layout="full"]{width:auto;}}
.body p{font-size:16px;line-height:1.8;}
.body h2,.body h3,.body h4{font-family:'Playfair Display',serif;font-weight:500;color:var(--base-text);line-height:1.3;margin-top:38px;}
.body h2{font-size:26px;}
.body h3{font-size:21px;}
.body h4{font-size:17px;}
.body a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--base-faint);}
.body a:hover{border-color:var(--accent);}
.body ul,.body ol{padding-left:1.4em;}
.body li+li{margin-top:8px;}
.body blockquote{border-left:2px solid var(--accent);padding:4px 0 4px 22px;font-family:'Playfair Display',serif;font-style:italic;font-size:19px;color:var(--base-text);}
.body hr{border:0;border-top:1px solid var(--base-faint);margin:36px 0;}
.body img,.body video{max-width:100%;height:auto;display:block;}
.body figure{margin:28px 0;}
.body figure img,.body figure video,.body figure iframe{width:100%;}
/* Galleries: a figure holding several images lays them out in a responsive grid. */
.body figure:has(> img + img),.body figure.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;}
.body figure:has(> img + img) > figcaption,.body figure.gallery > figcaption{grid-column:1 / -1;}
@media (max-width:430px){.body figure:has(> img + img),.body figure.gallery{grid-template-columns:1fr 1fr;}}
.body video,.body iframe,.body img{max-width:100%;}
.body figcaption{margin-top:10px;font-size:11.5px;color:var(--base-dim);}
.body iframe{width:100%;aspect-ratio:16/9;border:0;display:block;}
.body{overflow-wrap:anywhere;}
.body table{width:100%;border-collapse:collapse;font-size:14px;}
@media (max-width:1023px){.body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}}
.body th,.body td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--base-faint);vertical-align:top;}
.body th{font-weight:500;color:var(--base-text);}
.body pre,.body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;}
.body pre{overflow:auto;padding:16px;border:1px solid var(--base-faint);background:var(--base-bg2);}
.article-disclaimer{margin-top:48px;padding-top:26px;border-top:1px solid var(--base-faint);font-size:10.5px;line-height:1.85;color:var(--base-legal);letter-spacing:0.02em;}
.rail{position:sticky;top:96px;min-width:0;}
@media (max-width:1023px){.rail{position:static;border-top:1px solid var(--base-faint);padding-top:40px;}}
.rail h2{font-size:10.5px;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.rail ul{list-style:none;}
.rail li{border-top:1px solid var(--base-faint);}
.rail li:last-child{border-bottom:1px solid var(--base-faint);}
.rail-card{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;align-items:start;text-decoration:none;padding:16px 0;}
.rail-thumb{width:80px;height:80px;flex-shrink:0;}
.rail-thumb.cover-real{border:1px solid var(--base-faint);}
.rail-thumb .cover-fallback{font-size:22px;}
.rail-card .kicker{display:block;margin-bottom:6px;}
.rail-card .t{display:block;font-family:'Playfair Display',serif;font-weight:500;font-size:16px;line-height:1.35;color:var(--base-text);transition:color .2s ease;}
.rail-card:hover .t{color:var(--accent);}
.rail-card .d{display:block;margin-top:6px;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--base-dim);}
.rail-empty{font-size:13px;color:var(--base-dim);padding:12px 0;}
.missing{max-width:680px;margin:0 auto;padding:100px 28px;text-align:center;color:var(--base-muted);font-size:14px;}
.missing a{color:var(--accent);}
.page-bottom{padding-bottom:100px;}
