/* PlantCalcKit redesign layer, Stage 2 (staging v5.1). Loaded after redesign.css. */
/* compact catalogue titles and filters (brief item 10) */
body.cat-page .page-head,.page-head.compact{padding:var(--s4) 0 var(--s3)}
body.cat-page .page-head .lead{font-size:1rem}
.fbar{padding:10px 14px;gap:8px;margin-bottom:var(--s4)}
.fbar .row{gap:8px}
.fbar input[type=search]{min-height:40px;padding:6px 12px}
.fbar .chip{min-height:34px;padding:3px 12px;font-size:.86rem}
.fbar .reset{min-height:34px}
.fbar .meta{font-size:.9rem}
@media (max-width:700px){.fbar .chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.fbar .chip{white-space:nowrap;flex:0 0 auto}}
/* lightweight placeholders for lower-page images */
img[loading=lazy]{background:#E4EEF6}
/* hero preview */
.rd-preview{padding:10px}
.rd-preview .shot{position:relative;display:block;aspect-ratio:675/240;background:#E4EEF6;border-radius:6px;overflow:hidden}
.rd-preview .shot img{display:block;width:100%;height:auto;aspect-ratio:675/240}
.rd-badge{position:absolute;top:6px;right:6px;background:var(--navy);color:#fff;font:700 .66rem/1 var(--font);letter-spacing:.05em;text-transform:uppercase;padding:4px 7px;border-radius:6px}
.rd-preview figcaption{display:grid;gap:8px;color:var(--ink);font-size:.88rem;padding-top:8px}
.rd-preview figcaption .acts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.rd-preview figcaption .acts a{color:var(--orange-text)}
.rd-preview .btn.ghost{background:#fff;color:var(--navy);border-color:var(--navy)}
/* featured cards */
.pcard .ben{margin:0;padding-left:1.1em;font-size:.9rem;color:var(--ink)}
.pcard .ben li{margin:2px 0}
.pcard .out{-webkit-line-clamp:unset;display:block;font-weight:600;color:var(--navy)}
.pcard .go.btn{position:relative;z-index:1;color:#fff;text-decoration:none}
/* online pricing band */
.rd-pricing{padding:var(--s5) 0 var(--s4)}
.rd-priceband{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.rd-priceband .opt{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4);display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}
.rd-priceband h2{margin:0;font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.rd-priceband .amt{margin:0;font-size:1.7rem;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.rd-priceband .amt span{font-size:.95rem;font-weight:500;color:var(--muted)}
.rd-priceband ul{margin:0;padding-left:1.1em;font-size:.92rem;flex:1}
.rd-priceband .btn{margin-top:8px}
.rd-twocol{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-top:var(--s3);font-size:.93rem}
.rd-twocol p{margin:0}
@media (max-width:900px){.rd-priceband,.rd-twocol{grid-template-columns:1fr}}
/* starter pack */
.rd-gp{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s6);align-items:center}
.rd-gp img{width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line)}
@media (max-width:800px){.rd-gp{grid-template-columns:1fr}}
/* image viewer (lightbox) */
.lbz{display:block;text-decoration:none}
.lbz img{display:block;width:100%;height:auto;cursor:zoom-in}
.lb-ov{position:fixed;inset:0;background:rgba(10,24,34,.88);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px}
.lb-ov[hidden]{display:none}
.lb-bar{display:flex;gap:8px;align-items:center;justify-content:space-between;width:min(1400px,100%);color:#fff;padding:0 0 8px}
.lb-cap{font-size:.95rem;flex:1}
.lb-ov button,.lb-ov a.lb-dl{min-height:44px;min-width:44px;border-radius:10px;border:1.5px solid #fff;background:#143447;color:#fff;font:600 .95rem var(--font);cursor:pointer;padding:6px 14px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.lb-ov button:hover,.lb-ov a.lb-dl:hover{background:#1d4a63}
.lb-stage{flex:1;min-height:0;width:min(1400px,100%);overflow:auto;background:#fff;border-radius:8px;display:flex;align-items:flex-start;justify-content:center}
.lb-stage img{max-width:100%;height:auto;display:block}
.lb-stage.zoom img{max-width:none}
.lb-nav{display:flex;gap:8px;align-items:center}
.lb-ov :focus-visible{outline:3px solid #fff;outline-offset:2px}
/* excel product page: purchase area, gallery, comparison */
.xp-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s6);align-items:start}
.xp-buy{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--s5);box-shadow:var(--shadow);display:grid;gap:var(--s3)}
.xp-buy .price{font-size:1.7rem;font-weight:700;color:var(--navy);margin:0}
.xp-buy .price small{font-size:.9rem;font-weight:500;color:var(--muted)}
.xp-buy .btn-row{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.xp-buy .btn.big{font-size:1.05rem;padding:14px 22px}
.xp-meta{display:grid;gap:4px;font-size:.9rem;color:var(--ink);margin:0;padding:0;list-style:none}
.xp-meta li::before{content:"\2713\00a0";color:var(--ok);font-weight:700}
.xp-alt{border-top:1px solid var(--line);padding-top:var(--s3);font-size:.9rem;color:var(--muted);display:grid;gap:4px}
.xp-alt p{margin:0}
.xp-alt a{color:var(--navy);text-decoration:underline}
.xp-gal{display:grid;gap:12px}
.xp-main{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px}
.xp-main .lbbtn{position:relative;display:block;width:100%;aspect-ratio:16/10;max-height:min(70vh,680px);padding:0;border:0;background:#fff;cursor:zoom-in;border-radius:6px;overflow:hidden}
.xp-main .lbbtn:focus-visible,.xp-thumbs button:focus-visible,.xp-gal .acts a:focus-visible{outline:3px solid var(--orange,#E8730C);outline-offset:3px}
.xp-main img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:6px;background:#fff}
.xp-main{margin:0}
.xp-main figcaption{min-height:3.4em}
@media (max-width:640px){.xp-main .lbbtn{aspect-ratio:4/3}.xp-main figcaption{min-height:5.6em}}
.xp-main figcaption{font-size:.9rem;color:var(--muted);padding:6px 4px 0}
.xp-thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.xp-thumbs button{width:100%;background:#fff;border:2px solid var(--line);border-radius:10px;padding:6px;cursor:pointer;display:grid;gap:4px;text-align:left;font:600 .88rem var(--font);color:var(--navy)}
.xp-thumbs button img{display:block;width:100%;height:80px;object-fit:contain;object-position:center;border-radius:4px;background:#fff;border:1px solid #E4EEF6}
.xp-thumbs button[aria-current="true"]{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy) inset}
.xp-gal .acts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:.92rem}
.xp-cmp th,.xp-cmp td{vertical-align:top}
@media (max-width:900px){.xp-head{grid-template-columns:1fr}}
@media print{.lb-ov{display:none!important}}

.rd-hero .wrap{grid-template-columns:.85fr 1.15fr;gap:var(--s6)}
@media (max-width:900px){.rd-hero .wrap{grid-template-columns:1fr}}
/* online tool toolbar: four separate groups */
.ol-bar{position:static;display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:12px;padding:12px;align-items:start}
.ol-grp{display:grid;gap:6px;align-content:start;min-width:0;padding-left:12px;border-left:1px solid var(--line)}
.ol-grp:first-child{border-left:0;padding-left:0}
.ol-gh{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ol-btns{display:flex;flex-wrap:wrap;gap:6px}
.ol-bar .ol-mode{margin:0}
.ol-chip{display:inline-block;font:700 .8rem/1 var(--font);padding:5px 9px;border-radius:999px;border:1.5px solid currentColor}
.ol-state[data-state=loading] .ol-chip{color:var(--muted)}
.ol-state[data-state=preview] .ol-chip{color:var(--warn)}
.ol-state[data-state=preview] .ol-chip::before{content:"\25CB\00a0"}
.ol-state[data-state=unlocked] .ol-chip{color:var(--ok)}
.ol-state[data-state=unlocked] .ol-chip::before{content:"\2713\00a0"}
.ol-state[data-state=error] .ol-chip{color:var(--bad)}
.ol-state[data-state=error] .ol-chip::before{content:"\26A0\00a0"}
.ol-msg.bad{color:var(--bad)}.ol-msg.good{color:var(--ok)}.ol-msg.warn{color:var(--warn)}
.ol-msg.bad:not(:empty)::before{content:"Problem: ";font-weight:700}
.ol-msg.good:not(:empty)::before{content:"Done: ";font-weight:700}
.ol-msg.warn:not(:empty)::before{content:"Note: ";font-weight:700}
.ol-statusline{color:var(--ok)}
.ol-statusline::before{content:"Input check: ";font-weight:700;color:var(--ink)}
.ol-statusline:empty::before{content:""}
.ol-helpbox{background:#fff;border:1px solid var(--line);border-left:4px solid var(--focus);border-radius:8px;padding:8px 12px;margin:0 0 10px;font-size:.92rem;min-height:2.6em}
@media (max-width:1100px){.ol-bar{grid-template-columns:1fr 1fr}.ol-grp:nth-child(odd){border-left:0;padding-left:0}}
@media (max-width:600px){.ol-bar{grid-template-columns:1fr}.ol-grp{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:8px}.ol-grp:first-child{border-top:0;padding-top:0}}
/* join / account feedback with text labels */
.join-msg.err{color:var(--bad);font-weight:600}.join-msg.err::before{content:"Problem: "}
.join-msg.ok{color:var(--ok);font-weight:600}.join-msg.ok::before{content:"Done: "}
.join-form input[aria-invalid=true]{border-color:var(--bad);outline:2px solid var(--bad)}
/* quality records: wide table on desktop, cards on mobile */
.vt-wrap{overflow-x:auto}
.vt th,.vt td{vertical-align:top}
.vt tr:target{outline:3px solid var(--focus);outline-offset:-3px;background:#EEF5FB}
.vt tr{scroll-margin-top:90px}
.vt .anchor{color:var(--muted)}
@media (max-width:760px){
  .vt thead{position:absolute;left:-9999px}
  .vt,.vt tbody,.vt tr,.vt td{display:block;width:100%}
  .vt tr{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:8px 12px}
  .vt td{border:0;padding:6px 0}
  .vt td::before{content:attr(data-label);display:block;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
}
.fbar,.fbar>*,.fbar .row>*{min-width:0}
.fbar .chips{max-width:100%}
/* final QA: sticky header never covers anchors or focused controls */
html{scroll-padding-top:96px}
:target{scroll-margin-top:96px}
@media (max-width:640px){html{scroll-padding-top:80px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* contrast and non-colour cues */
td[style*="background:#E8772E"],td[style*="background:#e8772e"],th[style*="background:#E8772E"]{background:#B84A0A!important}
.xp-cmp th a{color:#fff;text-decoration:underline;text-underline-offset:2px}
main p a:not(.btn):not(.chip),main li a:not(.btn):not(.chip),main td a:not(.btn):not(.chip),main dd a:not(.btn){text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
[tabindex="0"]:focus-visible{outline:3px solid var(--orange,#E8730C);outline-offset:2px}
.res-hook a,.callout a,.note a,.notice a{text-decoration:underline;text-underline-offset:2px}
.xp-cmp thead th a,.xp-cmp th a{color:#fff!important;text-decoration:underline!important}
table.t thead th a{color:#fff!important;text-decoration:underline!important}
.print-note{display:none}
@media print{.print-note{display:block;margin-top:14pt;padding-top:6pt;border-top:1px solid #999;font-size:9pt;color:#000}}
