
/* Home: split hero and landing-page package layout */
.home-hero{
  display:block;
  overflow:hidden;
  padding:0;
  color:var(--ink);
  background:var(--hero-background,var(--wash));
  border-bottom:1px solid var(--line);
  text-align:left;
}
.home-hero .hero-inner{
  display:grid;
  width:min(calc(100% - 64px),1536px);
  height:clamp(680px,calc(100svh - 76px),860px);
  grid-template-columns:minmax(0,1fr) minmax(520px,1fr);
  gap:clamp(48px,6vw,96px);
  align-items:center;
  margin-inline:auto;
  padding:0;
}
.home-hero .hero-copy{max-width:660px;padding-block:72px}
.home-hero .eyebrow{justify-content:flex-start}
.home-hero h1{
  max-width:660px;
  margin:22px 0 0;
  color:var(--hero-h1-color);
  font-size:var(--hero-h1-size);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.02em;
}
.page-home main .home-hero .hero-copy .hero-description{
  max-width:600px;
  margin:30px 0 0;
  color:var(--muted);
}
.home-hero .hero-actions{justify-content:flex-start;gap:16px;margin-top:36px}
.home-hero .hero-actions .button{min-height:48px;border-radius:8px}
.hero-media{
  --hero-media-gap:clamp(14px,1.4vw,22px);
  display:grid;
  align-self:stretch;
  height:100%;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--hero-media-gap);
  overflow:hidden;
}
.hero-media-column{
  display:flex;
  min-width:0;
  flex-direction:column;
  animation:heroMarqueeUp 39s linear infinite;
  will-change:transform;
}
.hero-media-column:last-child{animation-name:heroMarqueeDown;animation-duration:45s}
.hero-media-set{display:grid;flex:0 0 auto;gap:var(--hero-media-gap);padding-bottom:var(--hero-media-gap)}
.hero-media-card{
  display:block;
  height:clamp(430px,34vw,540px);
  margin:0;
  overflow:hidden;
  background:#fff;
  border:1px solid #d8e0ec;
  border-radius:12px;
  box-shadow:0 18px 42px rgba(15,35,64,.08);
}
.hero-media-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.hero-media:hover .hero-media-column,
.hero-media:focus-within .hero-media-column{animation-play-state:paused}
.hero-media-card:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}
@keyframes heroMarqueeUp{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-50%,0)}}
@keyframes heroMarqueeDown{from{transform:translate3d(0,-50%,0)}to{transform:translate3d(0,0,0)}}
.hero-mobile-slider{display:none}
.home-services{
  --home-services-gradient-start:clamp(220px,18vw,300px);
  --home-services-gradient-end:clamp(460px,38vw,600px);
  background:linear-gradient(180deg,#fff 0,#fff var(--home-services-gradient-start),var(--section-background,#f5f7fa) var(--home-services-gradient-end),var(--section-background,#f5f7fa) 100%);
  border-bottom:1px solid var(--line);
}
.home-services-head{max-width:980px;margin:0 auto 72px;text-align:center}
.home-services-head .eyebrow{justify-content:center}
.home-services-head h2{
  margin:0;
  color:var(--section-h2-color);
  font-size:var(--section-h2-size);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.035em;
}
.home-services-head>p:last-child{
  max-width:760px;
  margin:30px auto 0;
  color:var(--muted);
}
.home-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,1.8vw,30px)}
.home-service-grid article{
  position:relative;
  display:flex;
  min-height:clamp(480px,35vw,540px);
  min-width:0;
  flex-direction:column;
  align-items:center;
  overflow:hidden;
  padding:clamp(38px,3vw,52px) clamp(26px,2.4vw,42px) 0;
  background:#fff;
  border:1px solid #dbe3ef;
  border-radius:clamp(18px,1.5vw,24px);
  text-align:center;
}
.home-service-number{position:absolute;top:26px;right:28px;color:var(--brand);font-size:clamp(12px,.8vw,14px);font-weight:900}
.home-service-grid h3{margin:34px 0 0;color:var(--navy);font-size:clamp(30px,2.25vw,42px);line-height:1.12;letter-spacing:-.04em}
.home-service-grid article>p{max-width:440px;margin:22px auto 0;color:var(--muted)}
.home-service-visual{position:relative;width:100%;height:clamp(220px,18vw,290px);margin-top:auto;overflow:hidden;border-radius:18px 18px 0 0;background:#edf2ff}
.visual-content span{position:absolute;bottom:-18px;border-radius:18px 18px 0 0}
.visual-content span:nth-child(1){left:8%;width:58%;height:78%;background:var(--brand)}
.visual-content span:nth-child(2){left:28%;width:60%;height:65%;background:#6f91f5}
.visual-content span:nth-child(3){right:2%;width:34%;height:52%;background:var(--navy)}
.visual-browser{position:absolute;left:4%;bottom:-8px;width:78%;height:78%;padding:42px 24px 20px;background:#fff;border:12px solid var(--brand);border-bottom:0;border-radius:18px 18px 0 0}
.visual-browser::before{position:absolute;top:15px;left:20px;width:8px;height:8px;background:var(--brand);border-radius:50%;box-shadow:16px 0 #82a0f7,32px 0 #b8c8fa;content:""}
.visual-browser i{display:block;height:10px;margin-bottom:14px;background:#dce5ff;border-radius:999px}
.visual-browser i:nth-child(2){width:78%}
.visual-browser i:nth-child(3){width:54%}
.visual-phone{position:absolute;right:4%;bottom:-8px;width:30%;height:62%;padding:32px 12px 14px;background:#fff;border:9px solid var(--navy);border-bottom:0;border-radius:20px 20px 0 0}
.visual-phone::before{position:absolute;top:10px;left:50%;width:24px;height:4px;background:var(--navy);border-radius:999px;content:"";transform:translateX(-50%)}
.visual-phone i{display:block;height:9px;margin-bottom:12px;background:#cbd9ff;border-radius:999px}
.visual-phone i:last-child{width:62%}
.visual-admin{padding:34px 28px;background:#edf2ff;text-align:left}
.visual-admin span{display:block;width:42%;height:16px;margin-bottom:28px;background:var(--navy);border-radius:999px}
.visual-admin i{display:block;height:42px;margin-bottom:16px;background:#fff;border:1px solid #cbd7ef;border-radius:8px}
.visual-admin b{display:block;width:42%;margin-left:auto;padding:13px 18px;background:var(--brand);border-radius:8px;color:#fff;font-size:clamp(12px,.85vw,14px);font-style:normal;text-align:center}
.home-services-actions{display:flex;justify-content:center;margin-top:clamp(38px,4vw,60px)}

@media (max-width:1100px){
  .home-services-head h2{font-size:var(--section-h2-size)}
}
@media (max-width:980px){
  .home-hero .hero-inner{width:min(calc(100% - 44px),900px);height:auto;grid-template-columns:1fr;gap:48px;padding:92px 0 0}
  .home-hero .hero-copy{max-width:760px;padding:0}
  .home-hero h1{font-size:var(--hero-h1-size)}
  .hero-media{height:560px}
  .hero-media-card{height:430px}
  .home-services-head{margin-bottom:52px}
  .home-service-grid{grid-template-columns:1fr;max-width:680px;margin-inline:auto}
  .home-service-grid article{min-height:520px;padding:40px 40px 0}
  .home-service-visual{height:300px}
}
@media (max-width:560px){
  .home-hero .hero-inner{width:calc(100% - 32px);gap:36px;padding-top:72px}
  .home-hero h1{font-size:var(--hero-h1-size);line-height:1.2}
  .page-home main .home-hero .hero-copy .hero-description{margin-top:26px}
  .home-hero .hero-actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;justify-content:stretch;margin-top:32px}
  .home-hero .hero-actions .button{width:100%}
  .hero-media{display:none}
  .hero-mobile-slider{display:block;width:100%;min-width:0;opacity:1}
  .hero-mobile-slider-viewport{
    width:100%;
    overflow-x:auto;
    border:1px solid #d8e0ec;
    border-radius:12px;
    background:#fff;
    box-shadow:0 18px 42px rgba(15,35,64,.08);
    overscroll-behavior-x:contain;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .hero-mobile-slider-viewport::-webkit-scrollbar{display:none}
  .hero-mobile-slider-track{display:flex;width:100%}
  .hero-mobile-slide{
    display:block;
    flex:0 0 100%;
    min-width:100%;
    aspect-ratio:16/10;
    overflow:hidden;
    background:#fff;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .hero-mobile-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
  .hero-mobile-slide:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}
  .hero-mobile-slider-dots{display:flex;align-items:center;justify-content:center;gap:2px;margin-top:8px}
  .hero-mobile-slider-dots button{
    display:grid;
    width:34px;
    height:44px;
    padding:0;
    place-items:center;
    border:0;
    background:transparent;
    cursor:pointer;
  }
  .hero-mobile-slider-dots button span{
    display:block;
    width:7px;
    height:7px;
    border-radius:999px;
    background:#b7c1d0;
    transition:width .25s ease,background-color .25s ease;
  }
  .hero-mobile-slider-dots button[aria-current="true"] span{width:22px;background:var(--brand)}
  .hero-mobile-slider-dots button:focus-visible{outline:2px solid var(--brand);outline-offset:-4px}
  .home-services-head{margin-bottom:40px;text-align:center}
  .home-services-head .eyebrow{justify-content:center}
  .home-services-head h2{font-size:var(--section-h2-size)}
  .home-services-head>p:last-child{margin-top:24px}
  .home-service-grid{grid-template-columns:1fr;gap:18px}
  .home-service-grid article{min-height:500px;padding:34px 22px 0}
  .home-service-grid h3{font-size:clamp(30px,8.4vw,38px)}
  .home-service-visual{height:250px}
  .visual-admin{padding:28px 22px}
  .home-services-actions .button{width:100%}
}
@media (max-width:359px){
  .home-hero .hero-actions{grid-template-columns:1fr}
  .home-hero .hero-actions .button{width:100%;max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-media-column{animation:none!important;transform:translateY(-70px)}
  .hero-media-column:last-child{transform:translateY(-210px)}
}

.page-home main :is(
  .hero-description,
  .home-services-head>p:last-child,
  .home-service-grid article>p,
  .section-head>p,
  .process-grid p,
  .insight-grid p,
  .faq-list details>div>p
){
  color:var(--body-text-color);
}

.page-home main :is(
  .hero-description,
  .home-services-head>p:last-child,
  .section-head>p,
  .contact-copy>p:not(.eyebrow)
){
  font-size:18px;
  line-height:1.5;
}

.page-home main :is(
  .home-services-head h2,
  .section-head h2,
  .contact-copy h2
){
  line-height:1.2;
  letter-spacing:-.01em;
}

.page-home main .home-service-grid article>p{
  font-size:18px;
  line-height:1.6;
}

.page-home main .landing-process-section .process-grid article>p{
  font-size:clamp(15px,calc(14px + 0.278vw),18px);
}

.page-home main .insight-section .insight-grid article p{
  font-size:clamp(15px,calc(14.333px + 0.185vw),17px);
}

/* Home section headings: short label title with its description directly below. */
.page-home main .section-head{
  display:block;
}
.page-home main .section-head>p{
  max-width:600px;
  margin-top:24px;
}

/* FAQ: desktop split layout with a sticky introduction column. */
@media (min-width:981px){
  .page-home main .landing-faq-section>.shell{
    display:grid;
    grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
    column-gap:clamp(56px,7vw,120px);
    align-items:start;
  }
  .page-home main .landing-faq-section .section-head{
    position:sticky;
    top:calc(var(--header) + 32px);
    display:block;
    min-width:0;
    align-self:start;
    margin-bottom:0;
  }
  .page-home main .landing-faq-section .section-head>p{
    max-width:36ch;
    margin-top:28px;
  }
  .page-home main .landing-faq-section .faq-list{
    min-width:0;
  }
}

@media (max-width:560px){
  .page-home main :is(
    .hero-description,
    .home-services-head>p:last-child,
    .section-head>p,
    .contact-copy>p:not(.eyebrow)
  ){
    font-size:16px;
  }

  .page-home main .home-service-grid article>p{
    font-size:16px;
  }
}

/* Main page: restrained, one-time entrance motion. */
.motion-ready .page-home main .reveal-item{
  opacity:0;
  transform:translate3d(0,24px,0) scale(.98);
  transition:
    opacity 800ms cubic-bezier(.22,1,.36,1),
    transform 800ms cubic-bezier(.22,1,.36,1);
  transition-delay:var(--reveal-delay,0ms);
}
.motion-ready .page-home main .reveal-item.reveal-soft{
  transform:translate3d(0,24px,0) scale(.98);
}
.motion-ready .page-home main .reveal-item.is-visible{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce){
  .motion-ready .page-home main .reveal-item,
  .motion-ready .page-home main .reveal-item.reveal-soft{
    opacity:1;
    transform:none;
    transition:none;
  }
}
