/* Native sticky panels cover the previous service as the page scrolls. */
.home-services{width:100%;max-width:none;margin:0;padding:0;position:relative;isolation:isolate}
.service-stack{display:flex;flex-direction:column;gap:0;margin:0;padding:0}
.service-card{width:100%;min-width:0;position:sticky;top:calc(var(--header-height,84px) + 12px);z-index:var(--stack-order,1);flex:none;min-height:clamp(380px,58svh,680px);border:10px solid #F7F6F0;background:var(--service-background);color:var(--service-foreground,#ffffff);padding:clamp(24px,3.2vw,64px);display:flex;flex-direction:column;justify-content:center;gap:0;box-shadow:0 -12px 36px #0002}
.service-card:last-child{box-shadow:none}
.service-card__content{width:100%}
.service-card h2{font-size:clamp(48px,9.3vw,178px);font-weight:700;letter-spacing:-.055em;line-height:1.03;margin:0;text-align:left;overflow-wrap:anywhere}
.service-card p{max-width:650px;width:49%;font-size:clamp(18px,1.8vw,29px);font-weight:400;line-height:1.5;margin:32px 0 0 auto;text-align:left;text-wrap:pretty}
/* One visible screen; the extra scroll distance drives the bottom-up pixel fill. */
.home-contact{--wipe-progress:1;--contact-panel-height:max(1px,calc(100svh - var(--contact-header-height,84px)));width:100%;margin:0;padding:0;background:#F7F6F0;color:#000000}
.home-contact.home-contact--interactive{height:calc(var(--contact-panel-height) + 85svh)}
.home-contact__panel{position:sticky;top:var(--contact-header-height,84px);isolation:isolate;width:100%;height:var(--contact-panel-height);min-height:0;overflow:hidden;background:#F7F6F0}
.home-contact__panel::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle,#71655638 1px,transparent 1.5px);background-size:16px 16px;-webkit-mask-image:radial-gradient(ellipse 48% 68% at 50% 50%,#000 35%,transparent 75%);mask-image:radial-gradient(ellipse 48% 68% at 50% 50%,#000 35%,transparent 75%)}
.contact-wipe{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:repeat(var(--wipe-columns,12),1fr);grid-template-rows:repeat(var(--wipe-rows,8),1fr);pointer-events:none}
.contact-wipe>span{margin:-.5px;background:#8077c1;opacity:clamp(0,calc((var(--wipe-progress) - var(--tile-start,0)) * 12),1)}
.home-contact__headline{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:clamp(20px,5vw,80px);text-align:center;pointer-events:none;opacity:clamp(0,calc(1 - (var(--wipe-progress) - .35) * 2.3),1)}
.home-contact__headline h2{max-width:18ch;margin:0;font-size:clamp(28px,min(6.5vw,10svh),104px);font-weight:700;letter-spacing:-.05em;line-height:1.08;text-wrap:balance}
.home-contact__action{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:clamp(16px,4vw,64px);opacity:clamp(0,calc((var(--wipe-progress) - .67) * 4.5),1);pointer-events:none}
.home-contact--interactive:not(.is-action-visible) .home-contact__action{visibility:hidden}
.home-contact__link{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:clamp(16px,3svh,32px) clamp(18px,3vw,56px);overflow:hidden;border:1px solid #ffffff80;border-radius:0;background:transparent;color:#ffffff;font-size:clamp(28px,min(5.6vw,9svh),88px);font-weight:400;line-height:1.14;letter-spacing:-.035em;text-align:center;text-wrap:balance;text-decoration:none;pointer-events:auto;-webkit-tap-highlight-color:transparent}
/* The button changes instantly; only its decorative outer squares animate. */
.home-contact__link-frame{position:relative;isolation:isolate;display:inline-flex;width:fit-content;max-width:100%;justify-content:center}
.home-contact__link-frame .home-contact__link{z-index:1}
.contact-link__halo{position:absolute;z-index:0;display:grid;gap:1px;opacity:0;pointer-events:none;transition:opacity .18s ease}
.contact-link__halo>span{display:block;background:#ffffff;opacity:var(--halo-peak,0);transform-origin:center}
.home-contact__link-frame:has(.home-contact__link:is(:hover,:focus-visible)) .contact-link__halo{opacity:1}
.home-contact__link-frame:has(.home-contact__link:is(:hover,:focus-visible)) .contact-link__halo>span{animation:contact-halo-ripple 1.6s ease-out infinite both;animation-delay:var(--halo-delay,0s)}
@keyframes contact-halo-ripple{0%,100%{opacity:0}18%,36%{opacity:var(--halo-peak,0)}70%{opacity:0}}
.contact-link__label{position:relative;z-index:1}
.home-contact__link:is(:hover,:focus-visible){background:#ffffff;color:#8077c1}
.home-contact__link:is(:hover,:focus-visible) .contact-link__label{color:#8077c1}
.home-contact__link:focus-visible{outline:2px solid #ffffff;outline-offset:7px}
@media(max-width:1050px){.service-card{top:calc(var(--header-height,74px) + 10px);min-height:clamp(360px,56svh,600px);border-width:8px}.service-card p{width:65%;font-size:23px}}
@media(max-width:760px){.service-card{padding:32px 24px;min-height:clamp(340px,52svh,480px);border-width:6px}.service-card h2{font-size:clamp(44px,10.3vw,76px);letter-spacing:-.045em;line-height:1.08}.service-card p{width:100%;max-width:560px;margin-top:28px;font-size:20px;line-height:1.6}.home-contact__headline h2{font-size:clamp(28px,min(8vw,10svh),62px);max-width:16ch}.home-contact__link{font-size:clamp(27px,min(8vw,9svh),58px)}}
@media(max-width:390px){.service-card{padding:28px 18px}.service-card h2{font-size:43px}.service-card p{font-size:18px}}
@media(max-height:600px){.service-card{position:relative;top:auto;min-height:320px}}
@media(max-height:500px){.home-contact__headline h2{font-size:clamp(18px,min(6.5vw,8svh),36px)}.home-contact__link{font-size:clamp(22px,min(5.6vw,9svh),42px);padding:12px 18px}}
.home-contact.is-reduced-motion{height:var(--contact-panel-height)}
.home-contact.is-reduced-motion .home-contact__panel{display:grid;grid-template-rows:1fr 1fr;padding:20px}
.home-contact.is-reduced-motion .home-contact__headline,.home-contact.is-reduced-motion .home-contact__action{position:relative;inset:auto;opacity:1;visibility:visible;padding:16px}
.home-contact.is-reduced-motion .home-contact__headline h2{font-size:clamp(24px,4vw,48px)}
@media(prefers-reduced-motion:reduce){.service-card{position:relative;top:auto}.contact-link__halo{transition:none}.home-contact__link-frame:has(.home-contact__link:is(:hover,:focus-visible)) .contact-link__halo>span{animation:none;transform:none}}
