/* x25lab project hub: scoped to the public site. No global CSS resets. */
body.x25-public-express .x25ph-overview,body.x25-public-express .x25ph-main{--x25ph-forest:#0c3527;--x25ph-green:#176247;--x25ph-light:#edf7ef;--x25ph-line:#d0e6d5;--x25ph-ink:#143529;box-sizing:border-box;color:var(--x25ph-ink)}
body.x25-public-express .x25ph-overview{margin:clamp(20px,4vw,54px) clamp(12px,3.5vw,56px);padding:clamp(16px,3vw,38px);background:linear-gradient(135deg,#f8fcf9 0%,#eaf6ee 100%);border:1px solid var(--x25ph-line);border-radius:18px}
body.x25-public-express .x25ph-section-head{margin-bottom:20px}body.x25-public-express .x25ph-section-head h4{font-size:clamp(23px,2.6vw,38px);line-height:1.2;font-weight:750;color:#0c3527;margin:8px 0 12px}
body.x25-public-express .x25ph-eyebrow{font-size:12px;font-weight:750;letter-spacing:.095em;text-transform:uppercase;color:#207b56}
body.x25-public-express .x25ph-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
body.x25-public-express .x25ph-card{display:flex;flex-direction:column;gap:9px;min-width:0;padding:20px;background:#fff;border:1px solid var(--x25ph-line);border-radius:14px;color:#15382b;text-decoration:none!important;box-shadow:0 4px 14px #0c36240a;transition:border-color .16s,box-shadow .16s,transform .16s}
body.x25-public-express .x25ph-card:hover{border-color:#62b88a;box-shadow:0 10px 22px #0c362416;transform:translateY(-2px);text-decoration:none!important}
body.x25-public-express .x25ph-card:focus-visible{outline:3px solid #4aaf78;outline-offset:3px}
body.x25-public-express .x25ph-card strong{font-size:18px;font-weight:750;color:#0c3527}body.x25-public-express .x25ph-card span:not(.x25ph-card-top){font-size:15px;line-height:1.55;color:#345948}body.x25-public-express .x25ph-card-top{font-size:11px;color:#2e815c;letter-spacing:.075em;text-transform:uppercase}body.x25-public-express .x25ph-card small{margin-top:auto;font-size:13px;color:#116344;font-weight:650}
body.x25-public-express main#main-content.x25ph-main{width:100%;padding:clamp(16px,3.8vw,58px);background:#f6faf7}body.x25-public-express .x25ph-main *{box-sizing:border-box}
body.x25-public-express .x25ph-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);align-items:center;gap:clamp(18px,4vw,68px);border-radius:18px;padding:clamp(22px,4vw,62px);background:linear-gradient(125deg,#093528 0%,#174f38 75%,#256b49 100%);color:#f8fff9}
body.x25-public-express .x25ph-hero h1{font-size:clamp(30px,4.2vw,58px);line-height:1.1;color:#fff;margin:12px 0 16px}
body.x25-public-express .x25ph-hero p{color:#eefbef;line-height:1.65;font-size:clamp(16px,1.2vw,19px)}body.x25-public-express .x25ph-hero .x25ph-eyebrow{color:#bdf4ce}
body.x25-public-express .x25ph-breadcrumb{font-size:13px!important;margin:0 0 10px}body.x25-public-express .x25ph-breadcrumb a{color:#d6ffde;text-decoration:none!important}
body.x25-public-express .x25ph-intro-card{background:#f5fcf7;border:1px solid #c4e5ce;border-radius:16px;padding:clamp(18px,2.4vw,36px);min-width:0;display:flex;flex-direction:column;gap:12px;color:#163f2d}
body.x25-public-express .x25ph-intro-card strong{font-size:clamp(22px,2.5vw,33px);color:#0d432c;overflow-wrap:anywhere}body.x25-public-express .x25ph-intro-card p{font-size:15px;color:#325845;margin:0}
body.x25-public-express .x25ph-intro-card a,body.x25-public-express .x25ph-next a{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:10px;background:#b6f56b;border:1px solid #a9ed59;color:#103526!important;font-weight:750;text-decoration:none!important;transition:filter .16s}
body.x25-public-express .x25ph-intro-card a:hover,body.x25-public-express .x25ph-next a:hover{filter:brightness(.95);text-decoration:none!important}
body.x25-public-express .x25ph-section{padding:clamp(28px,4vw,56px) 0}body.x25-public-express .x25ph-section h2{font-size:clamp(27px,3.2vw,42px);color:#103c2d;font-weight:750;margin:8px 0 10px}body.x25-public-express .x25ph-section h3{font-size:clamp(20px,2.2vw,28px);font-weight:700;color:#174a35;margin:26px 0 20px}body.x25-public-express .x25ph-section>p{color:#335846;font-size:16px}
body.x25-public-express .x25ph-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
body.x25-public-express .x25ph-note{display:flex;align-items:start;gap:15px;padding:clamp(16px,2vw,26px);background:#fff;border:1px solid #d8e8dc;border-radius:14px;min-width:0}
body.x25-public-express .x25ph-note-no{background:#e6f5e9;border-radius:10px;padding:6px 9px;color:#18734c;font-size:12px;font-weight:750;flex:none}
body.x25-public-express .x25ph-note h4{font-size:clamp(18px,1.65vw,22px);line-height:1.3;color:#143c2c;font-weight:750;margin:0 0 8px}body.x25-public-express .x25ph-note p{font-size:16px;line-height:1.68;color:#345444;margin:0}
body.x25-public-express .x25ph-next{padding:clamp(20px,3vw,40px);background:#e7f5eb;border:1px solid #c8e7d0;border-radius:16px;margin:0 0 30px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}body.x25-public-express .x25ph-next h4{width:100%;font-size:24px;font-weight:750;color:#153e2f;margin:0}body.x25-public-express .x25ph-next p{width:100%;margin:0 0 8px;color:#345845}body.x25-public-express .x25ph-next a:last-child{background:transparent;border:1px solid #4c9870;color:#145438!important}
/* Menu is added beside the existing Projects link: the link itself keeps working. */
.x25-projects-nav-dropdown{position:relative!important;display:flex!important;align-items:center;gap:3px;overflow:visible!important}.x25-projects-menu-toggle{appearance:none;border:1px solid #ffffff40;border-radius:8px;cursor:pointer;background:#ffffff14;color:inherit;font-size:13px;line-height:1;width:25px;height:28px;display:flex;align-items:center;justify-content:center}.x25-projects-menu-toggle:focus-visible{outline:3px solid #b2f17b;outline-offset:2px}.x25-projects-menu-list[hidden]{display:none!important}.x25-projects-menu-list{position:absolute!important;z-index:10000!important;top:calc(100% + 9px);right:0;width:min(720px,calc(100vw - 24px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:14px;border:1px solid #bee2c9;border-radius:14px;background:#f8fcf8;box-shadow:0 22px 50px #092d2159;overflow-y:auto;max-height:75vh}.x25-projects-menu-list a{display:flex;align-items:center;border-radius:8px;padding:10px 9px;font-size:13px;font-weight:600;color:#15402d!important;background:transparent!important;text-decoration:none!important;line-height:1.4;white-space:normal}.x25-projects-menu-list a:hover,.x25-projects-menu-list a:focus-visible{background:#e2f4e7!important;color:#0b422b!important;text-decoration:none!important;outline-offset:0}.x25-projects-menu-list a.x25-project-all{background:#e5f7e8!important;color:#104a30!important;font-weight:750}
@media(width <= 1050px){body.x25-public-express .x25ph-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.x25-public-express .x25ph-hero{grid-template-columns:minmax(0,1fr)}.x25-projects-menu-list{grid-template-columns:repeat(2,minmax(0,1fr));width:min(580px,calc(100vw - 24px))}}
@media(width <= 700px){body.x25-public-express .x25ph-grid,body.x25-public-express .x25ph-notes{grid-template-columns:minmax(0,1fr)}body.x25-public-express .x25ph-overview{margin:15px 10px;padding:16px}body.x25-public-express main#main-content.x25ph-main{padding:14px}body.x25-public-express .x25ph-hero{padding:22px 18px}body.x25-public-express .x25ph-note{gap:11px;padding:16px}body.x25-public-express .x25ph-note p{font-size:16px}.x25-projects-menu-list{right:auto;left:0;grid-template-columns:minmax(0,1fr);width:min(340px,calc(100vw - 30px));max-height:65dvh}.x25-projects-nav-dropdown{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){body.x25-public-express .x25ph-card{transition:none!important;transform:none!important}}

body.x25-public-express .x25ph-hero .x25ph-intro-card .x25ph-eyebrow{color:#1c7150}

/* Keep the intended heading scale after excess H4 tags were made semantically neutral in v14.3. */
body.x25-public-express .x25ph-note .x25-v143-h3-look{
  font-size:clamp(18px,1.65vw,22px);line-height:1.3;font-weight:750;
  color:#143c2c;margin:0 0 8px;
}
body.x25-public-express .x25ph-next > .x25-v143-h3-look{
  width:100%;font-size:24px;line-height:1.3;font-weight:750;
  color:#153e2f;margin:0;
}
body.x25-public-express .x25ph-section-head > .x25-v143-h3-look{
  font-size:clamp(23px,2.6vw,38px);line-height:1.2;font-weight:750;
  color:#0c3527;margin:8px 0 12px;
}

/* v14.8 · All 14 new project profiles use a single content edge at every breakpoint. */
body.x25-public-express main#main-content.x25ph-main{
  --x25ph-card-pad:clamp(18px,2.4vw,36px);
}
body.x25-public-express main#main-content.x25ph-main > :is(.x25ph-hero,.x25ph-section,.x25ph-next){
  width:100%;min-width:0;max-width:none;box-sizing:border-box;
  margin-inline:0;padding-inline:var(--x25ph-card-pad);
}
body.x25-public-express main#main-content.x25ph-main > .x25ph-section{padding-block:clamp(20px,2.6vw,42px)}
body.x25-public-express main#main-content.x25ph-main .x25ph-notes{min-width:0}


/* v14.9 · Project profiles on phones: 8 px outer rail + 14 px inner rail. */
@media (max-width:700px) {
  body.x25-public-express main#main-content.x25ph-main{
    padding-inline:8px;
    --x25ph-card-pad:14px;
  }
  body.x25-public-express main#main-content.x25ph-main > :is(.x25ph-hero,.x25ph-section,.x25ph-next){
    padding-inline:var(--x25ph-card-pad);
  }
}

/* x25lab v14.11 | Project profiles: same outer rail/top gap as the homepage.
   The main element owns outer spacing; its direct sections keep their own inner padding. */
body.x25-public-express main#main-content.x25ph-main {
  box-sizing:border-box;
  width:100%;
  padding:var(--x25-unified-top,26px) var(--x25-unified-edge,20px) 30px!important;
}
body.x25-public-express main#main-content.x25ph-main > :is(.x25ph-hero,.x25ph-section,.x25ph-next) {
  box-sizing:border-box;
  width:100%;
  max-width:none;
  margin-inline:0;
}
/* end x25lab-v14.11-project-raster */
