/* Homepage only: the shared stylesheet and other four pages stay unchanged. */
.homepage .hero{position:relative;background:var(--ivory);color:var(--green);isolation:isolate}
.homepage .hero:before{content:'';position:absolute;z-index:-1;inset:0 0 0 68%;background:var(--green);border-radius:0 0 0 150px}
.homepage .hero-grid{grid-template-columns:1.02fr 1fr;gap:64px;min-height:690px;padding-top:56px;padding-bottom:80px}
.homepage .hero-copy{position:relative;z-index:2}
.homepage .hero .eyebrow{color:#68735a;font-size:9px;letter-spacing:.14em}
.homepage .hero h1{font-size:clamp(3.6rem,5.5vw,5rem);line-height:1.05;letter-spacing:-.055em;margin-bottom:27px}
.homepage .hero h1 em{color:var(--green)}
.homepage .hero h1 em span{position:relative;display:inline-block;isolation:isolate}
.homepage .hero h1 em span:after{content:'';position:absolute;height:9px;left:0;right:0;bottom:2px;background:var(--gold);opacity:.65;z-index:-1;transform:rotate(-3deg);border-radius:50%}
.homepage .hero .hero-copy .lead{color:var(--green)!important;font-size:23px;max-width:370px}
.homepage .hero-copy>p:not(.eyebrow){color:var(--muted);max-width:390px;font-size:15px}
.homepage .hero .actions{gap:14px;margin-top:29px}
.homepage .hero .button.gold{background:var(--green);color:var(--ivory)}
.homepage .hero .button.gold:hover{background:#2b5346}
.homepage .hero .button.outline{color:var(--green);border-color:#9ca994;background:transparent}
.homepage .hero .button.outline:hover{background:#e9eadd}
.homepage .hero-location{font-size:10px!important;margin-top:28px;max-width:none!important}
.homepage .hero-location span{color:#8b713d}
.homepage .hero-visual{padding:60px 0 45px;isolation:isolate}
.homepage .hero-visual:before{content:'';position:absolute;inset:40px -21px 60px 21px;border:1px solid #cfb77c90;border-radius:150px 12px 150px 12px;z-index:-1;transform:rotate(5deg)}
.homepage .moment-label{position:absolute;top:0;left:8px;color:var(--green);font-size:10px;letter-spacing:.12em;line-height:1.6;text-transform:uppercase}
.homepage .moment-label em{text-transform:none;letter-spacing:0;font:italic 18px/1.4 var(--serif)}
.homepage .image-frame{padding:0;border:0;border-radius:120px 8px 120px 8px;overflow:hidden;box-shadow:0 25px 55px #102e2620}
.homepage .image-frame img{aspect-ratio:1.05;object-position:49% center;border-radius:inherit;transition:transform .8s ease}
@media(hover:hover){.homepage .hero-visual:hover .image-frame img{transform:scale(1.025)}}
.homepage .image-caption{left:-35px;bottom:8px;gap:16px;padding:20px 25px;border:0;border-radius:4px;box-shadow:0 12px 32px #102e2620}
.homepage .caption-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8eddf;font-size:30px}
.homepage .image-caption strong{font-size:23px}
.homepage .image-caption p{font-size:11px}
.homepage .intro-strip{background:var(--green);color:var(--ivory);border-bottom:0}
.homepage .intro-strip .wrap{padding-top:24px;padding-bottom:24px;font-size:12px;letter-spacing:.06em}
.homepage .intro-strip span:before{color:var(--gold)}
.homepage .section-head{max-width:760px}
.homepage .section-head h2{max-width:680px}
.homepage .service-overview{gap:20px;border:0;background:transparent;align-items:start}
.homepage .service-card{border:1px solid #d8ddce!important;border-radius:6px 6px 52px 6px;background:var(--paper);padding:33px 30px;min-height:385px;transition:transform .25s ease,box-shadow .25s ease}
.homepage .service-card:nth-child(2){background:#e9ede1;margin-top:25px}
.homepage .service-card:nth-child(3){background:#f0e9d8;margin-top:50px}
.homepage .service-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px #183d320c}
.homepage .service-card .index{width:51px;height:51px;display:flex;align-items:center;justify-content:center;border:1px solid #a6b19c;border-radius:50%;font-size:22px;margin-bottom:26px}
.homepage .service-card h3{font-size:30px}
.homepage .service-card .text-link{min-height:44px}
.homepage .section-note{margin-top:30px}
.homepage .philosophy{background:var(--deep);color:var(--ivory);position:relative;overflow:hidden}
.homepage .philosophy:after{content:'';position:absolute;pointer-events:none;width:350px;height:350px;border:1px solid #cfb77c30;border-radius:50%;left:-220px;bottom:-200px;box-shadow:0 0 0 40px #cfb77c08,0 0 0 80px #cfb77c05}
.homepage .philosophy .eyebrow,.homepage .principles article>span{color:var(--gold)}
.homepage .philosophy .section-head>p:last-child,.homepage .principles p{color:#c9d6ca}
.homepage .philosophy .text-link{color:#ddca98}
.homepage .principles article{border-color:#ffffff26;padding:25px 0}
.homepage .principles article:first-child{padding-top:0}
.homepage .principles article>span{border:1px solid #cfb77c60;border-radius:50%;width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;font-size:14px}
.homepage .steps{gap:30px}
.homepage .steps li{border-top:0;position:relative;padding-top:0}
.homepage .steps li:before{content:'';position:absolute;left:58px;right:0;top:23px;border-top:1px solid #bdc8b5}
.homepage .steps span{display:grid;place-items:center;width:46px;height:46px;border:1px solid #a8b49e;border-radius:50%;font-size:20px;color:var(--green)}
.homepage .steps h3{font-size:27px;margin-top:23px}
.homepage .cta{background:#e9eddf;color:var(--green);border-top:1px solid #d7decf}
.homepage .cta .eyebrow{color:#786337}
.homepage .cta p:not(.eyebrow){color:var(--muted)}
.homepage .cta .button.gold{background:var(--green);color:var(--ivory)}
@media(max-width:1100px){.homepage .hero-grid{gap:38px}.homepage .hero h1{font-size:4rem}.homepage .hero .button{padding:14px 18px;gap:20px}.homepage .image-caption{left:-20px;padding:17px 20px}.homepage .image-caption strong{font-size:20px}.homepage .service-card{padding:26px 23px;min-height:405px}.homepage .service-card h3{font-size:27px}}
@media(max-width:900px){.homepage .hero-grid{grid-template-columns:1fr;gap:15px;padding-top:45px;padding-bottom:55px}.homepage .hero:before{inset:58% 0 0 43%;border-radius:100px 0 0 0}.homepage .hero-copy{max-width:600px}.homepage .hero h1{font-size:clamp(2.7rem,8vw,4.6rem)}.homepage .hero-copy>p:not(.eyebrow){max-width:470px}.homepage .hero-visual{width:88%;max-width:570px;justify-self:end;padding-top:50px;margin:0}.homepage .hero-visual:before{right:-12px}.homepage .moment-label{left:8px;top:0}.homepage .image-frame img{aspect-ratio:1.45}.homepage .service-overview{gap:14px}.homepage .service-card{padding:24px 20px;min-height:410px}.homepage .service-card h3{font-size:25px}}
@media(max-width:650px){.homepage .hero-grid{padding-top:35px;padding-bottom:35px;gap:18px}.homepage .hero h1{font-size:clamp(2.65rem,9vw,3.8rem);margin-bottom:22px}.homepage .hero .hero-copy .lead{font-size:22px!important}.homepage .hero .eyebrow{font-size:8px;letter-spacing:.09em;margin-bottom:20px}.homepage .hero .actions{gap:10px;margin-top:25px}.homepage .hero .button{font-size:12px;padding:13px 15px;gap:12px;min-height:49px}.homepage .hero-location{font-size:10px!important;margin-top:23px}.homepage .hero-visual{width:94%;padding-top:45px;padding-bottom:40px;max-width:460px}.homepage .image-frame{border-radius:75px 6px 75px 6px}.homepage .image-frame img{aspect-ratio:1.25}.homepage .hero-visual:before{inset:35px -7px 55px 13px;border-radius:80px 6px 80px 6px}.homepage .moment-label{font-size:8px}.homepage .moment-label em{font-size:15px}.homepage .image-caption{left:-10px;bottom:10px;padding:14px 17px;gap:11px}.homepage .image-caption strong{font-size:18px}.homepage .caption-mark{width:38px;height:38px;font-size:25px}.homepage .intro-strip .wrap{gap:10px;font-size:11px}.homepage .service-overview{gap:17px}.homepage .service-card{min-height:0;margin-top:0!important;padding:27px;border-radius:5px 5px 42px 5px}.homepage .service-card .index{margin-bottom:20px;width:42px;height:42px;font-size:19px}.homepage .service-card h3{font-size:30px}.homepage .service-card>p:not(.small){margin-bottom:17px}.homepage .principles article:first-child{padding-top:10px}.homepage .steps{gap:27px}.homepage .steps li:before{top:22px}.homepage .steps h3{margin-top:18px}.homepage .cta .actions{gap:20px}}
@media(prefers-reduced-motion:no-preference){.homepage .hero-copy{animation:home-arrive .7s ease-out both}.homepage .hero-visual{animation:home-arrive .95s ease-out both}.homepage .image-caption{animation:home-arrive 1.1s ease-out both}}
@keyframes home-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.homepage *,.homepage *:before,.homepage *:after{animation:none!important;transition:none!important}}
