/* v4 additions: operator tools, White River plant page, learning paths, module blocks */
.modgrid{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;counter-reset:mod}
.modgrid li{counter-increment:mod;background:#fff;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:14px;padding:18px 20px 16px;box-shadow:0 4px 14px rgba(11,42,91,.07);font-size:18px;line-height:1.55}
.modgrid li:nth-child(3n+2){border-top-color:var(--green)}
.modgrid li:nth-child(3n){border-top-color:var(--navy)}
.modgrid li::before{content:"Module " counter(mod);display:block;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue2);margin-bottom:6px}
.modgrid li b{display:block;color:var(--navy);font-size:20px;line-height:1.3;margin-bottom:6px}
.callout{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--soft2);border:2px solid var(--green);border-radius:14px;padding:18px 22px;margin:22px 0 0}
.callout p{margin:0;max-width:720px}
.callout .btn{padding:12px 22px;font-size:18px}
.ovcdr{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;counter-reset:ov}
.ovcdr li{counter-increment:ov;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;font-size:17px;line-height:1.5;position:relative}
.ovcdr li b{display:block;font-size:21px;color:var(--navy);margin-bottom:4px}
.ovcdr li b::before{content:counter(ov);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--green2);color:#fff;font-size:16px;margin-right:8px;vertical-align:2px}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin:8px 0 0}
.kpi{background:#fff;border:1px solid var(--line);border-left:6px solid var(--blue);border-radius:12px;padding:12px 16px;line-height:1.3}
.kpi b{display:block;font-size:28px;color:var(--navy)}
.kpi span{font-size:16px;color:#3b4a66}
.fictional{display:inline-block;background:#FEF3C7;border:2px solid #B45309;color:#7C2D12;border-radius:999px;padding:4px 14px;font-size:16px;font-weight:800;margin:0 0 10px}
.dtable{width:100%;border-collapse:collapse;font-size:17px;line-height:1.4;background:#fff}
.dtable th,.dtable td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.dtable thead th{background:var(--navy);color:#fff}
.dtable tbody th{background:var(--soft);color:var(--navy)}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0 18px}
.unitgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.unitgrid .card h3{font-size:22px}
.unitgrid .card ul{font-size:17px;line-height:1.5;padding-left:20px;margin:0}
.event{border-left:5px solid #B45309;background:#FFFBEB;padding:12px 16px;border-radius:8px;margin:0 0 12px;font-size:17px;line-height:1.5}
.event b{color:#7C2D12}
/* figures with gifs */
.figs.two{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}
.fig1{margin:14px 0 0}
.fig1 img{border:1px solid var(--line);border-radius:12px;background:#fff}
.fig1 figcaption{font-size:16px;line-height:1.5;color:#3b4a66;margin-top:6px}
/* learning paths */
.paths{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}
.path{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 22px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.path .who{font-size:15px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green2);margin:0 0 6px}
.path h3{margin-bottom:8px}
.path ol{margin:6px 0 12px;padding-left:26px;font-size:18px;line-height:1.5}
.path ol li{margin-bottom:6px}
.path .tot{margin-top:auto;border-top:1px solid var(--line);padding-top:10px;font-size:17px;color:#3b4a66}
/* tools */
.toolnav{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 0}
.toolnav a{background:#fff;border:2px solid var(--blue);border-radius:999px;padding:8px 18px;font-weight:700;text-decoration:none;font-size:18px}
.toolnav a:hover{background:var(--soft)}
.tool{background:#fff;border:1px solid var(--line);border-top:6px solid var(--blue);border-radius:16px;padding:24px;box-shadow:var(--shadow);margin:0 0 30px}
.tool.g{border-top-color:var(--green)}
.tool h2{font-size:32px}
.tool h3{font-size:22px;margin-top:18px}
form.calc fieldset{border:1px solid var(--line);border-radius:12px;padding:14px 16px 6px;margin:0 0 16px;min-width:0}
form.calc legend{font-weight:800;color:var(--navy);padding:0 6px;font-size:18px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px}
form.calc label{display:block;font-size:16px;font-weight:700;color:var(--navy);line-height:1.3;margin:0 0 10px}
form.calc label small{display:block;font-weight:400;color:#3b4a66;font-size:14px}
form.calc input,form.calc select{width:100%;margin-top:4px;padding:8px 10px;font-size:18px;border:2px solid var(--line);border-radius:8px;font-family:inherit;background:#FFFDF2}
form.calc select{background:#fff}
.ctable{width:100%;border-collapse:collapse;font-size:16px;min-width:560px}
.ctable th,.ctable td{border:1px solid var(--line);padding:6px 8px;text-align:left}
.ctable thead th{background:var(--soft);color:var(--navy)}
.ctable input{margin:0!important;min-width:70px}
.ctable td.out{background:#F4F7FB;font-weight:700}
.exbtns{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 16px}
.exbtns .lbl{font-weight:800;color:var(--green2);font-size:17px}
.exbtns button{font:inherit;font-size:16px;font-weight:700;background:var(--soft2);border:2px solid var(--green);color:var(--navy);border-radius:999px;padding:6px 14px;cursor:pointer}
.exbtns button:hover{background:#fff}
.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:8px 0 14px}
.results div{background:var(--soft);border-radius:10px;padding:10px 12px;line-height:1.3}
.results span{display:block;font-size:14px;color:#3b4a66;font-weight:700}
.results output,.results b{display:block;font-size:24px;font-weight:800;color:var(--navy)}
.results small{font-size:13px;color:#3b4a66}
.stale{opacity:.45}
.status{border-radius:10px;padding:12px 16px;margin:10px 0;font-size:18px;line-height:1.5;border:2px solid}
.status.small{font-size:16px;padding:8px 12px}
.status.ok{background:#E8F5E9;border-color:#2E7D32;color:#1B5E20}
.status.warn{background:#FFF7E0;border-color:#B45309;color:#78350F}
.status.bad{background:#FDECEC;border-color:#B91C1C;color:#7F1D1D}
td.ok{background:#E8F5E9;color:#1B5E20;font-weight:700}
td.warn{background:#FFF7E0;color:#78350F;font-weight:700}
td.bad{background:#FDECEC;color:#7F1D1D;font-weight:700}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:0}
.errbox{background:#FDECEC;border:2px solid #B91C1C;color:#7F1D1D;border-radius:10px;padding:10px 14px;font-weight:700;font-size:17px}
.plotwrap{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:6px;margin:6px 0}
.plotwrap canvas{display:block;max-width:100%}
.legend{font-size:15px;color:#3b4a66;line-height:1.5}
pre.summary{white-space:pre-wrap;background:#F4F7FB;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:14px;line-height:1.5}
.cite{font-size:16px;line-height:1.55;color:#3b4a66}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:900px){.ovcdr{grid-template-columns:1fr 1fr}.figs.two{grid-template-columns:1fr}}
@media(max-width:640px){.ovcdr{grid-template-columns:1fr}.tool{padding:16px 14px}.tool h2{font-size:26px}.modgrid,.paths,.unitgrid{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.results{grid-template-columns:1fr 1fr}.results output,.results b{font-size:20px}.kpis{grid-template-columns:1fr 1fr}.kpi b{font-size:22px}.callout .btn{width:100%}}
@media(max-width:380px){.fgrid,.results{grid-template-columns:1fr}}
@media print{header.site,.topbar,footer.site,.toolnav,.exbtns,#cl-print,.cta,.consult,.pagehead .wave{display:none!important}.tool{box-shadow:none;border:1px solid #999;break-inside:avoid}}
/* v4b: eight menu items. Wide screens keep one row; mid-size desktops put the menu on its own single line under the brand. */
@media(min-width:1101px) and (max-width:1719px){
 header.site .wrap{flex-wrap:wrap;row-gap:0;padding-top:6px;padding-bottom:2px}
 header.site .brand img{width:60px}
 header.site .brand .nm{font-size:26px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
 header.site .brand .nm small{font-size:16px;margin-top:0}
 nav#primary-nav{flex-basis:100%}
 nav ul{justify-content:space-between}
 nav a{padding:9px 12px}
}
@media(min-width:1101px) and (max-width:1239px){nav a{font-size:18px;padding:9px 8px}}
@media(min-width:1720px){header.site .wrap{max-width:1680px}}
/* standout (Oct 27, Brad): Online training is the big button in the menu; CEU callouts in red; Academy tagline */
nav a.nav-cta{background:var(--green2);color:#fff;border:2px solid var(--green2);border-radius:999px;padding:11px 26px;font-size:22px;font-weight:800;letter-spacing:.01em;box-shadow:0 4px 14px rgba(46,125,50,.38)}
nav a.nav-cta:hover{background:var(--blue2);border-color:var(--blue2);color:#fff}
nav a.nav-cta[aria-current="page"]{background:var(--green2);color:#fff;border-color:#fff;box-shadow:0 0 0 3px var(--navy),0 4px 14px rgba(46,125,50,.38)}
nav a.nav-cta:focus-visible{outline:4px solid var(--blue);outline-offset:3px}
.ceu-red{color:#C8102E;font-weight:800}
.hero .ceu-red,.pagehead .ceu-red{background:#fff;padding:1px 10px;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.tagline{display:block;color:#fff;font-size:30px;font-weight:800;line-height:1.35;margin:0 0 10px;text-shadow:0 2px 10px rgba(0,0,0,.25)}
.tagline .ceu-red{text-shadow:none}
.tagline-q{display:block;font-size:18px;line-height:1.4;margin:0 0 22px}
.tagline-q .ceu-red{font-size:18px;padding:2px 10px}
.pagehead .tagline{margin-top:4px}
.pagehead .tagline-q{margin-bottom:14px}
@media(min-width:1101px) and (max-width:1719px){nav a.nav-cta{font-size:21px;padding:8px 22px}}
@media(min-width:1101px) and (max-width:1239px){nav a.nav-cta{font-size:19px;padding:8px 14px}}
@media(max-width:1100px){nav a.nav-cta{text-align:center;font-size:23px;padding:14px 20px;margin:4px 0}}
@media(max-width:640px){.tagline{font-size:24px}.tagline-q,.tagline-q .ceu-red{font-size:17px}}
@media print{nav a.nav-cta{box-shadow:none}.hero .ceu-red,.pagehead .ceu-red{background:none}.tagline{color:#000;text-shadow:none}}
/* CEU approvals by state (online-training.html) */
.ceustate{background:#fff}
.ceubox{background:#fff;border:2px solid var(--line);border-left:8px solid #C8102E;border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);max-width:900px}
.ceubox label{display:block;font-weight:800;color:var(--navy);font-size:20px;margin:0 0 8px}
.ceubox select{width:100%;max-width:460px;font:inherit;font-size:20px;padding:12px 14px;border:2px solid var(--navy);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer}
.ceu-result:empty{display:none}
.ceu-result{margin-top:18px}
.ceu-result .ceu-none,.ceu-result .ceu-more{font-size:20px;line-height:1.55;margin:0 0 16px}
.ceu-result h3.ceu-red{font-size:23px;margin:0 0 10px}
.ceu-list{list-style:none;margin:0 0 16px;padding:0}
.ceu-list li{border-left:5px solid #C8102E;background:#FDF2F4;border-radius:8px;padding:10px 14px;margin:0 0 10px;line-height:1.45}
.ceu-list li a{font-weight:800;display:block}
.ceu-list li span{display:block;font-size:18px;color:var(--ink)}
@media(max-width:640px){.ceubox{padding:18px 16px}.ceubox select{max-width:none}.ceu-result .btn{width:100%}}
.hero .tagline{margin-bottom:22px}
/* top bar (Oct 27, Brad): sentence on one line on desktops, smaller pill flush right with the header edge */
.topbar{font-size:17px}
.topbar .wrap{max-width:1340px;padding-top:7px;padding-bottom:7px;gap:16px}
.topbar a{font-size:15px;padding:4px 14px;gap:6px;white-space:nowrap;margin-left:auto;flex-shrink:0;line-height:1.35}
@media(min-width:1000px){.topbar .wrap>span{white-space:nowrap}}
@media(min-width:1100px) and (max-width:1279px){.topbar{font-size:15.5px}.topbar a{font-size:14px;padding:4px 12px}}
@media(min-width:641px) and (max-width:1099px){.topbar{font-size:15px}.topbar .wrap{padding-left:20px;padding-right:20px;gap:12px}.topbar a{font-size:13px;padding:3px 10px}}
@media(min-width:1720px){.topbar .wrap{max-width:1680px}}
@media(max-width:640px){.topbar a{margin-left:0;font-size:15px;padding:5px 14px;white-space:normal}}
/* manuals (Oct 27): technical manuals page cards */
.tmcard{display:flex;flex-direction:column}
.tmcard .tag{align-self:flex-start}
.tmcard .rel{font-size:18px;margin:0 0 10px}
.tmcard p.push{margin-top:auto;margin-bottom:0}
.tmcard .tmnotify{font-weight:700}
/* manuals (Oct 27): nine menu items. On every desktop width the Online training button sits on the brand row (top right),
   and the other eight items share one row under the brand. The mobile menu (1100 px and below) is unchanged. */
@media(min-width:1101px){
 header.site .wrap{position:relative;flex-wrap:wrap;row-gap:0;padding-top:6px;padding-bottom:2px}
 header.site .brand img{width:60px}
 header.site .brand .nm{font-size:26px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
 header.site .brand .nm small{font-size:16px;margin-top:0}
 nav#primary-nav{flex-basis:100%}
 nav ul{justify-content:space-between}
 nav a{padding:9px 12px}
 nav li.nav-cta-li{position:absolute;top:4px;right:32px}
 nav a.nav-cta{font-size:22px;padding:11px 26px}
}
@media(min-width:1101px) and (max-width:1239px){nav a{font-size:18px;padding:9px 7px}nav a.nav-cta{font-size:22px;padding:11px 26px}}
@media(min-width:1240px) and (max-width:1719px){nav a{padding:9px 10px}nav a.nav-cta{font-size:22px;padding:11px 26px}}
/* nosub (Oct 27, Brad): no brand subtitle in the header. The title is a little larger on desktop so the logo row balances the Online training button. */
@media(min-width:1101px){header.site .brand{min-height:63px}header.site .brand .nm{font-size:30px;align-items:center}}
/* testimonials (Oct 27, Brad): request box on welcome/certificate.php, never printed */
.tmbox{margin-top:30px;max-width:900px;background:#F0FAF4;border:2px solid #BFE0C2;border-left:8px solid var(--green2);border-radius:14px;padding:24px 26px}
.tmbox h2{margin-top:0;font-size:28px}
.tmbox form{background:none;box-shadow:none;border-top:0;padding:0;margin-top:10px}
.tmbox textarea{min-height:150px}
.tmbox .tmhint{font-size:17px;color:#33415C;margin:-12px 0 18px}
.tmbox .tmrow{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.tmbox fieldset.tmshow{border:2px solid #C9D6EA;border-radius:12px;padding:12px 18px;margin:0 0 18px;background:#fff}
.tmbox fieldset.tmshow legend{font-weight:800;color:var(--navy);padding:0 6px}
.tmbox label.opt{display:flex;gap:10px;align-items:flex-start;font-weight:600;margin:6px 0}
.tmbox label.opt input{width:22px;height:22px;margin-top:3px;flex:none}
.tmbox label.tmperm{font-weight:800;margin:4px 0 16px}
@media(max-width:700px){.tmbox{padding:18px 16px}.tmbox .tmrow{grid-template-columns:1fr}.tmbox h2{font-size:24px}}
@media print{.tmbox,#testimonial{display:none!important}}
/* teams (Oct 27, Brad): live virtual training over Microsoft Teams */
.teams .tag{margin-bottom:10px}
.teams h2{max-width:980px}
.teamslist{list-style:none;margin:20px 0 6px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.teamslist li{background:#fff;border-radius:14px;padding:20px 22px;box-shadow:var(--shadow);border-top:6px solid var(--blue)}
.teamslist li b{display:block;color:var(--navy);font-size:21px;margin-bottom:6px}
.teamsstrip{padding:18px 0;background:var(--soft);border-bottom:1px solid #D6E2F2}
.teamsstrip p{margin:0;font-size:19px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.teamsstrip .btn{padding:10px 20px;font-size:18px}
@media(max-width:900px){.teamslist{grid-template-columns:1fr}}
