/* Bacter v03 — surgical additions to the approved visual language. */
/* Crossfade: no slides are removed from the grid, so the slideshow keeps a stable height. */
.extreme-slideshow.is-enhanced .slide-stage{display:grid;isolation:isolate;overflow:hidden}
.extreme-slideshow.is-enhanced .extreme-slide{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;z-index:0;transition:opacity .7s ease,visibility 0s linear .7s}
.extreme-slideshow.is-enhanced .extreme-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1;transition:opacity .7s ease,visibility 0s linear 0s}
.extreme-slideshow .slide-stage{touch-action:pan-y}
.slide-progress{height:5px;background:#fffef327;overflow:hidden}
.slide-progress-fill{height:100%;width:100%;background:var(--g);transform:scaleX(0);transform-origin:left center}
@keyframes slide-progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.slide-controls{border-bottom:0}

/* Static-site inquiry: editable fields, no implied backend submission. */
.contact-card{align-self:start}
.feasibility-form{display:grid;gap:14px;margin-top:24px}
.feasibility-form label{display:flex;flex-direction:column;gap:7px;font-weight:750;font-size:13px;line-height:1.4}
.feasibility-form input,.feasibility-form select,.feasibility-form textarea{width:100%;font:inherit;line-height:1.35;color:var(--n);background:white;border:1px solid var(--n);border-radius:0;padding:12px 11px;min-height:44px}
.feasibility-form textarea{min-height:100px;resize:vertical}
.feasibility-form input:focus-visible,.feasibility-form select:focus-visible,.feasibility-form textarea:focus-visible{outline:3px solid var(--g);outline-offset:2px}
.feasibility-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}
.feasibility-form .form-row>*{min-width:0}
.feasibility-form .inquiry-send{cursor:pointer;text-align:center;width:100%;font:inherit;font-weight:900}
.feasibility-form .inquiry-copy{cursor:pointer;border:0;background:none;text-decoration:underline;text-underline-offset:3px;font:inherit;font-weight:750;padding:5px;color:var(--n);justify-self:start}
.contact-card .form-note,.contact-card .form-feedback{font-size:12px;line-height:1.5;margin:0}
.contact-card .form-note{opacity:.72}
.contact-card .form-feedback:not(:empty){padding:10px;background:#d7ffe9;border-left:3px solid var(--n)}
.contact-card .contact-email{margin-top:20px;font-size:16px}

/* The map works without an internet connection; local Natural Earth vector base. */
.atlas-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:36px;padding:20px;border:1px solid var(--n);background:#e7fff1;align-items:end}
.atlas-filter{min-width:0;display:flex;flex-direction:column;gap:8px}
.atlas-filter label{font-size:12px;font-weight:900;line-height:1.4}
.atlas-filter input,.atlas-filter select{width:100%;min-width:0;height:44px;padding:9px 10px;border:1px solid var(--n);border-radius:0;background:var(--iv);font:inherit;font-size:14px}
.atlas-filter :focus-visible,.atlas-clear:focus-visible{outline:3px solid var(--c);outline-offset:2px}
.atlas-clear{min-height:44px;border:2px solid var(--n);background:var(--n);color:var(--iv);font-weight:850;padding:9px 12px;cursor:pointer;justify-self:start}
.atlas-filter-meta{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin:14px 0 0}
.atlas-filter-meta p{font-size:12px;line-height:1.5;max-width:770px;margin:0;opacity:.8}
.atlas-filter-meta strong{font-size:13px;white-space:nowrap}
.atlas-explorer{margin-top:24px}
#microbe-map{background:#e8f4ee}
#microbe-map .leaflet-image-layer{background:#e8f4ee}
.map-static-fallback{width:100%;height:100%;object-fit:contain}
.microbe-detail .detail-temperature{font-size:14px}
.microbe-list button[hidden]{display:none!important}
.microbe-pin{width:30px;height:30px;border:2px solid var(--n);box-shadow:0 2px 0 #03081630}
.microbe-detail .detail-empty{margin:auto}

/* Three-stage technology pathway — retains four existing reactor cards. */
.bacter-process-explorer{margin-top:62px;background:var(--n);color:var(--iv);border:2px solid var(--n);overflow:hidden}
.process-intro{padding:38px 38px 26px}
.process-intro .label{color:var(--g)}
.process-intro h3{font-family:Outfit,Arial,sans-serif;font-size:clamp(35px,4vw,55px);line-height:1.0;letter-spacing:-.045em;margin:12px 0}
.process-intro p{max-width:730px;font-size:16px;line-height:1.5;margin:0}
.process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 38px;gap:12px}
.process-step{position:relative;min-width:0;min-height:190px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:6px;text-align:left;background:#1a2632;color:var(--iv);border:2px solid #ffffff47;padding:18px;cursor:pointer;font-family:inherit}
.process-step:not(:last-child)::after{content:'→';font-size:22px;font-weight:900;position:absolute;right:-20px;top:50%;transform:translateY(-50%);color:var(--g);z-index:2;text-shadow:1px 1px var(--n),-1px -1px var(--n)}
.process-step.is-selected{background:var(--g);border-color:var(--g);color:var(--n)}
.process-step .process-icon{font-size:36px;line-height:1}
.process-step small{font:800 12px 'JetBrains Mono',monospace}
.process-step strong{font-size:clamp(18px,2vw,26px);line-height:1.1;letter-spacing:-.025em}
.process-step:focus-visible{outline:3px solid var(--y);outline-offset:4px}
.process-panels{padding:18px 38px 38px}
.process-panel{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:24px;align-items:stretch;padding:28px;background:var(--iv);color:var(--n);min-height:235px}
.process-panel[hidden]{display:none!important}
.process-panel h4{font-size:clamp(24px,3.5vw,39px);line-height:1.07;margin:13px 0;letter-spacing:-.035em}
.process-panel p{font-size:16px;line-height:1.55;margin:0}
.process-panel .process-outcome{background:var(--y);border:1px solid var(--n);padding:22px;align-self:stretch}
.process-outcome strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}
@media(max-width:880px){.atlas-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.process-intro{padding:28px}.process-steps{padding:0 28px}.process-panels{padding:16px 28px 28px}.process-panel{grid-template-columns:1fr}}
@media(max-width:560px){.atlas-filter-meta{flex-direction:column;gap:8px}.atlas-filters{gap:10px;padding:14px}.atlas-filter label{font-size:11px}.process-steps{gap:7px;padding:0 15px}.process-step{min-height:155px;padding:12px}.process-step strong{font-size:15px}.process-step .process-icon{font-size:27px}.process-step:not(:last-child)::after{right:-13px;font-size:15px}.process-intro{padding:20px}.process-panels{padding:12px 15px 15px}.process-panel{padding:20px;gap:16px}.feasibility-form .form-row{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.extreme-slideshow.is-enhanced .extreme-slide{transition:none!important}.slide-progress-fill{animation:none!important;transform:scaleX(0)!important}}

/* Keep slide headings readable while the background image crossfades. */
.extreme-slideshow.is-enhanced .extreme-slide:not(.is-active) .slide-copy{opacity:0;transition:opacity .12s ease}
.extreme-slideshow.is-enhanced .extreme-slide.is-active .slide-copy{opacity:1;transition:opacity .25s ease .30s}
