/* Shared presentation for all public pages, loaded after component styles. */
:root{
  --font-ui:"Segoe UI",Arial,sans-serif;
  --heading-size:clamp(32px,3.6vw,46px);
  --section-size:clamp(27px,2.6vw,34px);
  --navy:#0b2a4e;
  --text:#193750;
  --muted:#425b73;
  --blue:#0966d2;
}
body[data-page]{font-family:var(--font-ui);font-size:16px;line-height:1.7;color:var(--text)}
body[data-page] button,body[data-page] input,body[data-page] select,body[data-page] textarea{font-family:inherit}
body[data-page] main :is(.hero,.page-hero,.product-hero) h1{
  font-size:var(--heading-size);font-weight:700;line-height:1.16;
  letter-spacing:-.025em;color:var(--navy);margin:0 0 20px;text-wrap:balance;
}
body[data-page] main h2{font-size:var(--section-size);font-weight:700;line-height:1.25;letter-spacing:-.02em;color:var(--navy);text-wrap:balance}
body[data-page] main h3{font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.01em;color:var(--navy)}
body[data-page] main p{font-size:16px;line-height:1.75}
body[data-page] main :is(.page-hero,.product-hero) p:not(.eyebrow),
body[data-page] main .hero-text{font-size:17px;line-height:1.75;color:var(--muted);max-width:65ch;margin-bottom:26px}
body[data-page] main :is(.service-card,.home-services-grid,.industry-card,.product-card,.product-feature-grid,.process-cards,.purpose-card,.faq-list,.testimonial-grid) p:not(.eyebrow){font-size:15px;line-height:1.75;color:var(--muted)}
body[data-page] main .eyebrow{font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.1em;color:#1554a2;margin:0 0 12px}
body[data-page] main .text-link{font-size:15px;font-weight:600;color:#075fc9}
body[data-page] main :is(.product-tags,.product-tabs,.career-chips) :is(a,span){font-size:13px;line-height:1.5;font-weight:600}
body[data-page] main :is(.about-points,.tech-grid) small{font-size:13px;line-height:1.6;color:var(--muted)}
body[data-page] main .about-points strong{font-size:15px;line-height:1.5}
body[data-page] main .stats.company-highlights span,
body[data-page] main .result-cards.company-commitments span{font-size:14px;line-height:1.65;color:var(--muted);font-weight:400}
body[data-page] main .stats.company-highlights strong{font-size:18px;line-height:1.4;color:#075fc9}
body[data-page] main .result-cards.company-commitments strong{font-size:21px;line-height:1.35;color:var(--navy)}
body[data-page] main .preview-top small,body[data-page] main .preview-footer{font-size:12px;line-height:1.6;color:var(--muted)}
body[data-page] main .preview-row strong{font-size:14px;line-height:1.5}
body[data-page] main .product-steps h3{font-size:17px}

/* Keep white text on dark feature panels. */
body[data-page] main :is(.why-us,.career-card,.product-cta,.cta-banner,.hero-card) :is(h2,h3){color:#fff}
body[data-page] main :is(.why-us,.career-card,.product-cta,.cta-banner,.hero-card) p:not(.eyebrow){color:#e0ecf8;opacity:1}
body[data-page] main :is(.why-us,.career-card,.product-cta,.cta-banner) .eyebrow{color:#a8d7ff}
body[data-page] main .purpose-card:first-child h3{color:#fff}
body[data-page] main .purpose-card:first-child p{color:#e0ecf8}
body[data-page] main .redesigned-why .feature h3{font-size:18px;line-height:1.4}
body[data-page] main .redesigned-why .feature p{font-size:14px;line-height:1.7}
body[data-page] main .hero-card p{font-size:13px;line-height:1.6}

/* Consistent spacing and layouts that accommodate readable text. */
body[data-page] main .section-pad{padding-block:clamp(48px,6vw,80px)}
body[data-page] main :is(.page-hero,.product-hero){padding-block:clamp(48px,7vw,88px)}
body[data-page] main :is(.page-hero-grid,.about-grid,.results-grid,.careers-grid,.contact-grid,.faq-grid,.product-detail-grid){gap:clamp(28px,4vw,56px)}
body[data-page] main .section-heading{align-items:start;gap:32px;margin-bottom:32px}
body[data-page] main .section-heading h2{margin:0 0 12px}
body[data-page] main .section-heading>p{max-width:55ch}
body[data-page] main :is(.page-hero-grid,.hero-grid,.about-grid,.results-grid,.contact-grid,.faq-grid,.product-detail-grid)>*{min-width:0}
body[data-page] main .process-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
body[data-page] main .process-cards article{min-height:0;padding:26px}
body[data-page] main .process-cards article::after{display:none}
body[data-page] main .expanded-services{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
body[data-page] main .home-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body[data-page] main .page-hero-art img{height:auto;max-height:none;border-radius:22px}
body[data-page] main .contact-info strong{font-size:15px;font-weight:600;line-height:1.65;overflow-wrap:anywhere}
body[data-page] main .contact-info small{font-size:12px;color:var(--muted);line-height:1.5}
body[data-page] main .contact-info>div>span{flex-shrink:0}
body[data-page] main .faq-list summary{font-size:16px;line-height:1.5;font-weight:600;color:var(--navy)}

/* Navigation, actions, and forms use the same font and clear focus states. */
body[data-page] .site-header :is(.main-nav a,.products-toggle){font-size:15px;font-weight:500;line-height:1.45}
body[data-page] .btn{font-family:var(--font-ui);font-size:15px;font-weight:600;line-height:1.4;min-height:46px;padding:12px 22px;letter-spacing:0}
body[data-page] .btn-primary{background:linear-gradient(100deg,#075fc9,#096bdc);color:#fff}
body[data-page] :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #3187df;outline-offset:4px}
body[data-page] :is(#contact-form,#application-form) label{font-size:14px;font-weight:600;line-height:1.5;margin-bottom:16px;color:#334b63}
body[data-page] :is(#contact-form,#application-form) :is(input:not([type="file"]),select,textarea){font-size:16px;line-height:1.5;padding:10px 12px;min-height:46px;height:auto;color:#193750}
body[data-page] :is(#contact-form,#application-form) textarea{min-height:120px}
body[data-page] :is(#contact-form,#application-form) ::placeholder{color:#617286;opacity:1}
body[data-page] .application-note{font-size:14px;line-height:1.65}
body[data-page] .application-heading h2{font-size:clamp(24px,2.6vw,30px);line-height:1.25}
body[data-page] .footer-grid{gap:30px}
body[data-page] .footer-grid>div{min-width:0}
body[data-page] .footer-grid>div:not(:first-child){padding-left:24px}
body[data-page] .footer-grid h3{font-size:16px;font-weight:600;line-height:1.5;color:#fff;margin-bottom:14px}
body[data-page] .footer-grid :is(a,p){font-size:14px;line-height:1.75;color:#e0eaf3}
body[data-page] .footer-bottom{font-size:13px;line-height:1.6}

/* Technology explorer: a featured tool and an interactive selection grid. */
body[data-page="services"] .technology-showcase{background:#f3f8fd;border-block:1px solid #e0eaf4}
.technology-explorer{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #d5e3f0;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 18px 48px #163d680c}
.technology-feature{display:grid;padding:clamp(28px,4vw,48px);background:radial-gradient(circle at 100% 0%,#d4eaff,transparent 65%),#eaf4ff;align-items:center}
.technology-detail{grid-area:1/1;animation:technology-feature-enter .35s ease both}
.technology-detail[hidden]{display:none}
.technology-category{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;line-height:1.5;color:#225789}
.technology-emblem{display:grid;place-items:center;width:92px;height:92px;margin:28px 0 24px;border:1px solid #c5ddf4;border-radius:24px;background:#fff;color:#0966d2;font-size:38px;font-weight:700;box-shadow:0 12px 28px #0b467e0d}
body[data-page="services"] main .technology-detail h3{font-size:clamp(30px,3vw,40px);line-height:1.2;margin:0 0 18px;color:#0b2a4e}
body[data-page="services"] main .technology-detail p{font-size:16px;color:#425b73;line-height:1.8;margin:0 0 26px;max-width:44ch;min-height:6em}
.technology-use{display:block;border-top:1px solid #c6ddee;padding-top:20px;font-size:13px;line-height:1.8;color:#24547f}
.technology-browser{padding:clamp(24px,3vw,40px)}
body[data-page="services"] main .technology-browser-heading h3{font-size:22px;margin:0 0 8px}
body[data-page="services"] main .technology-browser-heading p{font-size:14px;margin:0 0 24px;color:#536980}
.technology-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.technology-choices button{display:grid;grid-template-columns:24px 1fr;column-gap:8px;text-align:left;padding:15px 12px;min-width:0;border:1px solid #dce6f0;border-radius:12px;background:#fff;color:#193750;font:600 15px/1.5 var(--font-ui);cursor:pointer;transition:background .2s,border-color .2s}
.technology-choices button>span{grid-row:1/3;font-size:11px;font-weight:500;color:#637b93;padding-top:3px}
.technology-choices small{grid-column:2;font-size:12px;font-weight:400;color:#536980}
.technology-choices button:hover{background:#f2f7ff;border-color:#89b2df}
.technology-choices button[aria-pressed="true"]{background:#0b3763;border-color:#0b3763;color:#fff;box-shadow:0 5px 14px #0b37631a}
.technology-choices button[aria-pressed="true"] :is(span,small){color:#cfdfef}
.technology-playback{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;border-top:1px solid #e2eaf3;padding-top:18px;font-size:13px;color:#536980;font-variant-numeric:tabular-nums}
.technology-playback button{padding:8px 14px;min-height:40px;border:1px solid #ccdfef;border-radius:24px;background:#f5f9fd;color:#1554a2;font:600 13px var(--font-ui);cursor:pointer}
.technology-playback button[hidden]{display:none}
@keyframes technology-feature-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:780px){.technology-explorer{grid-template-columns:1fr}.technology-feature{min-height:440px}.technology-detail p{max-width:none}}
@media(max-width:380px){.technology-choices{gap:8px}.technology-choices button{font-size:14px;padding:12px 8px;grid-template-columns:20px 1fr}}

/* Services catalogue: nine evenly sized cards with a consistent icon system. */
body[data-page="services"] main .expanded-services{gap:24px;align-items:stretch}
body[data-page="services"] main .expanded-services .service-card{
  position:relative;display:flex;flex-direction:column;gap:0;padding:30px;
  border:1px solid #d9e6f3;border-radius:18px;background:#fff;
  box-shadow:0 6px 20px rgba(20,61,103,.04);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
body[data-page="services"] main .expanded-services .service-card::after{display:none}
body[data-page="services"] main .expanded-services .icon{
  display:grid;place-items:center;width:54px;height:54px;flex-shrink:0;
  margin:0 0 24px;border-radius:15px;background:#eaf4ff;color:#0966d2;
}
body[data-page="services"] main .expanded-services .icon svg{width:27px;height:27px}
body[data-page="services"] main .expanded-services h3{margin:0 0 12px;max-width:24ch;font-size:21px;line-height:1.35}
body[data-page="services"] main .expanded-services p{margin:0;font-size:15px;line-height:1.75}
@media(hover:hover) and (pointer:fine){
  body[data-page="services"] main .expanded-services .service-card:hover{
    transform:translateY(-5px);border-color:#91bce9;box-shadow:0 16px 32px rgba(20,61,103,.1);
  }
}
@media(max-width:560px){body[data-page="services"] main .expanded-services .service-card{padding:26px}}

@media(max-width:1000px){
  body[data-page] main .expanded-services{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-page] main .process-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  body[data-page] main .section-heading{display:block}
  body[data-page] main .section-heading>p{margin-top:12px}
  body[data-page] .footer-grid>div:not(:first-child){padding-left:0}
  body[data-page] .footer-bottom{gap:12px}
  body[data-page] main .product-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  body[data-page] main :is(.page-hero,.product-hero) p:not(.eyebrow),body[data-page] main .hero-text{font-size:16px}
  body[data-page] main :is(.expanded-services,.home-services-grid,.process-cards,.product-steps){grid-template-columns:1fr}
  body[data-page] main .stats.company-highlights{grid-template-columns:1fr;gap:14px}
  body[data-page] main .stats.company-highlights>div{padding:0 0 14px;border-right:0;border-bottom:1px solid #dce9f4}
  body[data-page] main .stats.company-highlights>div:last-child{border-bottom:0}
  body[data-page] main .btn{max-width:100%;white-space:normal;text-align:center}
}
/* Industry product pages: imagery, modules, workflow, and animations. */
.pump-video{max-width:960px;margin:0 auto 32px}
body:is([data-page="petrol-pump"],[data-page="vetcare"]) .pump-video figcaption p:not(.eyebrow){font-size:15px;color:#425b73;line-height:1.7;margin:0 0 16px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-hero{background:radial-gradient(ellipse at 90% 40%,#dceff5,transparent 60%),linear-gradient(125deg,#fff,#f0f7ff)}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) main .product-hero{padding-top:24px;padding-bottom:48px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) main .product-tabs{margin-bottom:24px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.industry-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.industry-tags span{padding:6px 12px;border:1px solid #cde0ec;border-radius:24px;color:#245c76;font-size:13px;font-weight:600;background:#ffffffb3}
.industry-visual{margin:0;padding:10px;border:1px solid #d5e4f0;border-radius:26px;background:#fff;box-shadow:0 22px 48px #16476d18}
.industry-visual>img{width:100%;height:auto;border-radius:18px}
.industry-visual figcaption{display:flex;align-items:center;gap:14px;padding:20px 12px 12px}
.industry-caption-icon{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border-radius:14px;background:#e5f6f3;color:#176e68}
.industry-caption-icon svg{width:25px;height:25px}
.industry-visual figcaption strong{display:block;color:#0b2a4e;font-size:16px;line-height:1.5;font-weight:600}
.industry-visual figcaption div>span{display:block;color:#536980;font-size:13px;line-height:1.6;margin-top:3px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules{gap:24px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article{position:relative;border:1px solid #d9e6ef;border-radius:20px;padding:30px;background:linear-gradient(145deg,#f6fbfd,#fff 60%);box-shadow:0 6px 20px #163d6808;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules .feature-number{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#e5f2ff;color:#075fc9;font-size:15px;font-weight:700;margin-bottom:24px;transition:transform .25s ease}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article:nth-child(even) .feature-number{background:#e5f6f3;color:#176e68}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules h3{margin:0 0 12px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-workflow{background:#f0f7fc;border-block:1px solid #e0eaf3}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-steps{gap:20px;counter-reset:none}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-steps li{padding:26px 22px;border-radius:18px;border-top:3px solid #8fbde8}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-steps span{font-size:14px;letter-spacing:.08em;color:#176e68}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-steps h3{font-size:18px;line-height:1.4;margin:14px 0 10px}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-steps p{font-size:14px;line-height:1.7;color:#425b73;margin:0}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) main .reveal{opacity:1;transform:none}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) main .reveal:not(article){transition:none}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-hero-copy.show>*{animation:healthcare-rise .7s ease backwards}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-hero-copy.show h1{animation-delay:.1s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-hero-copy.show .product-lead{animation-delay:.2s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-hero-copy.show .btn{animation-delay:.3s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-hero-copy.show .industry-tags{animation-delay:.4s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-visual.show{animation:healthcare-image-enter .85s ease .15s backwards}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .section-heading.show,
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) :is(.healthcare-video,.product-video-card).show,
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-cta .show,
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-workflow .show{animation:healthcare-rise .7s ease backwards}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article.show{animation:healthcare-rise .65s ease backwards}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article.show:nth-child(3n+2){animation-delay:.1s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article.show:nth-child(3n){animation-delay:.2s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-workflow .show li{animation:healthcare-rise .6s ease backwards}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-workflow .show li:nth-child(2){animation-delay:.1s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-workflow .show li:nth-child(3){animation-delay:.2s}
body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-workflow .show li:nth-child(4){animation-delay:.3s}
@keyframes healthcare-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes healthcare-image-enter{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(hover:hover) and (pointer:fine){
  body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article:hover{transform:translateY(-5px);border-color:#94bde1;box-shadow:0 16px 32px #16476d12}
  body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article:hover .feature-number{transform:rotate(-5deg)}
}
@media(max-width:900px){body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .product-detail-grid{grid-template-columns:1fr}.industry-visual{max-width:680px}}
@media(min-width:561px) and (max-width:900px){
  body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article.show:nth-child(n){animation-delay:0s}
  body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article.show:nth-child(2n){animation-delay:.1s}
}
@media(max-width:560px){
  body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article{padding:24px}
  body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article.show:nth-child(n){animation-delay:0s}
  .industry-visual figcaption{padding:16px 6px 8px;gap:10px}
}
@media(prefers-reduced-motion:reduce){body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article:hover,body:is([data-page="healthcare"],[data-page="petrol-pump"],[data-page="vetcare"]) .industry-modules article:hover .feature-number{transform:none}}

/* Products overview: industry illustration and coordinated entrance animations. */
.products-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,52px);align-items:center}
.products-hero-art{min-width:0}
.products-hero-art img{width:100%;height:auto;border-radius:24px;border:1px solid #dce9f4;box-shadow:0 22px 48px #194f7c1a;transition:transform .4s ease}
body[data-page="products"] main .reveal{opacity:1;transform:none}
body[data-page="products"] main .reveal:not(.product-card){transition:none}
body[data-page="products"] .products-hero-copy.show>*{animation:products-rise .7s cubic-bezier(.2,.7,.2,1) backwards}
body[data-page="products"] .products-hero-copy.show h1{animation-delay:.1s}
body[data-page="products"] .products-hero-copy.show .product-lead{animation-delay:.2s}
body[data-page="products"] .products-hero-copy.show .btn{animation-delay:.3s}
body[data-page="products"] .products-hero-copy.show .product-tags{animation-delay:.4s}
body[data-page="products"] .products-hero-art.show{animation:products-image-enter .9s cubic-bezier(.2,.7,.2,1) .15s backwards}
body[data-page="products"] .section-heading.show,
body[data-page="products"] .product-cta .show{animation:products-rise .7s ease backwards}
body[data-page="products"] .product-card.show{animation:products-rise .65s cubic-bezier(.2,.7,.2,1) backwards}
body[data-page="products"] .product-card.show:nth-child(2){animation-delay:.12s}
body[data-page="products"] .product-card.show:nth-child(3){animation-delay:.24s}
body[data-page="products"] .product-symbol{transition:transform .25s ease}
body[data-page="products"] .text-link span{display:inline-block;transition:transform .2s ease}
@keyframes products-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes products-image-enter{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(hover:hover) and (pointer:fine){
  body[data-page="products"] .products-hero-art:hover img{transform:translateY(-5px)}
  body[data-page="products"] .product-card:hover .product-symbol{transform:translateY(-3px) rotate(-4deg)}
  body[data-page="products"] .text-link:hover span{transform:translateX(4px)}
}
@media(max-width:900px){.products-hero-grid{grid-template-columns:1fr}.products-hero-art{max-width:680px}}
@media(max-width:560px){body[data-page="products"] .product-card.show:nth-child(n){animation-delay:0s}}
@media(prefers-reduced-motion:reduce){
  body[data-page="products"] .products-hero-art:hover img,
  body[data-page="products"] .product-card:hover,
  body[data-page="products"] .product-card:hover .product-symbol,
  body[data-page="products"] .text-link:hover span{transform:none}
}

/* Services motion: reuse the existing once-per-section scroll observer. */
body[data-page="services"] main .reveal{opacity:1;transform:none}
body[data-page="services"] main .reveal:not(.service-card){transition:none}
body[data-page="services"] .page-hero-grid>.show:first-child>*{animation:services-rise .7s cubic-bezier(.2,.7,.2,1) backwards}
body[data-page="services"] .page-hero-grid>.show:first-child h1{animation-delay:.1s}
body[data-page="services"] .page-hero-grid>.show:first-child p:not(.eyebrow){animation-delay:.2s}
body[data-page="services"] .page-hero-grid>.show:first-child .btn{animation-delay:.3s}
body[data-page="services"] .page-hero-art.show{animation:services-image-enter .85s cubic-bezier(.2,.7,.2,1) .15s backwards}
body[data-page="services"] .page-hero-art img{transition:transform .4s ease}
body[data-page="services"] .section-heading.show,
body[data-page="services"] .faq-intro.show{animation:services-rise .65s ease backwards}
body[data-page="services"] .expanded-services .service-card.show{animation:services-rise .65s cubic-bezier(.2,.7,.2,1) backwards}
body[data-page="services"] .expanded-services .service-card.show:nth-child(3n+2){animation-delay:.1s}
body[data-page="services"] .expanded-services .service-card.show:nth-child(3n){animation-delay:.2s}
body[data-page="services"] .expanded-services .icon{transition:transform .25s ease,background .25s ease}
body[data-page="services"] .technology-explorer.show{animation:services-image-enter .75s ease backwards}
body[data-page="services"] .technology-explorer.show .technology-choices button{animation:services-rise .45s ease .15s backwards}
body[data-page="services"] .technology-explorer.show .technology-choices button:nth-child(n+3){animation-delay:.22s}
body[data-page="services"] .technology-explorer.show .technology-choices button:nth-child(n+5){animation-delay:.29s}
body[data-page="services"] .technology-explorer.show .technology-choices button:nth-child(n+7){animation-delay:.36s}
body[data-page="services"] .faq-list.show details{animation:services-rise .55s ease backwards}
body[data-page="services"] .faq-list.show details:nth-child(2){animation-delay:.08s}
body[data-page="services"] .faq-list.show details:nth-child(3){animation-delay:.16s}
body[data-page="services"] .faq-list.show details:nth-child(4){animation-delay:.24s}
body[data-page="services"] .faq-list details[open]>p{animation:services-rise .3s ease backwards}
body[data-page="services"] main .btn span{display:inline-block;transition:transform .2s ease}
@keyframes services-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes services-image-enter{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(hover:hover) and (pointer:fine){
  body[data-page="services"] .page-hero-art:hover img{transform:translateY(-5px)}
  body[data-page="services"] .expanded-services .service-card:hover .icon{transform:translateY(-3px) rotate(-4deg);background:#dceeff}
  body[data-page="services"] main .btn:hover span{transform:translateX(4px)}
}
@media(max-width:1000px) and (min-width:561px){
  body[data-page="services"] .expanded-services .service-card.show:nth-child(n){animation-delay:0s}
  body[data-page="services"] .expanded-services .service-card.show:nth-child(2n){animation-delay:.1s}
}
@media(max-width:560px){body[data-page="services"] .expanded-services .service-card.show:nth-child(n){animation-delay:0s}}
@media(prefers-reduced-motion:reduce){
  body[data-page="services"] .page-hero-art:hover img,
  body[data-page="services"] .expanded-services .service-card:hover,
  body[data-page="services"] .expanded-services .service-card:hover .icon,
  body[data-page="services"] main .btn:hover span{transform:none}
  html{scroll-behavior:auto}
  body[data-page] *,body[data-page] *::before,body[data-page] *::after{animation:none!important;transition:none!important}
  body[data-page] .reveal{opacity:1;transform:none}
}

/* Homepage entrance motion, with content visible before JavaScript runs. */
body[data-page="home"] main .reveal{opacity:1;transform:none}
body[data-page="home"] .hero-copy.show>*{animation:home-rise .7s ease backwards}
body[data-page="home"] .hero-copy.show h1{animation-delay:.08s}
body[data-page="home"] .hero-copy.show .hero-text{animation-delay:.16s}
body[data-page="home"] .hero-copy.show .hero-actions{animation-delay:.24s}
body[data-page="home"] .hero-copy.show .stats{animation-delay:.32s}
body[data-page="home"] .hero-visual.show{animation:home-image-enter .85s ease .12s backwards}
body[data-page="home"] :is(.why-copy,.section-heading,.results-copy,.cta-inner).show{animation:home-rise .65s ease backwards}
body[data-page="home"] .home-product-card.show{animation:home-rise .65s ease backwards}
body[data-page="home"] .home-product-card.show:nth-child(2){animation-delay:.12s}
body[data-page="home"] .home-product-card.show:nth-child(3){animation-delay:.24s}
body[data-page="home"] .feature-strip.show .feature{animation:home-rise .6s ease backwards}
body[data-page="home"] .feature-strip.show .feature:nth-child(2){animation-delay:.1s}
body[data-page="home"] .feature-strip.show .feature:nth-child(3){animation-delay:.2s}
body[data-page="home"] .home-product-card>img{transition:transform .35s ease}


@keyframes home-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-image-enter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(hover:hover) and (pointer:fine){
  body[data-page="home"] .home-product-card:hover{transform:translateY(-5px)}
  body[data-page="home"] .home-product-card:hover>img{transform:scale(1.035)}
}
@media(max-width:560px){body[data-page="home"] .home-product-card.show:nth-child(n){animation-delay:0s}}
@media(prefers-reduced-motion:reduce){
  body[data-page="home"] main *,body[data-page="home"] main *::before,body[data-page="home"] main *::after{animation:none!important;transition:none!important}
  body[data-page="home"] .home-product-card:hover,body[data-page="home"] .home-product-card:hover>img{transform:none}
}