/* Bananacoconut site farm — one stylesheet for every topic site.
 * The palette lives entirely in the :root block below; tools/build_styles.py
 * swaps those values per site (see tools/style_palettes.txt) and the news
 * stylesheet appends its own classes at the end.
 * Look: editorial broadsheet. Serif headlines, sans body, thin rules instead
 * of boxes, generous whitespace, photographs only where they show something.
 * Nothing here may make a page wider than the viewport.
 */
*,*::before,*::after{box-sizing:border-box}
:root{--ink:#101f33;--mut:#5a6a80;--line:#dde4ee;--bg:#fff;--brand:#10314f;--brand-d:#0a2338;--soft:#f1f5fa;--tint:#f6f9fc;--shade:#e5ecf5;--warn:#8a5a00;--accent:#b4532a;--sh1:0 1px 2px rgba(16,31,51,.05);--sh2:0 14px 30px rgba(16,31,51,.11)}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.66 -apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand)}
h1,h2,h3,h4,.serif{font-family:Georgia,"Iowan Old Style","Palatino Linotype","Times New Roman",ui-serif,serif;font-weight:700}
.wrap{max-width:1060px;margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}

/* Masthead: a rule and a name. No card, no blur. */
.top{border-bottom:1px solid var(--rule);background:var(--bg)}
.bar{display:flex;align-items:center;gap:12px;min-height:62px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:5px;background:var(--brand);color:#fff;font:700 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.04em}
.brand-name{font:700 20px/1.2 Georgia,"Iowan Old Style","Times New Roman",serif;letter-spacing:-.01em}
.nav{display:none;width:100%;gap:2px;padding-bottom:8px}
.nav a{display:block;padding:7px 9px;text-decoration:none;color:var(--mut);font-size:15px}
.nav a:hover{color:var(--ink)}
.nav a.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand)}
.nav-toggle{margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px;font:inherit;font-size:14px;cursor:pointer}
@media(min-width:780px){.nav{display:flex;width:auto;margin-left:auto;padding:0}.nav-toggle{display:none}.bar{flex-wrap:nowrap}}

main{padding:30px 18px 64px}
h1{font-size:clamp(31px,6.2vw,47px);line-height:1.1;margin:.05em 0 .3em;letter-spacing:-.02em}
h2{font-size:clamp(22px,4vw,28px);line-height:1.18;margin:2em 0 .6em;letter-spacing:-.015em}
h3{font-size:19.5px;margin:1.6em 0 .4em}
h4{font-size:17px;margin:1.3em 0 .3em}
p{margin:0 0 1.05em}
.lede{font-size:19.5px;line-height:1.6;color:var(--mut);max-width:64ch;margin:0 0 1em}
.kicker{display:block;font:700 11.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--brand);margin:0 0 .8em}
.crumbs{font-size:13px;color:var(--mut);margin-bottom:18px}.crumbs a{color:var(--mut)}
.updated{font-size:13px;color:var(--mut)}

/* Hero: copy beside a photograph on tablet and up, stacked on a phone. */
.hero{display:grid;gap:24px;align-items:center;padding:8px 0 6px}
.hero p{max-width:60ch}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.hero-fig{margin:0}
.hero-fig img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:3px;background:var(--shade)}
@media(min-width:940px){
  .hero{grid-template-columns:1.06fr .94fr;gap:46px}
  .hero-fig{order:1}
  .hero>div{order:0}
}
.btn{display:inline-block;background:var(--brand);color:#fff;text-decoration:none;padding:11px 17px;border-radius:4px;font:600 15px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;border:1px solid var(--brand)}
.btn:hover{background:var(--brand-d)}
.btn.ghost{background:#fff;color:var(--brand-d)}
.calc-cta{margin:26px 0 4px;padding-top:20px;border-top:1px solid var(--rule)}

/* Front-page lead article and section headers */
.lead{display:grid;gap:16px;text-decoration:none;color:inherit;padding:22px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.lead-thumb{display:block;overflow:hidden;background:var(--shade)}
.lead-thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:3px}
.lead-body{min-width:0}
.lead-kicker{display:block;font:700 11px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--brand);margin:0 0 .7em}
.lead-body strong{display:block;font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-size:clamp(22px,4.4vw,31px);line-height:1.16;letter-spacing:-.02em;margin:0 0 .3em}
.lead-snippet{display:block;color:var(--mut);font-size:16.5px;line-height:1.55}
.lead:hover .lead-body strong{color:var(--brand-d)}
.section{margin-top:46px}
.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;border-top:2px solid var(--ink);padding-top:12px;margin:0}
.section-title h2{margin:0;font-size:21px}
.section-title a{font:600 13.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);text-decoration:none;white-space:nowrap}
.section-title a:hover{color:var(--brand)}
.section-note{font:14.5px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);max-width:70ch;margin:.7em 0 .2em}

/* Lists: one thin rule per item, photograph only when it shows the subject. */
.rows{display:block;margin-top:6px}
.row{display:grid;grid-template-columns:minmax(0,1fr);gap:13px;align-items:start;padding:17px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}
.row-thumb{order:-1;overflow:hidden;background:var(--shade)}
.row-thumb img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px}
.row-body{min-width:0}
.row-body strong{display:block;font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-size:19.5px;line-height:1.28;letter-spacing:-.012em;margin:0 0 .25em}
.row:hover .row-body strong{color:var(--brand-d)}
.row span,.row-body span{color:var(--mut);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.row-meta{display:block;font:12.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);margin-top:8px}
.row-meta a{color:var(--mut);text-decoration:underline}
@media(min-width:700px){
  .row{grid-template-columns:172px minmax(0,1fr);gap:20px}
  .row-thumb img{aspect-ratio:3/2}
}

/* Tool cards: a rule and a name, not a boxed tile with a shadow. */
.cards{display:grid;gap:0;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:10px}
.card{display:block;border-top:1px solid var(--rule);padding:15px 16px 17px 0;text-decoration:none;color:inherit}
.card:hover{border-top-color:var(--brand)}
.card-thumb{display:block;overflow:hidden;background:var(--shade)}
.card-thumb img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px}
.card-text{display:block}
.card strong{display:block;font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-size:19px;line-height:1.3;margin:0 0 .25em;letter-spacing:-.012em}
.card-kicker{display:none}
.card-meta{display:block;font:14.5px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut)}
.grid{margin-top:40px}
.grid .section-title{margin-bottom:6px}

/* Related links */
.related{margin-top:44px;border-top:2px solid var(--ink);padding-top:12px}
.mini-grid{display:grid;gap:0;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.mini{display:block;border-bottom:1px solid var(--rule);padding:13px 12px 14px 0;text-decoration:none;color:inherit}
.mini:hover{color:var(--brand-d)}
.mini-thumb{display:none}
.mini>span:nth-child(2){display:block;font:700 10.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.11em;color:var(--brand);margin-bottom:.4em}
.mini strong{display:block;font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-size:17px;line-height:1.32}
.prose{max-width:72ch}
.prose p,.prose ul,.prose ol{max-width:72ch}
.byline{font:13.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);margin:-.5em 0 1.2em}
.tags{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 16px;padding:0;list-style:none}
.tag{font:600 12.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--brand)}
.tag::before{content:"#";color:var(--mut)}
.facts{display:grid;gap:16px 26px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--rule);padding:16px 0;margin:24px 0}
.facts dt{font:700 11px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--mut)}
.facts dd{margin:4px 0 0;font:600 16.5px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

.field{margin:0 0 12px}
.field label{display:block;font:600 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin-bottom:5px}
.field .u{color:var(--mut);font-weight:400}
.field .opt label{font-weight:500}
input,select{font:inherit;width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink)}
input:focus,select:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.fields{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));max-width:740px}
.calc{border:1px solid var(--rule);border-radius:6px;padding:20px;background:var(--tint);margin:22px 0}
.calc .fields{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.result{margin-top:16px;background:#fff;border:1px solid var(--rule);border-radius:6px;padding:15px 16px}
.result .placeholder{color:var(--mut);margin:0;font-size:15px}
.result .big{font-size:31px;font-weight:800;margin:0 0 4px;letter-spacing:-.02em}
.result .big span{font-size:15px;font-weight:600;color:var(--mut)}
.result .band{display:inline-block;padding:3px 9px;border-radius:3px;font:700 12.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--soft);border:1px solid var(--rule)}
.result .band.ok{background:#e8f5ee;color:#0b5c3f}
.result .band.warn{background:#fdf3e0;color:var(--warn)}
.result .band.bad{background:#fdeaea;color:#8f1f1f}
.result ul{margin:.6em 0 0;padding-left:1.2em;font-size:15px}
.result .work{color:var(--mut);font-size:13.5px;margin:.5em 0 0}
.result .err{color:#8f1f1f;margin:0;font-size:15px}
.notes ul,.sources ol{padding-left:1.2em}
.notes li,.sources li{margin:0 0 .5em;font-size:15.5px}
.note{font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);border-left:2px solid var(--rule);padding-left:14px;margin-top:30px}

/* Glossary / index pages */
.idx-grid{columns:2;column-gap:40px;margin-top:22px}
.idx-grid a{display:block;break-inside:avoid;padding:9px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);font-size:16px}
.idx-grid a:hover{color:var(--brand-d)}
@media(min-width:1000px){.idx-grid{columns:3}}
@media(max-width:640px){.idx-grid{columns:1}}
.gloss dt{font-weight:700;margin-top:1.15em;font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-size:18px}
.gloss dd{margin:.25em 0 0;color:var(--mut)}

/* Footer */
.foot{border-top:1px solid var(--rule);background:var(--tint);padding:30px 0 40px;font:14.5px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut)}
.foot-links a{color:var(--brand)}
.fine{font:12.5px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);margin:.5em 0 0}

/* Ad unit: plainly labelled, links only, no tinted box, no forced columns. */
.ad-rail{margin:44px 0 0}
.ad-band{margin:48px 0}
.ad-label{display:inline-block;font:700 10.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--mut)}
.ad-inner{display:grid;gap:0 30px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));border:0;padding:14px 0 0;margin:0;background:none}
.ad-card{display:flex;gap:12px;text-decoration:none;color:inherit;padding:12px 0;border-top:1px solid var(--rule)}
.ad-card:hover{color:var(--brand-d)}
.ad-card:hover .ad-title{text-decoration:underline}
.ad-img{flex:0 0 68px;width:68px;height:68px;border-radius:3px;overflow:hidden;background:var(--shade)}
.ad-img img{width:100%;height:100%;object-fit:cover;display:block}
.ad-body{display:flex;flex-direction:column;min-width:0}
.ad-title{font:600 15.5px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.ad-blurb{font:13.5px/1.5 -apple-system,BlinkSystemFont,"Segoe UI",sans-serif;color:var(--mut);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ad-path{font-size:12.5px;color:var(--brand-d);margin-top:auto}
.ad-foot{font:11.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--mut);margin:8px 0 0}
@media(min-width:940px){main{padding:38px 18px 72px}.ad-inner{grid-template-columns:repeat(3,1fr)}}

.field.hide{display:none}

/* --- Front Page (news index) additions: classes this site's builder emits --- */
article p{max-width:70ch}
article ul{max-width:70ch}
.sources ol{max-width:80ch}
.section-more{margin:14px 0 0;font:14.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.rebuild{margin-top:24px}
.wrap.nobanner{opacity:1}
/* Section pages get one photograph beside the masthead. */
.hero-lead{margin:6px 0 26px}
.hero-lead img{width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:3px;background:var(--shade)}
