:root{
	--paper:#FBF7EF;
	--paper-raised:#FFFFFF;
	--ink:#23293B;
	--ink-soft:#57607A;
	--line:#E4DDCB;
	--coral:#E0602F;
	--coral-ink:#9C3F1D;
	--sage:#5C8A6B;
	--sage-bg:#E4EEE2;
	--focus:#1D6FB8;
	--radius:12px;
	--max:1180px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
	background:var(--paper);
	color:var(--ink);
	font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size:16px;
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
	font-family:Georgia,"Iowan Old Style","Palatino Linotype",ui-serif,serif;
	font-weight:700;
	color:var(--ink);
	line-height:1.25;
	margin:1.4em 0 .5em;
}
h1{font-size:1.9rem;margin-top:0}
h2{font-size:1.4rem}
h3{font-size:1.15rem}
p{margin:0 0 1em}
a{color:var(--coral-ink);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
ul,ol{padding-left:1.3em}
li{margin-bottom:.35em}
table{border-collapse:collapse;max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.eyebrow{
	display:block;font-size:11px;letter-spacing:.09em;text-transform:uppercase;
	font-weight:700;color:var(--ink-soft);margin-bottom:8px;
}
.skip a{
	position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;
	border-radius:0 0 8px 0;z-index:100;
}
.skip a:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible{
	outline:3px solid var(--focus);outline-offset:2px;
}

/* ---------- announcement bar ---------- */
.announce-bar{background:var(--ink);color:#D9D3C2}
.announce-row{
	display:flex;justify-content:space-between;align-items:center;gap:16px;
	padding:8px 20px;font-size:12.5px;flex-wrap:wrap;
}
.announce-links a{color:#D9D3C2;text-decoration:none}
.announce-links a:hover{color:#fff;text-decoration:underline}

/* ---------- header ---------- */
header.site{
	position:sticky;top:0;z-index:30;background:var(--paper);
	border-bottom:1px solid var(--line);
}
.header-row{
	position:relative;
	max-width:var(--max);margin:0 auto;padding:14px 20px;
	display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.logo{
	order:1;
	font-family:Georgia,"Iowan Old Style",ui-serif,serif;
	font-size:22px;font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap;
	margin-right:auto;
}
.logo .dot{color:var(--coral)}
.logo:hover{text-decoration:none}

/* Menu is always a toggled dropdown panel, regardless of viewport width
   there are too many top-level items (13+) for an inline row to stay tidy. */
.nav-toggle{display:none}
.nav-toggle-btn{
	order:3;
	display:flex;align-items:center;gap:8px;
	border:1px solid var(--line);border-radius:10px;background:var(--paper-raised);
	padding:9px 14px;cursor:pointer;font-weight:700;font-size:14px;color:var(--ink);
}
.nav-toggle-btn:hover{border-color:var(--ink-soft)}
.nav-toggle-btn .bars{display:flex;flex-direction:column;justify-content:center;gap:4px;width:18px}
.nav-toggle-btn .bars span{display:block;height:2px;border-radius:2px;background:var(--ink)}

nav#menu{
	order:4;
	position:absolute;top:100%;right:20px;margin-top:8px;
	width:min(320px,calc(100vw - 40px));max-height:70vh;overflow:auto;
	background:var(--paper-raised);border:1px solid var(--line);border-radius:12px;
	box-shadow:0 20px 45px -20px rgba(20,20,30,.4);padding:10px;
	display:none;z-index:40;
}
.nav-toggle:checked ~ nav#menu{display:block}
nav#menu ul{list-style:none;margin:0;padding:0}
nav#menu ul.menu-top{display:flex;flex-direction:column;gap:2px}
nav#menu ul li{margin:0;position:static}
nav#menu ul a:link,
nav#menu ul a:visited{
	display:block;padding:9px 12px;border-radius:8px;
	font-size:14.5px;font-weight:600;color:var(--ink-soft);text-decoration:none;
}
nav#menu ul a:hover{background:var(--paper);color:var(--ink)}
nav#menu ul a.active{color:var(--coral-ink);background:var(--sage-bg)}
nav#menu ul ul{
	position:static;box-shadow:none;border:0;background:none;
	padding:0 0 0 14px;display:block;
}
nav#menu ul li.menu-0innen{display:inherit}

.search-row{order:2;display:flex;border:1px solid var(--line);border-radius:10px;background:var(--paper-raised);overflow:hidden}
.search-row input{border:0;background:transparent;padding:9px 12px;font-size:14px;width:150px;color:var(--ink)}
.search-row button{
	display:flex;align-items:center;justify-content:center;
	border:0;background:var(--paper-raised);color:var(--ink-soft);width:38px;cursor:pointer;
}
.search-row button:hover{color:var(--ink)}

.btn-header{
	order:5;
	display:inline-flex;align-items:center;
	padding:10px 18px;border-radius:10px;background:var(--coral);color:#fff;
	font-weight:700;font-size:14px;white-space:nowrap;
}
.btn-header:hover{background:var(--coral-ink);text-decoration:none}

/* ---------- layout ---------- */
.layout{
	display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start;
	padding:32px 20px 48px;
}
#content{min-width:0}
.page-content{
	background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);
	padding:32px;font-size:15.5px;color:var(--ink);
}
.page-content h1:first-child{margin-top:0}
.updated-note{font-size:13px;color:var(--ink-soft);margin:14px 4px 0}

.crumbs{margin:0 0 16px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--ink-soft)}
.crumbs li:not(:last-child)::after{content:'/';margin-left:6px;color:var(--line)}
.crumbs a{color:var(--ink-soft)}
.crumbs a:hover{color:var(--coral-ink)}
.crumbs li[aria-current="page"]{color:var(--ink);font-weight:600}

.figure-preview{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;margin:20px 0}
.figure-preview img{max-width:280px;border:1px solid var(--line);border-radius:10px;background:#fff}
.figure-preview .pdf-link{
	display:inline-flex;align-items:center;gap:8px;margin-top:10px;
	padding:12px 20px;border-radius:10px;background:var(--coral);color:#fff;
	font-weight:700;font-size:14.5px;
}
.figure-preview .pdf-link:hover{background:var(--coral-ink);text-decoration:none}

.related-grid{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;
	margin:0;padding:0;list-style:none;
}
.related-grid a{
	display:flex;flex-direction:column;gap:6px;padding:10px;text-align:center;
	border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);
}
.related-grid a:hover{border-color:var(--coral);text-decoration:none}
.related-grid img{width:100%;height:110px;object-fit:contain;background:#fff;border-radius:6px}
.related-grid span{font-size:12.5px;font-weight:600}

.subject-links{
	display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;
}
.subject-links a{
	display:inline-block;padding:8px 14px;border:1px solid var(--line);border-radius:999px;
	background:var(--paper);color:var(--ink);font-size:13.5px;font-weight:600;
}
.subject-links a:hover{border-color:var(--coral);color:var(--coral-ink);text-decoration:none}

/* ---------- page-content components (from WB WYSIWYG content) ---------- */
.content-intro{
	margin:-32px -32px 28px;padding:40px 32px 32px;
	background:linear-gradient(135deg,var(--sage-bg),var(--paper-raised) 65%);
	border-radius:var(--radius) var(--radius) 0 0;
}
.content-intro h1{margin-top:.15em;font-size:clamp(1.9rem,3.4vw,2.4rem);text-wrap:balance}
.content-intro .lead{font-size:1.1rem;color:var(--ink-soft);max-width:60ch}

.content-section{margin:2.4em 0}
.info-panel{margin:2.4em 0;padding:26px;background:var(--sage-bg);border-radius:var(--radius)}
.info-panel h2{margin-top:.15em}
.info-panel__text p{color:var(--ink-soft)}

.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.section-heading h2{margin:.15em 0 0}
.section-heading p{margin:0;color:var(--ink-soft);font-size:14px;max-width:46ch}

.subject-grid{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;
	margin:0;padding:0;list-style:none;
}
.subject-card{
	display:flex;flex-direction:column;gap:8px;padding:12px;
	border:1px solid var(--line);border-radius:10px;background:var(--paper);
	text-decoration:none;color:var(--ink);text-align:center;
}
.subject-card:hover{border-color:var(--coral);box-shadow:0 10px 22px -14px rgba(20,20,30,.3);text-decoration:none}
.subject-card__image{
	display:flex;align-items:center;justify-content:center;
	height:150px;padding:8px;border-radius:6px;overflow:hidden;background:#fff;
}
.subject-card__image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.subject-card__title{font-weight:700;font-size:13.5px}
.subject-card__link{font-size:12px;color:var(--coral-ink);font-weight:600}

.faq-section{margin:2.4em 0}
.faq-list{display:flex;flex-direction:column;gap:10px}
.faq-item{border:1px solid var(--line);border-radius:10px;padding:2px 18px;background:var(--paper)}
.faq-item summary{cursor:pointer;font-weight:700;padding:14px 0;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary{display:flex;justify-content:space-between;gap:12px}
.faq-item summary::after{content:'+';color:var(--coral);font-weight:700}
.faq-item[open] summary::after{content:'\2212'}
.faq-answer{padding:0 0 16px;color:var(--ink-soft)}
.faq-answer p:last-child{margin-bottom:0}

.sidebar{display:flex;flex-direction:column;gap:20px}
.side-box{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.side-box.sticky{position:sticky;top:90px}

.ad-slot{
	margin:24px 0;padding:14px;border:1px dashed var(--line);border-radius:var(--radius);
	background:var(--paper-raised);text-align:center;
}
.ad-slot.ad-slot-top{margin-top:0}
.sidebar .ad-slot{margin:0}
.ad-slot .eyebrow{font-size:9px;letter-spacing:.06em;color:var(--line);margin-bottom:4px;opacity:.8}

/* ---------- footer ---------- */
footer#footer{
	background:var(--ink);color:#D9D3C2;padding:22px 20px;text-align:center;font-size:13px;margin-top:20px;
}
footer#footer a{color:#D9D3C2}

@media (max-width:900px){
	.layout{grid-template-columns:1fr}
	.sidebar{flex-direction:row;flex-wrap:wrap}
	.side-box{flex:1;min-width:240px}
}

@media (max-width:700px){
	.announce-links{display:none}
}

@media (max-width:520px){
	.nav-toggle-btn .label{display:none}
	.search-row{order:4}
	nav#menu{right:20px;left:20px;width:auto}
	.btn-header{order:6;flex-basis:100%;justify-content:center;margin-top:8px}
}
