/* Homepage-only introduction and four service paths. */
.hero-content.home-intro{max-width:860px}
.home-intro h1{font-size:clamp(42px,4.1vw,60px);line-height:1.08;letter-spacing:-.045em}
.home-intro .hero-brand{font-size:17px;line-height:1.4;letter-spacing:.16em;margin-bottom:24px}
.home-intro-main{display:block;text-wrap:balance}
.home-intro .home-intro-tagline{font-size:.72em;line-height:1.2;letter-spacing:-.04em;margin-top:16px;color:#77777e;text-wrap:balance}
.home-intro .hero-description{max-width:660px;font-size:17px;line-height:1.65;margin:26px auto 30px;color:#62626b;text-wrap:pretty}
.home-intro-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px}
.home-intro-actions .button{font-size:15px;padding-inline:23px}
.home-intro-actions .home-intro-contact{color:#171719;background:#fff;border-color:#d4d4db}
.home-intro-actions .home-intro-contact:hover{border-color:#171719}
.home-service-entry{position:relative;padding-block:18px 76px;scroll-margin-top:110px}
.home-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.home-entry-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-width:0;min-height:302px;padding:24px;border:1px solid #e3e3e9;border-radius:22px;background:#f7f7f9;color:#171719;isolation:isolate;overflow:hidden;transition:background .3s,color .3s,border-color .3s,transform .3s,box-shadow .3s;animation:home-entry-arrive .7s cubic-bezier(.2,.65,.3,1) both;animation-delay:calc(var(--entry-index,0)*90ms)}
.home-entry-card::before{position:absolute;content:"";width:180px;height:180px;right:-55px;top:-70px;border:1px solid currentColor;border-radius:50%;opacity:.07;pointer-events:none;transition:transform .45s,opacity .3s}
.home-entry-card::after{position:absolute;content:"";height:2px;left:24px;right:24px;bottom:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s}
.home-entry-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}
.home-entry-number{font-size:12px;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:.07em;color:#7c7c86}
.home-entry-arrow{display:grid;place-items:center;width:34px;height:34px;border:1px solid #dcdce3;border-radius:50%;transition:transform .3s,border-color .3s,background .3s}
.home-entry-arrow svg{width:17px;height:17px}
.home-entry-graphic{display:block;width:100%;height:112px;margin-block:4px 12px;color:#343439;transition:color .3s,transform .4s}
.home-entry-graphic svg{display:block;width:116px;height:102px;margin:auto;stroke-width:1.35}
.home-entry-graphic .entry-soft-fill{fill:currentColor;fill-opacity:.045}
.home-entry-graphic .entry-muted-line{opacity:.3}
.home-entry-graphic .entry-accent{animation:home-entry-pulse 3.6s ease-in-out infinite;animation-delay:calc(var(--entry-index,0)*-.65s)}
.home-entry-card h3{position:relative;font-size:clamp(22px,1.9vw,27px);line-height:1.17;letter-spacing:-.035em;font-weight:600;overflow-wrap:normal}
.home-entry-global-subtitle{display:block;font-size:15px;line-height:1.4;font-weight:400;letter-spacing:-.015em;margin-top:9px;color:#6b6b75}
.home-entry-card:hover,.home-entry-card:focus-visible{background:#171719;color:#fff;border-color:#171719;transform:translateY(-6px);box-shadow:0 16px 32px #10101812}
.home-entry-card:focus-visible{outline:2px solid #171719;outline-offset:5px}
.home-entry-card:hover::before,.home-entry-card:focus-visible::before{transform:scale(1.3);opacity:.12}
.home-entry-card:hover::after,.home-entry-card:focus-visible::after{transform:scaleX(1)}
.home-entry-card:hover .home-entry-graphic,.home-entry-card:focus-visible .home-entry-graphic{color:#fff;transform:translateY(-3px)}
.home-entry-card:hover .home-entry-arrow,.home-entry-card:focus-visible .home-entry-arrow{border-color:#ffffff45;transform:rotate(45deg);background:#ffffff08}
.home-entry-card:hover .home-entry-number,.home-entry-card:focus-visible .home-entry-number,.home-entry-card:hover .home-entry-global-subtitle,.home-entry-card:focus-visible .home-entry-global-subtitle{color:#c3c3ca}
@keyframes home-entry-arrive{from{opacity:.2;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes home-entry-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@supports(animation-timeline:view()){
  .home-entry-card{animation-delay:0s;animation-timeline:view();animation-range:entry 0% entry 80%}
}
@media(min-width:1101px) and (max-width:1400px){
  .hero-content.home-intro{max-width:710px}
  .home-intro h1{font-size:50px}
  .home-intro .hero-description{max-width:610px}
  .home-entry-card{padding:22px;min-height:290px}
}
@media(max-width:1100px){
  .hero-content.home-intro{max-width:800px}
  .home-intro h1{font-size:52px}
  .home-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .home-entry-card{min-height:276px;padding:26px}
  .home-entry-card h3{font-size:28px}
  .home-service-entry{padding-block:22px 60px}
}
@media(max-width:760px){
  .home-intro h1{font-size:39px}
  .home-intro .hero-brand{font-size:14px;margin-bottom:20px;letter-spacing:.12em}
  .home-intro .home-intro-tagline{font-size:.76em;margin-top:14px}
  .home-intro .hero-description{font-size:16px;line-height:1.6;margin:23px auto 25px}
  .home-intro-actions{gap:10px}
  .home-intro-actions .button{font-size:14px;padding:14px 18px;min-height:50px}
  .home-entry-grid{gap:12px}
  .home-entry-card{padding:18px;min-height:252px;border-radius:18px}
  .home-entry-card h3{font-size:23px}
  .home-entry-graphic{height:94px;margin-block:6px 12px}
  .home-entry-graphic svg{width:98px;height:88px}
  .home-entry-global-subtitle{font-size:13px;margin-top:7px}
  .home-entry-arrow{width:30px;height:30px}
  .home-service-entry{padding-block:20px 52px}
}
@media(max-width:540px){
  .home-entry-grid{grid-template-columns:1fr}
  .home-entry-card{min-height:190px;padding:22px 24px;display:grid;grid-template-columns:minmax(0,1fr) 100px;grid-template-rows:34px 1fr;gap:14px 12px;align-items:end}
  .home-entry-top{grid-column:1/-1;align-self:start}
  .home-entry-graphic{grid-column:2;grid-row:2;height:86px;margin:0;align-self:center}
  .home-entry-graphic svg{width:100%;height:86px}
  .home-entry-card h3{grid-column:1;grid-row:2;min-width:0;align-self:center;font-size:24px;line-height:1.18;overflow-wrap:anywhere;hyphens:auto}
  .home-entry-global-subtitle{font-size:14px;margin-top:7px}
}
@media(max-width:380px){
  .home-intro h1{font-size:35px}
  .home-intro .hero-description{font-size:15px}
  .home-intro-actions{flex-direction:column;align-items:stretch;max-width:290px;margin:auto}
  .home-entry-card{grid-template-columns:minmax(0,1fr) 80px;padding-inline:20px}
  .home-entry-card h3{font-size:24px}
}
@media(prefers-reduced-motion:reduce){
  .home-entry-card,.home-entry-graphic .entry-accent{animation:none!important;opacity:1;translate:none}
  .home-entry-card,.home-entry-card::before,.home-entry-card::after,.home-entry-graphic,.home-entry-arrow{transition:none!important}
  .home-entry-card:hover,.home-entry-card:focus-visible,.home-entry-card:hover .home-entry-graphic,.home-entry-card:focus-visible .home-entry-graphic,.home-entry-card:hover .home-entry-arrow,.home-entry-card:focus-visible .home-entry-arrow{transform:none}
}
