/* renneslechateau.com — "The Register" */

:root{
  --ground:#ECE9E4;   /* ground — plaster */
  --paper:#FBFAF8;    /* second ground, panels + mats */
  --ink:#141312;      /* ink */
  --ink-2:#39352F;    /* body ink */
  --muted:#79736A;    /* quiet ink */
  --rule:#C7C2BA;     /* rules */
  --rule-soft:#DBD7D0;
  --oxblood:#7A1F3D;  /* accent — bands, panels, section marks */
  --brass:#B8892A;    /* secondary — numerals, rules, marks */
  --brass-pale:#E7C882;
  --display:'Bricolage Grotesque',system-ui,sans-serif;
  --text:'Public Sans',system-ui,sans-serif;
  --gut:28px;
  --measure:816px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--text);font-size:17px;line-height:1.6;
  text-wrap:pretty;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--oxblood);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.02em;line-height:1.06;margin:0}
figure{margin:0}
table{border-collapse:collapse;width:100%}
svg{flex:none}

.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--gut)}
.measure{max-width:var(--measure);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:9}

/* ─────────── masthead + ledger head ─────────── */
.brass-rule{height:9px;background:var(--brass)}
.masthead{border-bottom:1px solid var(--ink);background:var(--ground)}
.masthead-row{
  display:flex;flex-wrap:wrap;gap:18px 26px;align-items:flex-end;
  justify-content:space-between;padding:22px 0 18px;
}
.mh-id{display:flex;align-items:flex-end;gap:16px;min-width:0}
.mh-mark{color:var(--oxblood)}
.mh-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.mh-name .wordmark{
  font-family:var(--display);font-weight:800;letter-spacing:-.035em;
  font-size:clamp(30px,6vw,58px);line-height:.9;color:var(--ink);
}
.mh-name .domain{
  font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
}
.mh-line{
  margin:0;max-width:34ch;font-size:16px;line-height:1.45;color:var(--ink-2);
}
.masthead a:hover{text-decoration:none}

/* six numbered cells at unequal widths */
.ledger-head{border-top:1px solid var(--rule)}
.ledger-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr;border-bottom:2px solid var(--ink)}
.ledger-grid + .ledger-grid{grid-template-columns:1fr 1fr 1.45fr;border-top:0}
.lh-cell{padding:15px 22px 18px;border-right:1px solid var(--rule);min-width:0}
.lh-cell:last-child{border-right:0}
.lh-head{display:flex;align-items:flex-start;gap:9px;margin-bottom:9px;flex-wrap:nowrap}
.lh-head .sec-icon{flex:none;margin-top:2px}
.lh-no{margin-top:1px}
.lh-title{min-width:0}
.lh-no{font-family:var(--display);font-weight:800;font-size:20px;color:var(--brass);line-height:1}
.lh-cell .sec-icon{color:var(--oxblood)}
.lh-title{font-family:var(--display);font-weight:600;font-size:20px;color:var(--ink)}
.lh-entries{display:flex;flex-direction:column;font-size:15.5px}
.lh-entries a{
  padding:5px 0;border-top:1px solid var(--rule-soft);color:var(--ink-2);
}
.lh-entries a:hover{color:var(--oxblood)}
.lh-cell.accent{background:var(--oxblood);color:var(--paper)}
.lh-cell.accent .lh-title,.lh-cell.accent .sec-icon{color:var(--paper)}
.lh-cell.accent .lh-no{color:var(--brass-pale)}
.lh-cell.accent .lh-entries a{color:#EFDCE3;border-top-color:rgba(246,242,236,.28)}
.lh-cell.accent .lh-entries a:hover{color:#fff}

/* compact strip for inner pages */
.strip{border-bottom:1px solid var(--ink);background:var(--paper)}
.strip-row{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:11px 0}
.strip-row a{
  display:flex;align-items:center;gap:7px;font-size:14.5px;color:var(--ink-2);white-space:nowrap;
}
.strip-row a .sec-icon{color:var(--brass)}
.strip-row a[aria-current]{color:var(--oxblood);font-weight:600}
.strip-row a[aria-current] .sec-icon{color:var(--oxblood)}
.strip-no{font-family:var(--display);font-weight:800;color:var(--brass);font-size:13px}

/* ─────────── homepage bands ─────────── */
.band{border-bottom:1px solid var(--ink)}
.band-paper{background:var(--paper)}
.band-dark{background:var(--ink);color:#E6E0D2}
.band-accent{background:var(--oxblood);color:var(--paper)}
.kicker{
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--oxblood);
  display:flex;align-items:center;gap:9px;
}
.band-dark .kicker,.band-accent .kicker{color:var(--brass-pale)}
.band-head{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:baseline;justify-content:space-between;margin-bottom:20px}
.band-head h2{font-size:clamp(24px,3vw,32px);font-weight:800}
.count{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

/* lead feature */
.lead-band{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.lead-figure{position:relative;background:var(--rule-soft);min-height:340px}
.lead-figure img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.lead-body{padding:34px var(--gut) 32px;display:flex;flex-direction:column;gap:14px;justify-content:center;background:var(--paper)}
.lead-body h2{font-size:clamp(28px,3.4vw,40px);font-weight:800}
.lead-body p{margin:0;font-size:17.5px;line-height:1.6;color:var(--ink-2)}
.more{
  align-self:flex-start;font-family:var(--display);font-weight:600;font-size:15px;
  letter-spacing:.02em;color:var(--ink);border-bottom:2px solid var(--brass);padding-bottom:3px;
}
.more:hover{color:var(--oxblood);border-color:var(--oxblood);text-decoration:none}

.intro-grid{padding:26px 0 34px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px 34px}
@media (max-width:820px){.intro-grid{grid-template-columns:minmax(0,1fr)}}

/* quiet line */
.quiet{padding:clamp(48px,7vw,86px) 0}
.quiet p{
  margin:0 auto;max-width:34ch;text-align:center;font-family:var(--display);font-weight:600;
  font-size:clamp(24px,3.4vw,36px);line-height:1.18;letter-spacing:-.02em;
}

/* register table */
.register{width:100%;font-size:16px}
.register thead th{
  background:var(--ink);color:var(--paper);text-align:left;font-weight:600;
  font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;padding:9px 12px;
}
.register td{border-top:1px solid var(--rule);padding:14px 12px;vertical-align:top;color:var(--ink-2)}
.register tbody tr:last-child td{border-bottom:1px solid var(--ink)}
.register .r-no{font-family:var(--display);font-weight:800;color:var(--brass);width:56px}
.register .r-what a{font-weight:600;color:var(--ink)}
.register .r-what a:hover{color:var(--oxblood)}
.register .r-where{color:var(--muted);white-space:normal}

/* three-up selection */
.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px}
.pick{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule)}
.pick .pick-img{aspect-ratio:16/10;background:var(--rule-soft);overflow:hidden}
.pick .pick-img img{width:100%;height:100%;object-fit:cover}
.pick-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.pick-body h3{font-size:22px;font-weight:600}
.pick-body p{margin:0;font-size:16px;color:var(--ink-2);flex:1}
.pick-meta{display:flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-top:auto}
.pick-meta .sec-icon{color:var(--brass)}

/* cutaway spot drawing */
.cutaway{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:center;padding:38px 0 30px}
.cutaway svg{width:100%;height:auto;color:var(--ink)}
.cutaway-note h3{font-size:26px;font-weight:800;margin-bottom:10px}
.cutaway-note p{margin:0;font-size:16px;color:var(--ink-2)}

/* map */
.map-figure{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0;align-items:stretch}
.map-slot{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:18px;min-height:320px}
.map-slot svg{width:100%;height:auto;max-height:420px}
.map-figure figcaption{padding:30px var(--gut);display:flex;flex-direction:column;gap:12px;justify-content:center;background:var(--ground);border-left:1px solid var(--rule)}
.map-figure figcaption p{margin:0;font-size:17px;color:var(--ink-2)}
.map-pin circle{fill:var(--oxblood)}
.map-pin text{font-family:var(--text);fill:var(--ink)}
.map-pin a:hover text,.map-pin:hover text{fill:var(--oxblood)}
.map-scale text{font-family:var(--text);fill:var(--ink)}
.map-locator{width:150px;height:auto;align-self:flex-start}
.map-outline{fill:#DFDBD4;stroke:var(--ink);stroke-width:3}

/* ─────────── colophon / supporters ─────────── */
.colophon{background:var(--paper);border-top:1px solid var(--ink)}
.colophon-head{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:baseline;padding:30px 0 6px}
.colophon-head h2{font-size:26px;font-weight:800}
.colophon-head p{margin:0;font-size:15px;color:var(--muted)}
.sponsor-group{padding:14px 0 26px}
.sponsor-group h3{
  font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  font-family:var(--text);font-weight:600;padding-bottom:8px;border-bottom:2px solid var(--ink);
}
.sponsor-list{list-style:none;margin:0;padding:0}
.sponsor-list li{border-bottom:1px solid var(--rule)}
.sponsor{
  display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;padding:14px 0;color:var(--ink);
}
.sponsor:hover{text-decoration:none}
.sponsor:hover .sponsor-name{color:var(--oxblood)}
.sponsor-mark{
  flex:0 0 248px;width:248px;height:58px;background:var(--ink);
  display:flex;align-items:center;justify-content:center;padding:7px 14px;
}
.sponsor-mark img{max-height:44px;max-width:100%;width:auto;height:auto;object-fit:contain}
.sponsor-text{flex:1 1 260px;min-width:240px;display:flex;flex-direction:column;gap:3px}
.sponsor-name{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.15}
.sponsor-blurb{font-size:15.5px;color:var(--ink-2);line-height:1.45}
.sponsor.feat .sponsor-name{font-size:21px}

/* ─────────── article pages ─────────── */
.article-head{background:var(--paper);border-bottom:1px solid var(--ink);padding:38px 0 30px}
.article-head .kicker{margin-bottom:14px}
.article-head h1{font-size:clamp(30px,5vw,50px);font-weight:800;max-width:26ch}
.standfirst{
  margin:16px 0 0;max-width:52ch;font-size:clamp(18px,2vw,21px);line-height:1.45;color:var(--oxblood);
}
.crumbs{font-size:14px;color:var(--muted);margin-bottom:12px}
.crumbs a{color:var(--muted)}

.article-body{padding:34px 0 10px}
.article-body > p,.article-body > ul,.article-body > ol,.article-body > h2,.article-body > h3{
  max-width:var(--measure);margin-inline:auto;padding-inline:var(--gut);
}
.article-body > p{margin:0 auto 18px;font-size:18px;line-height:1.72;color:var(--ink-2)}
.article-body > h2{margin:38px auto 14px;font-size:clamp(23px,2.6vw,29px);font-weight:800;color:var(--ink)}
.article-body > h3{margin:30px auto 10px;font-size:20px;font-weight:600}
.article-body > ul,.article-body > ol{margin:0 auto 20px;padding-left:calc(var(--gut) + 20px)}
.article-body li{margin-bottom:7px;font-size:17.5px;color:var(--ink-2)}
.notes-panel h3,.notes-panel p,.notes-panel ul,.notes-panel ol{max-width:none;margin-inline:0;padding-inline:0}
.article-body a{border-bottom:1px solid rgba(122,31,61,.35)}
.article-body a:hover{text-decoration:none;border-bottom-color:var(--oxblood)}

/* figure system — three treatments, one family */
.article-figure{margin:30px auto;max-width:var(--measure);padding-inline:var(--gut)}
.article-figure .frame{background:var(--paper);padding:10px;border:1px solid var(--rule);position:relative}
.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.article-figure figcaption{padding-top:12px}
.fig-cap{margin:0;font-size:16px;line-height:1.5;color:var(--ink);border-top:2px solid var(--brass);padding-top:9px;max-width:56ch}
.fig-no{font-family:var(--display);font-weight:800;color:var(--brass);margin-right:8px}
.fig-credit{margin:5px 0 0;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

.article-figure.bleed{max-width:none;padding-inline:0;margin:38px 0}
.article-figure.bleed .frame{padding:0;border:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.article-figure.bleed img{aspect-ratio:auto;height:clamp(280px,46vw,520px)}
.article-figure.bleed figcaption{max-width:var(--measure);margin-inline:auto;padding:14px var(--gut) 0}

.article-figure.inset{float:right;width:340px;max-width:44%;margin:6px 0 20px 30px;padding-inline:0}
.article-figure.inset .frame{padding:6px;border-color:var(--ink)}
.article-figure.inset img{aspect-ratio:4/3}
.article-figure.inset .fig-cap{font-size:15px;border-top-width:1px}

/* notes-for-design material — full-bleed interruptions */
.notes-panel{background:var(--paper);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:38px 0;padding:30px 0}
.notes-panel.dark{background:var(--ink);color:#E6E0D2;border-color:var(--ink)}
.notes-panel .panel-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.notes-panel .panel-head h3{font-size:20px;font-weight:800}
.notes-panel .panel-head .sec-icon{color:var(--brass)}
.notes-panel.dark .panel-head h3{color:var(--brass-pale)}

.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 30px}
.timeline li{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr);gap:14px;padding:11px 0;border-top:1px solid var(--rule)}
.notes-panel.dark .timeline li{border-top-color:rgba(230,224,210,.25)}
.t-when{font-family:var(--display);font-weight:800;font-size:15px;color:var(--brass);line-height:1.35}
.t-what{font-size:16px;line-height:1.45}

.keylist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 34px}
.keylist li{padding:11px 0;border-top:1px solid var(--rule);font-size:16px;line-height:1.5}
.notes-panel.dark .keylist li{border-top-color:rgba(230,224,210,.25)}
.keylist b{font-family:var(--display);font-weight:600;display:block;font-size:17px;color:var(--ink)}
.notes-panel.dark .keylist b{color:var(--brass-pale)}

/* text components */
.lead{font-size:20px;line-height:1.5;color:var(--oxblood);max-width:var(--measure);margin:0 auto 22px;padding-inline:var(--gut)}
.pullquote{margin:32px auto;max-width:var(--measure);padding:22px var(--gut);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.pullquote p{margin:0;padding:0;max-width:none;font-family:var(--display);font-weight:600;font-size:clamp(20px,2.4vw,26px);line-height:1.24;letter-spacing:-.02em;color:var(--ink)}
.blockquote{margin:28px auto;max-width:var(--measure);padding:0 var(--gut);border-left:4px solid var(--brass)}
.blockquote p{margin:0 0 8px;font-size:18px;font-style:italic;color:var(--ink)}
.blockquote cite{font-size:14.5px;font-style:normal;color:var(--muted)}
.callout{margin:28px auto;max-width:var(--measure);background:var(--paper);border:1px solid var(--ink);padding:20px 24px}
.callout p{margin:0;padding:0;max-width:none;font-size:17px;color:var(--ink)}
.note{font-size:15.5px;color:var(--muted);border-left:2px solid var(--rule);padding-left:14px}

/* data components */
.datatable,.versus{font-size:16px;margin:26px auto;max-width:var(--measure)}
.datatable th,.versus th{background:var(--ink);color:var(--paper);text-align:left;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;padding:9px 12px}
.datatable td,.versus td{border-top:1px solid var(--rule);padding:11px 12px;color:var(--ink-2);vertical-align:top}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--rule);margin:26px auto;max-width:var(--measure)}
.statblock{background:var(--paper);padding:18px 20px;display:flex;flex-direction:column;gap:4px}
.stat-num{font-family:var(--display);font-weight:800;font-size:34px;color:var(--oxblood);line-height:1}
.stat-label{font-size:14.5px;color:var(--muted)}
.chart figcaption{font-size:15px;color:var(--muted);padding-top:8px}
.chart svg{width:100%;height:auto;color:var(--oxblood)}

/* gallery + cards */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:28px 0}
.gallery figure{background:var(--paper);border:1px solid var(--rule);padding:8px;display:flex;flex-direction:column}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{font-size:14.5px;color:var(--muted);padding-top:8px}

.profile-grid,.org-grid,.further-grid{display:grid;gap:16px;margin:26px 0}
.profile-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.profile-card{background:var(--paper);border:1px solid var(--rule);padding:18px;display:flex;flex-direction:column;gap:8px}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover}
.profile-card h3{font-size:20px;font-weight:600}
.p-role{margin:0;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.profile-card p{margin:0;font-size:16px;color:var(--ink-2)}
.p-links{margin-top:auto!important;display:flex;flex-wrap:wrap;gap:12px}
.org-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.org-card{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--rule);padding:12px 14px}
.org-logo{width:52px;height:52px;object-fit:contain;background:var(--ink);padding:6px;flex:none}
.org-name{font-family:var(--display);font-weight:600;font-size:17px;color:var(--ink)}
.org-host{font-size:13.5px;color:var(--muted)}
.org-card>span{display:block}
.entity-ref{white-space:nowrap;border-bottom:1px solid rgba(122,31,61,.4)}
.further-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.further-grid a{background:var(--paper);border:1px solid var(--rule);padding:14px 16px;font-family:var(--display);font-weight:600;font-size:17px;color:var(--ink);display:flex;align-items:center;min-height:76px}
.further-grid a:hover{color:var(--oxblood);text-decoration:none;border-color:var(--brass)}

.related{background:var(--paper);border-top:1px solid var(--ink);padding:30px 0 34px}
.related h2{font-size:20px;font-weight:800;margin-bottom:14px}
.related-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 30px}
.related-links li{border-top:1px solid var(--rule)}
.related-links a{display:flex;gap:10px;align-items:baseline;padding:12px 0;font-size:17px;color:var(--ink)}
.related-links a:hover{color:var(--oxblood);text-decoration:none}
.related-links .rl-no{font-family:var(--display);font-weight:800;color:var(--brass);font-size:14px}

/* category + hub pages */
.cat-head{background:var(--paper);border-bottom:1px solid var(--ink)}
.cat-head-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px)}
.cat-head-text{padding:40px var(--gut) 34px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.cat-head-text h1{font-size:clamp(30px,4.6vw,48px);font-weight:800}
.cat-head-text p{margin:0;font-size:18px;color:var(--ink-2);max-width:48ch}
.cat-head-img{background:var(--rule-soft);min-height:260px;position:relative}
.cat-head-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-top:1px solid var(--rule)}
.cat-list li:last-child{border-bottom:1px solid var(--ink)}
.cat-list a{display:grid;grid-template-columns:56px minmax(0,1fr) 220px;gap:20px;padding:20px 0;align-items:center;color:var(--ink)}
.cat-list a:hover{text-decoration:none;background:var(--paper)}
.cat-list .c-no{font-family:var(--display);font-weight:800;font-size:20px;color:var(--brass)}
.cat-list h3{font-size:22px;font-weight:600;margin-bottom:5px}
.cat-list p{margin:0;font-size:16px;color:var(--ink-2)}
.cat-list .c-thumb{aspect-ratio:16/10;background:var(--rule-soft);overflow:hidden}
.cat-list .c-thumb img{width:100%;height:100%;object-fit:cover}
.cat-list a:hover h3{color:var(--oxblood)}

.hub-group{padding:26px 0 6px;border-top:1px solid var(--rule)}
.hub-group .hub-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.hub-group .hub-title h2{font-size:23px;font-weight:800}
.hub-group .hub-title .sec-icon{color:var(--oxblood)}
.hub-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 30px}
.hub-links li{border-top:1px solid var(--rule-soft)}
.hub-links a{display:block;padding:9px 0;font-size:16.5px;color:var(--ink-2)}
.hub-links a:hover{color:var(--oxblood);text-decoration:none}

/* footer */
.site-foot{background:var(--ink);color:#E6E0D2;padding:34px 0 30px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(auto-fit,minmax(170px,1fr));gap:26px 30px}
.site-foot .wordmark{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.03em;color:var(--paper)}
.site-foot p{margin:8px 0 0;font-size:15px;color:#B4AD9D;max-width:34ch}
.foot-col h3{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:#8A8373;font-family:var(--text);font-weight:600;margin-bottom:8px}
.foot-col a{display:block;padding:3px 0;font-size:15.5px;color:#E6E0D2}
.foot-col a:hover{color:#fff}
.foot-rule{height:4px;background:var(--brass)}

/* misc pages */
.page-narrow{padding:56px 0 70px}
.page-narrow h1{font-size:clamp(30px,5vw,46px);font-weight:800;max-width:24ch;margin-bottom:16px}
.page-narrow p{font-size:18px;color:var(--ink-2);max-width:56ch}
.sg-section{padding:34px 0;border-top:1px solid var(--rule)}
.sg-section > h2{font-size:24px;font-weight:800;margin-bottom:6px}
.sg-section > p.note{margin:0 0 18px}
.sg-narrow{max-width:360px;border:1px dashed var(--rule);padding:0 0 10px;margin-top:22px;overflow:hidden}

@media (max-width:980px){
  .lead-band,.cutaway,.map-figure,.cat-head-grid{grid-template-columns:minmax(0,1fr)}
  .cutaway{gap:20px;padding-bottom:22px}
  .map-figure figcaption{border-left:0;border-top:1px solid var(--rule)}
  .article-figure.inset{float:none;width:auto;max-width:none;margin:26px auto;padding-inline:var(--gut);max-width:var(--measure)}
  .cat-list a{grid-template-columns:44px minmax(0,1fr);gap:14px}
  .cat-list .c-thumb{display:none}
}
@media (max-width:820px){
  :root{--gut:18px}
  .ledger-grid,.ledger-grid + .ledger-grid{grid-template-columns:minmax(0,1fr)}
  .lh-cell{border-right:0;border-top:1px solid var(--rule)}
  .register thead{display:none}
  .register,.register tbody,.register tr,.register td{display:block;width:auto}
  .register tr{border-top:1px solid var(--rule);padding:12px 0}
  .register td{border:0;padding:2px 0}
  .register .r-no{width:auto}
  .sponsor-mark{flex:0 0 200px;width:200px;height:52px}
  .sponsor-text{min-width:0;flex:1 1 100%}
}
@media (max-width:520px){
  .sponsor-mark{flex:0 0 100%;width:100%}
}

/* variants used by the component set */
.profile-card.no-photo .p-photo{display:none}
.profile-card.no-photo{border-left:4px solid var(--brass)}
.p-attr{margin:0;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.org-card.no-logo .org-logo{display:none}
.org-card.no-logo{border-left:4px solid var(--oxblood)}
.chart{margin:26px 0}
.chart.bar svg .bar-fill{fill:var(--oxblood)}
.chart.bar svg .bar-label,.chart svg text{font-family:var(--text);font-size:13px;fill:var(--ink-2)}
.chart.line svg .plot{fill:none;stroke:var(--oxblood);stroke-width:2.5}
.chart.line svg .grid{stroke:var(--rule)}
.chart.donut svg .seg{fill:none;stroke-width:26}
.map-figure.frame-only{display:block;border:1px solid var(--ink);background:var(--paper);padding:10px}
.map-figure.frame-only .map-slot{min-height:220px;border:1px dashed var(--rule);color:var(--muted);font-size:14px}
.map-figure.frame-only figcaption{background:transparent;border:0;padding:12px 0 2px}
.sg-frames{display:flex;flex-wrap:wrap;gap:22px;margin-top:18px}
.sg-frames figure{margin:0}
.sg-frames iframe{width:360px;height:640px;border:1px solid var(--ink);background:var(--paper)}
.sg-frames figcaption{font-size:14px;color:var(--muted);padding-top:8px}

/* sections index band (the ledger block, moved out of the header) */
.band .ledger-head{border-top:1px solid var(--ink)}
.band .ledger-grid{border-bottom:1px solid var(--ink)}
.band .ledger-grid + .ledger-grid{border-bottom:2px solid var(--ink)}

.spot-note{font-family:var(--text);font-size:15px;fill:var(--muted);letter-spacing:.02em}
.cutaway svg text{paint-order:stroke}
.map-legend{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.map-legend li{display:flex;align-items:center;gap:10px;font-size:15px;line-height:1.35;color:var(--ink-2)}
.map-legend svg{flex:none}
.map-figure figcaption .map-locator{margin-top:6px}

.panel-sub{font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.01em;margin:22px 0 4px;padding-top:14px;border-top:1px solid var(--rule)}
.notes-panel.dark .panel-sub{border-top-color:rgba(230,224,210,.25);color:var(--brass-pale)}
.notes-panel{margin:46px 0;padding:34px 0}
.article-figure{margin:40px auto}
.article-figure.bleed{margin:46px 0}
.pullquote{margin:44px auto}


.article-body{padding-top:22px}
.article-body > h2:first-child,.article-body > p:first-child{margin-top:0}

/* inset figure stays inside the text measure */
.article-figure.inset{
  float:right;width:min(320px,38%);
  margin:8px 0 24px 30px;
  margin-right:calc(max(0px,(100% - var(--measure)) / 2) + var(--gut));
}
@media (max-width:980px){
  .article-figure.inset{float:none;width:auto;margin:28px auto;padding-inline:var(--gut);max-width:var(--measure)}
}

@media (min-width:1540px){
  /* was 1240: the margin inset only fits from 1540 */
  /* wide screens: the inset sits in the margin beside the column, prose keeps full measure */
  .article-figure.inset{width:300px;margin-right:calc(max(0px,(100% - var(--measure)) / 2) - 356px)}
}

.article-body > p,.article-body > ul,.article-body > ol,.article-body > h2,.article-body > h3{margin-inline:auto}
.notes-panel p,.notes-panel ul,.notes-panel ol,.pullquote p{margin-inline:0}

.notes-panel.dark .keylist li,.notes-panel.dark .timeline li,.notes-panel.dark .t-what,.notes-panel.dark p{color:#E6E0D2}
.notes-panel.dark .t-when{color:var(--brass-pale)}

/* ── mobile: nav strip scrolls in one line, touch targets ≥44px ── */
@media (max-width:820px){
  .strip-row{flex-wrap:nowrap;overflow-x:auto;gap:0 20px;padding:0;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity}
  .strip-row a:last-child{padding-right:var(--gut)}
  .strip-row::-webkit-scrollbar{display:none}
  .strip-row a{min-height:46px;scroll-snap-align:start;flex:0 0 auto}
  .strip-row a[style]{margin-left:0 !important}
  .foot-col a{min-height:44px;display:flex;align-items:center;padding:0}
  .more{min-height:44px;display:inline-flex;align-items:center}
  .lh-title,.lh-entries a,.site-foot a{min-height:44px;display:flex;align-items:center}
}

/* sp-contain-guard: sponsor logos are wordmarks — never object-fit:cover (crops).
   object-fit ONLY. This block used to also set width:auto, padding:4px 10px,
   max-width:calc(100% - 20px) and min/max-height, which overrode Design's own frame and
   let every plate shrink-wrap its logo — the recurring "inconsistent sizing" and
   "lacks padding". Geometry belongs to Design. */
.sponsor img,.sponsor-box img,.sp-logo img{object-fit:contain!important;display:block;margin-left:auto;margin-right:auto;align-self:center}

/* sp-mark-align: marks sit CENTRED in their box. Placement only — Design's size,
   padding, panel and object-fit are untouched. */
.sponsor img,.sponsor-box img,.sp-logo img{object-position:center!important;margin-left:auto!important;margin-right:auto!important;display:block}
.sponsor .sp-logo,.sponsor-box{display:flex;align-items:center;justify-content:center}

/* sp-tile-uniform: a slot never grows to fill its row — every tile the same width in
   every row, whatever the count. Only flex-grow is touched. */
.sponsor{flex-grow:0!important}
.sponsor.lead-line,.sponsor.feat.lead-line{flex-grow:1!important}

/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.sponsor.sponsor img{height:44px!important}


/* op-foot-grid-1col: operator screenshot — the footer read one word per line ("Rennes-le-
   Château" broken across three lines, "The Record / Who Wrote / the Legend" stacked). Design's
   footer grid steps 4 columns -> 2 and stops there, and the second track is pinned at 170px, so
   the FIRST track takes all the loss: 154px at 390, 139px at 375, 124px at 360, 84px at 320.
   One column below 520px, where two stop fitting this content. */
@media (max-width:520px){
  .foot-grid{grid-template-columns:1fr!important}
}


/* op-wrap-gutter: these elements carry the build's own gutter class but their own
   rule sets a padding SHORTHAND, which resets left/right to 0 — every line of type
   then sits against the screen edge at phone width. Design's own token is restated
   for the inline axis, on the exact element that lost it. Measured, not guessed:
   each selector below had TEXT within 2px of a viewport edge at 390. */
@media (max-width:900px){
  .wrap.masthead-row{padding-inline:var(--gut)}
  /* NOT .wrap.strip-row — Design zeroes that padding on purpose: "mobile: nav strip scrolls
     in one line", flex-wrap:nowrap, overflow-x:auto, scroll-snap-type:x proximity, and
     a:last-child{padding-right:var(--gut)} for the tail. Adding a gutter here gave the worst
     of both: each item is a snap target, so the browser snapped past the new padding
     (scrollLeft=18) and "01" still sat on the glass. */
  .wrap.intro-grid{padding-inline:var(--gut)}
  .wrap[style*="padding"]{padding-inline:var(--gut)!important}
  .wrap.cutaway{padding-inline:var(--gut)}
  .wrap.masthead-row[style*="padding"]{padding-inline:var(--gut)!important}
}

/* op-strip-gutter: operator ruling — "01 Church menu touches edge still". Design's phone rule
   makes the strip a one-line snap scroller with `padding:0` on purpose, and my first attempt
   just added padding-inline: every item carries `scroll-snap-align:start`, so the browser
   snapped straight past it (measured scrollLeft=18) and "01" sat on the glass with the gutter
   hidden off-screen. The gutter only holds if the snapping goes with it, so:
     · .wrap.strip-row (2 classes, beats Design's .strip-row) restores the inline gutter
     · scroll-snap-type:none — nothing can snap the padding out of view
     · the tail spacer Design added for the zero-padding case is dropped, or the last item
       would sit 2x the gutter from the right edge
   The row still scrolls by swipe; it just starts flush with the masthead type above it. */
@media (max-width:820px){
  .wrap.strip-row{padding-inline:var(--gut)}
  .strip-row{scroll-snap-type:none}
  .strip-row a:last-child{padding-right:0}
}
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--display); letter-spacing: -0.02em; line-height: 1.06; margin: 0px;}
.cat-list h2:where(.rt-h3){font-size: 22px; font-weight: 600; margin-bottom: 5px;}
.cat-list a:hover h2:where(.rt-h3){color: var(--oxblood);}
.foot-col h2:where(.rt-h3){font-size: 12.5px; letter-spacing: 0.18em; text-transform: uppercase; color: rgb(138, 131, 115); font-family: var(--text); font-weight: 600; margin-bottom: 8px;}
/* op-heading-levels:end */

/* op-tablet-gutter — text never sits on the screen edge between the mobile guard and the max-width */
@media (min-width:901px) and (max-width:1299px){
  div.band-head{padding-left:max(var(--gut), 18px);padding-right:max(var(--gut), 18px)}
  div.wrap.intro-grid{padding-left:max(var(--gut), 18px);padding-right:max(var(--gut), 18px)}
  div.wrap.masthead-row{padding-left:max(var(--gut), 18px) !important;padding-right:max(var(--gut), 18px) !important}
}
@media (min-width:801px) and (max-width:1299px){
  div.wrap.strip-row{padding-left:max(var(--gut), 18px);padding-right:max(var(--gut), 18px)}
}
/* op-tablet-gutter:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a > span.c-thumb > img,
  a.pick > span.pick-img > img,
  div.cat-head-grid > div.cat-head-img > img,
  figure.article-figure > div.frame > img,
  figure.article-figure.bleed > div.frame > img,
  figure.article-figure.inset > div.frame > img,
  section.band.lead-band > figure.lead-figure > img){height:auto}
/* op-img-dims:end */
