/* ============================================================
   Cohealo marketing site — consolidated stylesheet
   Extracted from inline <style> blocks in each page.

   Structure:
     1. Design tokens (:root) + shared page-level override
     2. Base element resets
     3. Shared components (byte-identical across the pages that use them)
     4. Page-specific styles, scoped under body.pg-<page> so that two
        pages using the same class name at different sizes/colors
        never clobber each other in this single shared file
     5. Responsive (max-width: 900px) — same shared/scoped split
   ============================================================ */

/* ---- Design tokens ---- */
:root {
  --dark-blue: #0d1b2e;
  --mid-blue: #2d4a7a;
  --light-blue: #8ea8c3;
  --pale-blue: #d4e1ef;
  --bg-gray: #edf1f7;
  --text-dark: #0d1a33;
  --text-mid: #3d4a66;
  --text-light: #5c6880;
  --border: #c5d3e0;
  --white: #ffffff;
  --coral: #c8492f;
  --coral-hover: #b03f28;
  --brand-blue: #2c586e;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

/* equipment-tracking.html uses a different --light-blue / --border */
body.pg-equipment-tracking {
  --light-blue: #5bc2f4;
  --border: #d4e1ef;
}

/* ---- Base element resets (identical on every page) ---- */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  body { font-family: 'DM Sans', sans-serif; color: var(--text-dark); background: #fff; }
  p { font-size: 16px; }
  a { text-decoration: none; color: inherit; }
  .nav-logo { display: flex; align-items: center; min-height: 44px; }
  .nav-logo img { height: 34px; width: auto; display: block; }
  .nav-links { display: flex; flex: 1; align-items: center; gap: 32px; margin-left: 48px; font-size: 14px; font-weight: 500; color: var(--text-mid); list-style: none; }
  .nav-links li.nav-right { margin-left: auto; }
  .nav-links li.nav-right + li.nav-right { margin-left: 0; }
  .nav-links a { display: inline-block; padding: 8px 0; transition: color .2s; }
  .nav-links a:hover { color: var(--mid-blue); }
  .nav-links a[aria-current="page"] { color: var(--mid-blue); font-weight: 600; }
  .nav-toggle { display: none; }
  nav.is-scrolled { box-shadow: 0 8px 24px -16px rgba(13,27,46,.35); }
  .site-header { position: sticky; top: 0; z-index: 100; }
  .site-header.is-dark nav { background: var(--brand-blue); border-bottom-color: rgba(255,255,255,.08); }
  .site-header.is-dark .nav-links { color: rgba(255,255,255,.82); }
  .site-header.is-dark .nav-links a:hover, .site-header.is-dark .nav-links a[aria-current="page"] { color: #fff; }
  .site-header.is-dark :focus-visible { outline-color: #fff; }
  /* One raster logo: clip it so the wordmark renders white while the mark keeps its colors.
     74.7% = gap between wordmark and mark in the 332px source. */
  .nav-logo { position: relative; }
  .site-header.is-dark .nav-logo img { clip-path: inset(0 0 0 74.7%); }
  .site-header.is-dark .nav-logo::before { content: ''; position: absolute; left: 0; top: 50%; height: 34px; aspect-ratio: 332 / 72; translate: 0 -50%; background: url(images/cohealo-logo.png) left center / contain no-repeat; clip-path: inset(0 25.3% 0 0); filter: brightness(0) invert(1) drop-shadow(.5px 0 0 #fff) drop-shadow(-.5px 0 0 #fff); pointer-events: none; }
  .skip-link { position: absolute; min-height: 44px; display: inline-flex; align-items: center; left: 16px; top: -100px; z-index: 200; background: var(--dark-blue); color: #fff; padding: 10px 16px; border-radius: 6px; font-size: 14px; font-weight: 600; }
  .skip-link:focus { top: 12px; }
  :focus-visible { outline: 2px solid var(--mid-blue); outline-offset: 2px; }
  .hero :focus-visible, .cta-band :focus-visible, .wp-section :focus-visible, .join :focus-visible, .results :focus-visible, footer :focus-visible { outline-color: #fff; }
  .value-card { background: var(--bg-gray); border: 1px solid var(--border); border-radius: 14px; padding: 28px; }
  .value-icon { width: 44px; height: 44px; background: var(--pale-blue); border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--mid-blue); margin-bottom: 16px; }
  .value-card p { font-size: 13px; color: var(--text-mid); line-height: 1.7; }
  .footer-links { display: flex; gap: 28px; font-size: 13px; }
  .footer-links a { color: #6a8bb0; transition: color .2s; }
  .footer-links a:hover { color: #fff; }
  .footer-copyright { color: #6a8bb0; }
  .hero h1 em { font-style: normal; color: var(--light-blue); }

  nav { background: #fff; border-bottom: 1px solid var(--border); transition: box-shadow .3s var(--ease-out), background-color .3s var(--ease-out), border-color .3s var(--ease-out); display: flex; align-items: center; justify-content: space-between; padding: 0 60px; height: 64px; position: relative; }
  .hero { background: linear-gradient(150deg, #0d1b2e 0%, #2d4a7a 55%, #5b7fa6 100%); padding: 80px 60px 72px; text-align: center; position: relative; overflow: hidden; }
  .hero-tag { font-size: 12px; font-weight: 600; color: #7bbcf5; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 20px; position: relative; }
  .hero h1 { font-size: clamp(30px, 5.5vw, 44px); font-weight: 700; color: #fff; line-height: 1.18; margin-bottom: 20px; position: relative; max-width: 760px; margin-left: auto; margin-right: auto; }
  .hero p { font-size: 17px; color: #b8d8f4; line-height: 1.75; max-width: 600px; margin: 0 auto; position: relative; }
  section { padding: 80px 60px; }
  .section-inner { max-width: 1060px; margin: 0 auto; }
  .eyebrow { font-size: 12px; font-weight: 600; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .12em; margin-bottom: 10px; }
  .section-title { font-size: 34px; font-weight: 700; color: var(--text-dark); line-height: 1.25; margin-bottom: 16px; }
  .section-sub { font-size: 16px; color: var(--text-mid); line-height: 1.75; }
  footer { background: #0d1a33; padding: 40px 60px; }
  .footer-inner { display: flex; justify-content: center; align-items: center; gap: 20px; max-width: 1060px; margin: 0 auto; }

  /* form feedback (validation + submit states), shared by every form on the site */
  .cta-wrap { display: inline-flex; flex-direction: column; align-items: flex-start; }
  .cta-wrap .alert { align-self: stretch; max-width: none; margin: 24px 0 0; }
  .cta-form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; align-items: flex-start; }
  .cta-field { display: flex; flex-direction: column; text-align: left; flex: 0 1 auto; }
  .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .cta-form input.error { box-shadow: 0 0 0 3px rgba(224,80,60,.4); }
  .cta-form button:hover { background: var(--coral-hover); }
  .cta-form button, body.pg-index .btn-primary, body.pg-capital-planning .cta-simple-btn, body.pg-company .join-btn, body.pg-equipment-tracking .wp-btn, body.pg-contact-us .form-submit, .nav-toggle { transition: background .2s, transform .12s var(--ease-out), box-shadow .2s; }
  .cta-form button:active, body.pg-index .btn-primary:active, body.pg-capital-planning .cta-simple-btn:active, body.pg-company .join-btn:active, body.pg-equipment-tracking .wp-btn:active, body.pg-contact-us .form-submit:active, .nav-toggle:active { transform: scale(.97); }
  .cta-form button:disabled { cursor: default; opacity: .7; }
  .field-error { display: none; color: #fff; background: rgba(13,27,46,.55); font-size: 13px; padding: 4px 8px; border-radius: 4px; margin-top: 6px; }
  .field-error.show { display: block; animation: rise-in .25s var(--ease-out); }
  .spinner.show { display: inline-block; }
  .alert { display: none; border-radius: 8px; padding: 16px 18px; margin: 24px auto 0; max-width: 480px; text-align: left; }
  .alert.show { display: block; animation: rise-in .35s var(--ease-out); }
  @keyframes rise-in { from { opacity: 0; transform: translateY(6px); } }
  .alert h3 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 700; margin-bottom: 4px; }
  .alert p { font-size: 13px; line-height: 1.6; margin-bottom: 0; }
  .alert-success { background: #eafaf1; border: 1px solid #a9dfbf; border-left: 3px solid #27ae60; }
  .alert-success h3 { color: #1e8449; }
  .alert-success p { color: #2d6a4f; }
  .alert-error { background: #fdf3f2; border: 1px solid #f5c6cb; border-left: 3px solid #e0503c; }
  .alert-error h3 { color: #c0392b; }
  .alert-error p { color: #721c24; }

/* ---- Page-specific styles, scoped so identical class names
   used differently on different pages don't overwrite each other ---- */

/* capital-planning.html */
  body.pg-capital-planning { --section-py: 96px; }
  body.pg-capital-planning h1, body.pg-capital-planning h2, body.pg-capital-planning h3, body.pg-capital-planning h4 { font-family: 'Inter', sans-serif; }
  body.pg-capital-planning .eyebrow.center { text-align: center; }
  body.pg-capital-planning .section-title.center { text-align: center; }
  body.pg-capital-planning .section-sub.center { text-align: center; max-width: 640px; margin: 0 auto; }
  body.pg-capital-planning .cap-features { background: #fff; }
  body.pg-capital-planning .value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; }
  body.pg-capital-planning .value-card h2 { font-size: 16px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }
  body.pg-capital-planning .wp-section { background: var(--bg-gray); }
  body.pg-capital-planning .wp-section :focus-visible { outline-color: var(--text-dark); }
  body.pg-capital-planning .wp-inner { display: flex; gap: 60px; align-items: center; max-width: 1060px; margin: 0 auto; }
  body.pg-capital-planning .wp-inner.single { justify-content: center; }
  body.pg-capital-planning .wp-text { flex: 1; }
  body.pg-capital-planning .wp-inner.single .wp-text { flex: 0 1 680px; text-align: center; }
  body.pg-capital-planning .wp-text h3 { font-size: 24px; font-weight: 700; color: var(--text-dark); line-height: 1.35; margin-bottom: 14px; }
  body.pg-capital-planning .wp-text p { font-size: 15px; color: var(--text-mid); line-height: 1.75; }
  body.pg-capital-planning .process-section { background: #fff; }
  body.pg-capital-planning .process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 44px; }
  body.pg-capital-planning .process-step { background: var(--bg-gray); border: 1px solid var(--border); border-radius: 14px; padding: 28px; position: relative; }
  html.js body.pg-capital-planning .process-step { opacity: 0; transform: translateY(16px); transition: opacity .5s var(--ease-out), transform .5s var(--ease-out); }
  body.pg-capital-planning .process-grid.is-in .process-step { opacity: 1; transform: none; }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(2) { transition-delay: .15s; }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(3) { transition-delay: .3s; }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(4) { transition-delay: .45s; }
  body.pg-capital-planning .process-step:not(:last-child)::after { content: ''; position: absolute; top: 50%; left: 100%; width: 24px; height: 2px; background: var(--mid-blue); transform: translateY(-50%) scaleX(0); transform-origin: left center; z-index: 2; pointer-events: none; transition: transform .45s var(--ease-out); }
  body.pg-capital-planning .process-grid.is-in .process-step:not(:last-child)::after { transform: translateY(-50%) scaleX(1); }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(2)::after { transition-delay: .35s; }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(3)::after { transition-delay: .7s; }
  body.pg-capital-planning .process-step:not(:last-child)::before { content: ''; position: absolute; top: 50%; left: calc(100% + 17px); width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 7px solid var(--mid-blue); transform: translateY(-50%); z-index: 3; pointer-events: none; opacity: 0; transition: opacity .2s var(--ease-out) .4s; }
  body.pg-capital-planning .process-grid.is-in .process-step:not(:last-child)::before { opacity: 1; }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(2)::before { transition-delay: .75s; }
  body.pg-capital-planning .process-grid.is-in .process-step:nth-child(3)::before { transition-delay: 1.1s; }
  body.pg-capital-planning .process-num { font-size: 12px; font-weight: 700; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 12px; }
  body.pg-capital-planning .process-step h3 { font-size: 16px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }
  body.pg-capital-planning .process-step p { font-size: 13px; color: var(--text-mid); line-height: 1.7; }
  body.pg-capital-planning .cta-simple { background: linear-gradient(135deg, #2d4a7a, #5b7fa6); padding: 80px 60px; text-align: center; }
  body.pg-capital-planning .cta-simple h2 { font-size: clamp(28px, 5vw, 40px); color: #fff; margin-bottom: 12px; }
  body.pg-capital-planning .cta-simple p { font-size: 17px; color: #b8d8f4; margin-bottom: 32px; }
  body.pg-capital-planning .cta-simple-btn { display: inline-block; background: var(--coral); color: #fff; padding: 14px 32px; border-radius: 6px; font-size: 14px; font-weight: 600; }
  body.pg-capital-planning .cta-simple-btn:hover { background: var(--coral-hover); }
  body.pg-capital-planning .cta-simple :focus-visible { outline-color: #fff; }

/* company.html */
  body.pg-company h1, body.pg-company h2, body.pg-company h3, body.pg-company h4 { font-family: 'Inter', sans-serif; }
  body.pg-company .hero h1 em { color: #5bc2f4; }
  body.pg-company .hero-stats { display: flex; gap: 0; justify-content: center; max-width: 800px; margin: 0 auto; position: relative; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
  body.pg-company .section-title { font-size: 36px; font-weight: 700; color: var(--text-dark); line-height: 1.2; margin-bottom: 16px; }
  body.pg-company .mission-text .section-sub:not(:last-child) { margin-bottom: 20px; }
  body.pg-company .mission-text .section-sub { max-width: 770px; }
  body.pg-company .values .section-sub { max-width: 560px; }
  body.pg-company .mission { background: #fff; }
  body.pg-company .mission-inner { display: flex; gap: 80px; align-items: flex-start; max-width: 1060px; margin: 0 auto; }
  body.pg-company .mission-text { flex: 1.2; }
  body.pg-company .mission-quote { flex: 1; max-width: 770px; background: var(--dark-blue); border-radius: 16px; padding: 40px; position: relative; overflow: hidden; margin-top: 34px; margin-bottom: 48px; }
  body.pg-company .mission-quote p { font-size: 18px; font-weight: 700; color: #b8d8f4; line-height: 1.75; font-style: italic; position: relative; }
  body.pg-company .mission-quote cite { display: block; margin-top: 16px; font-size: 13px; color: var(--light-blue); font-style: normal; font-weight: 600; position: relative; }
  body.pg-company .leadership { background: var(--bg-gray); }
  body.pg-company .leadership-intro { font-size: 16px; color: var(--text-mid); line-height: 1.75; max-width: 600px; margin-bottom: 48px; }
  body.pg-company .team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
  body.pg-company .team-card { background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
  body.pg-company .team-photo { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; object-position: center; display: block; filter: grayscale(100%); transition: filter .3s; }
  body.pg-company .team-card:hover .team-photo { filter: grayscale(0%); }
  body.pg-company .team-body { padding: 20px; }
  body.pg-company .team-name { font-size: 15px; font-weight: 700; color: var(--text-dark); margin-bottom: 4px; border-bottom: 2px solid var(--light-blue); padding-bottom: 8px; }
  body.pg-company .team-title { font-size: 12px; color: var(--text-light); margin-bottom: 14px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; margin-top: 8px; }
  body.pg-company .team-linkedin { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--mid-blue); font-weight: 600; }
  body.pg-company .team-linkedin i { font-size: 14px; }
  body.pg-company .team-linkedin:hover { text-decoration: underline; }
  body.pg-company .values { background: #fff; }
  body.pg-company .values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; }
  body.pg-company .value-card h3 { font-size: 15px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }
  body.pg-company .join { background: linear-gradient(135deg, #2d4a7a, #5b7fa6); padding: 80px 60px; text-align: center; }
  body.pg-company .join h2 { font-size: 36px; font-weight: 700; color: #fff; margin-bottom: 14px; }
  body.pg-company .join p { font-size: 17px; color: #b8d8f4; margin-bottom: 36px; max-width: 520px; margin-left: auto; margin-right: auto; }
  body.pg-company .join-btn { display: inline-block; background: var(--coral); color: #fff; padding: 14px 36px; border-radius: 6px; font-size: 14px; font-weight: 600; transition: background .2s; }
  body.pg-company .join-btn:hover { background: var(--coral-hover); }

/* contact-us.html */
  body.pg-contact-us h1, body.pg-contact-us h2, body.pg-contact-us h3, body.pg-contact-us h4 { font-family: 'Inter', sans-serif; }
  body.pg-contact-us .contact-wrap { display: flex; flex-direction: row; align-items: flex-start; gap: 64px; max-width: 1060px; margin: 0 auto; }
  body.pg-contact-us .contact-panel { flex: 1; }
  body.pg-contact-us .contact-panel-customers { flex: 0 0 25%; max-width: 25%; display: flex; flex-direction: column; gap: 32px; }
  body.pg-contact-us .hq-card > a { display: block; margin-top: 16px; }
  body.pg-contact-us .map-img { width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--border); display: block; margin-bottom: 16px; }
  body.pg-contact-us .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  body.pg-contact-us .form-group { margin-bottom: 18px; }
  body.pg-contact-us .form-group.full { grid-column: 1 / -1; }
  body.pg-contact-us .form-group label { display: block; font-size: 13px; font-weight: 600; color: var(--text-mid); margin-bottom: 6px; }
  body.pg-contact-us .form-group label .req { color: #e0503c; margin-left: 2px; }
  body.pg-contact-us .form-group input, body.pg-contact-us .form-group select, body.pg-contact-us .form-group textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--border); border-radius: 8px; font-family: 'DM Sans', sans-serif; font-size: 14px; color: var(--text-dark); background: #fff; }
  body.pg-contact-us .form-group select { cursor: pointer; }
  body.pg-contact-us .form-group textarea { resize: vertical; min-height: 100px; }
  body.pg-contact-us .form-group input:focus, body.pg-contact-us .form-group select:focus, body.pg-contact-us .form-group textarea:focus { border-color: var(--mid-blue); }
  body.pg-contact-us .form-note { font-size: 12px; color: var(--text-light); margin-bottom: 14px; }
  body.pg-contact-us .form-note .req { color: #e0503c; font-weight: 700; }
  body.pg-contact-us .form-group input.error, body.pg-contact-us .form-group textarea.error { border-color: #e0503c; box-shadow: 0 0 0 3px rgba(224,80,60,.1); }
  body.pg-contact-us .field-error { display: none; color: #b8321f; font-size: 13px; margin-top: 6px; }
  body.pg-contact-us .info-card p a { color: var(--mid-blue); text-decoration: underline; text-underline-offset: 2px; }
  body.pg-contact-us .form-submit { display: inline-flex; align-items: center; gap: 8px; background: var(--coral); color: #fff; padding: 15px 36px; border-radius: 6px; font-size: 14px; font-weight: 600; border: none; cursor: pointer; transition: background .2s, transform .2s, box-shadow .2s; box-shadow: 0 4px 14px rgba(232,112,90,.25); }
  body.pg-contact-us .form-submit:hover { background: var(--coral-hover); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(232,112,90,.35); }
  body.pg-contact-us .form-submit:disabled { cursor: default; opacity: .7; transform: none; box-shadow: none; }
  body.pg-contact-us .spinner { display: none; width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: pg-contact-us-spin .7s linear infinite; }
  @keyframes pg-contact-us-spin { to { transform: rotate(360deg); } }
  body.pg-contact-us .alert { margin: 18px 0 0; max-width: none; }
  body.pg-contact-us .info-card { background: var(--bg-gray); border: 1px solid var(--border); border-radius: 14px; padding: 32px; }
  body.pg-contact-us .contact-panel-customers .info-card { background: #fff; }
  body.pg-contact-us .info-icon { width: 48px; height: 48px; background: var(--pale-blue); border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 22px; color: var(--mid-blue); margin-bottom: 16px; }
  body.pg-contact-us .info-card h2 { font-size: 18px; font-weight: 700; color: var(--text-dark); margin-bottom: 8px; }
  body.pg-contact-us .contact-panel h2 + p { font-size: 13px; color: var(--text-mid); margin-bottom: 6px; }
  body.pg-contact-us .info-card p { font-size: 13px; color: var(--text-mid); line-height: 1.7; margin-bottom: 10px; }
  body.pg-contact-us .info-card .alert p { margin-bottom: 0; }

/* equipment-tracking.html */
  body.pg-equipment-tracking h1, body.pg-equipment-tracking h2, body.pg-equipment-tracking h3, body.pg-equipment-tracking h4 { font-family: 'Inter', sans-serif; }
  body.pg-equipment-tracking .hero { background: linear-gradient(150deg, #0d1b2e 0%, #2d4a7a 55%, #5b7fa6 100%); padding: 80px 60px 72px; position: relative; overflow: hidden; }
  body.pg-equipment-tracking .hero-inner { max-width: 920px; margin: 0 auto; text-align: center; }
  body.pg-equipment-tracking .section-inner { max-width: 1080px; margin: 0 auto; }
  body.pg-equipment-tracking .center { text-align: center; max-width: 640px; margin-left: auto; margin-right: auto; }
  body.pg-equipment-tracking .how-section { background: var(--bg-gray); }
  body.pg-equipment-tracking .how-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 48px; }
  body.pg-equipment-tracking .how-step { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 28px; position: relative; }
  body.pg-equipment-tracking .how-num { display: flex; align-items: center; gap: 8px; font-family: 'Inter Tight', sans-serif; font-size: 12px; font-weight: 700; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
  body.pg-equipment-tracking .how-num-icon { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; flex-shrink: 0; background: var(--pale-blue); color: var(--mid-blue); border-radius: 50%; }
  body.pg-equipment-tracking .how-num-icon i { width: 12px; height: 12px; }
  body.pg-equipment-tracking .how-step h3 { font-size: 16px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }
  body.pg-equipment-tracking .how-step p { font-size: 13px; color: var(--text-mid); line-height: 1.7; }
  body.pg-equipment-tracking .stake-section { background: #fff; }
  body.pg-equipment-tracking .stake-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 48px; }
  body.pg-equipment-tracking .stake-card { background: var(--bg-gray); border-radius: 14px; padding: 28px; }
  body.pg-equipment-tracking .stake-label { font-family: 'Inter Tight', sans-serif; font-size: 12px; font-weight: 700; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
  body.pg-equipment-tracking .stake-card h3 { font-size: 16px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; line-height: 1.35; }
  body.pg-equipment-tracking .stake-card p { font-size: 13px; color: var(--text-mid); line-height: 1.7; }
  body.pg-equipment-tracking .wp-section { background: var(--bg-gray); padding: 64px 60px; }
  body.pg-equipment-tracking .wp-section :focus-visible { outline-color: var(--text-dark); }
  body.pg-equipment-tracking .wp-inner { max-width: 900px; margin: 0 auto; display: flex; align-items: flex-start; gap: 48px; }
  body.pg-equipment-tracking .wp-text { flex: 1.3; }
  body.pg-equipment-tracking .wp-stat-label { font-size: 14px; color: var(--text-mid); margin-bottom: 24px; }
  body.pg-equipment-tracking .wp-text h3 { font-size: 24px; font-weight: 700; color: var(--text-dark); line-height: 1.4; margin-bottom: 16px; }
  body.pg-equipment-tracking .wp-text p { font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-bottom: 24px; }
  body.pg-equipment-tracking .wp-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--coral); color: #fff; padding: 14px 28px; border-radius: 8px; font-size: 14px; font-weight: 600; transition: background .2s; }
  body.pg-equipment-tracking .wp-btn:hover { background: var(--coral-hover); }
  body.pg-equipment-tracking .cta-band { background: var(--dark-blue); padding: 64px 60px; text-align: center; }
  body.pg-equipment-tracking .cta-band h2 { font-family: 'Inter', sans-serif; font-size: 30px; font-weight: 700; color: #fff; margin-bottom: 12px; }
  body.pg-equipment-tracking .cta-band p { font-size: 15px; color: #90bde0; margin-bottom: 28px; }
  body.pg-equipment-tracking .cta-band .alert p { font-size: 13px; margin-bottom: 0; }
  body.pg-equipment-tracking .alert-success { background: rgba(39,174,96,.12); border: 1px solid rgba(39,174,96,.35); border-left: 3px solid #27ae60; }
  body.pg-equipment-tracking .alert-success h3 { color: #6fcf97; }
  body.pg-equipment-tracking .alert-success p { color: #b8d8f4; }
  body.pg-equipment-tracking .alert-error { background: rgba(224,80,60,.12); border: 1px solid rgba(224,80,60,.35); border-left: 3px solid #e0503c; }
  body.pg-equipment-tracking .alert-error h3 { color: #ffd9d0; }
  body.pg-equipment-tracking .alert-error p { color: #b8d8f4; }
  body.pg-equipment-tracking .cta-form input { padding: 13px 18px; border-radius: 6px; border: none; font-size: 16px; width: 100%; max-width: 260px; font-family: 'DM Sans', sans-serif; }
  body.pg-equipment-tracking .cta-form button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--coral); color: #fff; padding: 13px 28px; border-radius: 6px; font-size: 14px; font-weight: 600; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; transition: background .2s; }
  body.pg-equipment-tracking .spinner { display: none; width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: pg-equipment-tracking-spin .7s linear infinite; }
  @keyframes pg-equipment-tracking-spin { to { transform: rotate(360deg); } }
  body.pg-equipment-tracking footer { background: var(--dark-blue); padding: 40px 60px; border-top: 1px solid rgba(255,255,255,.08); }
  body.pg-equipment-tracking .footer-inner { display: flex; justify-content: center; align-items: center; gap: 20px; max-width: 1080px; margin: 0 auto; }

/* index.html */
  body.pg-index { --section-py: 96px; }
  body.pg-index img { display: block; max-width: 100%; }
  body.pg-index .hero { position:relative; background: linear-gradient(150deg, #0d1b2e 0%, #2d4a7a 55%, #5b7fa6 100%); padding: 96px 60px 88px; display: flex; align-items: flex-start; gap: 80px; min-height: 560px; text-align: left; }
  body.pg-index .hero-text { flex: 1.2; max-width: 580px; min-width: 0; }
  body.pg-index .hero .eyebrow { color: #fff; }
  body.pg-index .hero h1 em { color: #5bc2f4; }
  body.pg-index .hero h1 { font-family: 'Inter', sans-serif; font-size: 52px; color: #fff; line-height: 1.15; margin: 0 0 22px; max-width: none; }
  body.pg-index .hero p { font-size: 17px; color: #b8d8f4; line-height: 1.75; margin: 0 0 20px; max-width: 480px; }
  body.pg-index .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
  body.pg-index .hero-cta, body.pg-index .hero-link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; background: var(--coral); color: #fff; border: 0; cursor: pointer; transition: background .2s, color .2s; }
  body.pg-index .hero-cta:hover, body.pg-index .hero-link:hover { background: var(--coral-hover); }
  body.pg-index .hero-video { position: relative; width: 100%; aspect-ratio: 576 / 360; border-radius: 10px; overflow: hidden; box-shadow: 0 12px 32px rgba(0,0,0,.25); grid-column: 1 / -1; display: none; }
  body.pg-index .hero-video.is-open { display: block; }
  body.pg-index .hero-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
  body.pg-index .hero-stats { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  body.pg-index .stat-card { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.15); border-radius: 12px; padding: 24px 20px; }
  body.pg-index .stat-num { font-family: 'Inter', sans-serif; font-size: clamp(28px, 5vw, 40px); color: #5bc2f4; line-height: 1; margin-bottom: 8px; }
  body.pg-index .stat-label { font-size: 13px; color: #b8d8f4; line-height: 1.5; }
  body.pg-index .section-inner { max-width: 1100px; margin: 0 auto; }
  body.pg-index .section-eyebrow { font-size: 12px; font-weight: 600; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .12em; margin-bottom: 10px; }
  body.pg-index .section-title { font-family: 'Inter', sans-serif; font-size: 36px; color: var(--text-dark); line-height: 1.25; margin-bottom: 12px; }
  body.pg-index .section-sub { font-size: 16px; color: var(--text-mid); line-height: 1.75; margin-bottom: 48px; max-width: 640px; }

@media (max-width: 1028px) {
  body.pg-index .hero h1 { font-size: clamp(28px, 4vw, 52px); }
  body.pg-index .section-title { font-size: clamp(24px, 3vw, 36px); }
  body.pg-index .equip-grid { justify-content: flex-start; max-width: calc(120px * 2 + 10px); margin: 0; }
}
  body.pg-index .section-sub.center { text-align: center; max-width: 640px; margin-left: auto; margin-right: auto; }
  body.pg-index .center-head { text-align: center; }
  body.pg-index .solve { background: var(--bg-gray); }
  body.pg-index .solve-inner { max-width: 1060px; margin: 0 auto; }
  body.pg-index .solve-head { text-align: center; margin-bottom: 56px; }
  body.pg-index .solve-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
  body.pg-index .solve-card { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 28px 20px; position: relative; overflow: hidden; }
  body.pg-index .solve-label { font-size: 13px; font-weight: 700; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 10px; }
  body.pg-index .solve-card ul { list-style: disc; padding-left: 18px; margin: 0; font-size: 13px; color: var(--text-mid); line-height: 1.8; }
  body.pg-index .problem { background: var(--bg-gray); }
  body.pg-index .problem-inner { display: flex; gap: 40px; align-items: flex-start; max-width: 1100px; margin: 0 auto; }
  body.pg-index .problem-text { flex: 1 1 auto; min-width: 300px; }
  body.pg-index .problem-items { display: flex; flex-direction: column; gap: 18px; margin-top: 24px; }
  body.pg-index .problem-item { display: flex; gap: 14px; align-items: center; }
  body.pg-index .problem-icon { width: 36px; height: 36px; background: #d4e1ef; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 18px; color: var(--mid-blue); }
  body.pg-index .problem-item p { font-size: 14px; color: var(--text-mid); line-height: 1.65; }
  body.pg-index .equip-grid { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
  body.pg-index .platform { background: var(--white); }
  body.pg-index .platform-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  body.pg-index .platform-card { background: #edf1f7; border: 1px solid #c5d3e0; border-radius: 14px; padding: 32px 28px; }
  body.pg-index .platform-card h3 { font-size: 17px; font-weight: 600; color: var(--text-dark); margin-bottom: 10px; }
  body.pg-index .platform-card p { font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-bottom: 18px; }
  body.pg-index .platform-card a { font-size: 13px; color: var(--mid-blue); font-weight: 600; }
  body.pg-index .platform-card a:hover { text-decoration: underline; }
  body.pg-index .results { background: #132540; }
  body.pg-index .results .section-eyebrow { color: var(--light-blue); }
  body.pg-index .results .section-title { color: #fff; }
  body.pg-index .results .section-sub { color: #8fa8cc; }
  body.pg-index .result-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  body.pg-index .result-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; padding: 32px 24px; text-align: center; display: flex; flex-direction: column; }
  body.pg-index .result-label { font-size: 12px; font-weight: 600; color: #b8d8f4; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; }
  body.pg-index .result-pct { font-family: 'Inter', sans-serif; font-size: clamp(30px, 4vw, 42px); font-weight: 700; color: #fff; line-height: 1.05; margin-bottom: 10px; }
  body.pg-index .result-desc { font-size: 14px; color: #b8d8f4; line-height: 1.6; margin-bottom: 18px; }
  body.pg-index .result-tag { margin-top: auto; font-size: 13px; font-weight: 600; color: var(--light-blue); }
  body.pg-index .proof-row { margin-top: 40px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.1); display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
  body.pg-index .press-quote { max-width: 620px; }
  body.pg-index .press-quote blockquote { font-family: 'Inter', sans-serif; font-size: 20px; font-weight: 600; color: #fff; line-height: 1.4; margin-bottom: 8px; }
  body.pg-index .press-quote figcaption a, body.pg-index .proof-links a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; color: #b8d8f4; text-decoration: underline; text-decoration-color: rgba(184,216,244,.4); text-underline-offset: 3px; }
  body.pg-index .press-quote figcaption a:hover, body.pg-index .proof-links a:hover { color: #fff; text-decoration-color: #fff; }
  body.pg-index .press-quote figcaption i, body.pg-index .proof-links i { width: 15px; height: 15px; }
  body.pg-index .service-lines { background: #fff; }
  body.pg-index .sl-callout { text-align: center; font-size: 18px; font-weight: 600; color: var(--text-dark); margin-top: 36px; line-height: 1.6; }
  body.pg-index .cta-band, body.pg-capital-planning .cta-band { background: var(--dark-blue); padding: var(--section-py) 60px; text-align: center; scroll-margin-top: 80px; }
  body.pg-index .cta-band h2, body.pg-index .cta-band p, body.pg-index .cta-band .cta-wrap,
  body.pg-capital-planning .cta-band h2, body.pg-capital-planning .cta-band p, body.pg-capital-planning .cta-band .cta-wrap { max-width: 1100px; margin-left: auto; margin-right: auto; }
  body.pg-index .cta-band h2, body.pg-capital-planning .cta-band h2 { font-family: 'Inter', sans-serif; font-size: clamp(28px, 5vw, 40px); color: #fff; margin-bottom: 12px; }
  body.pg-index .cta-band p, body.pg-capital-planning .cta-band p { font-size: 17px; color: #90bde0; margin-bottom: 36px; }
  body.pg-index .cta-band .alert p, body.pg-capital-planning .cta-band .alert p { font-size: 13px; margin-bottom: 0; }
  body.pg-index .alert-success, body.pg-capital-planning .alert-success { background: rgba(39,174,96,.12); border: 1px solid rgba(39,174,96,.35); border-left: 3px solid #27ae60; }
  body.pg-index .alert-success h3, body.pg-capital-planning .alert-success h3 { color: #6fcf97; }
  body.pg-index .alert-success p, body.pg-capital-planning .alert-success p { color: #b8d8f4; }
  body.pg-index .alert-error, body.pg-capital-planning .alert-error { background: rgba(224,80,60,.12); border: 1px solid rgba(224,80,60,.35); border-left: 3px solid #e0503c; }
  body.pg-index .alert-error h3, body.pg-capital-planning .alert-error h3 { color: #ffd9d0; }
  body.pg-index .alert-error p, body.pg-capital-planning .alert-error p { color: #b8d8f4; }
  body.pg-index .cta-form input, body.pg-capital-planning .cta-form input { padding: 14px 20px; border-radius: 6px; border: none; font-size: 16px; width: 100%; max-width: 300px; font-family: 'DM Sans', sans-serif; outline: none; }
  body.pg-index .cta-form input:focus, body.pg-capital-planning .cta-form input:focus { box-shadow: 0 0 0 3px rgba(91,194,244,.4); }
  body.pg-index .cta-form input.error:focus, body.pg-capital-planning .cta-form input.error:focus { box-shadow: 0 0 0 3px rgba(224,80,60,.4); }
  body.pg-index .cta-form button, body.pg-capital-planning .cta-form button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--coral); color: #fff; padding: 14px 28px; border-radius: 6px; font-size: 14px; font-weight: 600; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; transition: background .2s; }
  body.pg-index .spinner, body.pg-capital-planning .spinner { display: none; width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: pg-index-spin .7s linear infinite; }
  @keyframes pg-index-spin { to { transform: rotate(360deg); } }
  body.pg-index footer { background: #0d1b2e; padding: 40px 60px; }
  body.pg-index .footer-inner { display: flex; justify-content: center; align-items: center; gap: 20px; max-width: 1100px; margin: 0 auto; }
  body.pg-index .eq-card { flex: 0 0 120px; width: 120px; border-radius: 12px; overflow: hidden; border: 1px solid #d4e1ef; position: relative; background: #fff; }
  body.pg-index .eq-img-wrap { width: 100%; height: 220px; background: transparent; display: flex; align-items: flex-start; justify-content: center; overflow: hidden; }
  body.pg-index .eq-img-wrap img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
  body.pg-index .eq-overlay { background: transparent; padding: 16px 13px; }
  body.pg-index .eq-name { font-family: 'Inter Tight', sans-serif; font-size: 12px; font-weight: 700; color: #7a4a42; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 5px; }
  body.pg-index .eq-cost { font-family: 'Inter Tight', sans-serif; font-size: 20px; font-weight: 700; color: #1a2b4a; line-height: 1; margin-bottom: 4px; }
  body.pg-index .eq-cases { font-family: 'Inter Tight', sans-serif; font-size: 13px; color: #7a4a42; border-top: 0.5px solid #e8b4aa; padding-top: 8px; margin-top: 8px; }

/* index.html: scroll-linked layout; --p is set by site.js on [data-scroll]. */
  body.pg-index .split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; max-width: 1100px; margin: 0 auto; }
  body.pg-index .split-fig { min-width: 0; }
  html.js body.pg-index .reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
  html.js body.pg-index .reveal[data-reveal="left"] { transform: translateX(-28px); }
  html.js body.pg-index .reveal.is-in { opacity: 1; transform: none; }
  body.pg-index [data-scroll] { --p: 0; }
  body.pg-index .drift { transform: translateY(calc((.5 - var(--p)) * var(--drift, 40px))); will-change: transform; }
  body.pg-index .problem .eq-card:nth-child(odd) { --drift: 22px; }
  body.pg-index .problem .eq-card:nth-child(even) { --drift: -22px; }

/* index.html: platform header */
body.pg-index .platform .section-title { max-width: 760px; margin-left: auto; margin-right: auto; text-wrap: balance; }

/* index.html: platform cards follow one laser through tracking, moving, and planning */
body.pg-index .platform-card { display: flex; flex-direction: column; }
body.pg-index .platform-card a { margin-top: auto; align-self: flex-start; }
body.pg-index .solve { scroll-margin-top: 80px; }
body.pg-index .pc-vis { display: flex; flex-direction: column; height: 132px; margin-bottom: 22px; padding: 12px 14px; background: #fff; border: 1px solid var(--border); border-radius: 10px; }
body.pg-index .pc-cap { font-size: 11px; font-weight: 600; color: var(--text-light); text-transform: uppercase; letter-spacing: .08em; }
body.pg-index .pc-body { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 8px; list-style: none; }

body.pg-index .pc-track li { display: grid; grid-template-columns: 40px 1fr 52px; align-items: center; gap: 10px; font-size: 12px; color: var(--text-mid); }
body.pg-index .pc-bar { height: 8px; background: var(--bg-gray); border-radius: 4px; overflow: hidden; }
body.pg-index .pc-bar span { display: block; height: 100%; background: var(--mid-blue); border-radius: 4px; transform-origin: left center; transform: scaleX(var(--w)); }
body.pg-index .pc-track .is-idle .pc-bar span { background: var(--light-blue); }
body.pg-index .pc-tag { justify-self: start; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 600; }
body.pg-index .pc-track .is-idle .pc-tag { background: var(--mid-blue); color: #fff; }

body.pg-index .pc-route { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; color: var(--text-dark); }
body.pg-index .pc-stop { display: inline-flex; align-items: center; gap: 6px; }
body.pg-index .pc-stop::before { content: ''; width: 8px; height: 8px; border-radius: 50%; border: 2px solid var(--light-blue); }
body.pg-index .pc-stop--to { flex-direction: row-reverse; }
body.pg-index .pc-stop--to::before { background: var(--mid-blue); border-color: var(--mid-blue); }
body.pg-index .pc-line { position: relative; flex: 1; height: 28px; background: linear-gradient(90deg, var(--light-blue) 50%, transparent 0) left center / 8px 2px repeat-x; }
body.pg-index .pc-truck { position: absolute; top: 0; left: calc(100% - 28px); width: 28px; height: 28px; border-radius: 50%; background: var(--mid-blue); color: #fff; display: flex; align-items: center; justify-content: center; }
body.pg-index .pc-truck svg, body.pg-index .pc-mark svg { width: 14px; height: 14px; }
body.pg-index .pc-note { font-size: 12px; color: var(--text-mid); }

body.pg-index .pc-opt { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; font-weight: 600; color: var(--text-light); }
body.pg-index .pc-mark { width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--bg-gray); }
body.pg-index .pc-opt--buy { text-decoration: line-through; }
body.pg-index .pc-opt--share { border-color: var(--mid-blue); background: var(--pale-blue); color: var(--mid-blue); }
body.pg-index .pc-opt--share .pc-mark { background: var(--mid-blue); color: #fff; }

/* Start states only apply with JS; each card plays once its own reveal adds .is-in. */
html.js body.pg-index .platform-card .pc-bar span { transform: scaleX(0); transition: transform .9s var(--ease-out) .5s; }
html.js body.pg-index .platform-card .pc-tag { opacity: 0; transition: opacity .4s var(--ease-out) 1.2s; }
html.js body.pg-index .platform-card .pc-truck { left: 0; transition: left 1.4s var(--ease-out) .7s; }
html.js body.pg-index .platform-card .pc-note { opacity: 0; transition: opacity .4s var(--ease-out) 1.9s; }
html.js body.pg-index .platform-card .pc-opt { transition: color .4s var(--ease-out) 1.2s, background-color .4s var(--ease-out) 1.2s, border-color .4s var(--ease-out) 1.2s, text-decoration-color .4s var(--ease-out) 1.2s; }
html.js body.pg-index .platform-card .pc-mark { transition: background-color .4s var(--ease-out) 1.2s, color .4s var(--ease-out) 1.2s; }
html.js body.pg-index .platform-card:not(.is-in) .pc-opt { text-decoration-color: transparent; border-color: var(--border); background: #fff; color: var(--text-mid); }
html.js body.pg-index .platform-card:not(.is-in) .pc-mark { background: var(--bg-gray); color: transparent; }
html.js body.pg-index .platform-card.is-in .pc-bar span { transform: scaleX(var(--w)); }
html.js body.pg-index .platform-card.is-in .pc-tag, html.js body.pg-index .platform-card.is-in .pc-note { opacity: 1; }
html.js body.pg-index .platform-card.is-in .pc-truck { left: calc(100% - 28px); }
@media (prefers-reduced-motion: reduce) {
  html.js body.pg-index .platform-card .pc-bar span, html.js body.pg-index .platform-card .pc-tag, html.js body.pg-index .platform-card .pc-truck, html.js body.pg-index .platform-card .pc-note, html.js body.pg-index .platform-card .pc-opt, html.js body.pg-index .platform-card .pc-mark { transition: none; }
}

/* index.html: logistics step rail */
body.pg-index .solve .solve-grid { list-style: none; }
body.pg-index .solve .lg-step { position: relative; display: flex; flex-direction: column; gap: 20px; }
body.pg-index .solve .lg-step .solve-card { flex: 1; padding: 24px 16px; }
body.pg-index .solve .lg-node { position: relative; z-index: 1; width: 48px; height: 48px; margin: 0 auto; flex-shrink: 0; border-radius: 50%; background: #fff; border: 2px solid var(--border); color: var(--mid-blue); display: flex; align-items: center; justify-content: center; transition: background-color .3s var(--ease-out), border-color .3s var(--ease-out), color .3s var(--ease-out), box-shadow .35s var(--ease-out); }
body.pg-index .solve .lg-node svg { width: 20px; height: 20px; }
body.pg-index .solve .lg-step.is-lit .lg-node { background: var(--mid-blue); border-color: var(--mid-blue); color: #fff; }
body.pg-index .solve .lg-step.is-active .lg-node { box-shadow: 0 0 0 6px var(--pale-blue); }
/* Connector runs from this node's center to the next node's center; --f fills it during the leg. */
body.pg-index .solve .lg-step:not(:last-child)::before, body.pg-index .solve .lg-step:not(:last-child)::after { content: ''; position: absolute; top: 23px; left: 50%; width: calc(100% + 16px); height: 2px; background: var(--pale-blue); }
body.pg-index .solve .lg-step:not(:last-child)::after { background: var(--mid-blue); transform: scaleX(var(--f, 0)); transform-origin: left center; }

html.js body.pg-index .solve .solve-card { transition: opacity .8s var(--ease-out), transform .8s var(--ease-out), translate .35s var(--ease-out), border-color .3s var(--ease-out), box-shadow .35s var(--ease-out); }
body.pg-index .solve .lg-bar { position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--mid-blue); border-radius: 14px 14px 0 0; transform: scaleX(0); transform-origin: left center; transition: transform .5s var(--ease-out); }
body.pg-index .solve .solve-card.is-active .lg-bar, body.pg-index .solve .solve-card.is-done .lg-bar { transform: scaleX(1); }
body.pg-index .solve .solve-card.is-active { border-color: var(--mid-blue); box-shadow: 0 10px 24px rgba(45,74,122,.15); translate: 0 -4px; }
body.pg-index .solve .solve-card.is-done { border-color: var(--light-blue); }

/* Five-up columns get too narrow for the uppercase labels below ~1100px, so the rail turns vertical. */
@media (max-width: 1099px) {
  body.pg-index .solve .solve-grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  body.pg-index .solve .lg-step { flex-direction: row; gap: 16px; }
  body.pg-index .solve .lg-step .solve-card { padding: 24px 20px; }
  body.pg-index .solve .lg-node { margin: 12px 0 0; }
  body.pg-index .solve .lg-step:not(:last-child)::before, body.pg-index .solve .lg-step:not(:last-child)::after { top: 36px; left: 23px; width: 2px; height: calc(100% + 16px); }
  body.pg-index .solve .lg-step:not(:last-child)::after { transform: scaleY(var(--f, 0)); transform-origin: center top; }
}

/* index.html: service line explorer */
body.pg-index .sl-explorer { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 32px; align-items: start; }
body.pg-index .sl-rail { display: grid; grid-template-columns: 1fr; gap: 8px; }
body.pg-index .sl-specialty { font: inherit; font-size: 14px; font-weight: 600; text-align: left; min-height: 44px; padding: 10px 14px; border-radius: 8px; border: 1px solid var(--border); background: #fff; color: var(--text-dark); cursor: pointer; transition: background-color .2s, border-color .2s, color .2s; }
body.pg-index .sl-specialty:hover { background: var(--bg-gray); border-color: var(--light-blue); }
body.pg-index .sl-specialty[aria-pressed="true"] { background: var(--mid-blue); border-color: var(--mid-blue); color: #fff; }

body.pg-index .sl-panel { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 28px; }
/* The unit glides between the midpoints of the two legs; --stop flips 0/1 on every selection. */
body.pg-index .sl-route { position: relative; display: flex; justify-content: space-between; padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--bg-gray); }
body.pg-index .sl-route::before { content: ''; position: absolute; top: 18px; left: 18px; right: 18px; height: 2px; background: linear-gradient(90deg, var(--light-blue) 50%, transparent 0) left center / 8px 2px repeat-x; }
body.pg-index .sl-site { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; color: var(--text-mid); }
body.pg-index .sl-site:first-child { align-items: flex-start; }
body.pg-index .sl-site:nth-child(3) { align-items: flex-end; }
body.pg-index .sl-site-icon { width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 2px solid var(--pale-blue); color: var(--mid-blue); display: flex; align-items: center; justify-content: center; }
body.pg-index .sl-site-icon svg, body.pg-index .sl-unit svg { width: 16px; height: 16px; flex-shrink: 0; }
body.pg-index .sl-unit { --stop: 0; position: absolute; top: 4px; left: calc(25% + var(--stop) * 50%); translate: -50% 0; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: 14px; background: var(--mid-blue); color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; transition: left .7s var(--ease-out); }

body.pg-index .sl-panel-title { font-family: 'Inter', sans-serif; font-size: 20px; font-weight: 700; color: var(--text-dark); margin-bottom: 12px; display: flex; align-items: baseline; gap: calc(10px + 2em); flex-wrap: wrap; }
body.pg-index .sl-count { font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 500; color: var(--text-light); }
body.pg-index .sl-panel-content:not([hidden]) { animation: rise-in .3s var(--ease-out); }
body.pg-index .sl-eq-list { list-style: none; }
body.pg-index .sl-eq-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; min-height: 44px; padding: 6px 0; border-top: 1px solid var(--bg-gray); font-size: 15px; color: var(--text-mid); }
body.pg-index .sl-eq-list li:first-child { border-top: 0; }
body.pg-index .sl-tags { display: flex; gap: 6px; flex-wrap: wrap; }
body.pg-index .sl-tag { position: relative; font: inherit; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 12px; border: 1px solid transparent; background: var(--pale-blue); color: var(--mid-blue); cursor: pointer; transition: background-color .2s, border-color .2s; }
body.pg-index .sl-tag::after { content: ''; position: absolute; inset: -10px -2px; }
body.pg-index .sl-tag:hover { background: #bfd2e6; border-color: var(--light-blue); }
body.pg-index .sl-panel-note { margin-top: 16px; font-size: 13px; color: var(--text-light); line-height: 1.6; }

@media (max-width: 900px) {
  body.pg-index .sl-explorer { grid-template-columns: 1fr; gap: 20px; }
  body.pg-index .sl-rail { grid-template-columns: repeat(3, 1fr); }
  body.pg-index .sl-panel { padding: 20px; }
}
@media (max-width: 560px) {
  body.pg-index .sl-rail { grid-template-columns: 1fr 1fr; }
  body.pg-index .sl-unit { padding: 0; width: 28px; justify-content: center; }
  body.pg-index .sl-unit-name { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.pg-index .sl-unit { transition: none; }
  body.pg-index .sl-panel-content:not([hidden]) { animation: none; }
}

/* privacy-terms.html */
  body.pg-privacy-terms h1, body.pg-privacy-terms h2, body.pg-privacy-terms h3, body.pg-privacy-terms h4 { font-family: 'Inter', sans-serif; }
  body.pg-privacy-terms .hero .updated { font-size: 13px; color: #7bbcf5; margin-top: 20px; }
  body.pg-privacy-terms .legal-wrap { max-width: 820px; margin: 0 auto; padding: 64px 60px 96px; }
  body.pg-privacy-terms .legal-note { background: var(--bg-gray); border: 1px solid var(--border); border-radius: 12px; padding: 22px 26px; margin-bottom: 56px; }
  body.pg-privacy-terms .legal-note h2 { font-size: 13px; font-weight: 700; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 12px; }
  body.pg-privacy-terms .legal-note p { font-size: 14px; color: var(--text-mid); line-height: 1.7; }
  body.pg-privacy-terms .legal-section { margin-bottom: 44px; scroll-margin-top: 84px; }
  body.pg-privacy-terms .legal-section > h2 { font-size: 22px; font-weight: 700; color: var(--text-dark); padding-bottom: 12px; margin-bottom: 20px; border-bottom: 2px solid var(--pale-blue); }
  body.pg-privacy-terms .legal-section .lede { font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-bottom: 24px; }
  body.pg-privacy-terms .clause { margin-bottom: 22px; scroll-margin-top: 84px; }
  body.pg-privacy-terms .clause h3 { font-size: 15px; font-weight: 700; color: var(--dark-blue); margin-bottom: 8px; }
  body.pg-privacy-terms .clause p { font-size: 13.5px; color: var(--text-mid); line-height: 1.7; margin-bottom: 8px; }
  body.pg-privacy-terms .clause ul { margin: 8px 0 8px 20px; }
  body.pg-privacy-terms .clause li { font-size: 13.5px; color: var(--text-mid); line-height: 1.7; margin-bottom: 5px; }
  body.pg-privacy-terms .clause li strong { color: var(--text-dark); }
  body.pg-privacy-terms .highlight-box { background: var(--bg-gray); border: 1px solid var(--border); border-radius: 12px; padding: 22px 26px; margin: 20px 0; }
  body.pg-privacy-terms .highlight-box h4 { font-size: 13px; font-weight: 700; color: var(--mid-blue); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 12px; }
  body.pg-privacy-terms .highlight-box ul { margin: 0 0 0 18px; }
  body.pg-privacy-terms .highlight-box li { font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-bottom: 6px; }
  body.pg-privacy-terms .contact-card { background: var(--dark-blue); border-radius: 14px; padding: 40px; color: #fff; }
  body.pg-privacy-terms .contact-card h2 { font-size: 26px; font-weight: 700; margin-bottom: 12px; }
  body.pg-privacy-terms .contact-card p { font-size: 15px; color: #b8d8f4; line-height: 1.75; margin-bottom: 20px; }
  body.pg-privacy-terms .contact-card .detail { font-size: 14px; color: #fff; margin-bottom: 6px; }
  body.pg-privacy-terms .contact-card .detail span { color: #7bbcf5; font-weight: 600; }

/* ---- Responsive (max-width: 900px) ---- */
@media (max-width: 900px) {
  .wp-inner { flex-direction: column; text-align: center; }
  nav { padding: 0 20px; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 14px; margin-left: auto; font: inherit; font-size: 14px; font-weight: 600; color: var(--text-dark); background: #fff; border: 1px solid var(--border); border-radius: 8px; cursor: pointer; }
  .nav-links { display: none; position: absolute; top: 64px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 8px 20px 16px; background: #fff; border-bottom: 1px solid var(--border); box-shadow: 0 12px 24px -12px rgba(13,27,46,.25); }
  nav.is-open .nav-links { display: flex; animation: menu-drop .25s var(--ease-out); }
  @keyframes menu-drop { from { opacity: 0; transform: translateY(-8px); } }
  .nav-links li.nav-right { margin-left: 0; }
  .nav-links li + li { border-top: 1px solid var(--bg-gray); }
  .nav-links a { display: block; padding: 14px 0; font-size: 16px; }
  .site-header.is-dark .nav-toggle { color: #fff; background: transparent; border-color: rgba(255,255,255,.35); }
  .site-header.is-dark .nav-links { background: var(--brand-blue); border-bottom-color: rgba(255,255,255,.08); }
  .site-header.is-dark .nav-links li + li { border-top-color: rgba(255,255,255,.08); }
  .footer-links { flex-wrap: wrap; justify-content: center; row-gap: 12px; }
  .footer-links a { padding: 14px 6px; }
  .footer-copyright { flex-basis: 100%; text-align: center; }
  .value-card p, .step p, .solve-card ul, .stake-card p, .how-step p, .process-step p, .result-desc, .platform-card p, .problem-item p { font-size: 15px; }
  section { padding: 56px 28px; }
  .hero { padding: 60px 28px; }
  .hero h1 { font-size: 30px; }
  footer { padding: 32px 24px; }

  /* capital-planning.html */
  body.pg-capital-planning .value-grid, body.pg-capital-planning .process-grid { grid-template-columns: 1fr; }
  body.pg-capital-planning .cta-simple { padding: 60px 28px; }
  body.pg-capital-planning .process-step:not(:last-child)::after, body.pg-capital-planning .process-step:not(:last-child)::before { display: none; }

  /* company.html */
  body.pg-company .mission-inner { flex-direction: column; }
  body.pg-company .values-grid { grid-template-columns: 1fr; }
  body.pg-company .team-grid { grid-template-columns: repeat(2, 1fr); }
  body.pg-company .hero-stats { flex-direction: column; }
  body.pg-company .join { padding: 60px 28px; }

  /* contact-us.html */
  body.pg-contact-us .contact-wrap { flex-direction: column; }
  body.pg-contact-us .contact-panel-customers { flex: 1; max-width: none; }
  body.pg-contact-us .form-row { grid-template-columns: 1fr; }
  body.pg-contact-us .contact-panel-customers { order: -1; }
  body.pg-contact-us .form-group input, body.pg-contact-us .form-group select, body.pg-contact-us .form-group textarea { font-size: 16px; }

  /* equipment-tracking.html */
  body.pg-equipment-tracking .how-steps, body.pg-equipment-tracking .stake-grid { grid-template-columns: 1fr; }
  body.pg-equipment-tracking .hero, body.pg-equipment-tracking section { padding: 56px 24px; }
  body.pg-equipment-tracking .cta-form { flex-direction: column; align-items: stretch; }
  body.pg-equipment-tracking .cta-form input, body.pg-equipment-tracking .cta-field { max-width: none; width: 100%; }
  body.pg-equipment-tracking .cta-form button { justify-content: center; min-height: 48px; }
  body.pg-equipment-tracking .wp-inner { flex-direction: column; align-items: stretch; text-align: left; }

  /* index.html */
  body.pg-index { --section-py: 64px; }
  body.pg-capital-planning { --section-py: 64px; }
  body.pg-index .hero { padding: var(--section-py) 28px; }
  body.pg-index .hero-inner { display: block; }
  body.pg-index .hero-video { margin-top: 36px; }
  body.pg-index .hero-proof { grid-template-columns: 1fr 1fr; row-gap: 20px; margin-top: 40px; padding: 20px 4px; }
  body.pg-index .hero-proof li { padding: 0 16px; }
  body.pg-index .hero-proof li:nth-child(3) { border-left: 0; }
  body.pg-index .proof-row { flex-direction: column; gap: 8px; }
  body.pg-index .solve-grid { grid-template-columns: repeat(2, 1fr); }
  body.pg-index .equip-grid { justify-content: flex-start; max-width: calc(120px * 2 + 10px); margin: 0 auto; }
  body.pg-index .cta-form, body.pg-capital-planning .cta-form { flex-direction: column; align-items: stretch; }
  body.pg-index .cta-form input, body.pg-index .cta-field, body.pg-capital-planning .cta-form input, body.pg-capital-planning .cta-field { max-width: none; width: 100%; }
  body.pg-index .cta-form button, body.pg-capital-planning .cta-form button { justify-content: center; min-height: 48px; }
  body.pg-index .platform-card a { display: inline-block; padding: 14px 0; }
  body.pg-index .problem-inner { flex-direction: column; }
  body.pg-index .platform-cards, body.pg-index .result-cards { grid-template-columns: 1fr; }
  body.pg-index .split { grid-template-columns: 1fr; gap: 32px; }
  body.pg-index .split .section-sub { margin-bottom: 24px; }
  body.pg-index .split-fig { max-width: 520px; margin: 0 auto; width: 100%; }
  body.pg-index .drift { transform: none; will-change: auto; }
  body.pg-index section { padding: var(--section-py) 28px; }
  body.pg-index .cta-band, body.pg-capital-planning .cta-band { padding: var(--section-py) 28px; }

  /* privacy-terms.html */
  body.pg-privacy-terms .hero { padding: 56px 24px; }
  body.pg-privacy-terms .legal-wrap { padding: 48px 24px 72px; }
}

@media (max-width: 560px) {
  section, body.pg-index section, .hero, body.pg-index .hero, body.pg-index .cta-band, body.pg-capital-planning .cta-band, body.pg-company .join { padding-left: 20px; padding-right: 20px; }
  body.pg-index .solve-grid, body.pg-index .hero-proof { grid-template-columns: 1fr; }
  body.pg-index .hero-proof li { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; }
  body.pg-index .hero-proof li:first-child { border-top: 0; padding-top: 0; }
  body.pg-index .hero-actions { gap: 16px; }
  body.pg-company .team-grid { grid-template-columns: 1fr; }
  body.pg-index .result-card { padding: 28px 20px; }
}

@media (pointer: coarse) {
  .team-linkedin, .platform-card a, .footer-links a, .info-card p a, .contact-card a { padding-top: 14px; padding-bottom: 14px; }
  body.pg-index .sl-chip[aria-expanded="true"] { background: var(--mid-blue); color: #fff; border-color: var(--mid-blue); }
  body.pg-index .sl-chip[aria-expanded="true"]::after { transform: rotate(225deg); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  .spinner { display: none !important; }
  body.pg-capital-planning .process-step:not(:last-child)::after { transform: translateY(-50%) scaleX(1); }
  body.pg-capital-planning .process-step:not(:last-child)::before { opacity: 1; }
  body.pg-contact-us .form-submit:hover { transform: none; }
  html.js body.pg-index .reveal, html.js body.pg-index .reveal[data-reveal] { opacity: 1; transform: none; }
  body.pg-index .drift { transform: none; will-change: auto; }
}
