/* Thematic photography and motion, October 2026 */
.hero-media,.hero-slide[data-slide] .hero-media{inset:0}
.hero-media picture{display:block;width:100%;height:100%}
.hero-media img,.hero-slide[data-slide] .hero-media img{object-position:70% 50%}
.hero-overlay{background:linear-gradient(90deg,#0d2b24ed 0%,#0d2b24cf 33%,#0d2b2450 58%,#0d2b2408 85%),linear-gradient(0deg,#0d2b24e8,transparent 38%)}
.service-grid{gap:0 48px;border-top:0}
.service-card,.service-card:nth-child(odd),.service-card:nth-child(even){display:flex;flex-direction:column;padding:0 0 38px;margin-bottom:42px;border-right:0;gap:0;border-top:0}
.service-card-media{width:100%;flex:none;aspect-ratio:720/430;position:relative;overflow:hidden;background:var(--green);margin-bottom:28px}
.service-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.65,.2,1),filter 1s}
.service-image-num{position:absolute;bottom:14px;right:20px;font-family:var(--serif);font-size:48px;color:#fff8;line-height:1}
.service-card-copy{display:grid;grid-template-columns:27px 1fr;gap:0 18px}
.service-card-copy .service-num{grid-column:1;grid-row:1;padding-top:9px}
.service-card-copy h3,.service-card-copy p,.service-card-copy .card-link{grid-column:2}
.service-card h3{margin-bottom:14px;line-height:1.2}
.service-card p{margin-bottom:24px;max-width:520px}
.service-card .card-link{justify-self:start}
.service-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.service-card:last-child:nth-child(odd) .service-card-media{margin:0}
.article-card{padding-top:0;display:flex;flex-direction:column;border-top:0;min-height:0;padding-bottom:28px;border-bottom:1px solid var(--line)}
.article-card[hidden]{display:none!important}
.article-cover{display:block;width:100%;flex:none;overflow:hidden;aspect-ratio:720/430;background:var(--green);margin-bottom:25px}
.article-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.65,.2,1)}
.article-card .article-meta{margin-bottom:15px}
.article-card h3{font-size:29px;line-height:1.15}
.article-card>p{margin-bottom:22px}
.article-card>.text-link{align-self:flex-start;margin-top:auto}
.article-grid{row-gap:40px}
.service-feature-image,.article-feature-image{margin:0 0 70px;overflow:hidden;background:var(--green)}
.service-feature-image{max-height:500px;aspect-ratio:2.4}
.article-feature-image{aspect-ratio:2.35}
.service-feature-image img,.article-feature-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.service-feature-image img{object-position:center 53%}
.reveal-motion{opacity:0;transform:translate3d(0,36px,0);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-motion.is-revealed{opacity:1;transform:translate3d(0,0,0)}
.reveal-motion:not(.is-revealed) .article-cover img,.reveal-motion:not(.is-revealed) .service-card-media img{transform:scale(1.07)}
.is-revealed .eyebrow::before,.eyebrow.is-revealed::before{animation:rule-appear .9s ease-out both}
.header .brand,.header-contact,.header .nav a,.menu-toggle{animation:header-arrive .9s cubic-bezier(.2,.7,.2,1) both}
.header .nav a:nth-child(2){animation-delay:.08s}.header .nav a:nth-child(3){animation-delay:.16s}.header .nav a:nth-child(4){animation-delay:.24s}.header-contact{animation-delay:.3s}
.button,.text-link,.hero-phone{transition:color .3s,background-color .3s,border-color .3s,transform .35s,box-shadow .35s}
.button{position:relative;overflow:hidden}
.button::after{content:'';position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 43%,#fff3 50%,transparent 57%);transform:translateX(-80%);pointer-events:none}
.pagination-progress{will-change:transform}
@keyframes header-arrive{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes rule-appear{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
@keyframes menu-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
details[open] p{animation:header-arrive .55s ease both}
@media(hover:hover) and (pointer:fine){
 .service-card:hover .service-card-media img,.article-card:hover .article-cover img{transform:scale(1.055);filter:brightness(1.05)}
 .button:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0d2b2414}
 .button:hover::after{transform:translateX(80%);transition:transform .8s ease}
 .text-link:hover,.hero-phone:hover{transform:translateX(3px)}
}
@media(max-width:1100px){.service-grid{gap:0 32px}.service-card:last-child:nth-child(odd){gap:32px}.article-card h3{font-size:26px}}
@media(max-width:800px){
 .nav.open{animation:menu-arrive .4s ease both}.nav.open a{animation:header-arrive .65s ease both}
 .hero-media,.hero-slide[data-slide] .hero-media{inset:40% 0 0}
 .hero-media img,.hero-slide[data-slide] .hero-media img{object-position:center 54%}
 .hero-overlay{background:linear-gradient(180deg,#0d2b24 0%,#0d2b24f8 36%,#0d2b24b5 48%,#0d2b2410 72%,#0d2b24cf 100%)}
 .service-card-media{margin-bottom:22px}.service-grid{gap:0 26px}
 .service-card:last-child:nth-child(odd){gap:26px}
 .article-feature-image,.service-feature-image{aspect-ratio:1.8;margin-bottom:45px}
}
@media(max-width:540px){
 .hero-media,.hero-slide[data-slide] .hero-media{inset:43% 0 0}
 .hero-inner{padding-bottom:125px}.hero-inner h1,.hero-inner h2{font-size:49px}
 .hero-overlay{background:linear-gradient(180deg,#0d2b24 0%,#0d2b24 39%,#0d2b24c7 50%,#0d2b2410 75%,#0d2b24e3 100%)}
 .service-card,.service-card:nth-child(odd),.service-card:nth-child(even),.service-card:last-child:nth-child(odd){display:flex;flex-direction:column;gap:0;padding:0 0 28px;margin-bottom:30px}
 .service-card:last-child:nth-child(odd) .service-card-media{margin-bottom:22px}
 .service-card-copy{grid-template-columns:23px 1fr;gap:0 12px}.service-card h3{font-size:29px}.service-card-copy .service-num{padding-top:6px}
 .service-card-media{aspect-ratio:1.6}.service-image-num{font-size:43px}
 .article-card{padding-block:0 28px}.article-card h3{font-size:31px}.article-cover{margin-bottom:21px}.article-grid{gap:32px}
 .service-feature-image,.article-feature-image{aspect-ratio:1.55;margin-bottom:35px}
 .reveal-motion{transform:translate3d(0,25px,0)}
}
@media(max-width:360px){.hero-inner h1,.hero-inner h2{font-size:44px}.hero-media,.hero-slide[data-slide] .hero-media{inset:46% 0 0}}
@media(prefers-reduced-motion:reduce){.reveal-motion{opacity:1;transform:none!important;transition:none!important}.header .brand,.header-contact,.header .nav a,.menu-toggle,.nav.open,details[open] p{animation:none!important}.service-card-media img,.article-cover img{transform:none!important}.button::after{display:none}}
