/* phi.archi overrides (Squarespace -> Cloudflare migration, 2026-09-26).
   futura-pt fallback: Squarespace's Typekit kit wins while it loads (it injects later);
   if it stops, Futura (local) or self-hosted Jost (SIL OFL) is used under the same name. */
@font-face {
  font-family: 'futura-pt';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: local('Futura PT'), local('Futura'), url(/_phi/92zUtBhPNqw73oHt5D4hTxM.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'futura-pt';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: local('Futura PT'), local('Futura'), url(/_phi/92zUtBhPNqw73oHt7j4hTxM.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'futura-pt';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: local('Futura PT'), local('Futura'), url(/_phi/92zUtBhPNqw73oHt4D4h.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'futura-pt';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: local('Futura PT'), local('Futura'), url(/_phi/92zatBhPNqw73oDd4iYl.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'futura-pt';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: local('Futura PT'), local('Futura'), url(/_phi/92zatBhPNqw73ord4iYl.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'futura-pt';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: local('Futura PT'), local('Futura'), url(/_phi/92zatBhPNqw73oTd4g.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* commerce is not used: hide the cart icon */
.header-actions-action--cart, .header-menu-cart, a[href='/cart']{display:none!important}

/* Portfolio filter (2026-09-28): buttons built by the script on /portfolio/. */
#portfolio-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 10px; margin: 0 auto 24px; padding: 0 16px; }
#portfolio-filter .filter-btn { font-family: 'futura-pt', 'Futura', sans-serif; font-size: 14px; letter-spacing: .02em;
  padding: 6px 14px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
#portfolio-filter .filter-btn.active { background: #000; color: #fff; border-color: #000; }
body.dark-mode #portfolio-filter .filter-btn.active { background: #fff; color: #000; border-color: #fff; }

/* Healthcare page and homepage section (2026-10-23, task #1278). Own classes, no Squarespace layout engine. */
.phi-hc, .phi-hc-home { font-family: 'futura-pt', 'Futura', sans-serif; color: inherit; }
.phi-hc { max-width: 1100px; margin: 0 auto; padding: 120px 24px 72px; }
.phi-hc-hero { text-align: center; padding: 24px 0 40px; }
.phi-hc-eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: 13px; margin: 0 0 12px; opacity: .7; }
.phi-hc h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.1; margin: 0 0 18px; font-weight: 400; }
.phi-hc-lede { font-size: clamp(18px, 2vw, 22px); line-height: 1.5; max-width: 760px; margin: 0 auto 24px; }
.phi-hc-btn { display: inline-block; padding: 12px 26px; border: 1px solid currentColor; border-radius: 999px; text-decoration: none; color: inherit; font-size: 16px; letter-spacing: .02em; }
.phi-hc-btn:hover { background: #000; color: #fff; border-color: #000; }
body.dark-mode .phi-hc-btn:hover { background: #fff; color: #000; border-color: #fff; }
.phi-hc-section { padding: 40px 0; border-top: 1px solid rgba(128,128,128,.3); }
.phi-hc-section h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 400; margin: 0 0 20px; }
.phi-hc-intro { max-width: 760px; font-size: 18px; line-height: 1.55; margin: 0 0 28px; }
.phi-hc-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; }
.phi-hc-cols h3 { font-size: 20px; font-weight: 400; margin: 0 0 8px; }
.phi-hc-cols p, .phi-hc-quote p, .phi-hc-cta p { font-size: 17px; line-height: 1.6; margin: 0 0 12px; }
.phi-hc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; }
.phi-hc-card { display: block; text-decoration: none; color: inherit; }
.phi-hc-card-img { aspect-ratio: 3 / 2; overflow: hidden; background: rgba(128,128,128,.15); }
.phi-hc-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.phi-hc-card:hover .phi-hc-card-img img { transform: scale(1.03); }
.phi-hc-card-body h3 { font-size: 22px; font-weight: 400; margin: 16px 0 6px; }
.phi-hc-card-body p { font-size: 16px; line-height: 1.55; margin: 0 0 10px; }
.phi-hc-meta { opacity: .75; font-size: 14px !important; }
.phi-hc-contrib { font-size: 14px !important; opacity: .75; }
.phi-hc-more { display: inline-block; border-bottom: 1px solid currentColor; font-size: 15px; }
.phi-hc-quote { text-align: center; }
.phi-hc-quote p { max-width: 760px; margin-left: auto; margin-right: auto; }
.phi-hc-cta { text-align: center; }
.phi-hc-cta .phi-hc-pdf { margin-left: 18px; font-size: 16px; }
/* homepage band */
.phi-hc-home { padding: 64px 24px; text-align: center; }
.phi-hc-home-inner { max-width: 1100px; margin: 0 auto; }
.phi-hc-home h2 { font-size: clamp(26px, 3.4vw, 38px); font-weight: 400; margin: 0 0 14px; }
.phi-hc-home p.phi-hc-home-text { font-size: 18px; line-height: 1.55; max-width: 720px; margin: 0 auto 28px; }
.phi-hc-home .phi-hc-cards { text-align: left; margin-bottom: 28px; }
@media (max-width: 640px) { .phi-hc { padding-top: 96px; } .phi-hc-home { padding: 44px 16px; } }

/* Healthcare v3 (2026-10-23, task #1278, Spencer Telegram #5386): single hero tile on the homepage; page sections modelled on /sustainablity/. */
.phi-hc-hero-tile { display: block; position: relative; max-width: 1000px; margin: 0 auto 28px; text-decoration: none; color: inherit; }
.phi-hc-hero-tile img { width: 100%; height: auto; display: block; }
.phi-hc-hero-cap { display: block; text-align: left; font-size: 14px; opacity: .75; padding-top: 8px; }
.phi-hc-hero-tile:hover img { opacity: .94; }
.phi-hc-factors { columns: 2; column-gap: 40px; max-width: 760px; margin: 0 0 8px; padding-left: 20px; font-size: 17px; line-height: 1.7; }
.phi-hc-science p { max-width: 820px; font-size: 17px; line-height: 1.65; margin: 0 0 14px; }
.phi-hc-wilson { max-width: 760px; margin: 22px 0 6px; padding-left: 18px; border-left: 2px solid rgba(128,128,128,.5); font-size: 18px; line-height: 1.55; }
.phi-hc-wilson cite { display: block; font-size: 14px; opacity: .75; margin-top: 6px; font-style: normal; }
.phi-hc-benefits { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px 36px; }
.phi-hc-benefits h3 { font-size: 20px; font-weight: 400; margin: 0 0 6px; }
.phi-hc-benefits p { font-size: 16px; line-height: 1.6; margin: 0; }
@media (max-width: 640px) { .phi-hc-factors { columns: 1; } }

.phi-hc-small { font-size: 14px !important; line-height: 1.6 !important; opacity: .8; max-width: 900px !important; }

/* Healthcare v7 (Spencer Telegram #5387): split bands, strip, pull quote, columns */
.phi-hc-split { display: grid; grid-template-columns: 1.25fr 1fr; gap: 36px; align-items: center; margin: 8px 0 28px; }
.phi-hc-split-rev { grid-template-columns: 1fr 1.1fr; }
.phi-hc-split-img img, .phi-hc-split-fig img { width: 100%; height: auto; display: block; }
.phi-hc-split-fig { margin: 0; }
.phi-hc-split-fig figcaption, .phi-hc-strip figcaption { font-size: 13px; opacity: .75; padding-top: 6px; }
.phi-hc-split-text h2 { margin-top: 0; }
.phi-hc-split-text h3 { font-size: 24px; font-weight: 400; margin: 0 0 8px; }
.phi-hc-split-text p { font-size: 17px; line-height: 1.65; margin: 0 0 12px; }
.phi-hc-strip { display: grid; grid-template-columns: 1fr 1.6fr; gap: 18px; align-items: end; margin: 0 0 36px; }
.phi-hc-strip figure { margin: 0; }
.phi-hc-strip img { width: 100%; height: auto; display: block; }
.phi-hc-cards-tight { margin-top: 12px; }
.phi-hc-columns { column-count: 2; column-gap: 48px; }
.phi-hc-columns p { font-size: 17px; line-height: 1.7; margin: 0 0 16px; break-inside: avoid-column; }
.phi-hc-pull { margin: 26px 0 4px; font-size: clamp(22px, 3vw, 32px); line-height: 1.35; max-width: 860px; font-weight: 400; }
.phi-hc-pull cite { display: block; font-size: 14px; opacity: .7; margin-top: 10px; font-style: normal; }
@media (max-width: 800px) { .phi-hc-split, .phi-hc-split-rev, .phi-hc-strip { grid-template-columns: 1fr; } .phi-hc-columns { column-count: 1; } .phi-hc-split-rev .phi-hc-split-fig { order: -1; } }

/* Healthcare v8 (Spencer Telegram, 16:18): image-right band; guard against oversized images */
.phi-hc img { max-width: 100%; height: auto; }
.phi-hc-split-imgr { grid-template-columns: 1.15fr 1fr; }
.phi-hc-section.phi-hc-split { align-items: start; }
@media (max-width: 800px) { .phi-hc-split-imgr { grid-template-columns: 1fr; } .phi-hc-split-imgr .phi-hc-split-fig { order: 2; } .phi-hc-split-rev .phi-hc-split-fig { order: -1; } }

/* Healthcare v9 (competitor-precedent improvements) */
.phi-hc-sub { font-size: 18px; max-width: 720px; margin: -8px auto 24px; opacity: .85; line-height: 1.5; }
.phi-hc-glance { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; max-width: 980px; margin: 30px auto 6px; text-align: left; }
.phi-hc-glance div { border-top: 1px solid rgba(128,128,128,.4); padding-top: 10px; }
.phi-hc-glance strong { display: block; font-size: 28px; font-weight: 400; line-height: 1.1; }
.phi-hc-glance span { display: block; font-size: 14px; line-height: 1.45; opacity: .8; margin-top: 4px; }
.phi-hc-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 26px auto 0; font-size: 15px; }
.phi-hc-jump a { text-decoration: none; border-bottom: 1px solid currentColor; color: inherit; }
.phi-hc [id^=hc-] { scroll-margin-top: 90px; }
/* Healthcare v8 (Spencer Telegram, 16:18): image-right band; guard against oversized images */
.phi-hc img { max-width: 100%; height: auto; }
.phi-hc-split-imgr { grid-template-columns: 1.15fr 1fr; }
.phi-hc-section.phi-hc-split { align-items: start; }
@media (max-width: 800px) { .phi-hc-split-imgr { grid-template-columns: 1fr; } .phi-hc-split-imgr .phi-hc-split-fig { order: 2; } .phi-hc-split-rev .phi-hc-split-fig { order: -1; } }

/* Healthcare v9b: compact glance row on phones */
@media (max-width: 640px) { .phi-hc-glance { grid-template-columns: 1fr 1fr; gap: 12px; } .phi-hc-glance strong { font-size: 22px; } .phi-hc-glance span { font-size: 13px; } .phi-hc-jump { gap: 6px 16px; font-size: 14px; } }

/* Healthcare v10 (Spencer Telegram 580127193): projects first; numbers moved down; text, image, text, image on phones */
.phi-hc-numbers .phi-hc-glance { margin-top: 12px; }
.phi-hc a { text-underline-offset: 2px; }
@media (max-width: 800px) {
  .phi-hc-section.phi-hc-split { grid-template-columns: 1fr; }
  .phi-hc-section.phi-hc-split .phi-hc-split-fig { order: 2; margin-top: 4px; }
  .phi-hc-section.phi-hc-split .phi-hc-split-text { order: 1; }
}

/* Healthcare v11 (Spencer Telegram 580127194): visible links; approach text above projects; images spread down the page */
.phi-hc p a:not(.phi-hc-btn):not(.phi-hc-more), .phi-hc .phi-hc-small a, .phi-hc figcaption a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.phi-hc .phi-hc-wide { max-width: 1100px; margin-left: auto; margin-right: auto; }

/* Healthcare v12 (Spencer Telegram 580127195): hero image with the title overlaid */
.phi-hc-hero-img { position: relative; overflow: hidden; min-height: min(74vh, 600px); display: flex; align-items: flex-end; text-align: left; padding: 0; margin: -40px -24px 0; border-radius: 0; color: #fff; }
.phi-hc-hero-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.42) 45%, rgba(0,0,0,.10) 100%); }
.phi-hc-hero-img .phi-hc-hero-copy { position: relative; z-index: 2; padding: 28px 24px 34px; max-width: 880px; }
.phi-hc-hero-img h1, .phi-hc-hero-img .phi-hc-lede, .phi-hc-hero-img .phi-hc-sub, .phi-hc-hero-img .phi-hc-eyebrow { color: #fff; opacity: 1; }
.phi-hc-hero-img .phi-hc-lede { margin-left: 0; margin-right: 0; }
.phi-hc-hero-img .phi-hc-sub { margin: 0 0 22px; opacity: .92; }
.phi-hc-hero-img .phi-hc-btn { color: #fff; border-color: #fff; }
.phi-hc-hero-img .phi-hc-btn:hover { background: #fff; color: #000; border-color: #fff; }
@media (min-width: 1000px) { .phi-hc-hero-img { margin: 0; border-radius: 4px; min-height: 560px; } .phi-hc-hero-img .phi-hc-hero-copy { padding: 44px 48px 48px; } }

/* Healthcare on the services page (Spencer Telegram 580127197) */
.phi-svc-hc { padding: 56px 24px 64px; border-top: 1px solid rgba(128,128,128,.25); border-bottom: 1px solid rgba(128,128,128,.25); }
.phi-svc-hc-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.phi-svc-hc h1 { font-size: clamp(34px, 4.4vw, 56px); font-weight: 400; line-height: 1.1; margin: 0 0 18px; }
.phi-svc-hc-lead { font-size: clamp(18px, 2vw, 22px); line-height: 1.5; }
.phi-svc-hc p { margin: 0 0 16px; line-height: 1.6; }
.phi-svc-hc-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 8px; }
.phi-svc-hc-btn { display: inline-block; padding: 12px 26px; border: 1px solid currentColor; border-radius: 999px; text-decoration: none; color: inherit; font-size: 16px; }
.phi-svc-hc-btn:hover { background: #000; color: #fff; border-color: #000; }
body.dark-mode .phi-svc-hc-btn:hover { background: #fff; color: #000; border-color: #fff; }
.phi-svc-hc-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.phi-svc-hc-img img { width: 100%; height: auto; border-radius: 4px; }
@media (max-width: 800px) { .phi-svc-hc { padding: 40px 24px 48px; } .phi-svc-hc-inner { grid-template-columns: 1fr; gap: 24px; } }
