/* Plain HTML enhancements. The original design utilities live in site.css. */
[hidden] { display: none !important; }
[data-action="faq"][aria-expanded="true"] [data-icon-vertical] { display: none; }
.reveal { opacity: 1; transform: none; }
html { scroll-behavior: smooth; }
body { overflow-x: clip; }
body[data-page="lab-report"] { overflow-x: visible; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible { outline: 2px solid #3fa3c8; outline-offset: 4px; }
.cms-nav-item { position: relative; }
.cms-nav-children {
  position: absolute;
  top: calc(100% + 12px);
  left: -18px;
  z-index: 60;
  min-width: 220px;
  padding: 8px;
  background: var(--bone);
  border: 1px solid var(--stone);
  box-shadow: 0 18px 38px rgba(13, 13, 13, 0.14);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}
.cms-nav-item:hover > .cms-nav-children,
.cms-nav-item:focus-within > .cms-nav-children {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.cms-nav-item-nested > .cms-nav-children {
  top: -9px;
  left: calc(100% + 8px);
}
.cms-nav-child-link {
  display: flex;
  width: 100%;
  padding: 9px 10px;
  color: var(--graphite);
  font: 500 11px/1.35 Geist, sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.cms-nav-child-link:hover { color: var(--ink); background: var(--paper); }
.html-header-scrolled { background: var(--bone) !important; border-bottom: 1px solid var(--stone); }
.html-header-scrolled nav a { color: var(--graphite); }
.html-header-scrolled nav a:hover { color: var(--ink); }
.html-header-scrolled .btn-bone { background: var(--ink); color: var(--bone); }
.html-header-scrolled img { filter: none; }
[data-media-kind="FounderVoicesSection"] video { pointer-events: none; }
.html-media-dialog { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.9); display: grid; place-items: center; padding: 32px; }
.html-media-dialog video, .html-media-dialog iframe { width: min(1100px, 94vw); max-height: 85vh; border: 0; background: #000; }
.html-media-dialog iframe { aspect-ratio: 16 / 9; }
.html-dialog-close { position: absolute; top: 20px; right: 24px; color: white; font: 13px 'Geist', sans-serif; border: 1px solid #888; padding: 10px 18px; cursor: pointer; }
.html-media-error { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); width: min(680px, calc(100vw - 32px)); margin: 0; padding: 12px 16px; color: white; background: rgba(13,13,13,.92); border: 1px solid #888; text-align: center; font: 13px 'Geist', sans-serif; }
.html-media-error a { color: white; text-decoration: underline; }
.html-empty { padding: 80px 24px; text-align: center; color: var(--graphite); grid-column: 1 / -1; }
.html-feedback { margin-top: 20px; padding: 18px; background: var(--paper); border: 1px solid var(--stone); font-family: 'Geist', sans-serif; }
.html-report-overlay { position: fixed; inset: 0; z-index: 90; }
@media (max-width: 640px) {
  .html-media-dialog { padding: 12px; }
  h1, h2, h3 { overflow-wrap: break-word; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  body > header, footer, #mobile-menu, .html-media-dialog { display: none !important; }
  body { background: white; }
}

@media (max-width: 1023px) {
  body.dashboard-nav-open aside[aria-label="Dashboard navigation"] {
    transform: translateX(0) !important;
  }
  body.dashboard-nav-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 30;
    background: rgb(14 20 18 / 0.42);
  }
}
@media (max-width: 640px) {
  body[data-page="lab-report"] main > article {
    padding: 28px 18px 20px !important;
    min-width: 0;
  }

  body[data-page="lab-report"] main > article > header {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body[data-page="lab-report"] main > article > header > .relative {
    width: 140px !important;
    height: 140px !important;
  }

  body[data-page="lab-report"] main > article h1 {
    font-size: 48px !important;
  }

  body[data-page="lab-report"] main > article table {
    min-width: 560px;
    table-layout: auto;
  }

  body[data-page="lab-report"] main > article th,
  body[data-page="lab-report"] main > article td {
    padding-left: 12px !important;
    padding-right: 12px !important;
    overflow-wrap: normal;
  }

  body[data-page="lab-report"] main > article th {
    font-size: 12px !important;
  }

  body[data-page="lab-report"] main > article td {
    font-size: 12px !important;
  }
  body[data-page="lab-report"] article .grid-cols-3 { grid-template-columns:minmax(0,1fr); }
  body[data-page="lab-report"] article .grid-cols-2.gap-10 { grid-template-columns:minmax(0,1fr); }
  body[data-page="lab-report"] article .grid-cols-2.gap-12 { grid-template-columns:minmax(0,1fr); }
  body[data-page="lab-report"] article .grid-cols-2.gap-8 { grid-template-columns:minmax(0,1fr); }
  body[data-page="lab-report"] article .grid-cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="lab-report"] article .flex.items-baseline { flex-wrap:wrap; }
  body[data-page="lab-report"] article .flex.items-center { flex-wrap:wrap; }
  body[data-page="lab-report"] article .lab-report-comparison { min-width:600px; }
  body[data-page="lab-report"] article :is(.grid,.flex) > * { min-width:0; }
  body[data-page="lab-report"] article [data-cms-report-title] { overflow-wrap:anywhere; }
  html body[data-page="lab-report"] .lab-report-metrics > div { padding-left:0; padding-right:0; border-left:0; }
  html body[data-page="lab-report"] .lab-report-metrics > div + div { padding-top:24px; border-top:1px solid #ffffff40; }
}

.lab-report-table { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; }
.lab-report-table:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
@media print {
  .lab-report-table { overflow:visible; }
  body[data-page="lab-report"] main > article table { min-width:0; font-size:10px; }
}

/* Editorial updates: accurate scale markers and consistent film playback controls. */
.site-video-play { position:absolute; bottom:20px; right:20px; z-index:2; display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; color:#0d0d0d; background:#fff; transition:transform .2s ease; box-shadow:0 2px 12px #0002; }
button:hover .site-video-play { transform:scale(1.06); }
.site-demo-title { padding-right:76px; }
.site-feature-video { position:relative; aspect-ratio:16 / 9; overflow:hidden; border:1px solid var(--stone); background:var(--ink); }
.site-feature-video__button { position:absolute; inset:0; width:100%; height:100%; display:block; }
.site-feature-video__poster { width:100%; height:100%; object-fit:cover; }
.site-feature-video__shade { position:absolute; inset:0; background:linear-gradient(180deg,#0000 45%,#0005); }
.science-ph-ticks { position:absolute; top:100%; left:0; right:0; margin-top:12px; height:26px; }
.science-ph-ticks span { position:absolute; transform:translateX(-50%); white-space:nowrap; }
.science-ph-ticks span:first-child { transform:none; }
.science-ph-ticks span:last-child { transform:translateX(-100%); }
@media(max-width:767px) { .site-video-play { width:52px; height:52px; bottom:16px; right:16px; } .site-feature-video--responsive { aspect-ratio:9 / 16; max-width:420px; margin-inline:auto; } .html-media-dialog--portrait iframe { width:min(420px,90vw); height:min(80vh,747px); aspect-ratio:9 / 16; } .science-ph-ticks { font-size:8px; } }

.cms-rich-content img, .cms-rich-content video, .cms-rich-content audio, .cms-rich-content iframe, .cms-rich-content figure { max-width:100%; }
.cms-rich-content video { display:block; width:100%; height:auto; background:#111; }
.cms-rich-content iframe { display:block; width:100%; height:auto; min-height:240px; aspect-ratio:16 / 9; border:0; }
.cms-rich-content audio { display:block; width:100%; margin-block:1rem; }
.cms-rich-content figure { margin:1.5rem 0; }
.cms-rich-content figure img { height:auto; }
.cms-rich-content figcaption { margin-top:.65rem; color:var(--graphite); font-size:.85em; line-height:1.5; }
.cms-rich-content .se-component { max-width:100%; }
.cms-rich-content .se-image-container { display:flow-root; }
.cms-rich-content [data-align="center"] { margin-inline:auto; text-align:center; }
.cms-rich-content [data-align="right"] { margin-left:auto; text-align:right; }
.cms-rich-content table { max-width:100%; }
@media(max-width:640px) { .cms-rich-content iframe { min-height:180px; } .cms-rich-content figure[style*="float"] { float:none!important; margin-inline:0!important; width:100%!important; } }
.site-video-caption-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:480px) { .science-ph-ticks span:nth-child(3) { width:48px; white-space:normal; text-align:center; line-height:1.4; } }

.cms-rich-content > p + p { margin-top:1.1em; }
.cms-rich-content :where(h2,h3,h4,h5,h6) { font-family:'Newsreader',Georgia,serif; font-weight:500; line-height:1.2; margin-top:1.4em; margin-bottom:.55em; }
.cms-rich-content h2 { font-size:clamp(28px,3vw,40px); }
.cms-rich-content h3 { font-size:clamp(23px,2.4vw,30px); }
.cms-rich-content h4 { font-size:22px; }
.cms-rich-content ul,.cms-rich-content ol { margin:1em 0 1em 1.4em; padding-left:.25em; }
.cms-rich-content ul { list-style:disc; }
.cms-rich-content ol { list-style:decimal; }
.cms-rich-content li + li { margin-top:.4em; }
.cms-rich-content blockquote { margin-block:1.5em; padding-left:1.3em; border-left:2px solid var(--stone); font-style:italic; }
.cms-rich-content pre { max-width:100%; overflow:auto; padding:1rem; background:var(--paper); border:1px solid var(--stone); font:13px/1.6 monospace; }
.cms-rich-content th,.cms-rich-content td { padding:.65em; border:1px solid var(--stone); overflow-wrap:anywhere; }
.cms-rich-content table { border-collapse:collapse; margin-block:1.5em; }

.html-media-dialog--portrait iframe { width:min(420px,90vw,45vh); height:auto; aspect-ratio:9 / 16; }
.html-media-dialog--portrait video { width:auto; max-width:min(420px,90vw); max-height:80vh; object-fit:contain; }

/* CMS-backed YouTube Shorts rail. */
.shorts-section { background:var(--paper); scroll-margin-top:88px; }
.shorts-section__header { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:36px; }
.shorts-section__intro { max-width:680px; }
.shorts-section__description { max-width:55ch; margin-top:16px; color:var(--graphite); font-size:16px; line-height:1.6; }
.shorts-section__actions { display:flex; align-items:center; gap:24px; flex-shrink:0; }
.shorts-section__source { display:inline-flex; align-items:center; gap:8px; padding-block:12px; text-decoration:none; }
.shorts-section__source:hover { text-decoration:underline; text-underline-offset:5px; }
.shorts-section__navigation { display:flex; gap:8px; }
.shorts-arrow { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--stone); background:var(--bone); color:var(--ink); cursor:pointer; transition:background .2s,color .2s; }
.shorts-arrow:hover:not(:disabled) { background:var(--ink); color:var(--bone); }
.shorts-arrow:disabled { opacity:.3; cursor:default; }
.shorts-track { display:flex; gap:20px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--graphite) var(--stone-soft); padding:4px 0 20px; margin:0; list-style:none; scroll-padding-inline:0; }
.shorts-card { flex:0 0 clamp(220px,23vw,280px); min-width:0; scroll-snap-align:start; scroll-snap-stop:normal; }
.shorts-card__play { position:relative; display:block; width:100%; aspect-ratio:9 / 16; overflow:hidden; border:1px solid var(--stone); padding:0; background:var(--ink); color:var(--bone); cursor:pointer; text-align:left; }
.shorts-card__poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.shorts-card__play:hover .shorts-card__poster { transform:scale(1.035); }
.shorts-card__shade { position:absolute; inset:0; background:linear-gradient(180deg,#0005 0%,#0000 25%,#0000 45%,#000b 100%); }
.shorts-card__badge { position:absolute; top:18px; left:18px; color:#fff; text-shadow:0 1px 4px #0009; font-size:9px; letter-spacing:.13em; }
.shorts-card__title { position:absolute; bottom:96px; left:20px; right:20px; font:400 25px/1.15 'Newsreader',Georgia,serif; overflow-wrap:anywhere; }
.shorts-card .site-video-play { width:52px; height:52px; bottom:20px; right:20px; }
.shorts-section__footer { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:12px; font-size:9px; letter-spacing:.09em; }
.shorts-section__footer p { margin:0; }
.shorts-track:focus-visible,.shorts-arrow:focus-visible,.shorts-card__play:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.html-media-dialog--shorts { padding:64px 80px 96px; }
.html-media-dialog--shorts iframe,.html-media-dialog--shorts video { width:min(420px,calc(90vw - 100px),calc((100dvh - 160px)*.5625)); max-height:calc(100dvh - 160px); }
.shorts-player-navigation { position:absolute; right:max(24px,calc((100vw - 620px)/2)); top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:12px; }
.shorts-player-navigation .shorts-arrow { border-color:#666; background:#1c1c1c; color:#fff; border-radius:50%; width:48px; height:48px; }
.shorts-player-caption { position:absolute; left:50%; bottom:24px; transform:translateX(-50%); width:min(520px,80vw); color:var(--bone); text-align:center; font:400 19px/1.3 'Newsreader',Georgia,serif; }
.shorts-player-caption span { display:block; margin-bottom:7px; font:10px/1.3 'Geist Mono',monospace; letter-spacing:.12em; }
.shorts-player-caption a { display:block; width:fit-content; margin:8px auto 0; color:var(--bone); font:10px/1.4 'Geist Mono',monospace; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:767px) {
  .shorts-section__header { align-items:flex-start; flex-direction:column; gap:22px; margin-bottom:24px; }
  .shorts-section__actions { width:100%; justify-content:space-between; gap:12px; }
  .shorts-card { flex-basis:min(76vw,280px); }
  .shorts-track { gap:14px; margin-right:-24px; padding-right:24px; }
  .shorts-card__title { font-size:25px; }
  .shorts-section__footer { align-items:flex-start; line-height:1.6; }
  .shorts-section__footer [data-shorts-position] { white-space:nowrap; }
  .html-media-dialog--shorts { padding:64px 16px 120px; }
  .html-media-dialog--shorts iframe,.html-media-dialog--shorts video { width:min(calc(100vw - 32px),calc((100dvh - 184px)*.5625)); max-height:calc(100dvh - 184px); }
  .shorts-player-navigation { right:16px; top:auto; bottom:16px; transform:none; flex-direction:row; gap:8px; }
  .shorts-player-navigation .shorts-arrow { width:40px; height:40px; }
  .shorts-player-caption { bottom:16px; left:16px; transform:none; width:calc(100vw - 136px); min-height:40px; text-align:left; font-size:15px; }
  .shorts-player-caption span { font-size:9px; margin-bottom:4px; }
  .shorts-player-caption a { margin:6px 0 0; font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { .shorts-card__poster,.shorts-arrow { transition:none; } }

/* Application state is represented by classes and data attributes, with no inline CSS. */
body.html-scroll-locked { overflow:hidden; }
.content-opsz-48 { font-variation-settings:'opsz' 48; }
.content-opsz-72 { font-variation-settings:'opsz' 72; }
.site-brand-mark,.site-brand-wordmark { display:block; width:auto; object-fit:contain; }
.site-brand-lockup-header { gap:14px; flex-shrink:0; }
.site-brand-lockup-header .site-brand-mark { height:34px; }
.site-brand-lockup-header .site-brand-wordmark { height:16px; }
.site-brand-lockup-footer { gap:20px; }
.site-brand-lockup-footer .site-brand-mark { height:48px; }
.site-brand-lockup-footer .site-brand-wordmark { height:22px; }
.site-footer { background:var(--forest); }
.site-footer-lower { border-color:var(--forest-line); }
.press-wordmark { font-size:20px; line-height:1; text-align:center; overflow-wrap:anywhere; }
.press-wordmark--tribune { font-family:'Playfair Display','Source Serif Pro',Georgia,serif; font-weight:700; color:#9b1c31; }
.press-wordmark--fnb { font-family:'Barlow Condensed','Oswald','Arial Narrow',sans-serif; font-weight:800; letter-spacing:.04em; color:#0e6357; }
.press-wordmark--default { font-family:'Manrope','Inter',system-ui,sans-serif; font-weight:800; color:#0d0d0d; }
html body [data-widget="ph"][data-ph-zone="neutral"] :is(.html-range-number,.html-range-state) { color:var(--graphite); }
html body [data-widget="ph"][data-ph-zone="mild"] :is(.html-range-number,.html-range-state) { color:var(--leaf); }
html body [data-widget="ph"][data-ph-zone="alkaline"] :is(.html-range-number,.html-range-state) { color:var(--vermillion); }
html body [data-widget="orp"][data-range-zone="reducing"] :is(.html-range-number,.html-range-state) { color:var(--vermillion); }
html body [data-widget="orp"][data-range-zone="oxidizing"] :is(.html-range-number,.html-range-state) { color:var(--amber-runoff); }
html body [data-widget="ph"] .residue-lifted { opacity:0!important; transform:translateY(60px) scale(.5)!important; }
.cms-rich-content { overflow-wrap:anywhere; overflow-x:auto; }
html body .cms-rich-content :is(img,video,iframe,figure,.se-component,table) { max-width:100%!important; min-width:0!important; }
#mobile-menu { overflow-y:auto; overscroll-behavior:contain; padding-bottom:env(safe-area-inset-bottom); }
@media(max-width:1239px) {
    .site-desktop-nav,.site-header-cta { display:none!important; }
    .site-mobile-toggle { display:inline-flex!important; }
}
@media(max-width:640px) {
    html body .cms-rich-content .es-format-float { float:none!important; margin-inline:0!important; width:100%!important; }
    #mobile-menu nav { padding-top:24px; padding-bottom:24px; }
}
