/* Shared page footer. Style-independent: both live styles use it verbatim.
   Extracted from the published longevity.css, which is why every editorial
   page used to load a dark-theme stylesheet it otherwise never applied. */
.cffo-no-stores .cffo-stores {
  display: none;
}
.cffo-no-stores .cffo-main {
  padding-top: 84px;
}
/* Exact CogniFit longevity footer component, copied from the live Webflow code-island. */
.cffo{background:#000;color:rgba(255,255,255,.85);font-family:'Plus Jakarta Sans',sans-serif;border-top:1px solid rgba(255,255,255,.06);container-type:inline-size;container-name:cffo}
.cffo-stores{padding:48px 24px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.08)}
.cffo-store{display:inline-flex;align-items:center;gap:10px;background:#0a0a0a;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:10px 18px;color:#fff;text-decoration:none;transition:all .25s}
.cffo-store:hover{background:#0a0a0a;border-color:rgba(255,255,255,.28);transform:translateY(-2px)}
.cffo-si{font-size:24px;line-height:1}
.cffo-st{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.cffo-sp{font-size:10px;opacity:.8;letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.cffo-sn{font-size:14px;font-weight:800}
.cffo-main{padding:64px 24px 32px;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:auto 1fr 1fr 1fr 1fr;gap:48px}
.cffo-brand img{height:36px;width:auto;opacity:.95}
.cffo-col h3{font-size:15px;font-weight:800;color:#fff;margin:0 0 18px;letter-spacing:-.01em}
.cffo-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px}
.cffo-col a{color:rgba(255,255,255,.6);font-size:14px;text-decoration:none;transition:color .2s;border-bottom:0}
.cffo-col a:hover{color:#1A73E8}
.cffo-disc{max-width:1280px;margin:0 auto;padding:32px 24px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;line-height:1.65;color:rgba(255,255,255,.35)}
.cffo-bot{max-width:1280px;margin:0 auto;padding:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px}
.cffo-legal{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px}
.cffo-legal a{color:rgba(255,255,255,.6);text-decoration:none;border-bottom:0}
.cffo-legal a:hover{color:#1A73E8}
.cffo-copy{font-size:13px;color:rgba(255,255,255,.5)}
.cffo-brand{grid-column:1/-1}
.cffo-bot{flex-direction:column;align-items:flex-start}
.cffo-col h3{font-size:15px !important}
.cffo-disc{font-size:15px !important}
.cffo-legal a{font-size:15px !important}
.cffo-copy{font-size:13px !important}
.cffo-sn{font-size:15px !important}
.cffo-sp{font-size:13px !important}
/* A stray closing brace sat here, and the container query below was never
   closed. Chrome does not recover from the stray one: it stopped parsing this
   sheet at this exact point, so everything past it -- the container query and
   all three media queries -- has never applied to a published page. The footer
   has been rendering its five-column desktop grid at 360px the whole time, and
   anything appended to this file was silently ignored, which is how the tap
   target rule below was found not to work.
   Repaired by closing the container where it evidently ends. The overrides
   ABOVE this point are left where they are: they are duplicated inside the
   container, which suggests they lost an opener of their own, but they apply
   at every width today and moving them would change the desktop footer of
   every page -- a separate decision, made deliberately, not as a side effect
   of a parser fix. */
@container cffo (max-width:768px){
  .cffo-col a{font-size:15px !important}
.cffo-col h3{font-size:15px !important}
.cffo-disc{font-size:15px !important}
.cffo-legal a{font-size:15px !important}
.cffo-copy{font-size:13px !important}
.cffo-sn{font-size:15px !important}
.cffo-sp{font-size:13px !important}
}
@media(max-width:1100px){.cffo-main{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:680px){.cffo-main{grid-template-columns:1fr 1fr}}
@media(max-width:768px){
  .cffo-col a{font-size:15px !important}
}

/* ==========================================================================
   Tap targets
   ==========================================================================
   WCAG 2.2 AA 2.5.8 asks 24x24 CSS px of any target that is not inline in a
   sentence, and the browser audit measures exactly that. A link styled as
   running text is about 1.4x its font size tall -- 16 to 21 px here -- so
   every link GROUP on a page failed: the footer columns, the header nav, the
   breadcrumbs and the on-page index. Seventeen of them on a real published
   page, each about 2.7 mm against a finger of eight to ten.

   Here rather than in each style's sheet because it is not a style decision:
   the chrome classes are painted five different ways across five stylesheets,
   the rule is the same for all of them, and this is the one sheet every page
   loads whatever style it wears.

   Structural on purpose, and this is the whole care of it. `li > a:only-child`
   means the link IS the item -- a destination in a list of destinations. A
   link inside a sentence is left alone, because 2.5.8 exempts it and because
   growing it would break the line it sits in: the DOI at the end of a citation
   stays exactly as it reads. The emphasis variant is the same shape with a
   wrapper, which is how the sidebar writes its links; a third kind of wrapper
   would need naming here too, which is the honest cost of not reaching for
   every `<a>` in a list.
   ========================================================================== */
.cfhub nav a,
.cfhub li > a:only-child,
.cfhub li > strong:only-child > a:only-child,
.cfhub .cffo-legal a {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
}
