/* Software follows the compact research-page visual system. */
.software-page { font-size:1rem; line-height:1.5; }
.software-page #software { padding-top:2rem; }
.software-page .software-intro { display:block; margin-bottom:1.25rem; padding-bottom:1rem; border-bottom:1px solid #dce4dc; }
.software-page .software-intro h1 { margin:.35rem 0 .75rem; }
.software-page .software-intro>p { max-width:none; margin:0; font-size:1rem; line-height:1.5; }
.software-scale-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:1.5rem; background:#f8f7f1; border:1px solid #dce4dc; }
.software-scale-nav a { padding:1rem; border-right:1px solid #dce4dc; text-decoration:none; color:#243c32; }
.software-scale-nav a:last-child { border-right:0; }
.software-scale-nav strong,.software-scale-nav small { display:block; }
.software-scale-nav strong { font-size:1rem; font-weight:600; }
.software-scale-nav small { font-size:.875rem; color:#5c6d63; margin-top:.25rem; }
.software-scale-nav a:hover { background:#e8f1e7; }
.software-sections { display:grid; gap:1.5rem; }
.software-chapter { padding:1.5rem; background:#f8f7f1; border:1px solid #dce4dc; border-top:2px solid #3f7653; border-radius:0; scroll-margin-top:6rem; }
.software-page .software-chapter h2 { font-family:var(--font-ui); font-size:clamp(1.75rem,2.5vw,2.25rem); font-weight:600; line-height:1.15; letter-spacing:-.025em; margin:0; }
.software-scale-label { color:#3f7653; font-size:.875rem; font-weight:600; margin:.35rem 0 1rem; }
.software-tool-list { list-style:disc; margin:0; padding-left:1.1rem; }
.software-page .software-tool-list .archive-item { display:list-item; margin:0; padding:1rem 0; border-top:1px solid #dce4dc; border-bottom:0; }
.software-tool-list .archive-item::marker { color:#3f7653; }
.software-page .software-tool-list h3 { font-size:1rem; line-height:1.45; font-weight:600; margin:0 0 .25rem; letter-spacing:0; }
.software-tool-purpose { margin:0 0 .4rem; font-size:.9375rem; color:#28533b; }
.software-page .software-tool-list .archive-meta { max-width:75ch; margin:0 0 .65rem; font-size:.9375rem; line-height:1.5; color:#5c6d63; }
.software-page .resource-links { display:flex; flex-wrap:wrap; gap:.4rem .6rem; margin:0; }
.software-page .resource-links a { padding:.5rem .75rem; border:1px solid #b8cbbb; border-radius:0; background:#fff; color:#28533b; font-size:.875rem; line-height:1.4; }
.software-page .resource-links a:hover { background:#e8f1e7; border-color:#3f7653; }
.software-page .software-app-preview { max-width:32rem; margin:1rem 0 0; }
.software-page .software-app-preview img { height:auto; width:100%; }
.software-page .software-app-preview figcaption { font-size:.875rem; }
.software-page a:focus-visible { outline:2px solid #3f7653; outline-offset:3px; }
@media(max-width:760px) { .software-page #software { padding-top:1.25rem; } .software-scale-nav { grid-template-columns:repeat(2,minmax(0,1fr)); } .software-scale-nav a { border-bottom:1px solid #dce4dc; } .software-chapter { padding:1.1rem; } }

.section-nav-icon { display:flex; align-items:center; gap:.4rem; color:#3f7653; margin-bottom:.6rem; }
.section-nav-icon svg { display:block; width:32px; height:32px; flex:0 0 32px; }

@media(min-width:761px){.software-page .software-scale-nav{grid-template-columns:repeat(4,minmax(0,1fr))}}

.software-page .leafct-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:48rem;margin-top:1rem;align-items:start}.software-page .leafct-preview-grid .software-app-preview{margin:0;max-width:none}.software-page .leafct-preview-grid img{width:100%;height:15rem;object-fit:contain;object-position:top;background:#f8f7f1}.leafct-run-options{max-width:75ch;margin-top:1rem;font-size:.9375rem}.leafct-run-options p{margin:0 0 .4rem}.leafct-run-options ul{padding-left:1.15rem;margin:.4rem 0}.leafct-run-options li{margin:.35rem 0}.leafct-preview-grid figcaption strong,.leafct-preview-grid figcaption span{display:block}@media(max-width:560px){.software-page .leafct-preview-grid{gap:.75rem}.software-page .leafct-preview-grid img{height:10rem}}

.software-page .leafct-resource-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-top:.75rem}.leafct-resource h4,.leafct-training h4{font-size:1rem;font-weight:600;margin:0 0 .4rem;color:#243c32}.leafct-resource p,.leafct-training p{font-size:.9375rem;line-height:1.5;margin:0 0 .75rem;max-width:none;color:#5c6d63}.software-page .leafct-resource .software-app-preview{max-width:none;margin:0 0 1rem}.software-page .leafct-resource .software-app-preview img{width:100%;height:14rem;object-fit:contain;object-position:top left;background:#f8f7f1}.leafct-resource h5{font-size:.9375rem;margin:0 0 .5rem;font-weight:600}.leafct-use-options{margin:0 0 .75rem;font-size:.875rem}.leafct-use-options>div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:.75rem;padding:.4rem 0;border-bottom:1px solid #dce4dc}.leafct-use-options dt{font-weight:600}.leafct-use-options dd{margin:0;color:#5c6d63}.leafct-guide,.leafct-training>a{font-size:.875rem;font-weight:600}.leafct-training{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #dce4dc}@media(max-width:760px){.software-page .leafct-resource-layout{grid-template-columns:1fr;gap:1.5rem}.leafct-use-options>div{grid-template-columns:8rem minmax(0,1fr)}.software-page .leafct-resource .software-app-preview img{height:12rem}}

/* Screenshot frames follow the intrinsic image proportions. */
.software-page .leafct-resource .software-app-preview{width:fit-content;max-width:100%;margin-bottom:1rem}.software-page .leafct-resource .software-app-preview>a{display:block;width:fit-content;max-width:100%;padding:.25rem;background:#f8f7f1}.software-page .leafct-resource .software-app-preview img{display:block;height:auto;width:auto;max-height:18rem;max-width:100%;object-fit:initial;background:transparent}.leafct-use-options>div{grid-template-columns:10rem minmax(0,1fr);align-items:center;padding:.5rem 0}.leafct-use-options dt>a,.software-page .leafct-guide,.software-page .leafct-training>a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.5rem .75rem;border:1px solid #b8cbbb;background:#fff;color:#28533b;font-size:.875rem;font-weight:500;line-height:1.4;text-decoration:none;border-radius:0}.leafct-use-options dt>a:hover,.software-page .leafct-guide:hover,.software-page .leafct-training>a:hover{background:#e8f1e7;border-color:#3f7653}@media(max-width:560px){.leafct-use-options>div{grid-template-columns:1fr;gap:.4rem}.software-page .leafct-resource .software-app-preview img{max-height:17rem}}

/* Resource links stay quiet and recognizable. */
.software-page #leafct .leafct-use-options dt>a,.software-page #leafct .leafct-guide,.software-page #leafct .leafct-training>a,.software-page #leafct .resource-links a{display:inline;padding:0;min-height:0;border:0;background:transparent;color:#28533b;text-decoration:underline;text-underline-offset:.2em;font-weight:500}.software-page #leafct .leafct-use-options dt>a:hover,.software-page #leafct .leafct-guide:hover,.software-page #leafct .leafct-training>a:hover,.software-page #leafct .resource-links a:hover{background:transparent;color:#3f7653}.leafct-use-options>div{grid-template-columns:9rem minmax(0,1fr)}

.software-page .resource-links a{display:inline;padding:0;border:0;background:transparent;color:#28533b;text-decoration:underline;text-underline-offset:.2em}.software-page .resource-links a:hover{background:transparent;color:#3f7653}.software-page .resource-links{gap:.5rem 1.1rem}.manual-icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.4em}.software-tool-preview{width:fit-content;max-width:36rem;margin:1rem 0 0}.software-tool-preview>a{display:block;border:1px solid #b8cbbb;padding:.25rem;width:fit-content;max-width:100%}.software-tool-preview img{display:block;width:100%;height:auto;max-height:18rem;object-fit:contain}.software-tool-preview figcaption{font-size:.875rem;color:#5c6d63;margin-top:.4rem}@media(max-width:760px){.software-tool-preview{max-width:100%}}

/* Give short tool summaries a consistent, distinct voice. */
.software-page .software-tool-purpose{font-size:.9375rem;font-weight:600;font-style:italic;color:#3f7653;margin:.15rem 0 .65rem}.software-page #leafct a:not(:has(img)){font-weight:600}.software-preview-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:52rem;margin-top:1rem;align-items:start}.software-preview-pair .software-tool-preview{margin:0;max-width:100%}.software-preview-pair .software-tool-preview img{max-height:20rem;width:auto;max-width:100%;margin:0 auto}.software-preview-pair .agicam-cropped-preview>a{position:relative;width:100%;aspect-ratio:2.05;overflow:hidden;padding:0}.software-preview-pair .agicam-cropped-preview img{position:absolute;top:-9%;left:-29.2%;width:159%;max-width:none;max-height:none;height:auto;margin:0}.software-page .matchplant-landing-preview{max-width:24rem}.software-page .matchplant-landing-preview img{width:auto;max-width:100%;max-height:25rem}@media(max-width:760px){.software-preview-pair{grid-template-columns:1fr;max-width:32rem}}

.software-page #leafct a strong,.software-page .resource-links a{font-weight:700}.software-page #agicam .software-preview-pair{max-width:58rem}.software-page #agicam .software-preview-pair figure>a{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:20rem;padding:.25rem;background:#f8f7f1}.software-page #agicam .software-preview-pair img{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain}@media(max-width:760px){.software-page #agicam .software-preview-pair figure>a{height:18rem}}

.matchplant-preview-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:52rem;margin-top:1rem;align-items:start}.software-page .matchplant-preview-pair .software-tool-preview{margin:0;max-width:100%;width:100%}.matchplant-preview-pair figure>a{display:flex;align-items:flex-start;justify-content:center;box-sizing:border-box;height:25rem;width:100%;background:#f8f7f1}.software-page .matchplant-preview-pair img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}@media(max-width:760px){.matchplant-preview-pair{grid-template-columns:1fr;max-width:32rem}.matchplant-preview-pair figure>a{height:auto}.software-page .matchplant-preview-pair img{max-height:25rem}}

.software-page .leafct-unified-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:52rem;margin:1rem 0 0;align-items:start}.software-page .leafct-unified-previews .software-app-preview{width:100%;max-width:none;margin:0}.software-page .leafct-unified-previews figure>a{display:flex;align-items:flex-start;justify-content:center;box-sizing:border-box;width:100%;height:25rem;padding:.25rem;background:#f8f7f1}.software-page .leafct-unified-previews img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.software-page .leafct-unified-previews figcaption{padding:.4rem 0 0;font-size:.875rem;color:#5c6d63}@media(max-width:760px){.software-page .leafct-unified-previews{grid-template-columns:1fr;max-width:32rem}.software-page .leafct-unified-previews figure>a{height:auto}.software-page .leafct-unified-previews img{max-height:25rem}}

/* Introduce the collection, then explain each resource in reading order. */
.leafct-programs{margin-top:1rem}.leafct-program-row{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:1.25rem;padding:1rem 0;border-top:1px solid #dce4dc}.leafct-programs .leafct-training{margin:0}.leafct-program-row h4{margin:.1rem 0 0}.leafct-program-detail{min-width:0}.leafct-program-detail>p{max-width:75ch}.leafct-program-detail h5{font-size:.875rem;color:#5c6d63;margin:.75rem 0 .35rem;font-weight:500}.leafct-programs .leafct-use-options{max-width:48rem}.leafct-programs .leafct-training a{font-size:.875rem;font-weight:700;color:#28533b;text-decoration:underline;text-underline-offset:.2em}.leafct-programs .leafct-guide{margin-top:.5rem}@media(max-width:760px){.leafct-program-row{grid-template-columns:1fr;gap:.4rem}}

/* Polish: reading measure, a clear step for tool names, and touch-sized links on phones. */
body.software-page main :is(.software-tool-purpose,.archive-meta,.leafct-program-detail>p){max-width:70ch!important}
body.software-page main .software-tool-list h3{font-size:1.5rem;line-height:1.3}
@media(max-width:760px){
 body.software-page main .resource-links a,
 body.software-page .social-strip a,
 body.software-page .leafct-use-options dt>a,
 body.software-page #leafct .resource-links a,
 body.software-page #leafct .leafct-guide,
 body.software-page #leafct .leafct-training>a,
 body.software-page #leafct .leafct-use-options dt>a{display:inline-flex;align-items:center;min-height:44px}
}

/* Status: every tool on this page is released and usable. */
body.software-page .software-status{display:inline-block;margin-left:.5rem;padding:.1rem .5rem;border-radius:4px;background:#e8f1e7;color:#28533b;font-size:.8125rem;font-weight:600;line-height:1.4;vertical-align:middle;white-space:nowrap}

/* One primary action per tool; the other links stay as text. */
body.software-page main .software-tool-list li:not(#leafct) .resource-links{align-items:center;gap:.5rem 1.25rem}
body.software-page main .software-tool-list li:not(#leafct) .resource-links a:first-child{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;background:#28533b;color:#fff;text-decoration:none;font-weight:600}
body.software-page main .software-tool-list li:not(#leafct) .resource-links a:first-child:hover{background:#1f4230;color:#fff}
body.software-page main .software-tool-list li:not(#leafct) .resource-links a:first-child:focus-visible{outline:2px solid #28533b;outline-offset:2px}

/* Leaf-CT: the run-options label reads as a label, not a stray caption. */
body.software-page .leafct-program-detail h5{margin:1rem 0 .25rem;font-size:.875rem;font-weight:600;letter-spacing:0;color:#28533b}

/* Previews: cropped to the working interface, no padded frames, one grid for every tool. */
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))!important;gap:1.25rem!important;width:100%;max-width:60rem!important;margin:1rem 0 0!important;align-items:start}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure{width:100%;max-width:none!important;margin:0!important}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure>a{display:block!important;width:100%!important;max-width:none!important;height:auto!important;aspect-ratio:auto!important;padding:0!important;background:none!important;border:1px solid #b8cbbb}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) img{display:block!important;position:static!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:none!important;margin:0!important;object-fit:contain!important}
body.software-page main .software-tool-preview:not(:is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) *){width:100%;max-width:min(100%,44rem)}
body.software-page main .software-tool-preview:not(:is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) *)>a{display:block;width:fit-content;max-width:100%}
body.software-page main .software-tool-preview:not(:is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) *) img{width:auto;max-width:100%;max-height:20rem}
body.software-page main :is(.software-tool-preview,.software-app-preview) figcaption{margin-top:.4rem;font-size:.875rem;color:#5c6d63}

/* Closing line instead of a heading over one link. */
body.software-page .end-page-links{margin:2rem 0}
body.software-page .end-page-links p{margin:0;max-width:none;font-size:1rem;color:#5c6d63}

/* MatchPlant video poster: sized by its image, play button centered on it. */
body.software-page main .matchplant-preview-pair .matchplant-play{display:block!important;position:relative;width:100%;height:auto!important;padding:0!important;border:1px solid #b8cbbb;background:none!important;line-height:0}
body.software-page main .matchplant-preview-pair .matchplant-play .viweed-play-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}

/* Leaf-CT guide and source links each on their own line. */
body.software-page #leafct .leafct-guide{display:flex;width:fit-content}

/* Touch-sized links on tablets and any touch screen, not only phones. */
@media(max-width:1000px),(pointer:coarse){
 body.software-page main .resource-links a,
 body.software-page .end-page-links a,
 body.software-page #leafct .resource-links a,
 body.software-page #leafct .leafct-guide,
 body.software-page #leafct .leafct-training>a,
 body.software-page #leafct .leafct-use-options dt>a{display:inline-flex;align-items:center;min-height:44px}
 body.software-page #leafct .leafct-guide{display:flex}
}

/* Equal frames: every image in a row is the same size (4:3). Screenshots fill the frame; white-background diagrams sit inside it. */
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure>a,
body.software-page main .matchplant-preview-pair .matchplant-play{aspect-ratio:4/3!important;background:#fff!important;overflow:hidden}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) img{height:100%!important;object-fit:contain!important;object-position:center!important}
body.software-page main .matchplant-preview-pair .matchplant-play img{object-fit:cover!important}

/* The single Vineyard figure uses the same 4:3 frame as the image pairs. */
body.software-page main .software-frame{width:100%;max-width:29.5rem}
body.software-page main .software-frame>a{display:block;width:100%;aspect-ratio:4/3;background:#fff;overflow:hidden}
body.software-page main .software-frame img{width:100%;height:100%;max-height:none;object-fit:contain}

/* One size for every software image, like the research page: small 4:3 thumbnails; click for the full view. */
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews){display:flex!important;flex-wrap:wrap;gap:1rem 1.25rem!important;max-width:none!important;width:100%}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure,
body.software-page main .software-frame{flex:0 0 auto;width:14rem!important;max-width:100%!important;margin:1rem 0 0!important}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure{margin:0!important}
body.software-page main .software-frame>a{background:#f3f6f1}
body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure>a{background:#f3f6f1!important}
@media(max-width:600px){
 body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews) figure,
 body.software-page main .software-frame{width:calc(50% - .5rem)!important}
 body.software-page main :is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews){gap:1rem!important}
}
body.software-page main .matchplant-preview-pair .matchplant-play{box-sizing:border-box;min-height:0!important;max-height:none!important}
body.software-page main .matchplant-preview-pair .matchplant-play img{position:absolute!important;inset:0;width:100%!important;height:100%!important}

/* Desktop: text on the left, thumbnails in a column on the right (same idea as the research page). */
@media(min-width:1180px){
 body.software-page main .software-tool-list>li>div{display:grid;grid-template-columns:minmax(0,1fr) 29.5rem;column-gap:3rem;align-items:start}
 body.software-page main .software-tool-list>li>div>*{grid-column:1}
 body.software-page main .software-tool-list>li>div>:is(.software-preview-pair,.matchplant-preview-pair,.leafct-unified-previews,.software-tool-preview){grid-column:2;grid-row:1/span 8;width:100%;max-width:100%!important;margin:.35rem 0 0!important}
}

/* Every still thumbnail opens its full image; the cursor says so. The video thumbnail plays. */
body.software-page main a.software-zoom{cursor:zoom-in}
body.software-page main a.software-zoom:focus-visible,body.software-page main .matchplant-play:focus-visible{outline:2px solid #28533b;outline-offset:2px}

/* Leaf-CT: three modules (app, hub, training). Each has a title, one line, its actions, and its own thumbnail. */
body.software-page #leafct .ct-modules{list-style:none;margin:1.75rem 0 0;padding:0;border-top:1px solid #dce4dc}
body.software-page #leafct .ct-module{display:grid;gap:1rem 3rem;padding:1.75rem 0;margin:0;border-bottom:1px solid #dce4dc;list-style:none}
body.software-page #leafct .ct-module::before{display:none}
body.software-page #leafct .ct-text{min-width:0}
body.software-page #leafct .ct-text h4{margin:0 0 .35rem;font-size:1.1875rem;font-weight:600;line-height:1.35;color:#243c32}
body.software-page #leafct .ct-text p{margin:0 0 .9rem;max-width:62ch!important;font-size:.9375rem;line-height:1.55;color:#5c6d63}
body.software-page #leafct .ct-text p.ct-label{margin:1.25rem 0 .4rem;font-size:.875rem;font-weight:600;color:#28533b}
body.software-page #leafct .ct-module>figure{margin:.15rem 0 0!important}

/* One primary action per module; the other options stay as text. */
body.software-page #leafct a.ct-primary{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;background:#28533b;color:#fff;font-size:.9375rem;font-weight:600;text-decoration:none}
body.software-page #leafct a.ct-primary:hover{background:#1f4230;color:#fff}
body.software-page #leafct a.ct-primary:focus-visible{outline:2px solid #28533b;outline-offset:2px}

/* How to run the app: option, then what it does. */
body.software-page #leafct .ct-run{list-style:none;margin:0 0 .5rem;padding:0;max-width:42rem;border-top:1px solid #dce4dc}
body.software-page #leafct .ct-run li{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:.25rem 1rem;align-items:center;margin:0;padding:.35rem 0;border-bottom:1px solid #dce4dc;list-style:none}
body.software-page #leafct .ct-run li::before{display:none}
body.software-page #leafct .ct-run li>span{font-size:.9375rem;line-height:1.5;color:#5c6d63}
body.software-page #leafct .ct-run li>a:not(.ct-primary){display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:#28533b;text-decoration:underline;text-underline-offset:.2em}
body.software-page #leafct a.ct-guide{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-weight:600;color:#28533b;text-decoration:underline;text-underline-offset:.2em}
body.software-page #leafct a.ct-guide svg{width:1.1rem;height:1.1rem;flex:none}

@media(min-width:1180px){
 body.software-page main .software-tool-list>li#leafct>div{display:block}
 body.software-page #leafct .ct-module{grid-template-columns:minmax(0,1fr) 29.5rem}
 body.software-page #leafct .ct-module>figure{grid-column:2;grid-row:1}
}
@media(max-width:600px){
 body.software-page #leafct .ct-run li{grid-template-columns:1fr;padding:.5rem 0}
}
body.software-page #leafct .ct-run li>a{justify-self:start}

/* Leaf-CT, compact: three columns, thumbnail on top, one primary action each; alternatives fold away. */
body.software-page #leafct .ct-modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem 2.5rem;margin:1.25rem 0 0;padding:1.25rem 0 .5rem}
body.software-page #leafct .ct-module{display:flex;flex-direction:column;gap:.75rem;padding:0;border:0}
body.software-page #leafct .ct-module>figure{order:-1;grid-column:auto;grid-row:auto;margin:0!important}
body.software-page #leafct .ct-text p{max-width:none!important;margin:0 0 .75rem}
body.software-page #leafct .ct-text p.ct-note{margin:.5rem 0 .25rem;font-size:.875rem}
body.software-page #leafct .ct-more{margin:.25rem 0 .25rem}
body.software-page #leafct .ct-more>summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font-size:.9375rem;font-weight:600;color:#28533b}
body.software-page #leafct .ct-more .ct-run{display:block;margin:.25rem 0 0;max-width:none;border-top:1px solid #dce4dc}
body.software-page #leafct .ct-more .ct-run li{display:block;padding:.5rem 0}
body.software-page #leafct .ct-more .ct-run li>span{display:block;margin-top:.1rem}
body.software-page #leafct .ct-more .ct-run li>a{min-height:32px}
@media(min-width:1180px){
 body.software-page #leafct .ct-modules{grid-template-columns:repeat(3,minmax(0,1fr))}
 body.software-page #leafct .ct-module{grid-template-columns:none}
 body.software-page #leafct .ct-module>figure{grid-column:auto}
}
body.software-page #leafct .ct-more>summary{list-style:none;gap:.5rem}
body.software-page #leafct .ct-more>summary::-webkit-details-marker{display:none}
body.software-page #leafct .ct-more>summary::after{content:"";width:.45rem;height:.45rem;border-right:2px solid #28533b;border-bottom:2px solid #28533b;transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}
body.software-page #leafct .ct-more[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
body.software-page #leafct .ct-more>summary:focus-visible{outline:2px solid #28533b;outline-offset:2px}
@media(prefers-reduced-motion:reduce){body.software-page #leafct .ct-more>summary::after{transition:none}}
@media(max-width:1000px),(pointer:coarse){body.software-page #leafct .ct-more .ct-run li>a{min-height:44px}}

/* Desktop: the three Leaf-CT modules share rows, so thumbnails, titles, text and buttons line up across columns. */
@media(min-width:1000px){
 body.software-page #leafct .ct-modules{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto auto auto auto auto;row-gap:0}
 body.software-page #leafct .ct-module{display:grid;grid-row:span 7;grid-template-rows:subgrid;row-gap:0;gap:0 0}
 body.software-page #leafct .ct-text{display:contents}
 body.software-page #leafct .ct-module>figure{grid-row:1;margin-bottom:.75rem!important}
 body.software-page #leafct .ct-text>h4{grid-row:2}
 body.software-page #leafct .ct-text>p:not(.ct-note){grid-row:3}
 body.software-page #leafct .ct-text>a.ct-primary{grid-row:4;justify-self:start;align-self:start}
 body.software-page #leafct .ct-text>p.ct-note{grid-row:5}
 body.software-page #leafct .ct-text>details{grid-row:6}
 body.software-page #leafct .ct-text>a.ct-guide{grid-row:7;justify-self:start}
 body.software-page #leafct .ct-modules{column-gap:2.5rem}
}
body.software-page #leafct .ct-modules{border-top:0}
