/* Viewport-sized introduction, on the same grid as the rest of the homepage. */
.af-hero{width:min(1280px,calc(100% - 96px));max-width:1280px;margin-inline:auto;padding:44px 0;min-height:calc(100svh - var(--af-header-height,123px));display:flex;align-items:center;overflow:hidden}
.af-hero-copy{width:53%;max-width:650px;min-height:0;margin:0;padding:0;flex-shrink:0}
.af-hero-photo.af-hero-video{position:absolute;inset:0 0 0 20%;width:auto;height:auto;min-height:0;margin:0;border:0;border-radius:0;align-self:stretch;overflow:hidden}
.af-hero-video:before{display:block;background:linear-gradient(90deg,#fafaf7 0%,rgba(250,250,247,.96) 9%,rgba(250,250,247,.82) 23%,rgba(250,250,247,.34) 40%,transparent 61%),linear-gradient(0deg,#fafaf7,rgba(250,250,247,.2) 5%,transparent 13%),linear-gradient(180deg,#fafaf7,transparent 9%);z-index:2}
.af-hero-video video{height:100%;min-height:100%;object-fit:cover;object-position:58% center;transform:translate3d(0,var(--af-parallax,0px),0) scale(1.055);will-change:transform}
.af-hero-copy h1{font-size:clamp(64px,6.1vw,94px)}
.af-hero-copy .af-lead{max-width:465px}
.af-hero-copy .af-specialty{max-width:465px}
.af-hero-reviews{margin-top:21px}
.af-header{transition:box-shadow .4s ease,background .4s ease}
.af-header.is-scrolled{box-shadow:0 8px 30px #17352b0c;background:#fafbf8f5}

/* The diagnostic feature uses the same Inter typography and clear section grid. */
.af-home-content .af-analysis{display:grid;grid-template-columns:1fr 1fr;gap:38px 70px;padding:48px 52px 26px;margin:20px 0;background:#19352e;color:#edf2e8;border-radius:3px;position:relative;overflow:hidden}
.af-analysis .af-eyebrow{color:#b4c6a9;font-size:10px;margin-bottom:18px}
.af-home-content .af-analysis h2{font-family:AFInter,"Segoe UI",sans-serif;font-size:clamp(32px,3.5vw,46px);font-weight:500;color:#f4f6f0;line-height:1.08;letter-spacing:-.045em;margin:0 0 22px}
.af-home-content .af-analysis p{font-size:15px;line-height:1.85;color:#c5d2c9;margin:0}
.af-analysis-intro>.af-text-link{display:inline-flex;align-items:center;gap:30px;color:#f0f5e8;font-size:13px;margin-top:26px;padding-bottom:7px;border-bottom:1px solid #98af9066;text-decoration:none}
.af-analysis-intro>.af-text-link span{display:inline-block;transition:transform .35s var(--af-ease)}
.af-analysis-intro>.af-text-link:hover span{transform:translate(4px,-4px)}
.af-analysis-results h3{font-size:13px;font-weight:500;letter-spacing:0;color:#b4c6a9;margin:0 0 12px}
.af-analysis-results ul{list-style:none;padding:0;margin:0}
.af-home-content .af-analysis-results li{display:flex;align-items:flex-start;gap:20px;margin:0;padding:16px 8px;border-top:1px solid #ffffff20;transition:background .35s,translate .45s var(--af-ease)}
.af-analysis-results li>span{font-size:11px;font-variant-numeric:tabular-nums;color:#a8bd9a;padding-top:3px}
.af-analysis-results h4{font-family:AFInter,"Segoe UI",sans-serif;font-size:17px;font-weight:500;letter-spacing:-.02em;color:#f0f4eb;line-height:1.4;margin:0 0 3px}
.af-home-content .af-analysis-results li p{font-size:13px;line-height:1.65}
.af-analysis-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ffffff25;padding-top:21px}
.af-home-content .af-analysis-bottom p{font-size:14px;color:#c5d2c9}.af-home-content .af-analysis-bottom strong{color:#f0f4eb;display:inline;font-weight:500}
.af-analysis-bottom>span{font-size:11px;color:#afc1b4}

/* Movement is tied to actual entry, hover and scroll, without scroll interception. */
.af-motion .af-reveal{transition-duration:.85s,1s;transform:translateY(32px)}
.af-motion .af-reveal.is-visible{transform:none}
.af-site .af-button{transition:background .3s ease,transform .4s var(--af-ease),box-shadow .4s ease!important}
.af-service-card,.af-process-item,.af-analysis-results li{position:relative}
.af-service-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#7e956d;transform:scaleX(0);transform-origin:left;transition:transform .55s var(--af-ease)}
.af-service-card:hover:after,.af-service-card:focus-visible:after{transform:scaleX(1)}
.af-process-item:before{transition:color .3s,transform .45s var(--af-ease)}
.af-home-cta-image,.af-care-intro .wp-block-image{overflow:hidden}
.af-home-cta-image img,.af-care-intro .wp-block-image img{transform:translate3d(0,var(--af-parallax,0px),0) scale(1.045);will-change:transform}
.af-footer .af-google-map{transition:box-shadow .45s,border-color .45s}
.af-faq details{transition:border-color .35s,background .35s}
.af-faq details[open]{border-bottom-color:#7d926e}
@media(hover:hover) and (pointer:fine){
 .af-home-content .af-analysis-results li:hover{background:#ffffff07;translate:5px 0}
 .af-process-item:hover:before{color:#254f39;transform:translateY(-3px)}
 .af-process-item:hover h3{color:#54704a}
 .af-service-card:hover{translate:0 -4px}
 .af-footer .af-google-map:hover{border-color:#aabc9e;box-shadow:0 12px 28px #071b2520}
 .af-faq details:hover{background:#edf1e633}
}
@media(max-width:1200px){.af-hero{width:calc(100% - 64px);padding-inline:0}.af-hero-copy{width:57%}.af-hero-copy h1{font-size:clamp(58px,6.6vw,78px)}.af-home-content .af-analysis{padding:38px 32px 24px;gap:30px 36px}}
@media(max-width:760px){
 .af-hero{width:calc(100% - 40px);min-height:calc(100svh - var(--af-header-height,155px));padding:30px 0 0;flex-direction:column;align-items:stretch;justify-content:space-between}
 .af-hero-copy{width:100%;max-width:none;padding:0;min-height:0;flex-shrink:0}
 .af-hero-copy h1{font-size:clamp(50px,12.5vw,76px)}
 .af-hero-photo.af-hero-video{position:relative;inset:auto;width:100%;height:clamp(200px,30svh,300px);min-height:200px;margin:0;flex:1 0 200px;align-self:stretch}
 .af-hero-video:before{background:linear-gradient(180deg,#fafaf7,rgba(250,250,247,.5) 13%,transparent 35%),linear-gradient(0deg,#fafaf7,transparent 14%)}
 .af-home-content .af-analysis{grid-template-columns:1fr;padding:30px 24px 24px;gap:28px;margin-block:18px}
 .af-home-content .af-analysis h2{font-size:34px}.af-home-content .af-analysis p{font-size:14px}
 .af-analysis-bottom{flex-direction:column;align-items:flex-start;gap:8px;padding-top:18px}
 .af-analysis-results li{gap:15px}.af-analysis-bottom>span{line-height:1.7}
}
